/* Оболочка Sprintup: только то, чего нет в дизайн-системе (design/ui.css). Цвета — токены, новых цветов нет. */
.nav{grid-template-columns:repeat(var(--nav-n,5),1fr)}
.logo-slot img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.md{margin-top:var(--s-4);display:grid;gap:var(--s-3)}
.md h2{margin-top:var(--s-3)}
.md ol{padding-left:22px;display:grid;gap:8px}
.md ul{padding-left:0;list-style:none;display:grid;gap:8px}
.md ul li{display:flex;gap:10px}.md ul li::before{content:"—";color:var(--ink-3);flex:none}
.md p{line-height:1.5}
.md .callout{margin-top:var(--s-2)}
.toast{position:fixed;left:var(--s-4);right:var(--s-4);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + var(--s-3));z-index:20;
  background:var(--panel-solid);border:1px solid var(--rule);border-radius:var(--r-m);padding:var(--s-3) var(--s-4);font-size:var(--fs-s);font-weight:600;text-align:center}
body.no-nav .toast{bottom:var(--s-4)}
.keybox{font:600 var(--fs-s)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;user-select:all;padding:var(--s-3) var(--s-4);
  border-radius:var(--r-m);border:1.5px dashed var(--ink-3);background:var(--panel)}
.linkbox{font-size:var(--fs-xs);word-break:break-all;color:var(--ink-2);user-select:all}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:-2px}
.chips button.chip{font:inherit;cursor:pointer;min-height:36px;border:0}
.stepper button{width:var(--tap);min-height:48px;border:0;background:transparent;font:inherit;font-size:22px;font-weight:700;color:var(--ink);cursor:pointer}
.stepper b{flex:1;text-align:center}
select.select{appearance:none;-webkit-appearance:none;width:100%;font:inherit;font-weight:600;color:var(--ink)}
.dots button{flex:1;min-height:28px;display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0;cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;color:var(--ink);min-height:44px;outline:0}
.search:focus-within{border-color:var(--ink-3)}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.rise{animation:none}}
.offline[hidden]{display:none}
[tabindex="-1"]:focus{outline:none}
.logo-slot{border-style:solid}
.stepper button{width:56px;font-size:var(--fs-xl);font-weight:400}
/* ---- рабочее место (этап 3): лента, задачи, чат, календарь. Только токены дизайн-системы ---- */
.react{flex-wrap:wrap}
.react a,.react button{font:inherit;font-size:var(--fs-s);border:0;cursor:pointer}
.react button{min-height:var(--tap);min-width:var(--tap);padding:0 12px;border-radius:var(--r-s);background:var(--panel-2);display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink)}
.react button.on{background:var(--ink);color:var(--ground)}
button.media{width:100%;border:0;font:inherit;cursor:pointer;color:var(--ink-2)}
.media-img{margin-top:var(--s-3);width:100%;max-height:70vh;object-fit:contain;border-radius:var(--r-m);display:block;background:var(--panel-2)}
button.row{width:100%;background:none;border:0;font:inherit;text-align:left;color:inherit;cursor:pointer}
.msg button.row{padding:8px 0 0;min-height:44px;margin-top:6px}
textarea.input{min-height:120px;padding:12px var(--s-4);resize:vertical;line-height:1.45;display:block}
input.input[type=date],input.input[type=time]{appearance:none;-webkit-appearance:none}
.post p.more{margin-top:var(--s-2)}
.post .clip{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
a.callout{display:block;color:var(--ink)}
.callout .clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tick{width:var(--tap);height:var(--tap);margin:-10px -6px -10px -10px;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;flex:none;padding:0}
.task.done .t{color:var(--ink-3);text-decoration:line-through}
.task a.grow{color:inherit}
.msg{cursor:pointer}
.msg.pending .b{opacity:.65}
.msg.gone .b{font-style:italic;color:var(--ink-3)}
.msg-act{display:flex;gap:var(--s-2);margin:6px 0 0 40px}
.msg.me+.msg-act{justify-content:flex-end;margin-left:0}
.msg-act button{font:inherit;font-size:var(--fs-s);font-weight:600;min-height:40px;padding:0 14px;border-radius:var(--r-s);background:var(--panel-2);border:0;color:var(--ink);cursor:pointer}
.msg-act button.danger{color:var(--danger)}
.composer{flex-wrap:wrap}
.composer .reply{flex-basis:100%;display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-s);color:var(--ink-2);border-left:2px solid var(--ink-3);padding-left:8px;min-width:0}
.composer .reply span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.composer .reply button,.composer label.icon-btn{background:none;border:0;cursor:pointer;color:var(--ink);font:inherit}
.composer .send{border:0;cursor:pointer}
.composer .input{min-width:0}
.tabs a .n{font-variant-numeric:tabular-nums}
.people-pick{max-height:320px;overflow:auto}
.cal-day{font-size:var(--fs-xs);font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:var(--s-4) 0 var(--s-2)}
.cal-time{font-variant-numeric:tabular-nums;font-weight:700;min-width:52px;flex:none;line-height:1.3}
.stories a{flex:none;width:64px;text-align:center;color:inherit}
.unread{min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--ink);color:var(--ground);font-size:var(--fs-xs);font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;flex:none}
.opt-row{cursor:pointer;align-items:flex-start}
.msg .avatar.sm{width:32px;height:32px;font-size:14px}
.composer .reply[hidden]{display:none}
[hidden]{display:none!important}
.react{gap:6px}.react button,.react a{padding:0 10px}
.top+.tabs{position:sticky;top:calc(68px + env(safe-area-inset-top,0px));z-index:5;margin:0;padding:0 var(--s-4);background:transparent}
body.scrolled .top+.tabs{background:var(--panel-solid)}
body:has(.composer) .toast{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 76px)}
