/* Rebel app layer: black, white and rebel red. */
:root{
  --rebel-black:#050505;
  --rebel-black-2:#101114;
  --rebel-red:#ed1e24;
  --rebel-red-dark:#a80f17;
  --rebel-white:#ffffff;
  --rebel-muted:#a8adb7;
  --rebel-line:rgba(255,255,255,.12);
  --rebel-card:rgba(255,255,255,.055);
  --rebel-card-strong:rgba(255,255,255,.1);
  --rebel-shadow:0 22px 70px rgba(0,0,0,.48);
  --rebel-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

body.rebel-login,
body.rebel-page,
body.offsprings-app{
  background:#050505 !important;
  color:var(--rebel-white);
}

body.rebel-login::before,
body.rebel-page::before,
body.offsprings-app::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(180deg, #000 0%, transparent 82%);
  -webkit-mask-image:linear-gradient(180deg, #000 0%, transparent 82%);
}

body.rebel-login::after,
body.rebel-page::after,
body.offsprings-app::after{
  content:"";
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:5px;
  background:var(--rebel-red);
  box-shadow:0 0 28px rgba(237,30,36,.55);
  pointer-events:none;
  z-index:200;
}

.rebel-login-shell,
.rebel-shell{
  min-height:100dvh;
  width:100%;
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  padding:24px;
  padding-left:calc(24px + env(safe-area-inset-left));
  padding-right:calc(24px + env(safe-area-inset-right));
}

.rebel-login-panel,
.rebel-choice-panel{
  width:min(760px, 100%);
}

.rebel-login-brand,
.rebel-choice-head,
.rebel-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.rebel-login-brand{
  justify-content:flex-start;
  margin-bottom:18px;
}

.rebel-brand-mark{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border:1px solid rgba(237,30,36,.58);
  background:#0a0a0b;
  color:var(--rebel-red);
  font-family:var(--rebel-mono);
  font-size:24px;
  font-weight:900;
  box-shadow:0 0 0 1px rgba(255,255,255,.05), 0 18px 46px rgba(237,30,36,.18);
}

.rebel-wordmark{
  color:var(--rebel-red);
  font-size:clamp(42px, 12vw, 76px);
  line-height:.9;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}

.rebel-brand-sub,
.rebel-kicker{
  margin-top:7px;
  color:var(--rebel-muted);
  font-family:var(--rebel-mono);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.rebel-login-card,
.rebel-choice-card,
.rebel-panel-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.035)) !important;
  border:1px solid var(--rebel-line) !important;
  border-radius:8px !important;
  box-shadow:var(--rebel-shadow) !important;
  color:var(--rebel-white);
}

.rebel-login-card{
  padding:24px !important;
}

.rebel-login-card h1,
.rebel-page-title{
  color:#fff;
  letter-spacing:0;
}

.rebel-login-card .muted,
.rebel-choice-card p,
.rebel-panel-card .muted{
  color:var(--rebel-muted);
}

.rebel-login-card label{
  color:#f4f4f6;
}

.rebel-login-card input{
  background:#09090a !important;
  border:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  border-radius:6px !important;
}

.rebel-login-card input:focus{
  border-color:rgba(237,30,36,.7) !important;
  box-shadow:0 0 0 4px rgba(237,30,36,.16) !important;
}

.rebel-submit,
.rebel-button{
  background:var(--rebel-red) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.08) !important;
  border-radius:6px !important;
  box-shadow:0 14px 34px rgba(237,30,36,.22);
}

.rebel-login-card .login-install a,
.rebel-text-link{
  color:#fff;
  text-decoration:none;
  font-weight:800;
}

.rebel-choice-head{
  margin-bottom:20px;
}

.rebel-choice-head .rebel-wordmark{
  font-size:clamp(52px, 15vw, 104px);
}

.rebel-user-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:6px 8px 6px 14px;
  border:1px solid var(--rebel-line);
  background:rgba(255,255,255,.055);
  color:#fff;
  text-decoration:none;
  font-weight:800;
}

.rebel-choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.rebel-choice-card{
  position:relative;
  min-height:230px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:18px !important;
  text-decoration:none;
}

.rebel-choice-card::before{
  content:"";
  position:absolute;
  left:0;
  top:18px;
  bottom:18px;
  width:5px;
  background:var(--rebel-red);
}

.rebel-system-panel{
  width:min(860px, 100%);
}

.rebel-system-card{
  isolation:isolate;
  transition:transform .14s cubic-bezier(.2,.8,.2,1), border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}

.rebel-system-card.rsa-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.055)) !important;
}

.rebel-system-card.offsprings-card{
  background:
    radial-gradient(280px 170px at 86% 10%, rgba(237,30,36,.16), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)) !important;
}

.rebel-system-tag{
  display:inline-flex;
  margin-bottom:9px;
  color:var(--rebel-red);
  font-family:var(--rebel-mono);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.rebel-choice-card:hover,
.rebel-action-card:hover{
  border-color:rgba(237,30,36,.58) !important;
  transform:translateY(-2px);
}

.rebel-choice-card h2{
  margin:0;
  color:#fff;
  font-size:24px;
  line-height:1.05;
  letter-spacing:0;
}

.rebel-choice-card p{
  margin:8px 0 0;
  line-height:1.45;
}

.rebel-card-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border:1px solid var(--rebel-line);
  background:#09090a;
  color:var(--rebel-red);
}

.rebel-card-icon svg{
  width:27px;
  height:27px;
}

.rebel-choice-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:22px;
}

.rebel-choice-foot span{
  color:#fff;
  font-weight:900;
}

.rebel-choice-foot svg{
  width:22px;
  height:22px;
  color:var(--rebel-red);
}

.offsprings-app .app{
  background:#050505 !important;
}

.rebel-topbar{
  position:sticky;
  top:0;
  z-index:70;
  min-height:66px;
  padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 10px calc(14px + env(safe-area-inset-left));
  border-bottom:1px solid var(--rebel-line);
  background:rgba(5,5,5,.94);
}

.offsprings-system-chip{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 9px;
  border:1px solid rgba(237,30,36,.34);
  border-radius:999px;
  color:#fff;
  background:rgba(237,30,36,.12);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.rebel-mini-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
}

.rebel-mini-brand strong{
  display:block;
  color:var(--rebel-red);
  font-size:24px;
  line-height:1;
  letter-spacing:0;
  text-transform:uppercase;
}

.rebel-mini-brand span{
  display:block;
  color:var(--rebel-muted);
  font-size:11px;
  font-family:var(--rebel-mono);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.rebel-top-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.rebel-icon-btn{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid var(--rebel-line);
  border-radius:6px;
  background:rgba(255,255,255,.055);
  color:#fff;
  text-decoration:none;
}

.rebel-icon-btn svg{
  width:20px;
  height:20px;
}

.offsprings-app .content{
  position:relative;
  z-index:1;
  max-width:860px !important;
  padding-bottom:calc(104px + env(safe-area-inset-bottom)) !important;
}

.offsprings-app .muted,
.offsprings-app .help{
  color:var(--rebel-muted) !important;
}

.offsprings-app h3{
  color:#fff;
  letter-spacing:0;
}

.rebel-panel-card ol{
  margin:10px 0 0 20px;
  color:var(--rebel-muted);
  line-height:1.55;
}

.rebel-page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:10px 0 16px;
}

.rebel-page-title{
  margin:0;
  font-size:30px;
  line-height:1;
}

.rebel-stats-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-bottom:14px;
}

.rebel-stat{
  min-height:96px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:14px;
  border:1px solid var(--rebel-line);
  border-radius:8px;
  background:var(--rebel-card);
}

.rebel-stat span{
  color:var(--rebel-muted);
  font-size:11px;
  font-family:var(--rebel-mono);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.rebel-stat strong{
  color:#fff;
  font-size:32px;
  line-height:1;
}

.rebel-actions-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.rebel-action-card{
  min-height:130px;
  padding:14px;
  border:1px solid var(--rebel-line);
  border-radius:8px;
  background:var(--rebel-card);
  color:#fff;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:transform .16s ease, border-color .16s ease;
}

.rebel-action-card svg{
  width:26px;
  height:26px;
  color:var(--rebel-red);
}

.rebel-action-card strong{
  display:block;
  margin-top:16px;
  font-size:17px;
}

.rebel-action-card span{
  display:block;
  margin-top:4px;
  color:var(--rebel-muted);
  font-size:12px;
  line-height:1.35;
}

.rebel-list{
  display:grid;
  gap:10px;
}

.rebel-list-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 14px;
  border:1px solid var(--rebel-line);
  border-radius:8px;
  background:var(--rebel-card);
  color:#fff;
  text-decoration:none;
}

.rebel-list-item strong{
  display:block;
  font-size:14px;
  line-height:1.25;
}

.rebel-list-item span,
.rebel-list-item small{
  display:block;
  margin-top:4px;
  color:var(--rebel-muted);
  font-size:12px;
  line-height:1.35;
}

.rebel-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 9px;
  border:1px solid rgba(237,30,36,.45);
  border-radius:999px;
  color:#fff;
  background:rgba(237,30,36,.18);
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}

.rebel-empty{
  padding:16px;
  border:1px solid var(--rebel-line);
  border-radius:8px;
  background:var(--rebel-card);
  color:var(--rebel-muted);
  font-weight:700;
}

.rebel-bottom-nav{
  position:fixed;
  left:10px;
  right:10px;
  bottom:10px;
  z-index:90;
  display:flex;
  gap:2px;
  padding:8px;
  padding-bottom:calc(8px + env(safe-area-inset-bottom));
  border:1px solid var(--rebel-line);
  border-radius:8px;
  background:rgba(5,5,5,.96);
  box-shadow:var(--rebel-shadow);
}

.rebel-bottom-nav a{
  flex:1 1 0;
  min-width:0;
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  color:var(--rebel-muted);
  text-decoration:none;
  font-size:11px;
  font-weight:800;
  border-radius:6px;
}

.rebel-bottom-nav a.active{
  background:rgba(237,30,36,.16);
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(237,30,36,.28);
}

.rebel-bottom-nav svg{
  width:20px;
  height:20px;
}

.rebel-choice-card.is-tapping,
.rebel-action-card.is-tapping,
.rebel-list-item.is-tapping,
.rebel-bottom-nav a.is-tapping{
  opacity:.72;
  transform:scale(.985);
}

html.rsa-navigating body.rebel-page::after,
html.rsa-navigating body.offsprings-app::after{
  box-shadow:0 0 34px rgba(237,30,36,.78);
}

@media (max-width:680px){
  .rebel-login-shell,
  .rebel-shell{
    padding:18px;
    padding-left:calc(18px + env(safe-area-inset-left));
    padding-right:calc(18px + env(safe-area-inset-right));
  }

  .rebel-choice-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .rebel-choice-grid{
    grid-template-columns:1fr;
  }

  .rebel-choice-card{
    min-height:190px;
  }

  .rebel-page-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .rebel-actions-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:430px){
  .rebel-actions-grid,
  .rebel-stats-grid{
    grid-template-columns:1fr;
  }

  .rebel-wordmark{
    font-size:44px;
  }

  .rebel-choice-head .rebel-wordmark{
    font-size:58px;
  }

  .rebel-bottom-nav a span{
    font-size:10px;
  }
}

/* Rebel Offsprings / system soul v9 */
body.rebel-page,
body.offsprings-app{
  background:
    linear-gradient(180deg, #050505 0%, #0c0d10 56%, #050505 100%) !important;
}
.rebel-choice-panel,
.offsprings-app .content{
  animation:rebel-rise .22s cubic-bezier(.2,.8,.2,1) both;
}
.rebel-choice-card,
.rebel-stat,
.rebel-action-card,
.rebel-list-item,
.rebel-empty{
  border-color:rgba(255,255,255,.13) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.035)) !important;
  box-shadow:0 18px 60px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
.rebel-choice-card::after,
.rebel-action-card::after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:12px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--rebel-red), transparent);
  opacity:.42;
  pointer-events:none;
}
.rebel-action-card{
  position:relative;
  overflow:hidden;
}
.rebel-stat{
  position:relative;
  overflow:hidden;
}
.rebel-stat::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:3px;
  border-radius:999px;
  background:var(--rebel-red);
  opacity:.88;
}
.rebel-topbar{
  background:rgba(5,5,5,.88);
  backdrop-filter:saturate(170%) blur(18px);
}
.rebel-mini-brand .rebel-brand-mark{
  width:46px;
  height:46px;
  font-size:20px;
  border-radius:10px;
}
.rebel-bottom-nav{
  border-radius:18px;
  background:rgba(5,5,5,.88);
  backdrop-filter:saturate(170%) blur(18px);
}
.rebel-bottom-nav a{
  border-radius:14px;
}
.rebel-bottom-nav a.active{
  background:#ed1e24;
  color:#fff;
  box-shadow:0 12px 26px rgba(237,30,36,.24);
}
.rebel-button,
.rebel-submit{
  box-shadow:0 14px 34px rgba(237,30,36,.26), inset 0 1px 0 rgba(255,255,255,.18) !important;
}
.rebel-choice-card:active,
.rebel-action-card:active,
.rebel-list-item:active{
  transform:scale(.978);
}
@keyframes rebel-rise{
  from{ opacity:0; transform:translateY(10px) scale(.99); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

/* Clean Lucide icons v10 */
.rebel-card-icon,
.rebel-action-card > svg,
.rebel-icon-btn{
  background:transparent !important;
  box-shadow:none !important;
}
.rebel-card-icon{
  border-color:transparent !important;
}
.rebel-card-icon svg{
  width:34px;
  height:34px;
}
.rebel-action-card > svg{
  width:32px;
  height:32px;
}
.rebel-bottom-nav svg,
.rebel-icon-btn svg{
  stroke-width:2.15;
}
