:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,sans-serif;background:#182329;color:#eee9db}*{box-sizing:border-box}body{margin:0}header{padding:17px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #3a4649;font-weight:750;font-size:18px;background:#202d33}.logo{color:#efbb78;margin-right:5px}header small{display:block;font-size:10px;font-weight:400;color:#a3b3b5;margin-top:3px}.live{font-size:11px;text-align:right;font-weight:400}time{display:block;font-variant-numeric:tabular-nums;margin-bottom:5px}#connection{color:#bac6c4}#connection i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#e8b46c;margin-right:4px}#connection.connected i{background:#8dcfa4}main{max-width:800px;margin:auto;padding:18px 12px}.intro{padding:0 5px}.intro span,.eyebrow{font-size:10px;letter-spacing:2px;color:#d0b18a;font-weight:700}.intro p{font-size:12px;color:#a9babd;margin:7px 0 15px}.scene{overflow:hidden;border:1px solid #52605d;border-radius:12px;background:#bc956d;box-shadow:0 12px 35px #0004}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:manipulation}nav{display:flex;gap:6px;margin:12px 0 20px;flex-wrap:wrap}nav button{border:1px solid #495a5b;background:#26373b;color:#e7e6dd;border-radius:20px;padding:8px 10px;font:inherit;font-size:11px;cursor:pointer}nav button i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.board{background:#223136;border:1px solid #425153;border-radius:12px;padding:14px 10px}.board-title{font-size:11px;font-weight:700;letter-spacing:1.5px;margin:0 4px 15px}.board-title span{float:right;letter-spacing:0;color:#a8b7b7;font-weight:400}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.columns>div{min-width:0}h2{font-size:10px;margin:0 0 10px;white-space:nowrap}h2 i{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:4px}.todo{background:#e1c58b}.progress{background:#ed9f64}.done{background:#82c49e}ul{margin:0;padding:0;list-style:none;min-height:45px}ul:empty:after{content:'All clear';font-size:10px;color:#728889}li.card{background:#344549;border:1px solid #4b5b5d;border-radius:5px;padding:8px 6px;margin:0 0 6px;font-size:11px;overflow-wrap:anywhere;line-height:1.4}li.card small{display:block;font-size:9px;color:#b5c2ba;margin-top:5px}footer{text-align:center;font-size:10px;color:#8ba0a2;padding:18px}#shade{position:fixed;inset:0;background:#0008;z-index:2}aside{position:fixed;bottom:0;left:0;right:0;max-height:75vh;overflow:auto;padding:25px 22px;background:#24353b;border:1px solid #5a6a68;border-radius:20px 20px 0 0;z-index:3;box-shadow:0 -10px 40px #0005}aside h1{font-size:25px;margin:10px 0 5px}aside p{font-size:12px;color:#bbc8c5}#close{float:right;font-size:27px;color:#eee;background:none;border:0;cursor:pointer}ol{padding:0;list-style:none}ol li{padding:12px 0;border-top:1px solid #425357;font-size:13px;line-height:1.5}ol time{font-size:10px;color:#95afae;margin:0}ol b{font-size:10px;color:#d9b687;font-weight:500;text-transform:uppercase;margin-left:8px}[hidden]{display:none!important}@media(min-width:700px){main{padding:24px 28px}.scene{max-width:560px;margin:auto}nav{justify-content:center}header{padding:18px 30px}aside{left:auto;width:360px;top:0;max-height:100vh;border-radius:0}.columns{gap:16px}h2{font-size:12px}}
.scene{position:relative}#status-tags{position:absolute;inset:0;pointer-events:none}.status-tag{position:absolute;transform:translateX(-50%);width:31%;max-width:170px;border:1px solid var(--agent-color);border-radius:5px;background:#19282df5;color:#f8efdc;font:9px/1.35 system-ui,sans-serif;padding:5px 4px;pointer-events:auto;cursor:pointer;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:30px;text-align:center;box-shadow:2px 2px #0003}.status-tag.selected{outline:2px solid #f7d49a;outline-offset:2px}.task-history{margin:8px 0 22px;background:#202f34;border:1px solid #425153;border-radius:12px;padding:15px 10px}.tasks-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 4px 13px}.tasks-heading h2{font-size:18px;margin:0}#state-status{font-size:10px;color:#b4c4c5;text-align:right}#task-columns{display:flex;gap:10px;overflow-x:auto;padding:3px 3px 13px;position:relative;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.agent-column{flex:0 0 214px;min-width:0;max-height:440px;overflow-y:auto;background:#26373b;border:1px solid #4a5b5d;border-radius:8px;padding:11px;scroll-snap-align:start}.agent-column h3{font-size:14px;color:var(--agent-color);margin:0 0 12px;position:sticky;top:-11px;background:#26373b;padding:7px 0;z-index:1}.agent-column.busy{border-color:var(--agent-color);box-shadow:inset 0 3px var(--agent-color)}.agent-column.selected{outline:2px solid #f7d49a;outline-offset:-2px;background:#314348}.recent-task{border-top:1px solid #4b5a5c;padding:11px 0}.recent-task p{font-size:12px;line-height:1.5;margin:7px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.recent-task small,.empty{font-size:10px;color:#b6c6c4}.task-chip{font-size:9px;padding:3px 6px;border-radius:4px;background:#48575a;color:#f4f0e5}.task-chip.in_progress{background:#80532e}.task-chip.done{background:#315c47}.task-chip.error{background:#803e43}button:focus-visible,a:focus-visible,#task-columns:focus-visible{outline:2px solid #f7d49a;outline-offset:3px}@media(min-width:700px){.status-tag{font-size:11px;padding:6px}.task-history{margin-top:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* old SSE kanban replaced by the per-agent «Задачи» panel (/state) */ .board{display:none}
/* J2 «Ночная смена»: тёмно-синий, неоновые акценты, один шрифт ui-monospace */
:root{font-family:ui-monospace,Menlo,Consolas,monospace;background:#0b1020;color:#d7e3ff}
body{background:radial-gradient(1200px 600px at 50% -10%,#1a2350,#0b1020);color:#d7e3ff;font-size:13px}
header{background:rgba(11,16,32,.85);border-bottom:1px solid #22305e}
.logo{color:#5ef2ff;text-shadow:0 0 8px #5ef2ff}
header small,.intro p,#state-status,.recent-task small,.empty{color:#7f8fbf}
.intro span,.eyebrow{color:#ff5ec8;letter-spacing:.2em;text-shadow:0 0 8px rgba(255,94,200,.6)}
.scene{border-radius:14px;box-shadow:0 0 0 1px #2a3a78,0 0 40px rgba(94,242,255,.15)}
nav button{background:#111a38;border:1px solid #2a3a78;color:#bfe9ff;border-radius:8px}
.status-tag{background:rgba(9,14,30,.92);color:#e6f6ff;border:1px solid #5ef2ff;border-radius:8px;box-shadow:0 0 10px rgba(94,242,255,.35);font-size:11px}
.task-history{background:rgba(17,26,56,.8);border:1px solid #22305e;border-radius:14px}
h2,.tasks-heading h2{color:#5ef2ff}
.agent-column{background:#0e1630;border:1px solid #22305e;border-radius:10px}
.agent-column h3{color:#ff5ec8}
.agent-column.busy{border-color:#5ef2ff;box-shadow:0 0 14px rgba(94,242,255,.35)}
.recent-task{border-color:#22305e}
.task-chip{border-radius:6px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.task-chip.in_progress{background:rgba(255,94,200,.18);color:#ff8fd9}
.task-chip.done{background:rgba(94,255,170,.14);color:#7dffbe}
.task-chip.error{background:rgba(255,90,90,.18);color:#ff8a8a}
.agent-column h3{background:transparent!important;padding-left:0}.status-tag{line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.status-tag{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:46%;display:block!important}

/* status tags: neon dot by state, modern sans (Avenir/SF/Segoe), no emoji */
.status-tag{font:600 11.5px 'Avenir Next','SF Pro Display','Segoe UI Variable Display','Segoe UI',system-ui,sans-serif!important;letter-spacing:.02em;
 padding:5px 10px 5px 22px!important;position:absolute;background:rgba(5,8,20,.92)!important;border:1px solid rgba(94,242,255,.55)!important;color:#e9f3ff!important}
.status-tag::before{content:'';position:absolute;left:9px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:#3cffb4;box-shadow:0 0 6px #3cffb4}
.status-tag[data-state=busy]{border-color:#ff5ec8!important}
.status-tag[data-state=busy]::before{background:#ff5ec8;box-shadow:0 0 8px #ff5ec8;animation:pulse 1.2s infinite}
.status-tag[data-state=stale]::before{background:#ffd36e;box-shadow:0 0 6px #ffd36e}
@keyframes pulse{50%{opacity:.35}}
.status-tag{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:clip;width:31%;max-width:none!important;min-height:0;text-align:left;font-size:10.5px!important;line-height:1.3!important}
.status-tag{max-height:37px;overflow:hidden!important}

/* status tags: neon dot by state, modern sans (Avenir/SF/Segoe), no emoji */
.status-tag{font:600 11.5px 'Avenir Next','SF Pro Display','Segoe UI Variable Display','Segoe UI',system-ui,sans-serif!important;letter-spacing:.02em;
 padding:5px 10px 5px 22px!important;position:absolute;background:rgba(5,8,20,.92)!important;border:1px solid rgba(94,242,255,.55)!important;color:#e9f3ff!important}
.status-tag::before{content:'';position:absolute;left:9px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:#3cffb4;box-shadow:0 0 6px #3cffb4}
.status-tag[data-state=busy]{border-color:#ff5ec8!important}
.status-tag[data-state=busy]::before{background:#ff5ec8;box-shadow:0 0 8px #ff5ec8;animation:pulse 1.2s infinite}
.status-tag[data-state=stale]::before{background:#ffd36e;box-shadow:0 0 6px #ffd36e}
@keyframes pulse{50%{opacity:.35}}
.status-tag{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:clip;width:31%;max-width:none!important;min-height:0;text-align:left;font-size:10.5px!important;line-height:1.3!important;max-height:37px;overflow:hidden!important}
/* Rooms: scene stays local; activity can optionally span all rooms. */
.room-tabs{display:grid;grid-template-columns:1.1fr 1.1fr 1fr;gap:6px;margin:8px auto 12px;max-width:560px}.room-tabs button{min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #354569;border-radius:10px;padding:9px 5px;background:#0c1228;color:#c9d6f4;font:10px ui-monospace,Menlo,Consolas,monospace;cursor:pointer}.room-tabs button.active{border-color:var(--room-accent);color:var(--room-accent);background:#17203b}.room-badge{font-size:10px;min-width:16px;background:#ffffff12;border-radius:5px;padding:2px 3px}.room-tabs button.has-update{animation:room-pulse 1.5s ease-in-out infinite}.activity-scope{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 2px 4px;font:11px ui-monospace,Menlo,Consolas,monospace;color:#b2c6e7}.activity-scope button{font:inherit;cursor:pointer;border:1px solid #4c567d;border-radius:8px;background:#111a34;color:#bed0f3;padding:8px 14px}.activity-scope button[aria-pressed=true]{border-color:#5ef2ff;color:#5ef2ff}#scene{touch-action:pan-y;transition:border-color .2s}#scene[data-room=dasha]{border-color:#b980c4;box-shadow:0 10px 30px #be63bf1c}#scene[data-room=restaurants]{border-color:#b78970;box-shadow:0 10px 30px #b868681c}#scene[data-room=dasha] .status-tag{border-color:#ae79c0}#scene[data-room=restaurants] .status-tag{border-color:#bc8772}.status-tag{width:31%}#scene[data-room=main] .status-tag,#scene[data-room=dasha] .status-tag,#scene[data-room=restaurants] .status-tag{max-width:170px}.room-tabs button:focus-visible,.activity-scope button:focus-visible{outline:2px solid #f7d49a;outline-offset:3px}@keyframes room-pulse{50%{border-color:var(--room-accent);box-shadow:0 0 12px color-mix(in srgb,var(--room-accent),transparent 60%)}}@media(min-width:700px){.room-tabs button{font-size:12px;padding:10px 7px}}@media(prefers-reduced-motion:reduce){.room-tabs button.has-update{animation:none;border-color:var(--room-accent)}}
#status-tags .status-tag[hidden]{display:none!important}.board{display:block;background:#111a38;border-color:#2a3a78}.board li.card{background:#18213d;border-color:#303f69}.scene canvas{touch-action:pan-y}
