
/* ==========================================================
   DOUVI V5.2 — UNIFIED DESIGN SYSTEM
   Loaded after legacy styles.css to provide one visual grammar.
   ========================================================== */

:root{
  --ds-space-2xs:4px;
  --ds-space-xs:8px;
  --ds-space-sm:12px;
  --ds-space-md:16px;
  --ds-space-lg:24px;
  --ds-space-xl:32px;
  --ds-space-2xl:48px;
  --ds-space-3xl:72px;

  --ds-radius-sm:12px;
  --ds-radius-md:16px;
  --ds-radius-lg:22px;
  --ds-radius-xl:28px;
  --ds-radius-round:999px;

  --ds-control-h:46px;
  --ds-content:1180px;
  --ds-reading:760px;
  --ds-accent:#91e7b6;
  --ds-accent-rgb:145,231,182;
  --ds-accent-soft:rgba(var(--ds-accent-rgb),.10);
  --ds-accent-line:rgba(var(--ds-accent-rgb),.22);
  --ds-focus:0 0 0 3px rgba(var(--ds-accent-rgb),.24);
}

html[data-theme="light"]{
  --ds-accent:#168f59;
  --ds-accent-rgb:22,143,89;
}

/* Product personality stays inside the same green/teal/mint family. */
body[data-ds-context="life"]{
  --ds-accent:#78dfc3;
  --ds-accent-rgb:120,223,195;
}
html[data-theme="light"] body[data-ds-context="life"]{
  --ds-accent:#138b72;
  --ds-accent-rgb:19,139,114;
}
body[data-ds-context="work"]{
  --ds-accent:#8ddd9f;
  --ds-accent-rgb:141,221,159;
}
html[data-theme="light"] body[data-ds-context="work"]{
  --ds-accent:#238d51;
  --ds-accent-rgb:35,141,81;
}
body[data-ds-context="play"]{
  --ds-accent:#7fd4d4;
  --ds-accent-rgb:127,212,212;
}
html[data-theme="light"] body[data-ds-context="play"]{
  --ds-accent:#147e83;
  --ds-accent-rgb:20,126,131;
}
body[data-ds-context="experiment"]{
  --ds-accent:#b4df91;
  --ds-accent-rgb:180,223,145;
}
html[data-theme="light"] body[data-ds-context="experiment"]{
  --ds-accent:#628e35;
  --ds-accent-rgb:98,142,53;
}

/* Bridge new context tokens into old component variables. */
body[data-ds-context]{
  --accent:var(--ds-accent);
  --accent-soft:var(--ds-accent-soft);
  --accent-line:var(--ds-accent-line);
}

/* Baseline */
html{scroll-padding-top:82px}
body{
  min-height:100vh;
  font-size:15px;
  line-height:1.55;
}
.shell{width:min(calc(100% - 32px),var(--ds-content))}
.section{padding:var(--ds-space-3xl) 0}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
:focus-visible{
  outline:none!important;
  box-shadow:var(--ds-focus)!important;
}

/* Header: intentionally quiet and reusable everywhere. */
.labs-header{
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  border-bottom:1px solid var(--line-2);
}
.labs-nav{height:66px;gap:16px}
.labs-brand{gap:10px;font-size:16px}
.labs-brand img{
  width:38px;height:38px;border-radius:13px;
  box-shadow:none;
}
.labs-public-nav{gap:22px;font-size:12px}
.labs-public-nav a:after{background:var(--ds-accent)}
.labs-public-nav a.is-active{color:var(--text)}
.labs-navtools{gap:7px}
.labs-account-chip,.tool-btn,.lang,.menu-btn{
  min-height:42px;
  border-radius:var(--ds-radius-sm);
}
.labs-account-chip{
  padding:0 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:var(--surface);
  font-size:10px;
  font-weight:800;
}
.labs-account-chip.is-signed-in:before{
  content:"";
  width:7px;height:7px;border-radius:50%;
  background:var(--ds-accent);
  box-shadow:0 0 0 4px var(--ds-accent-soft);
  margin-right:8px;
}

/* One button grammar */
.btn{
  min-height:48px;
  padding:0 17px;
  border-radius:var(--ds-radius-md);
  font-size:12px;
  font-weight:800;
  letter-spacing:-.01em;
  box-shadow:none;
}
.btn:after{display:none}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:var(--text);
  color:var(--bg);
}
.btn-secondary{
  background:var(--surface);
  border-color:var(--line);
}
.btn-secondary:hover{border-color:var(--ds-accent-line)}
.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}

/* One badge grammar */
.eyebrow,.kicker,.portfolio-status,.work-detail-badges>span,
.mind-tool-top>span:last-child,.daily-tool-top>span:last-child{
  letter-spacing:.08em;
}
.eyebrow{
  min-height:34px;
  padding:0 11px;
  border-radius:var(--ds-radius-round);
  font-size:10px;
  font-weight:850;
}
.eyebrow i{
  width:7px;height:7px;
  background:var(--ds-accent);
  box-shadow:0 0 0 5px var(--ds-accent-soft);
}
.kicker{
  color:var(--ds-accent);
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
}

/* Cards share structure; context changes accent, not layout. */
.portfolio-card,
.labs-v5-category,
.labs-product-row,
.labs-game-card,
.labs-experiment-card,
.labs-principles article,
.work-detail-panel,
.mind-tool-card,.money-tool-card,.life-tool-card,.daily-tool-card,
.mind-history-card,.money-history-card,.life-history-card,.daily-history-card,
.mind-game-card,.money-game-card,.life-game-card,.daily-game-card,
.weekly-challenge-card,.weekly-board,.season-board,
.progress-panel,.achievement-card{
  border-radius:var(--ds-radius-lg)!important;
  box-shadow:none!important;
}
.portfolio-card:hover,
.labs-product-row:hover,
.labs-game-card:hover,
.labs-experiment-card:hover{
  border-color:var(--ds-accent-line);
}

/* Public portfolio hero */
.labs-v5-hero,
.labs-hub-hero,
.work-detail-hero{
  position:relative;
  overflow:hidden;
}
.labs-v5-hero:before,
.labs-hub-hero:before,
.work-detail-hero:before{
  content:"";
  position:absolute;
  width:520px;height:520px;
  border-radius:50%;
  right:-260px;top:-260px;
  pointer-events:none;
  background:radial-gradient(circle,rgba(var(--ds-accent-rgb),.13),rgba(var(--ds-accent-rgb),0) 70%);
}
.labs-v5-hero .shell,
.labs-hub-hero .shell,
.work-detail-hero .shell{position:relative;z-index:1}

.labs-v5-hero h1{
  max-width:1000px;
  font-size:clamp(52px,7.5vw,90px);
  line-height:.94;
}
.labs-hub-hero h1,
.work-detail-copy h1{
  font-size:clamp(44px,6.5vw,72px);
  line-height:.96;
}
.labs-v5-hero .lead,.labs-hub-hero .lead,.work-detail-copy .lead{
  max-width:var(--ds-reading);
  font-size:17px;
}

/* Portfolio cards */
.portfolio-card{
  min-height:294px;
  padding:18px;
}
.portfolio-visual{
  border-radius:var(--ds-radius-md);
  color:var(--ds-accent);
}
.portfolio-card h3{font-size:26px}
.portfolio-card p{font-size:11px}
.portfolio-card-foot b{color:var(--ds-accent)}
.portfolio-status.is-live{
  color:var(--ds-accent);
  border-color:var(--ds-accent-line);
  background:var(--ds-accent-soft);
}

/* Detail pages */
.work-detail-grid{gap:32px}
.work-detail-visual{
  border-radius:32px;
  background:
    radial-gradient(circle at 25% 20%,var(--ds-accent-soft),transparent 11rem),
    var(--surface-2);
  color:var(--ds-accent);
}
.work-summary{font-size:18px}
.work-tags span{border-radius:var(--ds-radius-round)}

/* Existing Product pages get same chrome, but preserve product-specific content. */
.labs-origin-strip{
  padding:10px 0;
  background:color-mix(in srgb,var(--bg) 94%,transparent);
}
.labs-origin-strip a{color:var(--ds-accent)}

/* Experiments: clean and focused. */
.mind-game-page,.money-game-page,.life-game-page,.daily-game-page,
.mind-hub-page,.money-hub-page,.life-hub-page,.daily-hub-page{
  --accent:var(--ds-accent);
}
.mind-game-hero,.money-game-hero,.life-game-hero,.daily-game-hero{
  padding-top:32px;
}
.mind-game-hero h1,.money-game-hero h1,.life-game-hero h1,.daily-game-hero h1{
  font-size:clamp(38px,6vw,64px);
  max-width:820px;
}
.mind-back,.money-back,.life-back,.daily-back{
  display:inline-flex;
  min-height:40px;
  align-items:center;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}
.mind-meta,.money-meta,.life-meta,.daily-meta{
  color:var(--muted);
  font-size:10px;
}

/* Forms and interactive choices */
input,select,textarea{
  border-radius:var(--ds-radius-md)!important;
}
input:not([type="checkbox"]):not([type="radio"]),
select,textarea{
  min-height:46px;
}
.weekly-option,.logic-option,.money-option,.life-option,
.mind-choice,.daily-choice{
  border-radius:var(--ds-radius-md)!important;
}

/* Identity/progression pages */
body[data-ds-context="identity"] .progress-hero,
body[data-ds-context="identity"] .weekly-hero,
body[data-ds-context="identity"] .season-hero{
  background:
    radial-gradient(circle at 86% 12%,var(--ds-accent-soft),transparent 23rem);
}
.progress-panel-head h2,.weekly-board-head h2,.season-board-head h2{
  letter-spacing:-.035em;
}

/* Game mode: game content gets priority over company navigation. */
body[data-ds-context="play"].protected-game-body .labs-public-nav{display:none}
body[data-ds-context="play"].protected-game-body .labs-nav{height:58px}
body[data-ds-context="play"].protected-game-body .game-origin-label{
  background:var(--surface);
  color:var(--ds-accent);
  border-bottom:1px solid var(--line-2);
}
body[data-ds-context="play"].protected-game-body .protected-player{
  min-height:calc(100vh - 86px);
}

/* Account menu is part of the same component system. */
.labs-account-panel{
  border-radius:var(--ds-radius-lg);
  box-shadow:0 26px 80px rgba(0,0,0,.26);
}
.labs-account-avatar,.labs-menu-icon,.labs-account-close{
  border-radius:var(--ds-radius-sm);
}
.labs-menu-icon{color:var(--ds-accent)}
.labs-account-links>a{border-radius:var(--ds-radius-sm)}
.labs-signout{border-radius:var(--ds-radius-sm)}

/* Context chip injected by design-system.js.
   It stays subtle and only appears on detail/experience pages. */
.ds-context-strip{
  border-bottom:1px solid var(--line-2);
  background:color-mix(in srgb,var(--bg) 95%,transparent);
}
.ds-context-strip>.shell{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ds-context-label{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:8px;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.ds-context-label:before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--ds-accent);
}
.ds-context-back{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
}
.ds-context-back:hover{color:var(--text)}

/* Mobile-first reductions */
@media(max-width:980px){
  .labs-public-nav{display:none}
  .labs-menu-btn{display:grid}
}

@media(max-width:720px){
  :root{--ds-control-h:44px}
  html{scroll-padding-top:68px}
  .shell{width:min(calc(100% - 24px),var(--ds-content))}
  .section{padding:50px 0}

  .labs-nav{height:60px;gap:7px}
  .labs-brand img{width:35px;height:35px;border-radius:12px}
  .labs-brand span{font-size:13px}
  .labs-theme,.labs-lang{display:none}
  .labs-account-chip{
    min-height:38px;
    max-width:112px;
    padding:0 9px;
    font-size:9px;
  }
  .labs-menu-btn{width:38px;min-width:38px;height:38px;padding:0}

  .labs-v5-hero{padding:48px 0 43px}
  .labs-v5-hero h1{font-size:43px;line-height:.96}
  .labs-v5-hero .lead{font-size:15px}
  .labs-hub-hero{padding:44px 0 22px}
  .labs-hub-hero h1{font-size:40px}

  .btn{width:auto;min-height:46px}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .hero-actions .btn{width:100%}

  .portfolio-card{min-height:235px;padding:16px}
  .portfolio-card-meta{margin-top:24px}
  .portfolio-card h3{font-size:24px}
  .portfolio-visual{width:52px;height:52px}

  .work-detail-grid{grid-template-columns:1fr;gap:18px}
  .work-detail-visual{width:104px;height:104px;border-radius:25px}
  .work-detail-copy h1{font-size:43px}
  .work-summary{font-size:16px}

  .mind-game-hero,.money-game-hero,.life-game-hero,.daily-game-hero{padding-top:22px}
  .mind-game-hero h1,.money-game-hero h1,.life-game-hero h1,.daily-game-hero h1{font-size:39px}

  .ds-context-strip>.shell{min-height:34px}
  .ds-context-back{display:none}

  body[data-ds-context="play"].protected-game-body .labs-brand span{display:none}
  body[data-ds-context="play"].protected-game-body .labs-account-chip{max-width:96px}
}

@media(max-width:390px){
  .labs-brand span{display:none}
  .labs-v5-hero h1{font-size:39px}
  .labs-hub-hero h1{font-size:37px}
  .portfolio-grid{grid-template-columns:1fr!important}
}

/* Respect users who prefer less motion. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}


/* ===== V5.3 — Analytics / Experiment Funnel ===== */
.analytics-privacy-section{padding-top:28px}
.analytics-privacy-section .privacy-card{padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface-2)}
.analytics-privacy-section h2{font-size:30px;margin:7px 0 9px}
.analytics-privacy-section p{max-width:820px;color:var(--muted);line-height:1.65}
.analytics-privacy-section [data-analytics-toggle][data-enabled="0"]{border-color:var(--accent-line);color:var(--text)}

.analytics-dashboard-page{min-height:100vh}
.analytics-dashboard-hero{padding:58px 0 20px}
.analytics-dashboard-hero h1{font-size:clamp(48px,7vw,76px)}
.analytics-toolbar{display:flex;align-items:end;gap:8px;margin-top:22px}
.analytics-toolbar label{display:grid;gap:5px}
.analytics-toolbar label span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.analytics-toolbar select{min-width:150px;padding:0 12px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.analytics-state{margin-top:15px;color:var(--muted);font-size:11px;line-height:1.6}
.analytics-state b{color:var(--text)}
.analytics-section-tight{padding-top:18px}
.analytics-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.analytics-metrics article{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)}
.analytics-metrics span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.analytics-metrics strong{display:block;margin-top:7px;font-size:31px;letter-spacing:-.04em}
.analytics-panel{padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface-2)}
.analytics-panel-head h2{font-size:28px;margin:6px 0 15px}
.analytics-funnel{display:grid;grid-template-columns:repeat(7,auto);align-items:center;gap:9px}
.analytics-funnel>div{min-width:120px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.analytics-funnel span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em;font-weight:850}
.analytics-funnel strong{display:block;margin-top:6px;font-size:27px}
.analytics-funnel small{display:block;margin-top:3px;color:var(--accent);font-size:9px;font-weight:800}
.analytics-funnel>i{font-style:normal;color:var(--muted)}
.analytics-table-wrap{overflow:auto}
.analytics-table{width:100%;border-collapse:collapse;min-width:680px}
.analytics-table th,.analytics-table td{padding:11px 10px;border-bottom:1px solid var(--line-2);text-align:left;font-size:10px}
.analytics-table th{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.analytics-two-col{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.analytics-day{display:grid;gap:5px;margin-bottom:9px}
.analytics-day-label{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:var(--muted)}
.analytics-day-label b{color:var(--text)}
.analytics-day-track{height:6px;border-radius:999px;background:var(--surface);overflow:hidden}
.analytics-day-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.analytics-empty{color:var(--muted);font-size:10px}
@media(max-width:800px){
  .analytics-metrics{grid-template-columns:1fr 1fr}
  .analytics-funnel{display:flex;overflow:auto;padding-bottom:4px}
  .analytics-funnel>i{display:none}
  .analytics-funnel>div{min-width:128px}
  .analytics-two-col{grid-template-columns:1fr}
}
@media(max-width:430px){
  .analytics-toolbar{display:grid;grid-template-columns:1fr}
  .analytics-toolbar select,.analytics-toolbar .btn{width:100%}
  .analytics-metrics article{padding:14px}
  .analytics-metrics strong{font-size:26px}
}


/* ===== V5.5 — Growth Loop ===== */
.growth-incoming{
  border-bottom:1px solid var(--accent-line);
  background:color-mix(in srgb,var(--accent-soft) 68%,var(--bg));
}
.growth-incoming-inner{
  min-height:58px;
  display:grid;
  grid-template-columns:36px 1fr 34px;
  gap:10px;
  align-items:center;
}
.growth-incoming-icon{
  width:34px;height:34px;border-radius:11px;
  display:grid;place-items:center;
  background:var(--surface);
  border:1px solid var(--accent-line);
  color:var(--accent);
  font-size:13px;
}
.growth-incoming small{
  display:block;color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.09em;
}
.growth-incoming b{
  display:block;margin-top:3px;font-size:11px;
}
.growth-incoming-close,.growth-modal-close{
  border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;
}
.growth-incoming-close{
  width:32px;height:32px;border-radius:10px;font-size:18px;
}
.growth-modal{
  position:fixed;inset:0;z-index:900;
  display:grid;place-items:center;padding:18px;
  background:rgba(1,8,5,.62);backdrop-filter:blur(7px);
}
.growth-modal-card{
  width:min(520px,100%);
  position:relative;
  padding:25px;
  border:1px solid var(--accent-line);
  border-radius:25px;
  background:radial-gradient(circle at 88% 12%,var(--accent-soft),transparent 15rem),var(--bg);
  box-shadow:0 30px 100px rgba(0,0,0,.38);
}
.growth-modal-close{
  position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:11px;font-size:19px;
}
.growth-modal-card h2{
  font-size:31px;line-height:1.04;margin:9px 38px 10px 0;
}
.growth-modal-card>p{
  color:var(--muted);line-height:1.6;margin:0;
}
.growth-modal-actions{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;
}
.growth-modal-actions .btn{width:100%}
.growth-outcome{
  margin-top:16px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);font-size:10px;font-weight:800;line-height:1.5;
}
.growth-outcome.is-win{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}
.growth-outcome.is-draw{color:var(--text)}
.growth-outcome.is-try{color:var(--muted)}

.analytics-growth-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:12px;
}
.analytics-growth-grid>div{
  padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);
}
.analytics-growth-grid span{
  display:block;color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.07em;font-weight:850;
}
.analytics-growth-grid strong{display:block;margin-top:5px;font-size:23px}
.analytics-growth-grid small{display:block;margin-top:3px;color:var(--accent);font-size:8px}

.analytics-retention-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.analytics-retention-card{
  padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);
}
.analytics-retention-card span{
  display:block;color:var(--muted);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;
}
.analytics-retention-card strong{display:block;margin-top:7px;font-size:28px}
.analytics-retention-card small{display:block;margin-top:3px;color:var(--muted);font-size:8px;line-height:1.45}

@media(max-width:800px){
  .analytics-growth-grid{grid-template-columns:1fr 1fr}
  .analytics-growth-grid>div:last-child{grid-column:1/-1}
}
@media(max-width:620px){
  .growth-modal{align-items:end;padding:0}
  .growth-modal-card{
    width:100%;border-radius:24px 24px 0 0;
    padding:22px 14px calc(16px + env(safe-area-inset-bottom));
  }
  .growth-modal-card h2{font-size:27px}
  .growth-modal-actions{grid-template-columns:1fr}
  .analytics-retention-grid{grid-template-columns:1fr}
}

.analytics-retention-note{margin:12px 0 0;color:var(--muted);font-size:8px;line-height:1.55}


/* ===== V5.6 — Retention Engine / Today ===== */
.today-page{background:var(--bg)}
.today-hero{padding:54px 0 22px;position:relative;overflow:hidden}
.today-hero:after{
  content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  right:-270px;top:-280px;background:radial-gradient(circle,var(--accent-soft),transparent 70%);
  pointer-events:none;
}
.today-hero .shell{position:relative;z-index:1}
.today-date{color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.today-hero h1{font-size:clamp(46px,6.5vw,72px);max-width:900px;margin:13px 0 13px}
.today-hero .lead{font-size:16px;max-width:730px}
.today-state{min-height:18px;margin-top:13px;color:var(--muted);font-size:10px}

.today-gate{padding:40px 0 80px}
.today-gate-card{
  max-width:620px;padding:28px;border:1px solid var(--line);border-radius:25px;
  background:radial-gradient(circle at 90% 10%,var(--accent-soft),transparent 15rem),var(--surface-2);
}
.today-gate-card img{width:52px;height:52px;border-radius:16px;margin-bottom:20px}
.today-gate-card h2{font-size:33px;margin:8px 0}
.today-gate-card p{color:var(--muted);line-height:1.6;max-width:500px}

.today-overview-section{padding:12px 0 0}
.today-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.today-overview>div{
  min-height:92px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2);
}
.today-overview span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.today-overview strong{display:block;margin-top:6px;font-size:27px;letter-spacing:-.04em}

.today-section-head{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:end;margin-bottom:18px}
.today-section-head h2{font-size:clamp(31px,4.4vw,45px);line-height:1.02;margin:6px 0 0}
.today-section-head>p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}

.today-primary-section{padding-top:42px}
.today-primary-card{
  min-height:220px;padding:24px;border:1px solid var(--accent-line);border-radius:25px;
  background:radial-gradient(circle at 90% 15%,var(--accent-soft),transparent 19rem),var(--surface-2);
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;transition:.18s;
}
.today-primary-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.today-primary-reward{
  display:inline-flex;min-height:28px;align-items:center;padding:0 9px;border:1px solid var(--accent-line);
  border-radius:999px;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;
}
.today-primary-card h3{font-size:38px;margin:42px 0 7px;letter-spacing:-.045em}
.today-primary-card p{margin:0;color:var(--muted);max-width:650px}
.today-primary-arrow{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--text);color:var(--bg);font-size:20px}
.today-bars{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.today-bars>div{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.today-bar-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:9px;color:var(--muted)}
.today-bar-label b{color:var(--text)}
.today-bar{height:7px;margin-top:9px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.today-bar i{display:block;width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .35s ease}

.today-missions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.today-mission{
  min-height:112px;padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2);
  display:grid;grid-template-columns:31px 1fr 15px;gap:9px;align-items:center;
}
.today-mission.is-complete{opacity:.68}
.today-mission-check{
  width:30px;height:30px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);
  background:var(--surface);color:var(--accent);font-weight:900;
}
.today-mission b{display:block;font-size:11px}
.today-mission small{display:block;margin-top:4px;color:var(--muted);font-size:8px}
.today-mission i{font-style:normal;color:var(--accent)}

.today-secondary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.today-secondary-card{
  min-height:190px;padding:17px;border:1px solid var(--line);border-radius:19px;background:var(--surface-2);
  display:flex;flex-direction:column;transition:.18s;
}
.today-secondary-card:hover{transform:translateY(-2px);border-color:var(--accent-line)}
.today-secondary-card>span{color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.08em}
.today-secondary-card>b{font-size:22px;margin-top:38px}
.today-secondary-card>small{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}
.today-secondary-card>i{margin-top:auto;color:var(--accent);font-style:normal}

.today-two-col{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.today-panel{padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--surface-2)}
.today-panel h2{font-size:28px;margin:7px 0 16px}
.today-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.today-day{
  min-height:66px;border:1px solid var(--line);border-radius:13px;background:var(--surface);
  display:grid;place-items:center;align-content:center;gap:3px;color:var(--muted);
}
.today-day span{font-size:8px}
.today-day strong{font-size:13px}
.today-day.is-active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}
.today-day.is-active:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}
.today-recent{display:grid;gap:6px}
.today-recent-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px;border-bottom:1px solid var(--line-2)}
.today-recent-row:last-child{border-bottom:0}
.today-recent-row>span{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:var(--surface);color:var(--accent);font-size:9px}
.today-recent-row b{display:block;font-size:10px;text-transform:capitalize}
.today-recent-row small{display:block;color:var(--muted);font-size:7px;margin-top:2px}
.today-recent-row>strong{font-size:13px}
.today-empty{padding:18px;color:var(--muted);font-size:9px}

.today-context-section{padding-top:10px}
.today-context-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.today-context-card{
  padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface);
  display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;gap:3px;
}
.today-context-card>span{font-size:7px;color:var(--accent);font-weight:900;letter-spacing:.08em}
.today-context-card>b{grid-column:1;font-size:17px;text-transform:capitalize}
.today-context-card>small{grid-column:1;color:var(--muted);font-size:8px}
.today-context-card>i{grid-column:2;grid-row:1/-1;align-self:center;color:var(--accent);font-style:normal}

.retention-home-strip{
  border-bottom:1px solid var(--accent-line);
  background:color-mix(in srgb,var(--accent-soft) 55%,var(--bg));
}
.retention-home-inner{
  min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.retention-home-inner span{display:block;color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.09em}
.retention-home-inner b{display:block;margin-top:2px;font-size:10px}
.retention-home-inner .btn{min-height:38px;padding:0 12px;font-size:9px}

.daily-today-shortcut{margin-top:14px}

@media(max-width:800px){
  .today-missions,.today-secondary-grid{grid-template-columns:1fr}
  .today-two-col{grid-template-columns:1fr}
}
@media(max-width:680px){
  .today-hero{padding:38px 0 17px}
  .today-hero h1{font-size:40px}
  .today-overview{grid-template-columns:1fr 1fr}
  .today-overview>div{min-height:78px;padding:13px}
  .today-overview strong{font-size:24px}
  .today-section-head{display:block}
  .today-section-head>p{margin-top:8px}
  .today-primary-card{min-height:190px;padding:18px}
  .today-primary-card h3{font-size:30px;margin-top:30px}
  .today-primary-arrow{width:45px;height:45px}
  .today-bars{grid-template-columns:1fr}
  .today-calendar{gap:4px}
  .today-day{min-height:56px;border-radius:11px}
  .today-context-grid{grid-template-columns:1fr}
  .retention-home-inner{min-height:62px}
  .retention-home-inner .btn{white-space:nowrap}
}
@media(max-width:390px){
  .retention-home-inner{display:grid;grid-template-columns:1fr auto}
  .retention-home-inner b{font-size:9px}
}


/* ===== V5.7 — Experiment Decision System ===== */
.decision-system-page{background:var(--bg)}
.decision-hero{padding:58px 0 24px;position:relative;overflow:hidden}
.decision-hero:after{
  content:"";position:absolute;width:540px;height:540px;border-radius:50%;
  right:-280px;top:-280px;background:radial-gradient(circle,var(--accent-soft),transparent 70%);
  pointer-events:none;
}
.decision-hero .shell{position:relative;z-index:1}
.decision-hero h1{font-size:clamp(48px,6.8vw,78px);max-width:1040px}
.decision-hero .lead{max-width:820px;font-size:16px}
.decision-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:22px}
.decision-toolbar label{display:grid;gap:5px}
.decision-toolbar label span{font-size:8px;color:var(--muted);font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.decision-toolbar select{
  min-width:150px;padding:0 12px;border:1px solid var(--line);background:var(--surface);color:var(--text)
}
.decision-state{min-height:20px;margin-top:15px;color:var(--muted);font-size:10px;line-height:1.6}

.decision-summary-section{padding:18px 0 0}
.decision-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.decision-summary-card{
  min-height:92px;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);
  display:flex;flex-direction:column;justify-content:space-between;gap:8px;
}
.decision-summary-card strong{font-size:26px}
.decision-rule-note{margin-top:9px;padding:14px 16px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.decision-rule-note b{color:var(--text);font-size:10px}
.decision-rule-note p{margin:4px 0 0;font-size:9px;line-height:1.55}

.decision-list{display:grid;gap:10px}
.decision-card{
  padding:21px;border:1px solid var(--line);border-radius:22px;background:var(--surface-2);
}
.decision-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.decision-group{font-size:8px;color:var(--accent);font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.decision-card h2{font-size:29px;margin:6px 0 0}
.decision-head-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}

.decision-badge{
  display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid var(--line);
  border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.07em;
}
.decision-badge.is-needs_data{color:var(--muted);background:var(--surface)}
.decision-badge.is-keep{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.decision-badge.is-improve{color:#e9c989;border-color:rgba(233,201,137,.22);background:rgba(233,201,137,.08)}
.decision-badge.is-promote{color:#94d9ff;border-color:rgba(94,180,235,.24);background:rgba(94,180,235,.08)}
.decision-badge.is-archive{color:#e4a0a0;border-color:rgba(220,100,100,.22);background:rgba(220,100,100,.07)}

.decision-signal-row{display:flex;gap:7px;margin-top:16px}
.decision-signal{
  min-width:126px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface);
}
.decision-signal span{display:block;color:var(--muted);font-size:7px;font-weight:850;letter-spacing:.08em}
.decision-signal strong{display:inline-block;margin-top:4px;font-size:24px}
.decision-signal small{color:var(--muted);font-size:8px}

.decision-metrics{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:9px}
.decision-metric{padding:11px;border:1px solid var(--line-2);border-radius:13px;background:var(--surface)}
.decision-metric span{display:block;color:var(--muted);font-size:7px;line-height:1.25}
.decision-metric b{display:block;margin-top:5px;font-size:15px}

.decision-why{margin-top:14px;padding:14px;border:1px solid var(--line-2);border-radius:15px;background:var(--surface)}
.decision-why ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:9px;line-height:1.6}
.decision-why li+li{margin-top:4px}

.decision-editor{
  display:grid;grid-template-columns:220px 1fr auto;gap:9px;align-items:end;margin-top:14px;
  padding-top:14px;border-top:1px solid var(--line-2);
}
.decision-editor-field{display:grid;gap:5px}
.decision-editor-field label{font-size:7px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.decision-editor-field select,.decision-editor-field textarea{
  width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);
}
.decision-editor-field select{padding:0 10px}
.decision-editor-field textarea{min-height:72px;padding:10px;resize:vertical}
.decision-editor-actions{display:grid;gap:5px}
.decision-editor-actions small{max-width:180px;color:var(--muted);font-size:7px;line-height:1.4}

@media(max-width:980px){
  .decision-summary{grid-template-columns:repeat(3,1fr)}
  .decision-metrics{grid-template-columns:repeat(4,1fr)}
  .decision-editor{grid-template-columns:1fr}
  .decision-editor-actions .btn{width:100%}
}
@media(max-width:680px){
  .decision-hero{padding:40px 0 18px}
  .decision-hero h1{font-size:40px}
  .decision-toolbar{display:grid;grid-template-columns:1fr}
  .decision-toolbar select,.decision-toolbar .btn{width:100%}
  .decision-summary{grid-template-columns:1fr 1fr}
  .decision-summary-card:last-child{grid-column:1/-1}
  .decision-card{padding:16px}
  .decision-card-head{display:block}
  .decision-head-badges{justify-content:flex-start;margin-top:10px}
  .decision-signal-row{display:grid;grid-template-columns:1fr 1fr}
  .decision-signal{min-width:0}
  .decision-metrics{grid-template-columns:1fr 1fr}
}
