/* Koersly — Kompas identity: navy instrument panel, signal orange only for the one thing to do now, IBM Plex. */
:root{
  --night:#0E1B2C;--indigo:#1B3047;--violet:#24527F;--magenta:#B42318;--cyan:#F2581C;--cyan-deep:#1F5F8B;
  --orange:#F2581C;--mint:#3E8E7E;--sun:#F5C542;--pink:#E8899A;--corn:#5B8DEF;--ink:#0E1B2C;--grey:#5B6878;
  --lav:#EEF2F6;--line:#D5DDE6;--white:#fff;--steel:#9FB3C8;--mist:#E8EEF5;
  --q:#FFF0A8;--q-edge:#E2C24A;--a:#CDEBE4;--a-edge:#3E8E7E;--c:#E3E9F2;--c-edge:#9FB3C8;
  --night-grad:linear-gradient(160deg,#0E1B2C 0%,#13263C 60%,#1B3047 100%);
  --font:"IBM Plex Sans Condensed","Arial Narrow",Arial,sans-serif;--body:"IBM Plex Sans","Segoe UI",Arial,sans-serif;--mono:"IBM Plex Mono",Consolas,monospace;
  --r:6px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--body);font-size:15px;color:var(--ink);background:var(--lav)}
body.page-night{background:var(--night-grad);color:#fff;min-height:100%}
a{color:var(--cyan-deep)}
.page-night a{color:var(--cyan)}
h1,h2,h3{font-family:var(--font);margin:0 0 .4em}
.muted{color:var(--grey)}
.page-night .muted{color:#B9BBE0}
.eyebrow{font-family:var(--font);text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700;color:var(--cyan)}
button,input,select,textarea{font:inherit}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer;text-decoration:none;font-family:var(--font);font-size:13px;font-weight:700;line-height:1.2}
.btn:hover{border-color:var(--violet)}
.btn.primary{background:var(--orange);border-color:var(--orange);color:var(--on-accent,#fff)}
.btn.primary:hover{background:var(--orange);filter:brightness(.92)}
.btn.ghost{background:transparent;color:inherit;border-color:rgba(255,255,255,.25)}
.btn.ghost:hover{border-color:var(--cyan)}
.btn.small{padding:4px 8px;font-size:12px}
.btn.wide{width:100%;justify-content:center;padding:10px}
.btn.danger{border-color:var(--magenta);color:var(--magenta)}
.btn.on{background:var(--cyan);border-color:var(--cyan);color:var(--night)}
.btn:disabled{opacity:.45;cursor:default}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.flash{padding:10px 14px;border-radius:8px;margin:10px 0}
.flash.ok{background:#DDF8F3;color:#0B5A50}
.flash.err{background:#FCE3EF;color:#8A1250}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:14px 0}
.form label{display:block;margin:10px 0;font-weight:700;font-size:13px}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-weight:400;background:#fff}
.code{background:#fff;border:1px solid var(--line);padding:12px;overflow:auto;font-size:12px}
main.narrow{max-width:760px;margin:30px auto;padding:0 16px}
.page-plain{background:var(--lav)}

/* login + launch */
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login-card{width:min(420px,100%);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:28px}
.login-card label{display:block;margin:12px 0;font-size:13px;font-weight:700}
.login-card input{display:block;width:100%;margin-top:5px;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.95);color:var(--ink)}
.launch{max-width:980px;margin:0 auto;padding:48px 16px}
.launch h1{font-size:34px;margin:8px 0 24px}
.launch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:24px}
.launch-tile{display:block;padding:18px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff!important;text-decoration:none}
.launch-tile:hover{border-color:var(--cyan)}
.launch-tile b{display:block;font-family:var(--font);font-size:17px;margin-bottom:6px}
.launch-tile span{color:#B9C7D6;font-size:14px}

/* ---------------------------------------------------------------- app shell */
.app{display:grid;grid-template-rows:auto 1fr;height:100vh;overflow:hidden}
.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--night);color:#fff;border-bottom:1px solid rgba(255,255,255,.1);min-height:48px}
.topbar .title{font-family:var(--font);font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .spacer{flex:1}
.topbar .where{font-size:13px;color:#B9C7D6;white-space:nowrap}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700;font-family:var(--font);letter-spacing:.04em;text-transform:uppercase;background:rgba(242,88,28,.16);color:var(--cyan)}
.pill.live{background:var(--magenta);color:#fff}
.dot{width:8px;height:8px;border-radius:50%;background:var(--mint);display:inline-block}
.dot.off{background:var(--orange)}

/* act strip */
.acts{display:flex;gap:6px;overflow-x:auto;padding:8px 14px;background:#fff;border-bottom:1px solid var(--line)}
.acts button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 12px;font-size:12px;font-family:var(--font);font-weight:700;color:var(--ink);cursor:pointer}
.acts button.cur{background:var(--night);color:#fff;border-color:var(--night)}
.acts button.done{color:var(--grey)}
.acts button .n{display:inline-block;margin-left:6px;color:var(--violet)}
.acts button.cur .n{color:var(--cyan)}

/* slide stage */
.stage{position:relative;background:var(--night);display:grid;place-items:center;overflow:hidden;min-height:0}
.stage img.slide{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.stage .empty{color:#B9C7D6;text-align:center;padding:30px}
.stage .counter{position:absolute;right:14px;bottom:12px;display:flex;gap:6px;font-family:var(--font);font-size:12px;font-weight:700}
.stage .counter span{padding:4px 9px;border-radius:99px;background:rgba(11,15,59,.75);color:#fff;border:1px solid rgba(255,255,255,.18)}
.stage .counter .q{border-color:var(--q-edge)}.stage .counter .a{border-color:var(--a-edge)}.stage .counter .c{border-color:var(--c-edge)}
.stage .pageno{position:absolute;left:14px;bottom:12px;color:#B9C7D6;font-size:12px;font-family:var(--font)}

/* audience layout */
.aud{display:grid;grid-template-columns:minmax(0,1fr) 400px;min-height:0}
.aud .main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;background:var(--night)}
.aud .main.wallmode{background:var(--lav)}
.aud .browse{display:flex;gap:8px;align-items:center;padding:8px 12px;background:rgba(255,255,255,.05);color:#fff;font-size:13px}
.aud .browse .spacer{flex:1}
.aud .side{display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#fff;border-left:1px solid var(--line);min-height:0}
@media (max-width:900px){
  .app{height:auto;min-height:100vh;overflow:visible}
  .aud{grid-template-columns:1fr}
  .aud .main{grid-template-rows:auto auto auto}
  .aud .stage{aspect-ratio:16/9}
  .aud .side{border-left:0}
  .aud .feed{max-height:none}
}

/* composer */
.composer{padding:12px;border-bottom:1px solid var(--line);background:#fff}
.tabs{display:flex;gap:4px;margin-bottom:8px}
.tabs button{flex:1;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 4px;font-family:var(--font);font-weight:700;font-size:12px;cursor:pointer;color:var(--ink)}
.tabs button[data-t=question].on{background:var(--q);border-color:var(--q-edge)}
.tabs button[data-t=action].on{background:var(--a);border-color:var(--a-edge)}
.tabs button[data-t=comment].on{background:var(--c);border-color:var(--c-edge)}
.composer textarea{width:100%;min-height:74px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.composer .row{display:flex;gap:6px;margin-top:6px;align-items:center;flex-wrap:wrap}
.composer .row input,.composer .row select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-width:0}
.composer .row input[name=owner]{flex:1 1 140px}
.composer .row .spacer{flex:1}
.composer .hint{font-size:12px;color:var(--grey)}

/* feed */
.filters{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center;flex-wrap:wrap}
.filters button{border:0;background:none;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;color:var(--grey)}
.filters button.on{background:var(--lav);color:var(--ink)}
.filters .spacer{flex:1}
.feed{overflow-y:auto;padding:10px 12px;min-height:0}
.feed .none{color:var(--grey);font-size:13px;padding:20px 4px;text-align:center}
.entry{border:1px solid var(--line);border-left:4px solid var(--q-edge);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:#fff}
.entry.action{border-left-color:var(--a-edge)}
.entry.comment{border-left-color:var(--c-edge)}
.entry.here{box-shadow:0 0 0 2px rgba(242,88,28,.45)}
.entry.fresh{animation:fresh 1.6s ease-out}
@keyframes fresh{from{background:#E9FBFE}to{background:#fff}}
.entry .meta{font-size:12px;color:var(--grey);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.entry .meta b{color:var(--ink)}
.entry .body{margin:4px 0;white-space:pre-wrap;word-wrap:break-word}
.entry .own{font-size:12px;color:var(--cyan-deep);font-weight:700}
.entry .acts-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:700;cursor:pointer;color:var(--ink);font-family:var(--font)}
.chip.on{background:var(--violet);border-color:var(--violet);color:#fff}
.chip:disabled{cursor:default}
.tag{display:inline-block;font-size:10.5px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:4px;background:var(--lav);color:var(--ink)}
.tag.question{background:var(--q)}.tag.action{background:var(--a)}.tag.comment{background:var(--c)}
.tag.addressed{background:#DDF8F3;color:#0B5A50}.tag.parked{background:#FFE8D6;color:#8A3E00}
.replies{margin:6px 0 2px 10px;border-left:2px solid var(--line);padding-left:8px}
.reply{font-size:13.5px;margin:4px 0}
.reply b{font-size:12px}
.replybox{display:flex;gap:6px;margin-top:6px}
.replybox input{flex:1;border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-width:0}

/* ---------------------------------------------------------------- walls */
.wall{height:100%;overflow:auto;padding:16px 18px 24px;background:var(--lav);color:var(--ink)}
.wall-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.wall-head h2{font-size:22px;margin:0}
.wall-head .kind{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-1px;margin-right:6px}
.wall-head .progress{flex:1 1 200px;max-width:340px;height:8px;border-radius:99px;background:#E4E2F2;overflow:hidden}
.wall-head .progress i{display:block;height:100%;background:var(--mint)}
.wall-head .stat{font-size:13px;color:var(--grey);font-weight:700;font-family:var(--font)}
.wall-tools{display:flex;gap:6px;flex-wrap:wrap}
.lanes{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;align-items:start}
.lane{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:80px;transition:box-shadow .15s}
.lane.drop{box-shadow:0 0 0 3px var(--cyan)}
.lane.done{opacity:.72}
.lane.ungrouped{background:transparent;border-style:dashed}
.lane-head{display:flex;align-items:flex-start;gap:6px;margin-bottom:8px}
.lane-head .t{font-family:var(--font);font-weight:700;font-size:15px;flex:1;line-height:1.25}
.lane-head .t[contenteditable=true]{outline:1px dashed var(--line);border-radius:4px;padding:0 3px}
.lane-head .n{font-size:12px;font-weight:700;color:var(--grey);white-space:nowrap}
.lane-tools{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}
.notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.note{position:relative;background:var(--q);border-radius:3px 3px 10px 3px;padding:10px 10px 8px;box-shadow:0 2px 0 rgba(0,0,0,.06),0 6px 14px rgba(14,27,44,.12);font-size:14px;line-height:1.3;transform:rotate(-.6deg);cursor:default;min-height:92px;display:flex;flex-direction:column}
.note:nth-child(3n){transform:rotate(.7deg)}.note:nth-child(4n){transform:rotate(-1deg)}
.note.action{background:var(--a)}.note.comment{background:var(--c)}
.note[draggable=true]{cursor:grab}
.note.dropon{outline:3px solid var(--violet)}
.note.addressed{opacity:.55}
.note.addressed::after{content:"✓";position:absolute;right:8px;top:4px;font-weight:700;color:#0B5A50;font-size:16px}
.note.parked{background-image:repeating-linear-gradient(135deg,transparent 0 8px,rgba(255,122,26,.12) 8px 16px)}
.note .txt{flex:1;white-space:pre-wrap;word-wrap:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical}
.note .by{margin-top:6px;font-size:11.5px;color:rgba(14,27,44,.72);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.note .by b{color:var(--ink)}
.note .own{font-size:12px;font-weight:700;margin-top:4px}
.note .stack{margin-top:6px;border-top:1px dashed rgba(14,27,44,.25);padding-top:4px;font-size:12px}
.note .stack div{margin:2px 0}
.note .ctrl{display:flex;gap:3px;margin-top:6px;flex-wrap:wrap}
.note .ctrl button{border:1px solid rgba(14,27,44,.2);background:rgba(255,255,255,.6);border-radius:5px;font-size:11px;padding:2px 6px;cursor:pointer;font-weight:700}
.note .ctrl button:hover{background:#fff}
.more{margin-top:8px;width:100%}
/* focus mode */
.focus-wrap{display:grid;grid-template-rows:auto 1fr auto;gap:12px;height:100%}
.focus-lane{background:#fff;border-radius:14px;border:1px solid var(--line);padding:16px 18px;overflow:auto}
.focus-lane .lane-head .t{font-size:24px}
.focus-lane .notes{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.focus-lane .note{font-size:17px;min-height:130px}
.minimap{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.minimap button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.minimap button.cur{border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan)}
.minimap button.done{color:var(--grey);text-decoration:line-through}
/* close card */
.closecard{display:grid;place-items:center;height:100%;padding:24px;background:var(--night-grad);color:#fff;text-align:center}
.closecard h2{font-size:32px}
.tiles{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:18px 0}
.tile{min-width:160px;padding:16px 18px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}
.tile b{display:block;font-family:var(--font);font-size:34px}
.tile span{font-size:13px;color:#B9C7D6}
.tile.q{border-top:4px solid var(--sun)}.tile.a{border-top:4px solid var(--mint)}.tile.c{border-top:4px solid var(--pink)}

/* ---------------------------------------------------------------- presenter console */
.con{display:grid;grid-template-columns:minmax(0,1fr) 380px;min-height:0}
.con.clean{grid-template-columns:1fr}
.con.clean .rail{display:none}
.con .centre{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}
.con .rail{display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#fff;border-left:1px solid var(--line);min-height:0}
.controls{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--night);color:#fff;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.controls .spacer{flex:1}
.controls .phase{display:flex;gap:4px}
.controls .phase .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.22)}
.controls .phase .btn.on{background:var(--cyan);color:var(--night);border-color:var(--cyan)}
.controls .kbd{font-size:11.5px;color:#8FA2B8}
.next-preview{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--grey)}
.next-preview img{width:120px;border-radius:4px;border:1px solid var(--line)}
.thumbs{display:flex;gap:6px;overflow-x:auto;padding:6px 12px;background:#0E1246}
.thumbs img{height:46px;border-radius:3px;border:2px solid transparent;cursor:pointer;opacity:.7}
.thumbs img.cur{border-color:var(--cyan);opacity:1}
.clean-hint{position:fixed;right:10px;top:8px;z-index:5}

/* stage page */
.stagepage{height:100vh;display:grid;grid-template-rows:minmax(0,1fr);background:var(--night)}
.stagepage .wall{background:var(--lav)}

/* ---------------------------------------------------------------- admin + report */
.admin{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
.admin table{width:100%;border-collapse:collapse;font-size:14px}
.admin th{background:var(--night);color:#fff;text-align:left;padding:7px 8px;font-family:var(--font);font-size:12px}
.admin td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:top}
.admin td input{width:100%;padding:5px 7px;border:1px solid var(--line);border-radius:6px}
.admin .thumbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:10px}
.admin .thumbgrid figure{margin:0;font-size:11px;color:var(--grey)}
.admin .thumbgrid img{width:100%;border:1px solid var(--line);border-radius:4px}
.bar{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0}
.bar i{display:block;height:100%;width:0;background:var(--violet);transition:width .2s}
.report{max-width:1000px;margin:0 auto;padding:24px 20px 60px;background:#fff}
.report header.cover{background:var(--night-grad);color:#fff;border-radius:14px;padding:26px 28px;margin-bottom:22px}
.report header.cover h1{font-size:30px}
.report h2{border-bottom:3px solid var(--violet);padding-bottom:6px;margin-top:34px}
.report h3{margin-top:22px;font-size:17px}
.report h4{margin:14px 0 6px;font-size:14px;color:var(--violet)}
.report table{width:100%;border-collapse:collapse;font-size:13.5px;margin:6px 0 12px}
.report th{background:var(--night);color:#fff;text-align:left;padding:6px 8px;font-family:var(--font);font-size:12px}
.report td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:top}
.report .kpis{display:flex;gap:10px;flex-wrap:wrap}
.report .kpis div{flex:1 1 140px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.report .kpis b{display:block;font-size:26px;font-family:var(--font)}
.report ul.items{margin:4px 0 10px;padding-left:18px}
.report ul.items li{margin:5px 0}
.report .sub{color:var(--grey);font-size:12.5px}
.report .rep{margin:3px 0 0 14px;color:#33465C;font-size:13px}
.noprint{}
@media print{
  .noprint{display:none!important}
  body{background:#fff}
  .report{padding:0;max-width:none}
  .report header.cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .report th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .report h2{break-before:page}
  .report h2.first{break-before:auto}
  tr,li{break-inside:avoid}
}

/* v1.0 polish */
.tag.here{background:rgba(242,88,28,.2);color:var(--cyan-deep)}
.aud .main.wallmode .browse{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.aud .main.wallmode .browse .btn.ghost{color:var(--ink);border-color:var(--line)}
.stagepage .lanes{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}
.stagepage .notes{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.stagepage .note{font-size:17px;min-height:110px}
.stagepage .wall-head h2{font-size:28px}
.stagepage .focus-lane .notes{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.stagepage .focus-lane .note{font-size:21px;min-height:150px}
.stagepage .focus-lane .lane-head .t{font-size:30px}
.focus-lane .note .txt{-webkit-line-clamp:12}
.closecard .muted{color:#C9D5E2;font-size:16px}
[hidden]{display:none!important}
@media (hover:hover){.con .note .ctrl{opacity:0;transition:opacity .15s}.con .note:hover .ctrl{opacity:1}}

/* ================================================================ OGSM journey (v1.1) */
.journey{background:var(--lav)}
.jnav{display:flex;gap:2px;margin-left:10px;overflow-x:auto}
.jnav a{color:#B9C7D6!important;text-decoration:none;font-family:var(--font);font-weight:700;font-size:13px;padding:6px 10px;border-radius:7px;white-space:nowrap}
.jnav a:hover{background:rgba(255,255,255,.08);color:#fff!important}
.jnav a.on{background:var(--orange);color:var(--on-accent,#fff)!important}
.jwrap{max-width:1180px;margin:0 auto;padding:20px 18px 60px}
.jwrap.narrowish{max-width:900px}.jwrap.wide{max-width:1400px}
.jwrap h1{font-size:28px;margin:4px 0 10px;color:var(--ink)}
.eyebrow.dark{color:var(--violet)}
.crumb{margin:0 0 8px;font-size:13px}
.jhero{background:var(--night-grad);color:#fff;border-radius:16px;padding:24px 26px;margin-bottom:18px}
.jhero h1{color:#fff;font-size:30px}
.jhero .muted{color:#B9C7D6}
.jprog{height:10px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden;margin:12px 0}
.jprog i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mint))}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.step{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.step .num{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font);font-weight:700;font-size:18px;background:var(--lav);color:var(--ink)}
.step.open .num{background:var(--violet);color:#fff}
.step.done .num{background:var(--mint);color:var(--night)}
.step.closed:not(.done) .num{background:#FFE8D6;color:#8A3E00}
.step.live{background:var(--night);color:#fff;border-color:var(--night)}
.step.live .num{background:var(--magenta);color:#fff}
.step.live h2,.step.live .day{color:#fff}.step.live a{color:var(--cyan)}
.step h2{font-size:17px;margin:2px 0 4px}
.step .day{font-size:12px;font-family:var(--font);font-weight:700;color:var(--violet);text-transform:uppercase;letter-spacing:.06em}
.step .why p{margin:0;color:#33465C;font-size:14px}
.step.live .why p{color:#C9D5E2}
.step .meta{font-size:12.5px;color:var(--grey);margin-top:6px}
.step .go{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
@media (max-width:700px){.step{grid-template-columns:40px 1fr}.step .go{grid-column:1/-1;flex-direction:row}}
.brief{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0 16px}
.brief>div{background:#fff;border:1px solid var(--line);border-top:4px solid var(--violet);border-radius:10px;padding:10px 14px;font-size:14px}
.brief>div:nth-child(2){border-top-color:var(--cyan-deep)}.brief>div:nth-child(3){border-top-color:var(--orange)}.brief>div:nth-child(4){border-top-color:var(--mint)}.brief>div:nth-child(5){border-top-color:var(--magenta)}
.brief h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--grey);margin:0 0 4px}
.brief p,.brief ul{margin:4px 0}.brief ul{padding-left:18px}
.card.synthesis{border-left:5px solid var(--cyan-deep)}
.card.warn{border-left:5px solid var(--magenta)}
.exform .q{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px;margin:0 0 12px}
.exform legend{font-family:var(--font);font-weight:700;font-size:15px;padding:0 6px}
.qn{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--night);color:#fff;font-size:12px;margin-right:4px}
.exform .help,.help{color:var(--grey);font-size:13px;margin:4px 0 8px}
.exform input[type=text],.exform textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:3px 0;background:#fff}
.exform input:disabled,.exform textarea:disabled{background:var(--lav);color:var(--ink)}
.opt{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border:1px solid var(--line);border-radius:8px;margin:5px 0;cursor:pointer;background:#fff}
.opt:has(input:checked){border-color:var(--violet);background:#E8EEF5}
.rate{width:100%;border-collapse:collapse;font-size:14px}
.rate th{font-size:11px;color:var(--grey);font-family:var(--font);padding:2px;text-align:center}
.rate td{border-top:1px solid var(--line);padding:6px 4px;text-align:center}
.rate td:first-child{text-align:left;width:60%}
.dotbtn{display:inline-block;cursor:pointer}
.dotbtn input{position:absolute;opacity:0;pointer-events:none}
.dotbtn i{display:inline-block;width:24px;height:24px;border-radius:50%;border:2px solid var(--line);background:#fff;transition:all .1s}
.dotbtn:hover i{border-color:var(--violet)}
.dotbtn input:checked+i{background:var(--violet);border-color:var(--violet);box-shadow:inset 0 0 0 4px #fff}
.dotbtn input:focus-visible+i{outline:2px solid var(--cyan)}
.prev{display:inline-block;font-size:11px;font-weight:700;color:var(--cyan-deep);background:rgba(14,116,144,.1);border-radius:4px;padding:0 5px;margin-left:4px}
.scalekey{font-size:12px;color:var(--grey);margin:4px 0 0}
.points .pt{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:7px 10px;border-radius:8px;margin:4px 0;background:linear-gradient(90deg,rgba(106,0,244,.12) var(--w,0%),#fff var(--w,0%));border:1px solid var(--line)}
.points .pt.has{border-color:var(--violet)}
.points .ctl{display:flex;gap:4px;align-items:center}
.points input{width:62px;text-align:center;border:1px solid var(--line);border-radius:6px;padding:5px}
.ptotal{position:sticky;bottom:64px;background:var(--night);color:#fff;border-radius:8px;padding:8px 12px;margin-top:8px;font-family:var(--font);font-weight:700;display:inline-block}
.ptotal.ok{background:var(--mint);color:var(--night)}.ptotal.over{background:var(--magenta)}
.submitbar{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;background:rgba(238,242,246,.96);border-top:1px solid var(--line);padding:10px 4px;backdrop-filter:blur(4px)}
.submitbar .spacer{flex:1}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;transition:all .25s;z-index:60;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%)}.toast.bad{background:var(--magenta)}
/* results */
.res h2{font-size:17px}
.rtab{width:100%;border-collapse:collapse;font-size:14px}
.rtab th{text-align:left;font-size:11.5px;color:#fff;background:var(--night);padding:6px 8px;font-family:var(--font)}
.rtab td{border-bottom:1px solid var(--line);padding:7px 8px;vertical-align:middle}
.rtab tr.split td{background:#FFF6EE}
.rtab .mean{white-space:nowrap;width:180px}.rtab .mean b{margin-left:6px}
.mbar{display:inline-block;width:110px;height:8px;border-radius:99px;background:var(--line);overflow:hidden;vertical-align:middle}.mbar i{display:block;height:100%;background:var(--violet)}
.hist{display:flex;gap:3px;align-items:flex-end;height:38px}
.hist span{position:relative;width:18px;height:100%;display:flex;align-items:flex-end;justify-content:center}
.hist i{display:block;width:100%;background:var(--cyan-deep);border-radius:2px 2px 0 0;min-height:1px}
.hist em{position:absolute;bottom:-14px;font-size:9.5px;color:var(--grey);font-style:normal}
.rtab td:nth-child(3){padding-bottom:16px}
.bars .bar-row{display:grid;grid-template-columns:minmax(200px,1.4fr) 1fr 120px;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--lav);font-size:14px}
.bars .b{height:12px;background:var(--lav);border-radius:99px;overflow:hidden}.bars .b i{display:block;height:100%;background:var(--cyan-deep)}
.bars .bar-row.top .b i{background:var(--violet)}.bars .bar-row.top .t{font-weight:700}
.bars .v{font-size:12.5px;color:var(--grey);text-align:right}
.kpi{font-size:16px;background:var(--lav);border-radius:8px;padding:10px 14px}
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.theme{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#FFFDF0}
.theme h3{font-size:14px;margin:0 0 4px}.theme ul{margin:0;padding-left:18px;font-size:13.5px}.theme li{margin:3px 0}
.stageresults{background:var(--lav)}
.stageresults .jwrap{max-width:none;padding:24px 36px}
.stageresults h1{font-size:36px}.stageresults .res h2{font-size:22px}.stageresults .bars .bar-row,.stageresults .rtab{font-size:17px}.stageresults .theme ul{font-size:16px}
/* gallery + editor */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.gcard{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--ink)!important;text-decoration:none}
.gcard:hover{border-color:var(--violet)}
.gcard.global{background:var(--night);color:#fff!important;grid-column:1/-1}
.gcard.global .muted,.gcard.global .gmeta{color:#B9C7D6}
.gcard.review{box-shadow:0 0 0 3px var(--cyan)}
.gcard.mine{box-shadow:0 0 0 3px var(--mint)}
.gtop{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.gcard .obj{font-size:14px;margin:8px 0;min-height:36px}
.qbar{height:7px;background:var(--line);border-radius:99px;overflow:hidden}.qbar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--mint))}
.qbar.big{height:12px;margin:6px 0 10px}
.gmeta{font-size:12px;color:var(--grey);margin-top:8px}
.ohead{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;flex-wrap:wrap}
.vbox{display:flex;gap:6px}.vbox select{border:1px solid var(--line);border-radius:8px;padding:6px}
.gref summary,.brief-mini summary{cursor:pointer;font-weight:700;font-family:var(--font)}
.gstrat{margin:6px 0;padding-left:20px}
.olayout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:1000px){.olayout{grid-template-columns:1fr}}
.onepage{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.osec{padding:14px 16px;border-bottom:1px solid var(--line)}
.osec:last-child{border-bottom:0}
.oshead{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.oshead h2{font-size:16px;margin:0}.oshead p{margin:2px 0 0;font-size:12.5px}
.letter{flex:0 0 36px;height:36px;border-radius:9px;display:grid;place-items:center;font-family:var(--font);font-weight:700;font-size:18px;color:#fff;background:var(--violet)}
.sec-goals .letter{background:var(--cyan-deep)}.sec-strategies .letter{background:var(--magenta)}.sec-measures .letter,.sec-actions .letter{background:var(--orange)}.sec-tensions .letter{background:var(--grey)}
.sec-objective{background:linear-gradient(90deg,#E8EEF5,#fff)}
textarea.objective,p.objective{width:100%;font-size:18px;font-family:var(--font);font-weight:700;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
p.objective.ro{border:0;padding:0}
.otab{width:100%;border-collapse:collapse;font-size:13.5px;margin-bottom:8px}
.otab th{text-align:left;font-size:11px;color:var(--grey);font-family:var(--font);padding:3px 4px;text-transform:uppercase;letter-spacing:.04em}
.otab td{border-top:1px solid var(--lav);padding:4px;vertical-align:top}
.otab textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:5px 7px;resize:none;overflow:hidden;min-height:32px;font-size:13.5px}
.otab select{width:100%;border:1px solid var(--line);border-radius:6px;padding:5px}
.otab td.rm{width:24px}
.links{display:flex;flex-wrap:wrap;gap:3px}
.lchip{border:1px solid var(--line);background:#fff;border-radius:6px;font-size:11px;font-weight:700;padding:2px 6px;cursor:pointer;font-family:var(--font)}
.lchip.on,span.lchip{background:var(--magenta);border-color:var(--magenta);color:#fff}
.linkbtn{border:0;background:none;color:var(--cyan-deep);cursor:pointer;font-size:12px;padding:0 4px;font-weight:700}
.oside .card{margin-top:0}
.lint{list-style:none;padding:0;margin:0;font-size:13px}
.lint li{padding:3px 0 3px 22px;position:relative}
.lint li::before{position:absolute;left:0;font-weight:700}
.lint li.ok::before{content:"✓";color:#0B8A7A}.lint li.no::before{content:"!";color:var(--magenta)}
.lint li.no{color:#6B1F4A}
.cmts{max-height:360px;overflow:auto;margin-bottom:8px}
.cmt{border-bottom:1px solid var(--lav);padding:6px 0;font-size:13.5px}
.cmt.reply{margin-left:14px;border:0;border-left:2px solid var(--line);padding-left:8px}
.oside textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px}
.vers{padding-left:18px;font-size:13px}
/* cards */
.cardcols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.cardcols{grid-template-columns:1fr}}
.ncard{border:1px solid var(--line);border-left:5px solid #B9BBD1;border-radius:10px;padding:10px 12px;margin:8px 0;background:#fff;font-size:14px}
.ncard.a-yes{border-left-color:var(--mint)}.ncard.a-no{border-left-color:var(--magenta)}.ncard.a-yes-if{border-left-color:var(--orange)}
.nroute{font-size:12.5px;color:var(--grey)}.nneed{margin:5px 0;font-weight:700}.nmeta{font-size:12.5px;color:#33465C}
.nans{margin-top:6px;font-size:13px}
.tag.ans-yes{background:#DDF8F3;color:#0B5A50}.tag.ans-no{background:#FCE3EF;color:#8A1250}.tag.ans-yes-if{background:#FFE8D6;color:#8A3E00}
.nform{margin-top:8px;display:grid;gap:6px}.nform .seg{display:flex;gap:12px;font-size:13.5px}.nform input[type=text]{border:1px solid var(--line);border-radius:6px;padding:6px 8px}
.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0 12px}
.mxwrap{overflow-x:auto}
.nmatrix{border-collapse:collapse;font-size:12.5px}
.nmatrix th{font-family:var(--font);padding:4px 6px;background:var(--lav);font-size:11.5px}
.nmatrix td{width:34px;height:30px;text-align:center;border:1px solid #fff;background:#FAFAFD;font-weight:700}
.nmatrix td.yes{background:#BFF1E8}.nmatrix td.if{background:#FFD3AE}.nmatrix td.no{background:#F7B9D6}.nmatrix td.open{background:#E1E0EE}.nmatrix td.self{background:#fff}
/* x-matrix + themes */
.xmx{border-collapse:collapse;font-size:13px;background:#fff}
.xmx th{background:var(--night);color:#fff;font-family:var(--font);font-size:11.5px;padding:6px 5px}
.xmx th.nolink{background:var(--magenta)}
.xmx td{border:1px solid var(--line);padding:6px}
.xmx td.gs,.xmx th.gs{min-width:320px;text-align:left}
.xmx td.x{text-align:center;font-size:18px;width:42px}.xmx td.lead{color:var(--violet);background:#E8EEF5}.xmx td.contribute{color:var(--cyan-deep)}
.xmx td.okc{color:#0B5A50;font-size:12px;white-space:nowrap}.xmx td.warnc{color:#8A1250;font-weight:700;font-size:12px;white-space:nowrap}
.themegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}
.themecard h2{font-size:17px;margin:0}
.themecard label{display:block;font-size:12.5px;font-weight:700;margin:6px 0}
.themecard textarea,.themecard input,.themecard select{display:block;width:100%;border:1px solid var(--line);border-radius:6px;padding:6px;font-weight:400;margin-top:2px}
.tcards{padding-left:18px;font-size:13px}.tcards li{margin:3px 0}
.tcards li.a-no{color:#8A1250}.tcards li.a-yes-if{color:#8A3E00}
/* facilitator */
.comp{border-collapse:collapse;font-size:13px}
.comp th{background:var(--night);color:#fff;padding:5px 8px;font-family:var(--font);font-size:11.5px}
.comp th .muted{color:#8FA2B8;font-weight:400}
.comp td{border:1px solid var(--line);padding:4px 8px;text-align:center}
.comp td:first-child,.comp td:nth-child(2){text-align:left}
.comp td.done{background:#BFF1E8}.comp td.partial{background:#FFE8D6}.comp td.none{background:#FCE3EF}.comp td.na{color:#bbb}
.chase textarea{width:100%;font-size:13px;border:1px solid var(--line);border-radius:6px;padding:6px}
.steptab{width:100%;border-collapse:collapse;font-size:13px}
.steptab th{text-align:left;background:var(--lav);padding:5px 6px}
.steptab td{border-bottom:1px solid var(--line);padding:6px;vertical-align:top}
.steptab input[type=datetime-local],.steptab select{border:1px solid var(--line);border-radius:6px;padding:4px}
.nowrap{white-space:nowrap}
.prefill{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.qedit{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:8px 12px}
body.live .jwrap{max-width:720px}
.sec-tensions textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px}

/* ================================================================ control panel (v1.2) */
.cphead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.cptabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:8px 0 14px;overflow-x:auto}
.cptabs a{padding:9px 14px;font-family:var(--font);font-weight:700;font-size:13.5px;color:var(--grey);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.cptabs a.on{color:var(--ink);border-bottom-color:var(--violet)}
.cptabs a:hover{color:var(--violet)}
.kpis4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.kpis4 .card{margin:0}
.kpis4 b{display:block;font-family:var(--font);font-size:30px;color:var(--violet)}
.kpis4 span{font-size:13px;color:var(--grey)}
.stepbars{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.sb{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-decoration:none;color:var(--ink)!important;background:#fff}
.sb.open{border-color:var(--violet);box-shadow:0 0 0 2px rgba(106,0,244,.15)}
.sb:hover{border-color:var(--violet)}
.sbh{display:flex;justify-content:space-between;align-items:center}
.sbt{display:block;font-size:13px;margin:4px 0 8px;min-height:34px}
.sbbar{display:flex;height:8px;border-radius:99px;background:var(--lav);overflow:hidden}
.sbbar i{display:block;background:var(--mint)}.sbbar em{display:block;background:#FFC999}
.sbn{display:block;font-size:11.5px;color:var(--grey);margin-top:5px}
.todo{border-left:5px solid var(--violet)}
.todohead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.todohead h2{margin:2px 0}
.todoact{display:flex;gap:6px;flex-wrap:wrap}
.todo textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px;font-size:12.5px;margin-top:4px}
.steptab tr.st-none td:first-child{border-left:4px solid var(--magenta)}
.steptab tr.st-partial td:first-child{border-left:4px solid var(--orange)}
.steptab tr.sel td{background:#E8EEF5}
.steptab input:not([type=checkbox]),.steptab select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:13px;max-width:100%}
.comp tr.tot td{background:var(--lav)}
.g2c{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3c{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}
@media (max-width:900px){.g2c,.g3c{grid-template-columns:1fr}}
.tpl{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:#fff}
.tpl summary{cursor:pointer}
.preview{background:var(--lav);border-radius:8px;padding:10px 12px}
.preview pre{white-space:pre-wrap;font-family:var(--body);font-size:13.5px;margin:0}
.card.banner{border-left:5px solid var(--cyan-deep);background:#EFFBFD}
.card.banner p{margin:4px 0}
.prefill form{display:inline}

/* ---- cascade additions ---- */
.gnote{margin-top:10px;padding:10px 14px;border-left:4px solid var(--violet);background:var(--lav);border-radius:6px}
.xmx th.mine,.xmx td.mine{background:rgba(242,88,28,.14)}
.steptab tr.muted td{color:var(--grey)}
.themegrid .themecard h3{margin:0 0 6px}
.xmx thead th.mine{background:#0E7490;color:#fff}

/* ===================================================== Koersly v0.9 components */
.kbar{gap:10px}
.brand{display:inline-flex;align-items:center;gap:8px;color:#fff!important;text-decoration:none}
.brand .wm,.wm{font-family:var(--font);font-weight:700;font-size:19px;letter-spacing:-.01em;color:#fff}
.kbar .org{font-family:var(--mono);font-size:11px;color:var(--steel);border-left:1px solid rgba(255,255,255,.2);padding-left:10px;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;margin:8px 0 14px}
.form label.check,label.check{display:flex;align-items:flex-start;gap:8px;font-weight:400}
.form label.check input{width:auto;display:inline;margin:3px 0 0}
.inline{display:inline}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:6px 0}
.inline-form label{margin:0}
.inline-form input,.inline-form select{width:auto;display:inline-block}
.creds{border-left:4px solid var(--orange)}
.creds textarea{width:100%;font-size:12px}
.steptab tr.off td{opacity:.5}
.steptab.people input[name=display_name]{font-weight:700}
.steptab .small{font-size:12px}
.gloss dt{font-family:var(--font);font-weight:700;margin-top:8px}.gloss dd{margin:2px 0 0;color:var(--grey)}
.tag.st-new{background:#FFE8D6;color:#8A3E00}.tag.st-planned,.tag.st-in_progress{background:#E3E9F2;color:var(--cyan-deep)}
.tag.st-done{background:#DDF8F3;color:#0B5A50}.tag.st-wont{background:#eee;color:#666}
.banner{border-left:4px solid var(--orange)}

/* login */
.kbrand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.kbrand .wm{font-size:28px}
.login h1{font-family:var(--font)}

/* home / journeys */
.jcard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;text-decoration:none;color:var(--ink);transition:border-color .15s}
.jcard:hover{border-color:var(--orange)}
.livecall{background:var(--night);color:#fff;border:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.livecall h2{color:#fff;margin:0}
.livecall::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 0 rgba(242,88,28,.6);animation:kpulse 1.6s infinite}
@keyframes kpulse{70%{box-shadow:0 0 0 12px rgba(242,88,28,0)}100%{box-shadow:0 0 0 0 rgba(242,88,28,0)}}
.memrow{display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line);padding:8px 0}
.memrow .body{flex:1;font-size:13px;white-space:pre-wrap}
.prow{display:grid;grid-template-columns:150px 1fr 1fr;gap:10px;border-bottom:1px solid var(--line);padding:10px 0;align-items:start}
.prow .old{color:var(--grey);font-size:13px}.prow .new{font-size:13px;background:#FFF6F1;border-left:3px solid var(--orange);padding:6px 8px}

/* AI elements */
.aibar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff;border:1px dashed var(--steel);border-radius:var(--r);padding:8px 12px;margin:10px 0}
.aibox{border-left:4px solid var(--orange)}
.ailist li{margin:4px 0}
.fieldai{display:flex;gap:4px;justify-content:flex-end;margin:2px 0 6px}
.iconbtn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:2px 9px;font-size:12px;font-family:var(--font);font-weight:700;color:var(--cyan-deep);cursor:pointer}
.iconbtn:hover{border-color:var(--orange);color:var(--orange)}
.iconbtn.rec{background:var(--orange);border-color:var(--orange);color:#fff;animation:kpulse 1.6s infinite}
.lenses{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.lenses label,.lchip{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:4px 10px;font-size:13px;cursor:pointer;background:#fff}
.lensgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:10px 0}
.lens{background:var(--lav);border-radius:var(--r);padding:10px 12px;font-size:13px}
.lens p{margin:4px 0}
.refout{margin-top:10px}
.refined{background:#FFF6F1;border-left:3px solid var(--orange);padding:10px 12px;white-space:pre-wrap;border-radius:0 var(--r) var(--r) 0}
.coach{list-style:none;padding:0}
.coach li{border-bottom:1px solid var(--line);padding:8px 0}
.repl{font-size:13px;background:#FFF6F1;padding:4px 8px;margin:4px 0;border-radius:4px}

/* modal */
.kmwrap{position:fixed;inset:0;background:rgba(14,27,44,.55);display:flex;align-items:flex-start;justify-content:center;z-index:900;padding:6vh 16px;overflow:auto}
.kmodal{background:#fff;border-radius:10px;max-width:760px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.kmhead{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.kmhead h2{margin:0;font-size:18px}
.kmbody{padding:14px 18px;max-height:70vh;overflow:auto}
.kmfoot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--night);color:#fff;padding:9px 16px;border-radius:8px;font-size:14px;z-index:1000;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.on,.toast.show{opacity:1}.toast.err{background:var(--magenta)}

/* helpdesk bubble */
.kbubble{position:fixed;right:20px;bottom:20px;z-index:800}
.kbtn{width:54px;height:54px;border-radius:50%;border:0;background:var(--orange);color:var(--on-accent,#fff);box-shadow:0 6px 20px rgba(14,27,44,.35);cursor:pointer;display:flex;align-items:center;justify-content:center}
.kbtn:hover{filter:brightness(.92)}
.kpanel{position:absolute;right:0;bottom:66px;width:min(380px,calc(100vw - 32px));background:#fff;border-radius:12px;box-shadow:0 16px 50px rgba(14,27,44,.35);display:flex;flex-direction:column;max-height:min(600px,calc(100vh - 110px));overflow:hidden;border:1px solid var(--line)}
.kpanel[hidden]{display:none}
.kphead{display:flex;justify-content:space-between;align-items:center;background:var(--night);color:#fff;padding:10px 14px;font-family:var(--font)}
.kphead .linkbtn{color:var(--steel)}
.klog{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--lav);min-height:160px}
.kmsg{padding:8px 11px;border-radius:10px;font-size:13.5px;max-width:88%;line-height:1.4}
.kmsg p{margin:0 0 4px}
.kmsg.ai,.kmsg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start}
.kmsg.me,.kmsg.user{background:var(--night);color:#fff;align-self:flex-end}
.kmsg .card{margin:6px 0;padding:10px}
.kpanel textarea{border:0;border-top:1px solid var(--line);padding:10px 12px;resize:none;font-size:14px;min-height:56px}
.kpfoot{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--line);align-items:center;justify-content:space-between}
.card.warn{border-left:4px solid var(--sun)}

/* live: panel */
.livegrid{display:grid;grid-template-columns:minmax(300px,1fr) 2fr;gap:14px}
.stagectl{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stagectl label{font-size:12px;font-weight:700;display:flex;flex-direction:column;gap:3px}
.stagectl select,.stagectl input{padding:6px 8px;border:1px solid var(--line);border-radius:6px}
.swall{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.sgroup h3{font-size:14px;border-bottom:2px solid var(--orange);padding-bottom:4px}
.snotes{display:flex;flex-direction:column;gap:8px}
.snote{background:#fff;border:1px solid var(--line);border-left:5px solid var(--steel);border-radius:6px;padding:8px 10px;font-size:13.5px}
.snote.k-idea{border-left-color:var(--orange)}.snote.k-question{border-left-color:var(--sun)}.snote.k-risk{border-left-color:var(--magenta)}.snote.k-action{border-left-color:var(--mint)}.snote.k-comment{border-left-color:var(--steel)}
.snote.st-addressed{opacity:.6}.snote.st-parked{background:#FAFAFA}
.sn-kind{font-family:var(--font);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--grey)}
.sn-body{margin:3px 0}
.sn-foot{display:flex;gap:8px;font-size:12px;color:var(--grey);align-items:center}
.sn-admin{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px}
.wall-room .swall{grid-template-columns:1fr}
.kinds{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.kinds label{display:inline-flex;gap:4px;margin:0;font-weight:400;border:1px solid var(--line);border-radius:14px;padding:3px 10px}
.kinds input{width:auto;display:inline;margin:0}

/* live: big screen */
body.kstage{display:flex;flex-direction:column;min-height:100vh}
.kstage-top{display:flex;align-items:center;gap:18px;padding:12px 28px;border-bottom:1px solid rgba(255,255,255,.12)}
.kstage-top .title{font-family:var(--font);font-weight:700;font-size:18px;flex:1}
.kstage-top .join{color:var(--steel);font-size:13px}
#stage{flex:1;display:flex;flex-direction:column;padding:3vh 4vw}
.stg-center{margin:auto;text-align:center;max-width:1100px}
.stg-center h1,.stg-agenda h1{font-size:clamp(34px,5vw,72px);line-height:1.05;color:#fff}
.stg-msg{font-weight:600}
.stg-agenda{margin:auto 0;max-width:1200px}
.stg-agenda .lead{font-size:clamp(18px,2vw,28px);color:var(--mist);max-width:900px}
.stg-list{list-style:none;padding:0;margin:4vh 0 0;display:flex;flex-direction:column;gap:6px;font-size:clamp(14px,1.4vw,20px);color:var(--steel)}
.stg-list li.on{color:#fff;font-weight:700}.stg-list li.on::before{content:"▶ ";color:var(--orange)}
.stg-list li.past{opacity:.45}
.stg-qs{text-align:left;font-size:clamp(18px,2vw,28px);color:var(--mist);display:inline-block}
.stg-frame{flex:1;width:100%;border:0;border-radius:10px;background:#fff;min-height:80vh}
.stg-wall .swall{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.stg-wall .sgroup h3{color:#fff}
.stg-wall .snote{font-size:16px}
body.stagepage .crumb,body.stagepage .aibar,body.stagepage .oside,body.stagepage .gref,body.stagepage .vbox,body.stagepage .kbubble{display:none!important}
body.stagepage .olayout{display:block}
body.stageresults .kbubble{display:none}

@media (max-width:860px){
  .g2,.g3,.fgrid,.livegrid,.stagectl,.prow{grid-template-columns:1fr}
  .kbar .org{display:none}
}

/* timeline */
.tlpos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.tlpos>div{display:flex;flex-direction:column;gap:2px;font-size:14px}
.tlchart{--tll:240px;position:relative;padding-top:22px}
.tldays{position:relative;height:18px;margin-left:var(--tll);border-bottom:1px solid var(--line)}
.tldays span{position:absolute;top:0;font-family:var(--mono);font-size:10px;color:var(--grey);transform:translateX(2px);white-space:nowrap}
.tldays span.we{color:var(--steel)}
.tlrow{display:flex;align-items:center;height:26px;border-bottom:1px dashed var(--line)}
.tllab{width:var(--tll);flex:none;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}
.tltrack{position:relative;flex:1;height:100%}
.tlbar{position:absolute;top:5px;height:16px;border-radius:4px;background:var(--steel);color:#fff;font-style:normal;font-family:var(--mono);font-size:10px;line-height:16px;padding:0 4px;overflow:hidden;white-space:nowrap}
.tlbar.st-open{background:var(--orange)}.tlbar.st-closed{background:var(--violet)}.tlbar.st-upcoming{background:#B9C7D6}
.tlbar.k-live{outline:2px solid var(--night)}
.tlnowline{position:absolute;top:0;bottom:0;width:2px;background:var(--orange);pointer-events:none}
.tlnowline span{position:absolute;top:0;left:4px;font-family:var(--mono);font-size:10px;color:var(--orange)}
.tlwarn{margin:12px 0 0;padding:10px 14px 10px 30px;background:#FFF6E0;border-left:4px solid var(--sun);border-radius:0 6px 6px 0;font-size:13px}
.tlback{border-left:4px solid var(--orange)}
.tlstart{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.tlplan input[type=datetime-local]{width:auto}
.tag.st-upcoming{background:#E3E9F2}.tag.st-open{background:rgba(242,88,28,.18);color:#9A3412}.tag.st-closed{background:#E3E9F2;color:var(--grey)}
.btn.ghostd{background:transparent}
@media (max-width:860px){.tlpos{grid-template-columns:1fr 1fr}.tlchart{--tll:120px}}

/* goals with proof points */
.glist{display:flex;flex-direction:column;gap:12px;margin:8px 0}
.gcard{border:1px solid var(--line);border-left:4px solid var(--violet);border-radius:var(--r);padding:10px 12px;background:#fff}
.ghead{display:flex;align-items:flex-start;gap:10px}
.gnum{font-family:var(--mono);font-weight:500;font-size:12px;background:var(--night);color:#fff;border-radius:4px;padding:2px 6px;margin-top:4px}
.ghead .gt{flex:1;font-family:var(--font);font-weight:700;font-size:16px;border:1px solid transparent;border-radius:6px;padding:3px 6px;resize:none;background:transparent}
.ghead textarea.gt:hover,.ghead textarea.gt:focus{border-color:var(--line);background:#fff}
.ghead .gtype{border:1px solid var(--line);border-radius:6px;padding:3px 6px;font-size:12px}
.gmeta2{display:grid;grid-template-columns:3fr 1fr;gap:8px;margin:6px 0 8px 34px}
.gmeta2 input,.gmeta2 span{font-size:13px;border:1px solid var(--line);border-radius:6px;padding:4px 8px;color:var(--grey)}
.gmeta2 span{border:0;padding:0}
.ptab{width:calc(100% - 34px);margin-left:34px;border-collapse:collapse;font-size:13px}
.ptab th{text-align:left;font-family:var(--font);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--grey);padding:2px 4px;border-bottom:1px solid var(--line)}
.ptab td{padding:3px 4px;border-bottom:1px dashed var(--line);vertical-align:middle}
.ptab td:nth-child(2){width:36%}
.ptab input,.ptab select{width:100%;border:1px solid var(--line);border-radius:5px;padding:4px 6px;font-size:13px;background:#fff}
.ptab td:first-child{width:108px}
.padd{margin:6px 0 0 34px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gwarn{margin:6px 0 0 34px;color:#8A3E00}
.tag.pk-level{background:#E8E1F5;color:#4B2A85}.tag.pk-number{background:#E3E9F2;color:var(--cyan-deep)}.tag.pk-milestone{background:#DDF8F3;color:#0B5A50}.tag.pk-threshold{background:#FFE8D6;color:#8A3E00}
.ppl{margin:4px 0 0;padding-left:16px}
@media (max-width:860px){.gmeta2,.ptab,.padd,.gwarn{margin-left:0;width:100%}.gmeta2{grid-template-columns:1fr}}

/* customer branding (per tenant) */
.kbar .orglogo{height:26px;max-width:150px;object-fit:contain;background:#fff;border-radius:4px;padding:2px 5px;margin-left:4px}
.login .custlogo{display:block;max-height:56px;max-width:220px;margin:0 0 14px;background:#fff;border-radius:6px;padding:6px 10px}
.brandprev{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--night);border-radius:8px;padding:12px 16px;color:#fff}
.brandprev img{height:32px;max-width:180px;object-fit:contain;background:#fff;border-radius:4px;padding:3px 6px}
.swatch{display:inline-block;width:18px;height:18px;border-radius:4px;vertical-align:middle;border:1px solid var(--line)}
.lockcheck{border-left:5px solid var(--magenta)}
.lockhit{padding-left:18px}.lockhit li{margin:10px 0}
.lockhit .lk{color:var(--magenta);font-weight:700}
.btn.danger.solid{background:var(--magenta);color:#fff;border-color:var(--magenta)}
.lockbtns{display:flex;gap:10px;justify-content:flex-end}
.tag.locked{background:#FCE3EF;color:#8A1250}
.pubbtns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pubcard{display:flex;justify-content:space-between;align-items:center;gap:14px;border-left:4px solid var(--orange);flex-wrap:wrap}
.flash.frozen{background:#E3E9F2;color:var(--ink);border-left:4px solid var(--violet)}
/* ---------- tracking (0.9.3) ---------- */
.rag{display:inline-block;border-radius:999px;padding:2px 10px;font:600 12px var(--font);white-space:nowrap}
.rag-green{background:#DDF3E8;color:#16613F}.rag-amber{background:#FCEFCF;color:#7A5500}.rag-red{background:#FBE0DA;color:#9A2A12}.rag-none{background:#EEF1F5;color:#5B6878}
.ragbar{display:flex;width:140px;max-width:100%;height:10px;border-radius:5px;overflow:hidden;background:#EEF1F5;vertical-align:middle}
.ragbar i{display:block;height:100%}.rb-green{background:#2E9E6B}.rb-amber{background:#E0A21B}.rb-red{background:#D9452B}.rb-none{background:#C9D3DF}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:10px 0 14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.kpi small{font:600 11px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--grey)}.kpi b{font:700 30px var(--font);font-variant-numeric:tabular-nums}.kpi span{font-size:12.5px;color:var(--grey)}.kpi .ragbar{width:100%;height:14px}
.trkbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0}
.trkbar select{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-weight:600}
.trkhead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.trkxls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.trkrows{display:flex;flex-direction:column;gap:0}
.trkrow{display:grid;grid-template-columns:minmax(0,2.4fr) 110px 110px 130px minmax(0,2.2fr);gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.trkrow label{display:flex;flex-direction:column;gap:3px;font:600 11px var(--font);color:var(--grey);text-transform:uppercase;letter-spacing:.06em}
.trkrow input,.trkrow select,.trkrow textarea,.trknote textarea{font:400 14px var(--body,inherit);text-transform:none;letter-spacing:0;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:7px 8px;width:100%;box-sizing:border-box;background:#fff}
.trkrow .actual{font-weight:700;border-color:var(--orange)}
.trkwhat{min-width:0}.trkwhat b{font-size:14.5px}
.trknote{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-weight:600;font-size:13px}
.stickybar{position:sticky;bottom:0;background:var(--lav);padding:10px 0;z-index:5}
@media(max-width:860px){.trkrow{grid-template-columns:1fr 1fr}.trkwhat,.trkcom{grid-column:1/-1}}
.trksum{background:var(--lav);border-left:4px solid var(--orange);padding:8px 12px;border-radius:6px}
.tablewrap{overflow-x:auto}
.trktab td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.delta{font-size:11.5px;font-weight:600}.delta.up{color:#16613F}.delta.down{color:#9A2A12}
.spark path{fill:none;stroke:var(--orange);stroke-width:1.6}.spark circle{fill:var(--orange)}
tr.warnrow td{background:#FFF8EC}
.remind{margin-top:12px;display:flex;flex-direction:column;gap:6px}.remind textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:6px;font:12px var(--mono,monospace)}
.trackcard{border-left:5px solid var(--orange)}
.trktab th.num{text-align:right}
.stickybar{padding-right:84px}
.warnlink{color:#9A2A12;font-weight:600}
.card table + h3{margin-top:16px}
