/* BNI Academy Mongolia — prototype styles */
:root{
  --bg:#F7F5F2; --surface:#FFFFFF; --surface-2:#F0ECE7; --line:#E2DCD5; --line-strong:#C9C1B8;
  --ink:#1B1917; --ink-2:#514B46; --ink-3:#847C75;
  --red:#CF2030; --red-ink:#A8101F; --red-soft:#FBE9EB;
  --green:#1E8E3E; --green-soft:#E3F3E7; --yellow:#D99A00; --yellow-soft:#FCF2D6; --grey:#8E8A85; --grey-soft:#ECEAE7;
  --shadow:0 1px 2px rgba(27,25,23,.06), 0 8px 24px -12px rgba(27,25,23,.18);
  --radius:10px; --gutter:16px; --nav-h:60px;
  --font-body:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --font-display:"Roboto Condensed","Roboto",Arial Narrow,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#151312; --surface:#1F1C1A; --surface-2:#292523; --line:#36302C; --line-strong:#4A423D;
    --ink:#F3EFEA; --ink-2:#C9C1B9; --ink-3:#8F867F;
    --red:#F04A57; --red-ink:#FF7A83; --red-soft:#3A1A1E;
    --green:#4CC46B; --green-soft:#17301D; --yellow:#F0B92E; --yellow-soft:#3A2E10; --grey:#9A938D; --grey-soft:#2C2926;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#151312; --surface:#1F1C1A; --surface-2:#292523; --line:#36302C; --line-strong:#4A423D;
  --ink:#F3EFEA; --ink-2:#C9C1B9; --ink-3:#8F867F;
  --red:#F04A57; --red-ink:#FF7A83; --red-soft:#3A1A1E;
  --green:#4CC46B; --green-soft:#17301D; --yellow:#F0B92E; --yellow-soft:#3A2E10; --grey:#9A938D; --grey-soft:#2C2926;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.15;letter-spacing:.01em}
h1{font-size:30px;font-weight:700;text-transform:uppercase}
h2{font-size:22px;font-weight:700;text-transform:uppercase}
h3{font-size:17px;font-weight:700}
p{margin:0}
a{color:var(--red-ink)}
button{font:inherit;color:inherit}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:9px 11px;width:100%;min-width:0}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
input[type="checkbox"],input[type="radio"]{width:auto;accent-color:var(--red)}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--font-display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.muted{color:var(--ink-2)}
.small{font-size:13px}
.hidden{display:none!important}

/* shell */
.app{min-height:100%;display:flex;flex-direction:column}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line);padding-inline:var(--gutter)}
.topbar-in{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:14px;height:56px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark{font-family:var(--font-display);font-weight:700;font-size:22px;color:#fff;background:var(--red);padding:2px 8px;border-radius:4px;letter-spacing:.02em;line-height:1.2}
.brand-name{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em;line-height:1.1}
.brand-name small{display:block;font-size:10px;letter-spacing:.14em;color:var(--ink-3)}
.role{margin-left:auto;display:flex;align-items:center;gap:8px}
.role select{width:auto;padding:6px 28px 6px 10px;font-size:13px;border-radius:999px;background:var(--surface-2)}
.layout{flex:1;display:flex;max-width:1080px;width:100%;margin:0 auto;padding-inline:var(--gutter);gap:28px}
.sidenav{display:none}
main{flex:1;min-width:0;padding-block:20px calc(var(--nav-h) + 24px)}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:6px var(--gutter) calc(6px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;gap:4px}
.tabbar a{flex:1;text-align:center;text-decoration:none;color:var(--ink-3);font-size:11px;font-weight:500;padding:4px 2px;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabbar a svg{width:22px;height:22px}
.tabbar a.active{color:var(--red-ink)}
.navlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.navlist a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--ink-2);font-weight:500;font-size:14px}
.navlist a svg{width:18px;height:18px;flex:none}
.navlist a.active{background:var(--red-soft);color:var(--red-ink)}
.navlist a:hover{background:var(--surface-2)}
.nav-group{margin-top:18px}
@media (min-width:860px){
  .sidenav{display:block;width:230px;flex:none;padding-block:24px;position:sticky;top:calc(56px + env(safe-area-inset-top,0px));align-self:flex-start;max-height:calc(100vh - 56px);overflow:auto}
  .tabbar{display:none}
  main{padding-block:28px 48px}
  h1{font-size:36px}
}

/* blocks */
.page{display:flex;flex-direction:column;gap:22px}
.page-head{display:flex;flex-direction:column;gap:6px}
.page-head .lead{color:var(--ink-2);max-width:62ch}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.card.flat{background:var(--surface-2);border-color:transparent}
.card h3{margin-bottom:8px}
.grid{display:grid;gap:14px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stack{display:flex;flex-direction:column;gap:10px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.between{justify-content:space-between}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:9px 14px;font-weight:500;cursor:pointer;text-decoration:none;color:var(--ink);font-size:14px;line-height:1.2}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red-ink)}
.btn.sm{padding:6px 10px;font-size:13px}
.btn.ghost{border-color:transparent;background:transparent;color:var(--red-ink)}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.chip.green{background:var(--green-soft);color:var(--green)}
.chip.yellow{background:var(--yellow-soft);color:var(--yellow)}
.chip.red{background:var(--red-soft);color:var(--red-ink)}
.chip.grey{background:var(--grey-soft);color:var(--grey)}
.dot{width:10px;height:10px;border-radius:50%;background:currentColor;flex:none}
.progress{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .3s}
.progress.green i{background:var(--green)}
.progress.yellow i{background:var(--yellow)}
.progress.grey i{background:var(--grey)}
.kpi{display:flex;flex-direction:column;gap:2px}
.kpi b{font-family:var(--font-display);font-size:28px;line-height:1;font-weight:700}
.kpi span{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.check{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);cursor:pointer}
.check:first-of-type{border-top:0}
.check input{margin-top:4px;flex:none}
.check.done span{color:var(--ink-3);text-decoration:line-through}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:13px;font-weight:600;color:var(--ink-2)}
.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form-grid .wide{grid-column:1/-1}
.section-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.section-h .n{font-family:var(--font-display);font-weight:700;color:var(--red);font-size:20px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--font-display);text-transform:uppercase;font-size:12px;letter-spacing:.06em;color:var(--ink-3);background:var(--surface-2)}
td input,td select{padding:6px 8px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{border:0;background:none;padding:10px 14px;font-weight:600;color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.tabs button.active{color:var(--red-ink);border-bottom-color:var(--red)}
.hero{background:var(--ink);color:#F3EFEA;border-radius:14px;padding:22px 20px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}
.hero .eyebrow{color:#C9C1B9}
.hero h1{color:#fff}
.hero .stripe{position:absolute;right:-30px;top:-30px;width:180px;height:180px;background:var(--red);transform:rotate(18deg);opacity:.9}
.hero > *{position:relative}
.path{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:100%}
.path .n{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--red);line-height:1}
.path.active{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.path ul{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.value{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.value:first-child{border-top:0}
.value b{font-family:var(--font-display);color:var(--red-ink)}
.value small{display:block;color:var(--ink-3)}
.status-pick{display:inline-flex;gap:4px}
.status-pick button{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);background:var(--surface);cursor:pointer;padding:0}
.status-pick button.g{border-color:var(--green)} .status-pick button.y{border-color:var(--yellow)} .status-pick button.r{border-color:var(--red)}
.status-pick button.g.on{background:var(--green)} .status-pick button.y.on{background:var(--yellow)} .status-pick button.r.on{background:var(--red)}
.tl-row{display:grid;grid-template-columns:1fr 110px 60px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.tl-row:first-child{border-top:0}
.tl-row .bar{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.tl-row .bar i{display:block;height:100%;background:var(--red)}
.tl-score{font-family:var(--font-display);font-weight:700;font-size:18px;text-align:right}
.big-score{display:flex;align-items:center;gap:18px}
.big-score .ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:30px;font-weight:700;color:#fff;flex:none}
.ring.green{background:var(--green)} .ring.yellow{background:var(--yellow)} .ring.red{background:var(--red)} .ring.grey{background:var(--grey)}
.scale{display:flex;gap:6px;flex-wrap:wrap}
.scale label{display:flex;align-items:center;justify-content:center;width:40px;height:36px;border:1px solid var(--line-strong);border-radius:6px;cursor:pointer;font-weight:600;background:var(--surface)}
.scale label:has(input:checked){background:var(--red);border-color:var(--red);color:#fff}
.scale input{position:absolute;opacity:0;width:0;height:0}
.nps label{width:34px;height:34px;font-size:13px}
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;box-shadow:var(--shadow);z-index:30;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
.example{font-size:12px;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}
.example::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--yellow)}
.glossary-item{padding:10px 0;border-top:1px solid var(--line);display:grid;gap:2px}
.glossary-item:first-child{border-top:0}
.glossary-item b{font-family:var(--font-display);font-size:16px}
.glossary-item .mn{color:var(--red-ink);font-weight:500;font-size:13px}
.mistake{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.mistake:first-child{border-top:0}
.mistake .n{font-family:var(--font-display);font-weight:700;color:var(--red);font-size:18px}
.mistake .fix{color:var(--green);font-weight:500}
.ws-item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.ws-item:first-child{border-top:0}
.ws-item .code{font-family:var(--font-display);font-weight:700;color:var(--red-ink);font-size:15px}
.ws-item .t{font-weight:500}
.ws-item .meta{font-size:12px;color:var(--ink-3)}
.day{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.day .d{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;line-height:1.1}
.day .d b{display:block;font-size:26px;color:var(--red);letter-spacing:0}
.day .out{font-size:13px;color:var(--ink-2)}
.day.done .t{text-decoration:line-through;color:var(--ink-3)}
footer{border-top:1px solid var(--line);padding:18px var(--gutter);font-size:12px;color:var(--ink-3);text-align:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
