@font-face{font-family:Onest;src:url(/fonts/onest-400.woff2) format('woff2'),url(/fonts/onest-400.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Onest;src:url(/fonts/onest-500.woff2) format('woff2'),url(/fonts/onest-500.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Onest;src:url(/fonts/onest-600.woff2) format('woff2'),url(/fonts/onest-600.ttf) format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Onest;src:url(/fonts/onest-700.woff2) format('woff2'),url(/fonts/onest-700.ttf) format('truetype');font-weight:700;font-display:swap}
:root{--bg:#000;--card:#161618;--card2:#1E1E21;--line:#242427;--line2:#2A2A2E;--ink:#F4F2EE;--ink2:#D9D6D0;--mute:#9A9AA0;--mute2:#7C7A76;--accent:#EF9740;--red:#FF6B60;--green:#5BC98A;--blue:#6FA8FF;--grey:#C9C7C2;
--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Onest,-apple-system,BlinkMacSystemFont,'SF Pro Text',system-ui,sans-serif;font-size:15px;-webkit-text-size-adjust:100%}
body{min-height:100dvh;overscroll-behavior-y:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* заставка */
.splash{position:fixed;inset:0;z-index:100;background:#000;display:flex;align-items:center;justify-content:center;transition:opacity .32s}
.splash.out{opacity:0;pointer-events:none}
.splash-logo{position:relative;width:207px;height:72px}
.splash-logo img{position:absolute;inset:0;width:207px;height:72px;animation:logoIn .7s .15s ease-out both}
.splash-glow{position:absolute;left:calc(81.5% - 150px);top:calc(49.4% - 150px);width:300px;height:300px;border-radius:50%;
background:radial-gradient(circle closest-side,rgba(239,151,64,.55),rgba(239,151,64,.15) 50%,rgba(239,151,64,0));animation:coronaIn 1.1s cubic-bezier(.2,.7,.2,1) both,breathe 2.4s 1.1s ease-in-out infinite}
@keyframes logoIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes coronaIn{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:none}}
@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}
@keyframes tileIn{0%{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
.anim>*{animation:tileIn .42s cubic-bezier(.2,.8,.2,1) both}
.anim>*:nth-child(2){animation-delay:.05s}.anim>*:nth-child(3){animation-delay:.1s}.anim>*:nth-child(4){animation-delay:.15s}.anim>*:nth-child(5){animation-delay:.2s}.anim>*:nth-child(6){animation-delay:.25s}

/* раскладка */
.layout{display:flex;min-height:100dvh}
.left{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;padding:calc(12px + var(--sat)) 16px 0}
.right{display:none}
@media (min-width:740px){
  .layout{height:100dvh}
  .left{flex:0 0 380px;border-right:1px solid #1F1F22;overflow:hidden}
  .right{display:flex;flex:1;min-width:0;overflow-y:auto;padding:calc(24px + var(--sat)) 32px calc(24px + var(--sab))}
  .right>.pane{max-width:680px;width:100%}
  .list{overflow-y:auto}
}
@media (min-width:1100px){.left{flex-basis:420px}}

.top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px}
.logo-btn{border:none;background:none;padding:0;height:48px;display:flex;align-items:center}
.logo-btn img{width:112px;height:auto;display:block}
.pill{height:44px;display:flex;align-items:center;gap:8px;padding:0 12px 0 4px;border-radius:22px;border:1px solid var(--line2);background:#141416;font-weight:500;font-size:14px;white-space:nowrap}
.pill .av{width:34px;height:34px;border-radius:17px;background:var(--accent);color:#111;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.titlebar{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.titlebar h1{margin:0;font-size:22px;font-weight:700}
.titlebar span{font-size:13px;color:var(--mute)}
.cta{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 8px 0 16px;border-radius:16px;background:var(--accent);color:#111;border:none;width:100%;font-weight:700;font-size:17px}
.cta .l{display:flex;align-items:center;gap:10px}
.cta .mic{width:44px;height:44px;border-radius:22px;background:#111;display:flex;align-items:center;justify-content:center}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (min-width:740px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{height:72px;border-radius:14px;padding:9px 9px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;background:var(--card);border:1px solid var(--line)}
.tile.on{background:#26211B;border-color:var(--accent)}
.tile b{font-size:24px;line-height:1}
.tile span{font-size:11px;line-height:1.2;color:#B9B7B2;min-height:2.4em;display:flex;align-items:flex-end}
.c-red{color:var(--red)}.c-blue{color:var(--blue)}.c-green{color:var(--green)}.c-accent{color:var(--accent)}.c-grey{color:var(--grey)}.c-mute{color:#8A8884}
.banner{border-radius:14px;padding:12px 14px;background:#1A1712;border:1px solid #3A2C1C;font-size:14px;line-height:1.4;display:flex;flex-direction:column;gap:8px}
.banner .btn{align-self:flex-start}
.listhead{display:flex;align-items:center;justify-content:space-between}
.listhead b{font-size:15px}.listhead b span{color:var(--mute);font-weight:400}
.link{border:none;background:none;color:var(--mute);font-size:14px;padding:0 4px;min-height:44px;min-width:44px}
.link.acc{color:var(--accent)}
.list{flex:1;min-height:0;border-radius:16px 16px 0 0;background:#111113;border:1px solid #222225;border-bottom:none;padding-bottom:var(--sab)}
.group{padding:8px 12px 4px;font-size:12px;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.row{display:flex;align-items:flex-start;gap:10px;width:100%;padding:11px 12px;border:none;border-bottom:1px solid #1F1F22;background:transparent;text-align:left}
.row.sel{background:#1E1B17}
.dot{width:8px;height:8px;border-radius:4px;flex-shrink:0;margin-top:6px}
.dot.red{background:var(--red)}.dot.blue{background:var(--blue)}.dot.green{background:var(--green)}.dot.accent{background:var(--accent)}.dot.grey{background:var(--grey)}.dot.mute{background:#3A3A3E}
.row .mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row .obj{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .txt{font-size:13px;line-height:1.35;color:#A9A7A2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row .side{flex-shrink:0;max-width:38%;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.who{font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;background:#232326;color:var(--ink2);white-space:nowrap}
.tag{font-size:11px;text-align:right;line-height:1.2}
.empty{padding:30px;text-align:center;color:var(--mute2)}

/* листы (телефон) и панель (iPad) */
.sheet-wrap{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(0,0,0,.6)}
.sheet{background:var(--card);border-top:1px solid var(--line2);border-radius:22px 22px 0 0;max-height:94dvh;overflow-y:auto;padding:10px 16px calc(18px + var(--sab));display:flex;flex-direction:column;gap:12px}
.sheet.full{height:94dvh}
.grab{align-self:center;width:40px;height:4px;border-radius:2px;background:#3A3A3E;flex-shrink:0}
@media (min-width:740px){.sheet-wrap.pane-mode{position:static;background:none;display:block}.sheet-wrap.pane-mode .sheet{background:none;border:none;border-radius:0;max-height:none;padding:0;overflow:visible}.sheet-wrap.pane-mode .grab{display:none}}
.pane-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6A6A6E;gap:8px}
.stage{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600}
.d-obj{font-size:21px;font-weight:700;line-height:1.2}
.d-txt{font-size:16px;line-height:1.5;color:var(--ink2);white-space:pre-wrap}
.d-meta{font-size:13px;color:var(--mute2)}
@media (min-width:740px){.d-obj{font-size:28px}.d-txt{font-size:17px}}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.steps span{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#8A8884;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.steps i{height:4px;border-radius:2px;background:#2A2A2E;display:block}
.ev{border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;background:var(--card2)}
.ev .h{font-size:12px;font-weight:600;color:var(--grey)}
.ev .b{font-size:14px;line-height:1.45;color:#E6E3DD;white-space:pre-wrap;word-break:break-word}
.ev.sys{background:none;padding:2px 2px}.ev.sys .h{font-weight:400;color:var(--mute2)}
.ev.report{background:#10231A}.ev.report .h{color:var(--green)}
.ev.rework{background:#26190C}.ev.rework .h{color:var(--accent)}
.ev.question,.ev.ext,.ev.propose{background:#0F1A2A}.ev.question .h,.ev.ext .h,.ev.propose .h{color:var(--blue)}
.ev.refuse{background:#2A1512}.ev.refuse .h{color:#FF8A80}
.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.files a{font-size:13px;color:var(--accent);background:#221B13;border-radius:8px;padding:6px 8px;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.acts.one{grid-template-columns:1fr}
.btn{min-height:48px;border-radius:12px;border:1px solid var(--line2);background:var(--card2);font-weight:700;font-size:14px;padding:6px 10px;line-height:1.2}
.btn.main{border:none;background:var(--accent);color:#111}
.btn.ok{border:none;background:var(--green);color:#0B1A10}
.btn.warn{border-color:#5A3A20;background:#22190F;color:var(--accent)}
.btn.bad{border-color:#3A2626;background:#1E1616;color:#FF8A80}
.btn:disabled{opacity:.45}
.big{height:56px;border-radius:16px;font-size:17px}
.field{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--mute)}
.inp,.ta{width:100%;border-radius:14px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font-size:16px;padding:0 14px}
.inp{height:52px}
.ta{padding:12px 14px;line-height:1.45;resize:none;min-height:110px}
.inp:focus,.ta:focus{outline:none;border-color:var(--accent)}
.sug{border-radius:14px;background:#1C1C1F;border:1px solid #2E2E32;padding:4px;display:flex;flex-direction:column}
.sug button{min-height:44px;padding:8px 12px;border:none;border-radius:10px;background:none;text-align:left;font-size:15px}
.who4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.who4 button,.chip{height:54px;border-radius:14px;border:1px solid var(--line2);background:var(--card);font-weight:700;font-size:15px;padding:0 4px}
.who4 button.on,.chip.on{border:2px solid var(--accent);background:#2A2016}
.mine{height:50px;border-radius:14px;border:1px dashed #3A3A3E;background:none;color:var(--grey);font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.mine.on{border:2px solid var(--accent);color:var(--accent);background:#2A2016}
.hint{font-size:12px;color:var(--mute2);line-height:1.4}
.date-btn{height:52px;border-radius:14px;border:1px solid var(--line2);background:var(--card);display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:16px;width:100%}
.stick{position:sticky;bottom:calc(-18px - var(--sab));margin:0 -16px calc(-18px - var(--sab));padding:12px 16px calc(12px + var(--sab));background:linear-gradient(transparent,var(--card) 30%)}
@media (min-width:740px){.stick{position:static;margin:0;padding:0;background:none}}
.commentbar{display:flex;gap:8px;align-items:flex-end;border-top:1px solid #1F1F22;padding-top:12px}
.commentbar .ta{min-height:48px;height:48px;padding:12px 14px;font-size:15px}
.sq{width:48px;height:48px;flex-shrink:0;border-radius:12px;border:1px solid var(--line2);background:var(--card);display:flex;align-items:center;justify-content:center}
.sq.acc{border:none;background:var(--accent)}
.cal{display:flex;flex-direction:column;gap:10px}
.cal-h{display:flex;justify-content:space-between;align-items:center}
.cal-h b{font-size:17px}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.cal-g .wd{font-size:12px;color:var(--mute2);padding:4px 0}
.cal-g button{height:44px;border-radius:12px;border:none;background:none;font-weight:600;font-size:15px}
.cal-g button.we{color:#D98A80}.cal-g button.today{border:1px solid var(--accent)}.cal-g button.on{background:var(--accent);color:#111}.cal-g button:disabled{color:#444446}
.menu{position:fixed;z-index:45;top:calc(64px + var(--sat));right:16px;width:250px;border-radius:16px;background:#1A1A1D;border:1px solid #2E2E32;box-shadow:0 16px 40px rgba(0,0,0,.6);padding:6px;display:flex;flex-direction:column}
@media (min-width:740px){.menu{left:170px;right:auto}}
.menu button{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:8px 12px;border:none;border-radius:12px;background:none;text-align:left;font-size:15px}
.menu button.on{background:#2A2520}
.menu small{color:var(--mute);font-size:12px;display:block}
.menu hr{border:none;border-top:1px solid #2E2E32;margin:4px 6px}
.toast{position:fixed;left:50%;bottom:calc(24px + var(--sab));transform:translateX(-50%);z-index:200;background:#2A2A2E;color:var(--ink);padding:12px 16px;border-radius:12px;font-size:14px;max-width:90vw;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.dialog{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:24px}
.dialog>div{background:#1A1A1D;border:1px solid #2E2E32;border-radius:18px;padding:18px;max-width:360px;width:100%;display:flex;flex-direction:column;gap:14px}
.linkrow{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid #242427}
.linkrow input{font-size:12px}

.sheet-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px 0 2px}
.sheet-top .grab{margin:0}
.logo-btn.sm img{width:92px}
@media (min-width:740px){.sheet-top{display:none}}
#caldlg{padding:8px}#caldlg>div{padding:14px}#caldlg .cal-g{gap:2px}
