:root{
  --bg:#0E0F11; --surface:#151619; --surface-2:#1B1D21; --surface-3:#232529;
  --border:#292B31; --border-soft:#1F2125;
  --text:#ECEDEF; --text-2:#9EA0A7; --text-3:#686A71;
  --accent:#EF5350; --accent-2:#F26B67; --accent-soft:rgba(239,83,80,.15); --accent-ink:#fff;
  --new:#8A8F98;  --new-s:rgba(138,143,152,.16);
  --work:#5B8DEF; --work-s:rgba(91,141,239,.15);
  --review:#E0A93C;--review-s:rgba(224,169,60,.15);
  --done:#43B581; --done-s:rgba(67,181,129,.15);
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 14px 40px rgba(0,0,0,.38);
  --radius:11px;
}
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]){
  --bg:#F5F6F8; --surface:#FFFFFF; --surface-2:#FBFBFC; --surface-3:#F0F1F4;
  --border:#E4E6EA; --border-soft:#EEEFF2;
  --text:#14161A; --text-2:#585B63; --text-3:#8B8E96;
  --accent:#DA3B36; --accent-2:#C4322D; --accent-soft:rgba(218,59,54,.10);
  --new:#7A7F88;--new-s:rgba(122,127,136,.12); --work:#356FE0;--work-s:rgba(53,111,224,.12);
  --review:#B9821E;--review-s:rgba(185,130,30,.14); --done:#2E9E6B;--done-s:rgba(46,158,107,.13);
  --shadow:0 1px 2px rgba(20,22,26,.06), 0 12px 30px rgba(20,22,26,.09);
}}
:root[data-theme="light"]{
  --bg:#F5F6F8; --surface:#FFFFFF; --surface-2:#FBFBFC; --surface-3:#F0F1F4;
  --border:#E4E6EA; --border-soft:#EEEFF2;
  --text:#14161A; --text-2:#585B63; --text-3:#8B8E96;
  --accent:#DA3B36; --accent-2:#C4322D; --accent-soft:rgba(218,59,54,.10);
  --new:#7A7F88;--new-s:rgba(122,127,136,.12); --work:#356FE0;--work-s:rgba(53,111,224,.12);
  --review:#B9821E;--review-s:rgba(185,130,30,.14); --done:#2E9E6B;--done-s:rgba(46,158,107,.13);
  --shadow:0 1px 2px rgba(20,22,26,.06), 0 12px 30px rgba(20,22,26,.09);
}
:root[data-theme="dark"]{
  --bg:#0E0F11; --surface:#151619; --surface-2:#1B1D21; --surface-3:#232529;
  --border:#292B31; --border-soft:#1F2125;
  --text:#ECEDEF; --text-2:#9EA0A7; --text-3:#686A71;
  --accent:#EF5350; --accent-2:#F26B67; --accent-soft:rgba(239,83,80,.15);
  --new:#8A8F98;--new-s:rgba(138,143,152,.16); --work:#5B8DEF;--work-s:rgba(91,141,239,.15);
  --review:#E0A93C;--review-s:rgba(224,169,60,.15); --done:#43B581;--done-s:rgba(67,181,129,.15);
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 14px 40px rgba(0,0,0,.38);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:var(--bg); color:var(--text); overflow:hidden;
  font-family:"Hanken Grotesk",system-ui,sans-serif; font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums}
button{font-family:inherit; cursor:pointer}
input,select,textarea{font-family:inherit}
::selection{background:var(--accent-soft)}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:6px}
.hidden{display:none!important}

/* ---------- LOGIN ---------- */
.login{position:fixed; inset:0; display:grid; place-items:center; background:
  radial-gradient(1200px 500px at 50% -10%, color-mix(in srgb,var(--accent) 10%, transparent), transparent 60%), var(--bg); padding:24px}
.login-card{width:100%; max-width:360px; background:var(--surface); border:1px solid var(--border-soft);
  border-radius:16px; padding:30px 28px; box-shadow:var(--shadow); text-align:center}
.login .mark{display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:22px; letter-spacing:-.01em; margin-bottom:6px}
.login .mark{justify-content:center}
.login .mark .rec{width:11px; height:11px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 5px var(--accent-soft); flex:none}
.login p{color:var(--text-2); font-size:13.5px; margin:0 0 22px}
.login form{display:flex; flex-direction:column; gap:10px}
.field{width:100%; background:var(--surface-2); border:1px solid var(--border); border-radius:9px;
  padding:11px 13px; color:var(--text); font-size:14px; outline:none}
.field:focus{border-color:var(--accent)}
.btn-primary{background:var(--accent); color:var(--accent-ink); border:0; border-radius:9px; padding:11px; font-weight:600; font-size:14px}
.btn-primary:hover{background:var(--accent-2)}
.err{color:var(--accent); font-size:12.5px; min-height:16px}

/* ---------- APP SHELL ---------- */
.app{display:grid; grid-template-columns:250px 1fr; grid-template-rows:minmax(0,1fr); height:100vh; height:100dvh}
.side{background:var(--surface); border-right:1px solid var(--border-soft); display:flex; flex-direction:column; min-height:0}
.brand{display:flex; align-items:center; gap:10px; padding:18px 18px 14px; font-weight:800; font-size:17px; letter-spacing:-.01em}
.brand .rec{width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); flex:none}
.rec-btn{margin:0 14px 12px; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:9px; border-radius:9px; border:0; background:var(--accent); color:var(--accent-ink); font-weight:600; font-size:13.5px}
.rec-btn:hover{background:var(--accent-2)}
.rec-btn .d{width:7px;height:7px;border-radius:50%;background:#fff;flex:none}
.side nav{padding:4px 10px; display:flex; flex-direction:column; gap:1px}
.navi{display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:8px; color:var(--text-2);
  background:none; border:0; width:100%; text-align:left; font-size:13.5px; font-weight:500}
.navi:hover{background:var(--surface-3); color:var(--text)}
.navi.on{background:var(--surface-3); color:var(--text)}
.navi.on .ic{color:var(--accent)}
.navi .ic{width:17px; height:17px; color:var(--text-3); flex:none}
.navi .cnt{margin-left:auto; font-size:11px; color:var(--text-3); background:var(--surface-2); padding:1px 7px; border-radius:20px}
.side .lbl{padding:16px 20px 7px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-3); display:flex; align-items:center}
.side .lbl button{margin-left:auto; background:none; border:0; color:var(--text-3); font-size:15px; line-height:1}
.side .lbl button:hover{color:var(--text)}
.projs{overflow:auto; padding-bottom:6px}
.proj{display:flex; align-items:center; gap:10px; padding:6px 20px; color:var(--text-2); font-size:13px; cursor:pointer}
.proj:hover{color:var(--text)}
.proj.on{color:var(--text); font-weight:600}
.proj .dot{width:8px; height:8px; border-radius:3px; flex:none}
.proj .x{margin-left:auto; opacity:0; color:var(--text-3); font-size:14px}
.proj:hover .x{opacity:1}
.side .me{margin-top:auto; display:flex; align-items:center; gap:10px; padding:14px 18px; border-top:1px solid var(--border-soft); font-size:13px; color:var(--text-2)}
.avatar{border-radius:50%; display:grid; place-items:center; font-weight:600; flex:none; color:#fff}

/* main */
.main{display:flex; flex-direction:column; min-width:0; min-height:0}
.topbar{display:flex; align-items:center; gap:14px; padding:13px 22px; border-bottom:1px solid var(--border-soft)}
.topbar h1{font-size:19px; font-weight:700; letter-spacing:-.01em; margin:0}
.views{display:flex; gap:2px; background:var(--surface); border:1px solid var(--border-soft); padding:3px; border-radius:9px}
.views button{border:0; background:none; color:var(--text-2); font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:6px}
.views button.on{background:var(--surface-3); color:var(--text)}
.spacer{flex:1}
.search{display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:7px 11px; color:var(--text-3); font-size:13px; min-width:150px}
.search input{border:0; background:none; color:var(--text); font-size:13px; outline:none; width:100%}
.iconbtn{width:34px; height:34px; border-radius:8px; border:1px solid var(--border); background:var(--surface); color:var(--text-2); display:grid; place-items:center}
.iconbtn:hover{color:var(--text); border-color:var(--text-3)}

.filters{display:flex; align-items:center; gap:8px; padding:11px 22px; border-bottom:1px solid var(--border-soft); flex-wrap:wrap}
.filters .lb{color:var(--text-3);font-size:12px;font-weight:600}
.chip{display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border-radius:8px; border:1px solid var(--border);
  background:var(--surface); color:var(--text-2); font-size:12.5px; font-weight:500}
.chip:hover{color:var(--text); border-color:var(--text-3)}
.chip.on{color:var(--text); border-color:color-mix(in srgb,var(--accent) 50%, var(--border)); background:var(--accent-soft)}
.chip .car{color:var(--text-3); font-size:10px}
.chip.flagi.on{color:var(--review); border-color:color-mix(in srgb,var(--review) 40%, transparent); background:var(--review-s)}

.content{flex:1; overflow:auto; min-height:0}

/* ---------- KANBAN ---------- */
.board{display:flex; gap:14px; padding:18px 22px; overflow-x:auto; height:100%; align-items:flex-start}
.col{width:296px; flex:none; background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius); display:flex; flex-direction:column; max-height:100%}
.col.drop{border-color:color-mix(in srgb,var(--accent) 45%,var(--border)); background:color-mix(in srgb,var(--accent) 5%, var(--surface))}
.col__h{display:flex; align-items:center; gap:9px; padding:12px 12px 9px}
.col__h .sd{width:9px; height:9px; border-radius:3px; flex:none}
.col__h .nm{font-weight:700; font-size:13.5px}
.col__h .ct{font-size:11px; color:var(--text-3); background:var(--surface-2); padding:1px 8px; border-radius:20px; font-variant-numeric:tabular-nums}
.col__empty{margin:4px 2px 8px; border:1.5px dashed var(--border); border-radius:9px; padding:20px 10px; text-align:center; color:var(--text-3); font-size:12px; line-height:1.4}
.col.drop .col__empty{border-color:color-mix(in srgb,var(--accent) 45%,var(--border)); color:var(--text-2); background:color-mix(in srgb,var(--accent) 5%, transparent)}
.col__h .sp{flex:1}
.col__h button{color:var(--text-3); background:none; border:0; font-size:15px; line-height:1; padding:0 4px}
.col__h button:hover{color:var(--text)}
.col__b{padding:2px 9px 10px; display:flex; flex-direction:column; gap:9px; overflow:auto; min-height:20px}
.card{background:var(--surface-2); border:1px solid var(--border); border-radius:9px; padding:11px 12px; box-shadow:0 1px 1px rgba(0,0,0,.12); cursor:grab; user-select:none}
.card:hover{border-color:var(--text-3); transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.16)}
.card.dragging{opacity:.4; transform:none; box-shadow:none}
.card.done{opacity:.66}
.card .ttl{font-size:13.5px; font-weight:500; line-height:1.4; margin-bottom:9px}
.card .tags{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:10px}
.ptag{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; padding:2px 8px; border-radius:6px}
.ptag .sq{width:6px;height:6px;border-radius:2px}
.link{display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--text-2); background:var(--surface-3); padding:2px 8px; border-radius:6px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.link svg{width:11px;height:11px; color:var(--accent); flex:none}
.card .foot{display:flex; align-items:center; gap:8px}
.pri{width:14px; height:14px; flex:none}
.pri.high{color:var(--accent)} .pri.norm{color:var(--text-3)} .pri.low{color:var(--text-3)}
.due{font-size:11.5px; color:var(--text-2)} .due.warn{color:var(--review)}
.flag{font-size:11px; color:var(--review); background:var(--review-s); border:1px solid color-mix(in srgb,var(--review) 30%, transparent); padding:2px 7px; border-radius:6px; display:inline-flex; gap:5px; align-items:center}
.card .foot .push{margin-left:auto}
.card .cdesc{font-size:12px; color:var(--text-3); line-height:1.4; margin:-3px 0 9px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.minicard{position:fixed; z-index:80; width:320px; max-width:88vw; background:var(--surface-3);
  border:1px solid var(--border); border-radius:11px; box-shadow:var(--shadow); padding:14px 15px;
  pointer-events:none; opacity:0; transform:translateY(4px); transition:.12s}
.minicard.on{opacity:1; transform:none}
.mc-title{font-size:14px; font-weight:600; line-height:1.35; margin-bottom:7px}
.mc-desc{font-size:13px; color:var(--text-2); line-height:1.5}

/* loading skeletons */
.skel{position:relative; overflow:hidden; background:var(--surface-2); border-radius:8px}
.skel::after{content:""; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--text-3) 13%, transparent), transparent);
  animation:skel 1.5s ease-in-out infinite}
@keyframes skel{100%{transform:translateX(100%)}}
.skel-line{height:12px; margin:10px 0}
.skel-lbl{height:11px; width:150px; margin:26px 0 14px}
.skel-card{height:64px; border-radius:11px; margin:0 0 10px}
@media (prefers-reduced-motion:reduce){ .skel::after{animation:none} }

/* card density */
:root[data-density="compact"] .col__b{gap:5px}
:root[data-density="compact"] .card{padding:7px 10px}
:root[data-density="compact"] .card .ttl{font-size:12.5px; margin-bottom:5px}
:root[data-density="compact"] .card .cdesc{display:none}
:root[data-density="compact"] .card .tags{margin-bottom:6px}
:root[data-density="compact"] .card .lchips{margin-bottom:5px}
.mc-desc.mut{color:var(--text-3); font-style:italic}
.mc-rule{height:1px; background:var(--border-soft); margin:11px 0}
.mc-meta{display:flex; flex-direction:column; gap:7px; font-size:12.5px; color:var(--text)}
.mc-meta .r{display:flex; align-items:center; gap:8px}
.mc-meta .k{color:var(--text-3); min-width:96px; flex:none}
.addcard{display:flex; gap:6px}
.addcard input{flex:1; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:8px 10px; color:var(--text); font-size:13px; outline:none}
.addcard input:focus{border-color:var(--accent)}
.col--add{width:170px; background:transparent; border:1px dashed var(--border)}
.col--add button{margin:12px; font-size:13px; color:var(--text-3); background:none; border:0; text-align:left}
.col--add button:hover{color:var(--text)}

/* ---------- TIMELINE ---------- */
.tl{padding:18px 22px; height:100%; overflow:auto}
.tl__wrap{min-width:720px}
.tl__axis{display:grid; grid-template-columns:180px 1fr; align-items:end; margin-bottom:4px}
.tl__axis .track{position:relative; height:20px; border-bottom:1px solid var(--border)}
.tl__axis .tick{position:absolute; transform:translateX(-50%); font-size:11px; color:var(--text-3); bottom:4px; white-space:nowrap}
.today-line{position:absolute; top:0; bottom:0; width:2px; background:var(--accent); z-index:2}
.today-cap{position:absolute; top:-2px; transform:translateX(-50%); font-size:10px; font-weight:600; color:var(--accent); background:var(--bg); padding:0 5px; z-index:3}
.tl__grp{margin-top:14px}
.tl__gh{display:flex; align-items:center; gap:9px; font-size:12px; font-weight:700; color:var(--text-2); margin-bottom:6px}
.tl__gh .dot{width:9px; height:9px; border-radius:3px}
.tl__row{display:grid; grid-template-columns:180px 1fr; align-items:center; height:38px}
.tl__row .rl{font-size:12.5px; color:var(--text); padding-right:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tl__track{position:relative; height:100%; border-bottom:1px solid var(--border-soft)}
.bar{position:absolute; top:50%; transform:translateY(-50%); height:22px; border-radius:6px; display:flex; align-items:center; padding:0 9px; font-size:11px; color:#fff; font-weight:600; overflow:hidden; white-space:nowrap; min-width:6px}
.bar.ghost{background:repeating-linear-gradient(135deg,var(--surface-3),var(--surface-3) 6px,transparent 6px,transparent 12px); border:1px dashed var(--text-3); color:var(--text-2)}
.mstone{position:absolute; top:50%; transform:translate(-50%,-50%) rotate(45deg); width:13px; height:13px; background:var(--accent); border-radius:3px}

/* ---------- OVERVIEW ---------- */
.ov{padding:20px 22px; height:100%; overflow:auto; display:grid; gap:16px; grid-template-columns:repeat(12,1fr); align-content:start}
.tile{grid-column:span 3; background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius); padding:16px}
.tile .k{font-size:12px; color:var(--text-2); font-weight:500; margin-bottom:8px; display:flex; align-items:center; gap:7px}
.tile .v{font-size:30px; font-weight:800; letter-spacing:-.02em; line-height:1}
.tile .v small{font-size:13px; font-weight:600; color:var(--text-3)}
.tile.accent .v{color:var(--accent)} .tile.warn .v{color:var(--review)}
.panel{background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius); padding:16px}
.panel.half{grid-column:span 6}
.panel h3{font-size:13px; font-weight:700; margin:0 0 10px; display:flex; align-items:center; gap:8px}
.panel h3 .mut{margin-left:auto; font-size:11px; font-weight:500; color:var(--text-3)}
.li{display:flex; align-items:center; gap:11px; padding:9px 0; border-bottom:1px solid var(--border-soft); cursor:pointer}
.li:last-child{border-bottom:0}
.li:hover{opacity:.85}
.li .mt{flex:1; min-width:0}
.li .mt .t1{font-size:13px; font-weight:500}
.li .mt .t2{font-size:11.5px; color:var(--text-3); margin-top:2px; display:flex; gap:8px; align-items:center}
.dotdate{font-family:"JetBrains Mono",monospace; font-size:11.5px; color:var(--text-2)}

/* ---------- MEETINGS + DETAIL ---------- */
.wrap{max-width:820px; margin:0 auto; padding:24px 22px 90px}
.mrow{display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center; padding:15px 8px; border-bottom:1px solid var(--border-soft); cursor:pointer; border-radius:8px}
.mrow:hover{background:var(--surface)}
.mrow h3{font-size:16px; font-weight:600; margin:0 0 4px}
.mrow .sub{display:flex; gap:8px 14px; flex-wrap:wrap; color:var(--text-3); font-size:12.5px}
.status{font-size:11px; font-weight:600; padding:3px 9px; border-radius:20px; white-space:nowrap}
.status--processing{color:var(--review); background:var(--review-s)}
.status--done{color:var(--done); background:var(--done-s)}
.status--error{color:var(--accent); background:var(--accent-soft)}
.status .pulse{display:inline-block; width:6px; height:6px; border-radius:50%; background:currentColor; margin-right:6px; animation:pulse 1.3s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}
.back{display:inline-flex; align-items:center; gap:7px; color:var(--text-2); font-size:13px; background:none; border:0; margin-bottom:16px}
.back:hover{color:var(--text)}
.d-eyebrow{font-family:"JetBrains Mono",monospace; font-size:12px; color:var(--text-3); letter-spacing:.02em; margin-bottom:10px}
.d-title{font-size:30px; font-weight:800; letter-spacing:-.02em; margin:0 0 14px; line-height:1.1}
.d-meta{display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--text-2); font-size:13px; align-items:center; margin-bottom:22px}
.abstract{background:var(--surface); border:1px solid var(--border-soft); border-left:3px solid var(--accent); border-radius:10px; padding:18px 20px; margin-bottom:24px}
.abstract .lead{font-size:18px; font-weight:600; line-height:1.4; margin:0 0 8px}
.abstract p{margin:0; color:var(--text-2); font-size:14.5px}
.sec-lbl{font-family:"JetBrains Mono",monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); margin:26px 0 12px}
.sec-toggle{display:flex; align-items:center; gap:9px; width:100%; background:none; border:0; padding:0; margin:26px 0 12px; cursor:pointer; color:var(--text-3); font-family:"JetBrains Mono",monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; text-align:left}
.sec-toggle:hover{color:var(--text-2)}
.sec-toggle .chev{width:13px; height:13px; flex:none; transition:transform .16s ease}
.sec-toggle.open .chev{transform:rotate(90deg)}
.sec-toggle__n{margin-left:auto; background:var(--surface-2); border:1px solid var(--border-soft); border-radius:6px; padding:1px 8px; letter-spacing:0; color:var(--text-2)}
.dec{display:flex; gap:11px; padding:8px 0; align-items:baseline}
.dec .n{font-family:"JetBrains Mono",monospace; font-size:12px; color:var(--accent)}
.turn{display:grid; grid-template-columns:56px 1fr; gap:0 16px; padding:9px 0; border-radius:9px}
.turn--seek{cursor:pointer; margin:0 -10px; padding:9px 10px}
.turn--seek:hover{background:var(--surface-2)}
.turn--playing{background:var(--accent-soft)}
.turn--playing .tc{color:var(--accent)}
.aud{width:100%; height:38px; margin:2px 0 6px; border-radius:9px; outline:none}
.turn .tc{font-family:"JetBrains Mono",monospace; font-size:11.5px; color:var(--text-3); padding-top:4px}
.turn .sp{display:inline-flex; align-items:center; gap:8px; margin-bottom:2px; background:none; border:0; padding:0; cursor:pointer}
.turn .nm{font-size:12.5px; font-weight:600}
.turn .text{margin:0; font-size:15px; line-height:1.55; color:var(--text)}
.mtask{display:grid; grid-template-columns:1fr auto; gap:12px; padding:11px 0; border-bottom:1px solid var(--border-soft); align-items:center}
.mtask:last-child{border-bottom:0}

/* ---------- RECORD ---------- */
.recscreen{max-width:460px; margin:0 auto; padding:40px 24px; text-align:center}
.recscreen .title-in{width:100%; text-align:center; font-size:19px; color:var(--text); background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:12px; margin-bottom:36px; outline:none}
.recscreen .title-in:focus{border-color:var(--accent)}
.rec-big{width:128px; height:128px; border-radius:50%; border:1px solid var(--border); background:var(--surface); display:grid; place-items:center; margin:0 auto; box-shadow:var(--shadow)}
.rec-big .core{width:56px; height:56px; border-radius:50%; background:var(--accent); transition:.2s}
.rec-big.on{border-color:var(--accent); animation:ring 1.6s ease-out infinite}
.rec-big.on .core{width:40px; height:40px; border-radius:9px}
@keyframes ring{0%{box-shadow:0 0 0 0 var(--accent-soft)}100%{box-shadow:0 0 0 24px transparent}}
.timer{font-family:"JetBrains Mono",monospace; font-size:32px; margin:26px 0 6px; color:var(--text)}
.hint{color:var(--text-2); font-size:14px; margin:0}
.recscreen .alt{margin-top:36px; color:var(--text-3); font-size:13px}
.recscreen .alt label{color:var(--accent); cursor:pointer; text-decoration:underline; text-underline-offset:3px}
.recscreen .alt input{display:none}

/* ---------- DRAWER ---------- */
.scrim{position:fixed; inset:0; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:.2s; z-index:40}
.scrim.on{opacity:1; pointer-events:auto}
.drawer{position:fixed; top:0; right:0; bottom:0; width:400px; max-width:92vw; background:var(--surface);
  border-left:1px solid var(--border); box-shadow:var(--shadow); transform:translateX(100%); transition:transform .22s cubic-bezier(.3,.7,.3,1); z-index:50; display:flex; flex-direction:column}
.drawer.on{transform:none}
.drawer__h{display:flex; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--border-soft)}
.drawer__h .t{font-weight:700; font-size:14px}
.drawer__h .sp{flex:1}
.drawer__b{padding:18px; overflow:auto; display:flex; flex-direction:column; gap:16px}
.frow{display:flex; flex-direction:column; gap:6px}
.frow label{font-size:12px; font-weight:600; color:var(--text-3)}
.inp{background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:9px 11px; color:var(--text); font-size:14px; outline:none; width:100%}
.inp:focus{border-color:var(--accent)}
textarea.inp{resize:vertical; min-height:60px; line-height:1.5}
.seg{display:flex; gap:6px; flex-wrap:wrap}
.seg button{padding:7px 12px; border-radius:8px; border:1px solid var(--border); background:var(--surface-2); color:var(--text-2); font-size:12.5px; font-weight:500}
.seg button.on{color:var(--text); border-color:color-mix(in srgb,var(--accent) 50%,var(--border)); background:var(--accent-soft)}
.drawer__f{margin-top:auto; padding:14px 18px; border-top:1px solid var(--border-soft); display:flex; gap:10px}
.btn-ghost{background:var(--surface-2); color:var(--text-2); border:1px solid var(--border); border-radius:8px; padding:9px 14px; font-weight:600; font-size:13px}
.btn-ghost:hover{color:var(--text); border-color:var(--text-3)}
.btn-danger{color:var(--accent); border-color:color-mix(in srgb,var(--accent) 35%,var(--border)); background:transparent; border-width:1px; border-style:solid; border-radius:8px; padding:9px 12px; font-weight:600; font-size:13px}
.mlink{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--text-2); background:var(--surface-2); border:1px solid var(--border); padding:7px 10px; border-radius:8px; text-decoration:none}
.mlink svg{width:12px;height:12px;color:var(--accent)}

/* empty */
.empty{text-align:center; color:var(--text-3); padding:70px 20px}
.empty .big{display:block; font-size:22px; font-weight:700; color:var(--text-2); margin-bottom:8px}

/* toasts — typed, stacked, bottom-right */
.toasts{position:fixed; right:18px; bottom:18px; z-index:90; display:flex; flex-direction:column; gap:10px; align-items:flex-end}
.toast{display:flex; align-items:center; gap:11px; min-width:210px; max-width:360px; background:var(--surface-3);
  color:var(--text); border:1px solid var(--border); border-left:3px solid var(--text-3); border-radius:10px;
  padding:12px 15px; font-size:13.5px; box-shadow:var(--shadow); opacity:0; transform:translateX(18px) scale(.98);
  transition:.24s cubic-bezier(.2,.75,.3,1)}
.toast.on{opacity:1; transform:none}
.toast .ic{width:17px; height:17px; flex:none}
.toast.success{border-left-color:var(--done)} .toast.success .ic{color:var(--done)}
.toast.error{border-left-color:var(--accent)} .toast.error .ic{color:var(--accent)}
.toast.info{border-left-color:var(--work)} .toast.info .ic{color:var(--work)}

/* modal */
.modal-bg{position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:85; display:grid; place-items:center; padding:20px; opacity:0; transition:.18s}
.modal-bg.on{opacity:1}
.modal{width:100%; max-width:460px; background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow);
  transform:translateY(10px) scale(.985); transition:.18s cubic-bezier(.2,.75,.3,1); max-height:86vh; display:flex; flex-direction:column; overflow:hidden}
.modal-bg.on .modal{transform:none}
.modal__h{display:flex; align-items:center; padding:16px 18px; border-bottom:1px solid var(--border-soft)}
.modal__h .t{font-weight:700; font-size:15px}
.modal__b{padding:14px 18px 18px; overflow:auto}
.modal__f{padding:12px 18px; border-top:1px solid var(--border-soft); display:flex; gap:10px; justify-content:flex-end}

/* swatch color picker (inline, Linear-style) */
.swatches{display:flex; flex-wrap:wrap; gap:7px}
.sw{width:22px; height:22px; border-radius:6px; border:2px solid transparent; cursor:pointer; padding:0}
.sw:hover{transform:scale(1.08)}
.sw.on{border-color:var(--text)}
.swpop{position:fixed; z-index:95; background:var(--surface-3); border:1px solid var(--border); border-radius:11px; box-shadow:var(--shadow); padding:11px}
.swpop .inp{margin-bottom:9px}

/* projects manager rows */
.pmrow{display:flex; align-items:center; gap:11px; padding:9px 0; border-bottom:1px solid var(--border-soft)}
.pmrow:last-child{border-bottom:0}
.pm-dot{width:22px; height:22px; border-radius:6px; flex:none; border:1px solid rgba(0,0,0,.15); cursor:pointer; padding:0}
.pmrow input{flex:1; background:transparent; border:0; border-bottom:1px solid transparent; color:var(--text); font-size:14px; padding:4px 2px; outline:none}
.pmrow input:focus{border-bottom-color:var(--border)}
.pm-del{color:var(--text-3); background:none; border:0; font-size:15px; padding:2px 6px; cursor:pointer}
.pm-del:hover{color:var(--accent)}

/* meeting editor */
.editor{background:var(--surface); border:1px solid var(--border-soft); border-radius:13px; padding:20px; display:flex; flex-direction:column; gap:17px}
.decrow{display:flex; gap:8px; align-items:center; margin-bottom:7px}
.decrow input{flex:1}
.decrow .x{color:var(--text-3); background:none; border:0; font-size:14px; padding:5px 7px; cursor:pointer}
.decrow .x:hover{color:var(--accent)}
.addrow{color:var(--accent); background:none; border:0; font-size:13px; font-weight:600; padding:4px 0; text-align:left; cursor:pointer}
.chips2{display:flex; flex-wrap:wrap; gap:7px; padding:9px; background:var(--surface-2); border:1px solid var(--border); border-radius:9px; min-height:42px; align-items:center}
.chip2{display:inline-flex; align-items:center; gap:7px; background:var(--surface-3); border:1px solid var(--border); border-radius:7px; padding:4px 5px 4px 10px; font-size:12.5px}
.chip2 .x{cursor:pointer; color:var(--text-3); font-size:13px}
.chip2 .x:hover{color:var(--accent)}
.chips2 input{flex:1; min-width:100px; background:transparent; border:0; outline:none; color:var(--text); font-size:13px}
.banner{display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:10px; border:1px solid var(--border-soft); background:var(--surface); margin:16px 0; font-size:14px}
.banner--work{color:var(--review)} .banner--err{color:var(--accent)}

/* ask / search */
.ask-in{display:flex; gap:8px; margin-top:10px}
.ask-in input{flex:1; background:var(--surface-2); border:1px solid var(--border); border-radius:9px; padding:10px 12px; color:var(--text); font-size:14px; outline:none}
.ask-in input:focus{border-color:var(--accent)}
.askans{display:flex; flex-direction:column; gap:12px; margin-top:14px}
.askans .qa{display:flex; flex-direction:column; gap:6px}
.askans .q{align-self:flex-end; max-width:85%; background:var(--accent-soft); color:var(--text); border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); border-radius:12px 12px 3px 12px; padding:8px 12px; font-size:14px}
.askans .a{align-self:flex-start; max-width:92%; background:var(--surface); border:1px solid var(--border-soft); border-radius:12px 12px 12px 3px; padding:10px 13px; font-size:14px; line-height:1.55; white-space:pre-wrap}
.askans .a[data-loading]{color:var(--text-3)}
.searchres .ans{background:var(--surface-2); border:1px solid var(--border-soft); border-radius:11px; padding:13px 15px; font-size:14px; line-height:1.55; white-space:pre-wrap; margin-top:6px}
.srefs{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.srefs .chip{cursor:pointer}

/* speakers editor */
.speakers{display:flex; flex-wrap:wrap; gap:10px}
.spk{display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border-soft); border-radius:9px; padding:6px 10px 6px 6px}
.spk-in{background:transparent; border:0; border-bottom:1px solid transparent; color:var(--text); font-size:13.5px; outline:none; width:140px; padding:2px 0}
.spk-in:focus{border-bottom-color:var(--accent)}
.spk-in::placeholder{color:var(--text-3)}
.spk-merge{background:var(--surface-2); border:1px solid var(--border); border-radius:7px; color:var(--text-3); font-size:11px; padding:3px 5px; outline:none; cursor:pointer}
.spk-merge:hover{color:var(--text-2)}

/* talk-time — proportional speaking-share bar + legend */
.talk{background:var(--surface); border:1px solid var(--border-soft); border-radius:11px; padding:15px 16px}
.talk-bar{display:flex; height:12px; border-radius:6px; overflow:hidden; background:var(--surface-2); gap:2px}
.talk-seg{height:100%; min-width:3px; transition:opacity .15s}
.talk-bar:hover .talk-seg{opacity:.55}
.talk-bar .talk-seg:hover{opacity:1}
.talk-leg{display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:13px}
.talk-item{display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--text-2)}
.talk-item i{width:9px; height:9px; border-radius:3px; flex:none}
.talk-item .talk-nm{color:var(--text)}
.talk-item .talk-d{color:var(--text-2)}
.talk-item .talk-p{color:var(--text-3); font-size:12px}

/* account & team settings — built on the app's native form / list patterns */
.modal--wide{max-width:540px;}
.modal--task{max-width:600px;}
textarea.grow{resize:none; overflow:hidden}
.set-block{margin-top:26px;}
.set-block:first-child{margin-top:2px;}
.set-block .sec-lbl{margin:0 0 12px;}
.prof-head{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
.prof-name{font-size:16px; font-weight:700; letter-spacing:-.01em;}
.prof-sub{font-size:12.5px; color:var(--text-3); margin-top:3px;}
.set-form{display:flex; flex-direction:column; gap:14px;}
.set-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.set-actions{display:flex; justify-content:flex-end;}
.ic-note{font-size:12px; color:var(--text-3); line-height:1.5;}
.team-count{font-family:"JetBrains Mono",monospace; color:var(--text-3); letter-spacing:0;}
.urow{display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--border-soft);}
.urow:last-child{border-bottom:0;}
.urow.off{opacity:.5;}
.urow .ui{flex:1; min-width:0;}
.urow .un{font-size:14px; font-weight:600; display:flex; align-items:center; gap:7px; letter-spacing:-.01em;}
.urow .ue{font-size:12px; color:var(--text-3); font-family:"JetBrains Mono",monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:1px;}
.youtag,.offtag{font-size:9.5px; font-weight:700; letter-spacing:.05em; padding:1px 6px; border-radius:5px; text-transform:uppercase;}
.youtag{color:var(--accent); background:var(--accent-soft);}
.offtag{color:var(--text-3); background:var(--surface-3);}
.urow .fsel{flex:none;}
.urow-act{display:flex; gap:2px; flex:none;}
.uicon{width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border:1px solid transparent; background:transparent; border-radius:8px; color:var(--text-3); cursor:pointer; transition:.14s}
.uicon svg{width:15px; height:15px}
.uicon:hover{background:var(--surface-2); color:var(--text)}
.uicon.danger:hover{background:var(--accent-soft); color:var(--accent)}
@media (max-width:520px){ .set-form .row2{grid-template-columns:1fr;} .urow{flex-wrap:wrap;} .urow .ui{flex:1 1 55%;} }
/* meeting properties panel */
.props{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; background:var(--surface); border:1px solid var(--border-soft); border-radius:12px; padding:4px 18px; margin:0 0 14px}
.prop{display:flex; align-items:center; gap:12px; min-height:44px; border-bottom:1px solid var(--border-soft)}
.props .prop:nth-last-child(1),.props .prop:nth-last-child(2){border-bottom:0}
.prop-k{width:64px; flex:none; color:var(--text-3); font-size:11.5px; font-weight:600}
.prop .fsel{flex:1; min-width:0; border-color:transparent; background:transparent; padding-left:0; font-size:13.5px; color:var(--text); font-weight:500; cursor:pointer}
.prop .fsel:hover{color:var(--accent-2)}
.prop .fsel:focus{border-color:var(--accent); background:var(--surface-2); padding:6px 9px}
.prop-v{flex:1; font-size:13.5px; color:var(--text); font-weight:500}

/* meeting action bar */
.d-actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 24px}
.act{display:inline-flex; align-items:center; gap:7px; background:var(--surface-2); color:var(--text-2); border:1px solid var(--border); border-radius:9px; padding:8px 13px; font-weight:600; font-size:13px; cursor:pointer; text-decoration:none; transition:.14s}
.act svg{width:15px; height:15px; opacity:.85}
.act:hover{color:var(--text); border-color:var(--text-3)}
.act--accent{color:var(--accent); border-color:color-mix(in srgb,var(--accent) 40%,transparent); background:var(--accent-soft)}
.act--accent:hover{border-color:var(--accent)}
.act-link{background:none; border:0; color:var(--text-3); font-size:12.5px; font-weight:500; cursor:pointer; padding:8px 4px; text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:3px}
.act-link:hover{color:var(--text-2)}
@media (max-width:560px){ .props{grid-template-columns:1fr} .props .prop:nth-last-child(2){border-bottom:1px solid var(--border-soft)} }
.rtmpl-row{display:flex; align-items:center; justify-content:center; gap:10px; margin:14px 0 4px}
.rtmpl-lbl{color:var(--text-3); font-size:13px; font-weight:600}
.vis-badge{font-size:12.5px; font-weight:600; color:var(--text-2); background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:6px 10px}
.vis-badge.priv{color:var(--accent); border-color:transparent; background:var(--accent-soft)}
.vis-owner{font-size:12px; color:var(--text-3); font-weight:500}
.mlock{color:var(--text-3); font-size:11px}
.ass-hint{font-size:11.5px; color:var(--text-3); margin-top:5px; min-height:14px}
.ass-hint .ok{color:var(--done)}

/* chat over all meetings */
.chatv{display:grid; grid-template-columns:250px 1fr; height:100%; overflow:hidden}
.chatlist{border-right:1px solid var(--border-soft); padding:16px 12px; display:flex; flex-direction:column; gap:12px; overflow:auto; min-height:0}
.chat-new{width:100%; padding:9px}
.chats{display:flex; flex-direction:column; gap:2px; min-height:0}
.chat-item{display:flex; align-items:center; gap:8px; padding:9px 10px; border-radius:8px; cursor:pointer; color:var(--text-2)}
.chat-item:hover{background:var(--surface-2)}
.chat-item.on{background:var(--surface-2); color:var(--text)}
.chat-item .t{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; font-weight:500}
.chat-item .x{opacity:0; color:var(--text-3); font-size:12px; flex:none}
.chat-item:hover .x{opacity:1}
.chat-item .x:hover{color:var(--accent)}
.chat-none{color:var(--text-3); font-size:12.5px; padding:8px 10px}
.chatmain{display:flex; flex-direction:column; min-height:0; min-width:0}
.chatmsgs{flex:1; overflow:auto; padding:26px clamp(16px,5vw,60px); display:flex; flex-direction:column; gap:16px}
.cmsg{max-width:740px; font-size:15px; line-height:1.6}
.cmsg.user{align-self:flex-end; background:var(--accent-soft); border-radius:14px 14px 4px 14px; padding:11px 15px; white-space:pre-wrap}
.cmsg.bot{align-self:flex-start}
.cmsg.bot .body{white-space:pre-wrap}
.cmsg.thinking{color:var(--text-3)}
.crefs{display:flex; flex-wrap:wrap; gap:6px; margin-top:11px}
.cref{font-size:12px; color:var(--text-2); background:var(--surface-2); border:1px solid var(--border-soft); border-radius:8px; padding:4px 10px; cursor:pointer; display:inline-flex; gap:6px; align-items:center}
.cref svg{width:12px; height:12px; color:var(--accent); flex:none}
.cref:hover{border-color:var(--accent); color:var(--text)}
.chatbar{border-top:1px solid var(--border-soft); padding:14px clamp(16px,5vw,60px); display:flex; gap:10px; align-items:flex-end}
.chatbar textarea{flex:1; max-height:180px}
.chat-welcome{margin:auto; text-align:center; color:var(--text-3); max-width:440px; line-height:1.6}
.chat-welcome .cw-i{font-size:36px; margin-bottom:12px}
.chat-welcome .cw-t{font-size:17px; font-weight:700; color:var(--text); margin-bottom:8px}
.chat-welcome .cw-ex{margin-top:14px; font-size:12.5px; color:var(--text-3)}
@media (max-width:720px){ .chatv{grid-template-columns:1fr} .chatlist{display:none} }

/* editable participants */
.parts{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.ppill{display:inline-flex; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border-soft); border-radius:8px; padding:4px 8px 4px 6px}
.ppill .av{width:22px; height:22px; font-size:10px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-weight:700; flex:none}
.ppart{background:transparent; border:0; border-bottom:1px solid transparent; color:var(--text); font-size:13.5px; outline:none; padding:2px 0; min-width:36px}
.ppart:focus{border-bottom-color:var(--accent)}
.ppill .x{cursor:pointer; color:var(--text-3); font-size:12px; line-height:1}
.ppill .x:hover{color:var(--accent)}
.ppart-add{background:var(--surface-2); border:1px dashed var(--border); border-radius:8px; color:var(--text-2); font-size:13px; outline:none; padding:5px 10px; min-width:120px}
.ppart-add:focus{border-style:solid; border-color:var(--accent)}

/* labels */
.lchips{display:flex; flex-wrap:wrap; gap:5px; margin:-2px 0 9px}
.lchip{font-size:10.5px; font-weight:600; padding:1px 7px; border-radius:5px}
.lblpick{display:flex; flex-wrap:wrap; gap:7px}
.lbtag{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; padding:5px 10px; border-radius:8px; border:1px solid var(--border); background:var(--surface-2); color:var(--text-2); cursor:pointer}
.lbtag .d{width:8px;height:8px;border-radius:3px;background:var(--lc,var(--text-3))}
.lbtag.on{color:var(--text); border-color:color-mix(in srgb,var(--lc) 55%,var(--border)); background:color-mix(in srgb,var(--lc) 14%,transparent)}
.lbtag.add{color:var(--accent); border-style:dashed}
.lblnew{background:var(--surface-2); border:1px solid var(--accent); border-radius:8px; padding:5px 10px; color:var(--text); font-size:12.5px; outline:none}

/* command palette */
.palette-bg{position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:100; display:flex; justify-content:center; align-items:flex-start; padding:12vh 20px 20px}
.palette{width:100%; max-width:560px; background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; align-self:flex-start}
.pal-in{width:100%; border:0; border-bottom:1px solid var(--border-soft); background:transparent; color:var(--text); font-size:16px; padding:16px 18px; outline:none}
.pal-list{max-height:52vh; overflow:auto; padding:6px}
.pal-row{display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:8px; cursor:pointer}
.pal-row.on{background:var(--surface-3)}
.pal-row .pl{flex:1; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pal-row .ph{font-family:"JetBrains Mono",monospace; font-size:11px; color:var(--text-3); white-space:nowrap}
.pal-empty{padding:18px; text-align:center; color:var(--text-3); font-size:13px}

@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:fixed; z-index:45; width:250px; height:100%; transform:translateX(-100%); transition:.2s}
  .side.on{transform:none}
  .burger{display:grid!important}
  .ov .tile{grid-column:span 6} .ov .panel.half{grid-column:span 12}
}
.fsel{background:var(--surface); border:1px solid var(--border); color:var(--text-2); border-radius:8px; padding:6px 9px; font-size:12.5px; font-weight:500; outline:none; cursor:pointer}
.fsel:focus{border-color:var(--accent)}
.menu{position:fixed; background:var(--surface-3); border:1px solid var(--border); border-radius:9px; box-shadow:var(--shadow); padding:5px; z-index:70; min-width:168px}
.menu button{display:block; width:100%; text-align:left; background:none; border:0; color:var(--text); font-size:13px; padding:8px 10px; border-radius:6px}
.menu button:hover{background:var(--surface-2)}
.menu button.danger{color:var(--accent)}
.burger{display:none; width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-2);place-items:center}
@media (prefers-reduced-motion:reduce){ *{transition:none!important; animation:none!important} }
.card,.navi,.chip,.iconbtn,.mrow{transition:.14s}

/* ================= ПАМЯТЬ ПРОЕКТА =================
   Живой конспект, обещания, расхождения. Плотность как у остального
   интерфейса; цветом выделяется только то, что требует внимания. */

.loading{padding:60px 20px; text-align:center; color:var(--text-3)}

.pwrap{max-width:900px; margin:0 auto; padding:22px 24px 80px}
.phead{display:flex; align-items:flex-start; gap:18px; margin-bottom:22px}
.ph__t{margin:0 0 5px; font-size:22px; font-weight:700; letter-spacing:-.015em;
  display:flex; align-items:center; gap:9px}
.ph__t .dot{width:10px; height:10px; border-radius:3px; flex:none}
.ph__s{color:var(--text-2); font-size:13.5px; line-height:1.5; max-width:62ch}
.phead .btn-ghost{margin-left:auto; flex:none; white-space:nowrap}

/* --- карточки проектов --- */
.pgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(272px,1fr)); gap:14px}
.pcard{display:block; text-decoration:none; color:inherit; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius); padding:16px 17px}
.pcard:hover{border-color:var(--text-3)}
.pcard__h{display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-weight:650; font-size:15px; margin-bottom:9px}
.pcard__h .dot{width:9px; height:9px; border-radius:3px; flex:none}
.pcard__state{color:var(--text-2); font-size:13.5px; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden}
.pcard__meta{margin-top:11px; color:var(--text-3); font-size:12px}
.pcard__meta .warn{color:var(--review); font-weight:600}

/* --- секции конспекта --- */
.dsec{margin-bottom:28px}
.dsec__t{margin:0 0 11px; font-size:13px; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; color:var(--text-3); display:flex; align-items:center; gap:8px}
.dsec__t .cnt{background:var(--surface-3); color:var(--text-2); border-radius:20px;
  padding:1px 8px; font-size:11px; letter-spacing:0}
.dsec--alert .dsec__t{color:var(--review)}
.dsec--alert .dsec__t .cnt{background:var(--review-s); color:var(--review)}

.dstate{margin:0; font-size:15.5px; line-height:1.65; color:var(--text)}
.dlist{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px}
.dlist li{position:relative; padding-left:18px; font-size:14.5px; line-height:1.55; color:var(--text-2)}
.dlist li::before{content:''; position:absolute; left:3px; top:9px; width:5px; height:5px;
  border-radius:50%; background:var(--text-3)}
.dwatch li::before{background:var(--review); border-radius:1px}
.ddec li{padding-left:0; display:flex; gap:11px; align-items:baseline}
.ddec li::before{display:none}
.ddate{flex:none; color:var(--text-3); font-size:12px;
  font-family:"JetBrains Mono",ui-monospace,monospace; min-width:52px}

.dwarn{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
  padding:14px 16px; color:var(--text-2); font-size:13.5px; margin-bottom:24px}

/* --- обещания --- */
.pmlist{display:flex; flex-direction:column; gap:10px}
.pm{background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:13px 15px}
.pm__top{display:flex; align-items:center; gap:9px; margin-bottom:6px}
.pm__who{font-weight:650; font-size:13.5px}
.pm__menu{width:26px; height:26px; font-size:15px; line-height:1; border:none;
  background:transparent; color:var(--text-3)}
.pm__menu:hover{color:var(--text)}
.pm__what{font-size:14.5px; line-height:1.5}
.pm__quote{margin-top:7px; padding-left:11px; border-left:2px solid var(--border);
  color:var(--text-3); font-size:13px; line-height:1.5; font-style:italic}
.pm__note{margin-top:7px; color:var(--text-2); font-size:13px}
.pm__meta{margin-top:9px; color:var(--text-3); font-size:12px}
.pm__meta .sep, .pcard__meta .sep{margin:0 7px; opacity:.5}
.pm__link{color:var(--text-2); text-decoration:none; border-bottom:1px solid var(--border)}
.pm__link:hover{color:var(--text)}

.chip.ps-open{background:var(--new-s); color:var(--new); border-color:transparent}
.chip.ps-conf{background:var(--work-s); color:var(--work); border-color:transparent}
.chip.ps-shift{background:var(--review-s); color:var(--review); border-color:transparent}
.chip.ps-done{background:var(--done-s); color:var(--done); border-color:transparent}
.chip.ps-stale{background:var(--accent-soft); color:var(--accent); border-color:transparent}
.chip.ps-drop{background:var(--surface-3); color:var(--text-3); border-color:transparent}
.pm .chip, .dv .chip{padding:3px 9px; font-size:11.5px; border-radius:6px; gap:5px}

/* --- расхождения --- */
.dvlist{display:flex; flex-direction:column; gap:11px}
.dv{background:var(--surface); border:1px solid var(--border);
  border-left:2px solid var(--review); border-radius:var(--radius); padding:13px 15px}
.dv--high{border-left-color:var(--accent)}
.dv__top{display:flex; align-items:center; gap:8px; margin-bottom:7px}
.dv__x{width:26px; height:26px; border:none; background:transparent; color:var(--text-3); font-size:13px}
.dv__x:hover{color:var(--text)}
.dv__sum{font-size:14.5px; line-height:1.5}
.dv__ba{display:grid; grid-template-columns:1fr; gap:9px; margin-top:11px}
@media(min-width:640px){ .dv__ba{grid-template-columns:1fr 1fr} }
.dv__col{background:var(--surface-2); border-radius:8px; padding:10px 12px;
  font-size:13px; line-height:1.5; color:var(--text-2)}
.dv__col .lb{display:block; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-3); margin-bottom:4px}
.dv__col--after{background:var(--review-s)}

.chip.dk-req{background:var(--work-s); color:var(--work); border-color:transparent}
.chip.dk-due{background:var(--review-s); color:var(--review); border-color:transparent}
.chip.dk-dec{background:var(--new-s); color:var(--new); border-color:transparent}
.chip.dk-con{background:var(--accent-soft); color:var(--accent); border-color:transparent}
.chip.dk-hot{background:var(--accent); color:var(--accent-ink); border-color:transparent}

/* --- список встреч проекта --- */
.mlist{display:flex; flex-direction:column}
.mrow{display:flex; gap:14px; align-items:baseline; padding:10px 2px; text-decoration:none;
  color:inherit; border-bottom:1px solid var(--border-soft)}
.mrow:last-child{border-bottom:none}
.mrow:hover .mrow__t{color:var(--accent)}
.mrow__d{flex:none; color:var(--text-3); font-size:12px; min-width:54px}
.mrow__t{font-size:14px}
.cnt--warn{background:var(--accent); color:var(--accent-ink)}

/* --- страница проекта: архив под раскрывашками --- */
.mut{color:var(--text-3)}
.pcard__h .nm{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pcard__alarm{display:flex; flex-wrap:wrap; gap:6px; margin:-3px 0 9px}
.pcard__state{-webkit-line-clamp:3}

/* три коротких блока рядом, если хватает ширины */
.dcols{display:grid; grid-template-columns:1fr; gap:0}
@media(min-width:760px){
  .dcols{grid-template-columns:1fr 1fr; gap:0 32px}
  .dcols .dblock{margin-bottom:26px}
}
.dblock .dlist li{font-size:14px}

details.more{margin-top:8px}
details.more > summary{list-style:none; cursor:pointer; font-size:12.5px; color:var(--text-3);
  padding:3px 0; display:inline-flex; align-items:center; gap:5px}
details.more > summary::-webkit-details-marker{display:none}
details.more > summary::before{content:'+'; font-size:13px; line-height:1}
details.more[open] > summary::before{content:'−'}
details.more > summary:hover{color:var(--text)}
details.more .dlist{margin-top:8px}

details.fold{border-top:1px solid var(--border); margin-top:4px}
details.fold > summary{list-style:none; cursor:pointer; padding:14px 0;
  display:flex; align-items:center; gap:9px; user-select:none}
details.fold > summary::-webkit-details-marker{display:none}
details.fold > summary::after{content:''; width:7px; height:7px; margin-left:2px;
  border-right:1.6px solid var(--text-3); border-bottom:1.6px solid var(--text-3);
  transform:rotate(45deg) translateY(-2px)}
details.fold[open] > summary::after{transform:rotate(-135deg) translateY(-2px)}
details.fold > summary:hover .fold__t{color:var(--text)}
.fold__t{font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--text-3)}
details.fold > summary .cnt{background:var(--surface-3); color:var(--text-2);
  border-radius:20px; padding:1px 8px; font-size:11px; letter-spacing:0}
details.fold > *:not(summary){margin-bottom:20px}

.darch{margin-bottom:18px}
.darch__h{display:block; font-size:12.5px; color:var(--text-3); text-decoration:none; margin-bottom:7px}
.darch__h:hover{color:var(--accent)}
.darch .dlist li{font-size:14px}

/* --- роли в проекте --- */
.roles{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px}
.roles__me{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px}
.roles__me .lb{font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-3); margin-right:2px}
.roles__me .chip{padding:4px 11px; font-size:12.5px; border-radius:7px; cursor:pointer}
.roles__me .chip.on{background:var(--accent); color:var(--accent-ink); border-color:transparent}
.roles__list{margin-top:14px; padding-top:12px; border-top:1px solid var(--border-soft);
  display:flex; flex-direction:column; gap:8px}
.rolerow{display:flex; align-items:center; gap:10px}
.rolerow__n{flex:1; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rolerow select, .pmrow select{background:var(--surface-2); color:var(--text); border:1px solid var(--border);
  border-radius:7px; padding:5px 8px; font-size:12.5px; font-family:inherit}

/* направление обязательства */
.dir-mine{color:var(--accent)}
.dir-owed{color:var(--work)}
.dir-wait{color:var(--review)}
.dir-ours{color:var(--done)}
.dir-unk{color:var(--text-3)}
.dsec__t.dir-mine .cnt{background:var(--accent-soft); color:var(--accent)}
.dsec__t.dir-owed .cnt{background:var(--work-s); color:var(--work)}
.dsec__t.dir-wait .cnt{background:var(--review-s); color:var(--review)}

/* --- код: лента изменений и устройство системы --- */
.chlist{display:flex; flex-direction:column}
.chrow{display:flex; gap:10px; align-items:baseline; padding:8px 2px;
  border-bottom:1px solid var(--border-soft); font-size:14px; line-height:1.45}
.chrow:last-child{border-bottom:none}
.chrow__d{flex:none; color:var(--text-3); font-size:12px; min-width:52px}
.chrow__k{flex:none; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:2px 7px; border-radius:5px; background:var(--surface-3); color:var(--text-3)}
.ck-added{background:var(--done-s); color:var(--done)}
.ck-removed{background:var(--accent-soft); color:var(--accent)}
.ck-values,.ck-columns{background:var(--work-s); color:var(--work)}
.ck-logic{background:var(--review-s); color:var(--review)}
.chrow__t{flex:1}

.sysgrp{margin-bottom:20px}
.sysgrp__t{font-size:12px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--text-3); margin-bottom:8px}
.sysrow{padding:7px 0; border-bottom:1px solid var(--border-soft)}
.sysrow:last-child{border-bottom:none}
.sysrow__n{font-size:14px; font-weight:600}
.sysrow__v{display:block; font-size:13px; color:var(--text-2); line-height:1.5; margin-top:2px}
