:root,[data-theme=light]{--bg: #eef1f5;--surface: #ffffff;--surface-2: #f6f8fa;--sidebar: #16202e;--sidebar-text: #c3ccd8;--sidebar-active: #ffffff;--text: #17202c;--muted: #5e6b7c;--border: #d7dde5;--border-strong: #b8c1cc;--primary: #1f3a5f;--primary-text: #ffffff;--accent: #0e8a8a;--accent-soft: #dff2f1;--accent-text: #0a6767;--accent-btn: #0a6f6f;--accent-on: #ffffff;--info-text: #1f3a5f;--ok: #27683f;--ok-soft: #e3f1e8;--warn: #8a5308;--warn-soft: #f8eedb;--danger: #b3261e;--danger-soft: #f8e3e1;--info-soft: #e5ebf3;--shadow: 0 1px 0 rgba(16,24,40,.04);color-scheme:light}[data-theme=dark]{--bg: #0f141b;--surface: #161d27;--surface-2: #1c2531;--sidebar: #0b1017;--sidebar-text: #9aa6b5;--sidebar-active: #ffffff;--text: #e3e8ee;--muted: #8b97a6;--border: #273241;--border-strong: #3a475a;--primary: #5b86c0;--primary-text: #0b1017;--accent: #2bb3b1;--accent-soft: #123334;--accent-text: #3cc7c4;--accent-btn: #2bb3b1;--accent-on: #0b1017;--info-text: #94b4e0;--ok: #5cbf86;--ok-soft: #15301f;--warn: #e0a34a;--warn-soft: #33270f;--danger: #ef6b62;--danger-soft: #3a1715;--info-soft: #1d2a3b;--shadow: none;color-scheme:dark}:root{--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;--r: 4px;--gap: 16px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:12.5px}h1,h2,h3,h4{margin:0 0 8px;font-weight:600;letter-spacing:-.01em}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px}hr{border:0;border-top:1px solid var(--border);margin:16px 0}.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-family:var(--mono);font-weight:700;color:#fff;padding:16px 18px;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.07)}.brand small{display:block;color:var(--sidebar-text);font-weight:400;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.nav-group{padding:10px 0}.nav-group-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;padding:6px 18px;color:#93a0b1;font-family:var(--mono)}.sidebar a.nav-link{display:flex;align-items:center;gap:10px;padding:7px 18px;color:var(--sidebar-text);border-left:2px solid transparent;font-size:13.5px}.sidebar a.nav-link:hover{background:#ffffff0a;text-decoration:none;color:#fff}.sidebar a.nav-link.active{color:var(--sidebar-active);border-left-color:var(--accent);background:#ffffff0f}.nav-ico{width:16px;font-family:var(--mono);font-size:11px;opacity:.7;text-align:center}.sidebar-foot{margin-top:auto;padding:12px 18px;border-top:1px solid rgba(255,255,255,.07);font-size:12px}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 24px;position:sticky;top:0;z-index:5}.topbar .spacer{flex:1}.topbar select{width:auto;margin:0;min-width:200px}.role-chip{font-family:var(--mono);font-size:11.5px;border:1px solid var(--border);border-radius:var(--r);padding:3px 8px;color:var(--muted);white-space:nowrap}.user-mail{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.content{padding:24px;max-width:1400px;width:100%}.nav-toggle,.backdrop{display:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-title{font-size:20px;margin:0}.page-sub{color:var(--muted);margin:2px 0 0;font-size:13px}.grid{display:grid;gap:var(--gap)}.grid-2{display:grid;gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3-1{display:grid;gap:var(--gap);grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.stats{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.stack>*+*{margin-top:10px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:-16px -16px 12px;padding:10px 16px;border-bottom:1px solid var(--border)}.card-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.stat .label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.stat .value{font-family:var(--mono);font-size:24px;font-weight:600;margin:4px 0 6px}.stat .hint{font-size:12px;color:var(--muted)}.stat.accent{border-top:2px solid var(--accent)}label{display:block;font-size:12px;color:var(--muted);margin:8px 0 4px}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);padding:7px 10px;margin-bottom:8px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}button,.btn{font:inherit;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:7px 14px;border-radius:var(--r);border:1px solid var(--primary);background:var(--primary);color:var(--primary-text);cursor:pointer;white-space:nowrap;text-decoration:none}button:hover,.btn:hover{filter:brightness(1.08);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}button.accent,.btn.accent{background:var(--accent-btn);border-color:var(--accent-btn);color:var(--accent-on)}button.danger,.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.sm,.btn.sm{padding:4px 10px;font-size:12px}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden}.seg button{border:0;border-radius:0;background:var(--surface);color:var(--muted);padding:5px 12px}.seg button.on{background:var(--primary);color:var(--primary-text)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--border-strong);padding:8px 10px;background:var(--surface-2);white-space:nowrap}.table td{border-bottom:1px solid var(--border);padding:8px 10px;vertical-align:top}.table tr:hover td{background:var(--surface-2)}.table td.num,.table th.num{text-align:right;font-family:var(--mono)}.actions{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-block;font-family:var(--mono);font-size:11px;line-height:1;padding:4px 7px;border-radius:3px;border:1px solid var(--border-strong);color:var(--muted);background:var(--surface-2);white-space:nowrap;text-transform:lowercase}.badge.tone-ok,.badge.done,.badge.published{color:var(--ok);background:var(--ok-soft);border-color:transparent}.badge.tone-warn,.badge.awaiting_open_accept,.badge.awaiting_done_accept,.badge.pending_moderation{color:var(--warn);background:var(--warn-soft);border-color:transparent}.badge.tone-danger,.badge.cancelled{color:var(--danger);background:var(--danger-soft);border-color:transparent}.badge.tone-info,.badge.frozen{color:var(--info-text);background:var(--info-soft);border-color:transparent}.badge.tone-accent,.badge.in_progress,.badge.open{color:var(--accent-text);background:var(--accent-soft);border-color:transparent}.id{font-family:var(--mono);font-size:11.5px;color:var(--muted)}.progress{height:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:2px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent)}.progress.warn>span{background:var(--warn)}.progress.danger>span{background:var(--danger)}.progress-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:4px}.muted{color:var(--muted)}.error{color:var(--danger);background:var(--danger-soft);padding:8px 12px;border-radius:var(--r);margin:8px 0}.success{color:var(--ok);background:var(--ok-soft);padding:8px 12px;border-radius:var(--r);margin:8px 0}.loading{color:var(--muted);font-family:var(--mono);font-size:12.5px}.empty{border:1px dashed var(--border-strong);border-radius:var(--r);padding:20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:4px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.filters select,.filters input{width:auto;margin:0}.chat{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap)}.chat-log{min-height:360px;max-height:calc(100vh - 300px);overflow-y:auto;padding:4px}.msg{margin:0 0 14px;max-width:86%}.msg.user{margin-left:auto}.msg .who{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.06em}.msg .bubble{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r);padding:10px 12px;white-space:pre-wrap}.msg.user .bubble{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.msg .meta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chat-input{display:flex;gap:8px;border-top:1px solid var(--border);padding-top:12px;margin-top:8px}.chat-input input{margin:0}.src{border-left:2px solid var(--accent);padding:6px 10px;margin-bottom:8px;background:var(--surface-2)}.src .t{font-weight:500}.src .s{font-family:var(--mono);font-size:11px;color:var(--muted)}.mcards{display:none}.mcard{border:1px solid var(--border);border-radius:var(--r);padding:12px;margin-bottom:10px;background:var(--surface)}.mcard .top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:6px}.view-cards .mtable{display:none}.view-cards .mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.view-cards .mcard{margin:0}.mod{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--gap)}.queue-item{padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;cursor:pointer;background:var(--surface)}.queue-item.sel{border-color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.preview{white-space:pre-wrap;font-size:13.5px;line-height:1.6;max-height:60vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r);padding:14px;background:var(--surface-2)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:380px}@media (max-width: 1100px){.chat,.mod,.grid-3-1{grid-template-columns:1fr}}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:30;transform:translate(-100%);transition:transform .18s}.app.menu-open .sidebar{transform:none}.app.menu-open .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:20}.nav-toggle{display:inline-flex}.topbar{padding:0 12px;gap:8px}.topbar select{min-width:0;max-width:150px}.user-mail,.topbar .role-chip.hide-sm{display:none}.content{padding:14px}.grid-2{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat .value{font-size:19px}.mtable{display:none}.mcards{display:block}.table.responsive thead{display:none}.table.responsive tr{display:block;border-bottom:1px solid var(--border);padding:6px 0}.table.responsive td{display:flex;justify-content:space-between;gap:12px;border:0;padding:3px 4px;text-align:right}.table.responsive td:before{content:attr(data-l);color:var(--muted);font-size:11.5px;text-align:left}.msg{max-width:100%}}@media (max-width: 860px){.hide-sm-text{display:none}}.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--border)}.timeline li{position:relative;padding:0 0 14px 12px}.timeline li:before{content:"";position:absolute;left:-21px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--border-strong)}.timeline li.tl-machine:before{border-color:var(--accent)}.timeline li.tl-quota:before{border-color:var(--warn)}.timer .label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.timer-value{font-size:30px;font-weight:600;margin:6px 0 8px;letter-spacing:.02em}.timer.tone-warn .timer-value{color:var(--warn)}.timer.tone-danger .timer-value{color:var(--danger)}.timer.tone-info .timer-value{color:var(--primary)}.timer.tone-danger{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.75}}.check-row{display:flex;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--border);margin:0;color:var(--text);font-size:13.5px;cursor:pointer}.check-row input{width:auto;margin:0}.logo{display:inline-flex;align-items:center;line-height:0}.logo img{display:block;width:auto}.logo-mark{display:none!important}html[data-theme=dark] .logo-for-light,html:not([data-theme=dark]) .logo-for-dark{display:none!important}@media (max-width: 719px){.logo-compact .logo-full{display:none!important}.logo-compact .logo-mark:not(.logo-for-light):not(.logo-for-dark){display:block!important}html[data-theme=dark] .logo-compact .logo-mark.logo-for-dark,html:not([data-theme=dark]) .logo-compact .logo-mark.logo-for-light{display:block!important}}.brand .logo{margin-bottom:6px}.topbar-logo{display:none}@media (max-width: 860px){.topbar-logo{display:inline-flex;margin-right:4px}}.auth-logo{margin-bottom:18px}.legal-wrap{max-width:860px;margin:0 auto;padding:20px 16px 32px}.legal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.legal-nav{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.legal-nav a.active{font-weight:700;color:var(--text)}.legal-doc{padding:20px 24px;line-height:1.55}.legal-doc h2{margin-top:0}.draft-banner{background:var(--warn-bg, #fff4d6);color:var(--warn-text, #7a5200);border:1px solid var(--warn-border, #f0c36d);border-radius:6px;padding:8px 12px;font-weight:700;font-size:13px;margin-bottom:12px}html[data-theme=dark] .draft-banner{background:#3a2e12;color:#f3d48a;border-color:#6b5420}.legal-footer{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;font-size:12px;padding:16px 8px 8px}.legal-footer.compact{justify-content:flex-start;padding:8px 0 0}.billing-note{border:1px dashed var(--border-strong);border-radius:6px;padding:8px 12px;font-size:13px;color:var(--muted);margin:0 0 14px}.consent{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:10px 0 12px}.consent input{width:auto;margin-top:3px}@media (max-width: 600px){.legal-doc{padding:14px}}.consent-card{max-width:520px}.consent-docs{margin:8px 0 12px;padding-left:18px;line-height:1.9}.consent-check{border-bottom:0;align-items:flex-start}.consent-check input{margin-top:3px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}button.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost:hover{color:var(--text);background:var(--surface-2)}button.is-loading{cursor:progress}.spinner{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,.btn:focus-visible,a:focus-visible,select:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar a.nav-link:focus-visible{outline-offset:-2px}.field-hint{font-size:12px;color:var(--muted);margin:-4px 0 8px}.field-error{font-size:12px;color:var(--danger);margin:-4px 0 8px}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--danger)}.skeleton-block{display:grid;gap:8px;padding:6px 0}.skeleton{height:12px;border-radius:3px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.toasts{position:fixed;right:16px;bottom:16px;z-index:60;display:grid;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:10px 12px;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);box-shadow:0 6px 20px #0000002e;font-size:13.5px;animation:toast-in .18s ease-out}.toast-ok{border-left:4px solid var(--ok)}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--primary)}.toast button{padding:0 6px;font-size:16px;line-height:1}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c1280;z-index:50;display:grid;place-items:center;padding:16px}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:18px 20px;width:min(440px,100%);box-shadow:0 12px 40px #0000004d}.modal h2{font-size:17px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.table thead th{position:sticky;top:0;z-index:1}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}.table th.sortable button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty .empty-action{margin-top:10px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.field-label{font-size:12px;color:var(--muted);margin:8px 0 4px}p a,li a,.consent a,.legal-doc a,.page-sub a,.empty a:not(.btn){text-decoration:underline;text-underline-offset:2px}.sort-ind{font-size:9px;opacity:.6}.table th.num.sortable button{justify-content:flex-end}@media (max-width: 860px){.filters>input,.filters>select{flex:1 1 100%;width:100%}.topbar select{max-width:none;flex:1;min-width:0;text-overflow:ellipsis}.actions button{flex:1 1 auto}}
