:root{--bg:#f4f6f8;--surface:#fff;--surface-2:#f8fafc;--surface-3:#eef2f6;--border:#dde3ea;--border-strong:#c6d0da;--text:#14202b;--text-muted:#5b6b7b;--text-faint:#8496a6;--brand:#1f5f8b;--brand-ink:#fff;--brand-soft:#e7f0f7;--ok:#17795e;--ok-soft:#e2f3ed;--warn:#9a6410;--warn-soft:#fdf1dd;--info:#1f5f8b;--info-soft:#e7f0f7;--danger:#a32b2b;--radius:10px;--radius-sm:7px;--shadow:0 1px 2px #1020300f, 0 4px 12px #1020300a;--header-h:56px}@media (prefers-color-scheme:dark){:root{--bg:#0e151c;--surface:#151f28;--surface-2:#1a252f;--surface-3:#1f2c37;--border:#26343f;--border-strong:#35485a;--text:#e6edf3;--text-muted:#9db0c0;--text-faint:#71879a;--brand:#4d9dd4;--brand-ink:#0b1219;--brand-soft:#16303f;--ok:#4fc0a0;--ok-soft:#12302a;--warn:#e0aa5c;--warn-soft:#33270f;--info:#4d9dd4;--info-soft:#16303f;--danger:#e2726f;--shadow:0 1px 2px #0006}}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,system-ui,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}.app-header{z-index:30;height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 14px;display:flex;position:sticky;top:0}.app-brand{letter-spacing:-.01em;align-items:center;gap:9px;min-width:0;font-weight:650;display:flex}.app-mark{background:var(--brand);width:26px;height:26px;color:var(--brand-ink);border-radius:7px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.app-brand-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-brand-sub{color:var(--text-faint);font-size:11px;font-weight:500;line-height:1.2;display:block}.app-nav{align-items:center;gap:2px;margin-left:auto;display:flex}.app-nav a{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;padding:6px 11px;font-size:14px}.app-nav a:hover{background:var(--surface-3);color:var(--text)}.app-nav a[data-active=true]{background:var(--brand-soft);color:var(--brand);font-weight:600}.app-nav .count{text-align:center;background:var(--danger);color:#fff;border-radius:9px;min-width:17px;margin-left:5px;padding:0 5px;font-size:11px;font-weight:700;display:inline-block}.app-user{border-left:1px solid var(--border);align-items:center;gap:8px;margin-left:4px;padding-left:10px;display:flex}.app-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:13px;line-height:1.25;overflow:hidden}.app-user-role{color:var(--text-faint);font-size:11px;display:block}@media (max-width:640px){.app-user-name,.app-brand-sub{display:none}.app-nav a{padding:6px 9px}}.app-panes{height:calc(100dvh - var(--header-h));display:flex;overflow:hidden}.pane-list{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;width:100%;max-width:400px;min-height:0;display:flex}.pane-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}@media (max-width:900px){.pane-list{border-right:none;max-width:none}.app-panes:has(.pane-main[data-open=true]) .pane-list{display:none}.app-panes:not(:has(.pane-main[data-open=true])) .pane-main{display:none}}.list-toolbar{border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.search-row{gap:8px;display:flex}.search-row input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex:1;min-width:0;padding:8px 11px}.search-row input:focus{outline:2px solid var(--brand);outline-offset:-1px}.filter-chips{scrollbar-width:none;gap:6px;padding-bottom:1px;display:flex;overflow-x:auto}.filter-chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:20px;flex:none;padding:4px 10px;font-size:13px}.chip[data-active=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.thread-list{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.thread-item{border-bottom:1px solid var(--border);background:var(--surface);padding:12px 14px;display:block}.thread-item:hover{background:var(--surface-2)}.thread-item[data-active=true]{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.thread-item-top{align-items:center;gap:8px;margin-bottom:3px;display:flex}.thread-no{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:700}.thread-time{color:var(--text-faint);flex:none;margin-left:auto;font-size:12px}.thread-subject{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14.5px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.thread-preview{color:var(--text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.thread-item-bottom{flex-wrap:wrap;align-items:center;gap:7px;margin-top:7px;display:flex}.unread{background:var(--brand);min-width:19px;height:19px;color:var(--brand-ink);border-radius:10px;flex:none;place-items:center;margin-left:auto;padding:0 6px;font-size:11.5px;font-weight:700;display:grid}.badge{white-space:nowrap;background:var(--surface-3);color:var(--text-muted);border-radius:5px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge[data-tone=ok]{background:var(--ok-soft);color:var(--ok)}.badge[data-tone=warn]{background:var(--warn-soft);color:var(--warn)}.badge[data-tone=info]{background:var(--info-soft);color:var(--info)}.badge-ghost{border:1px solid var(--border);background:0 0;font-weight:500}.badge-await{background:var(--warn-soft);color:var(--warn)}.thread-head{border-bottom:1px solid var(--border);background:var(--surface);align-items:flex-start;gap:12px;padding:11px 16px;display:flex}.back-link{border-radius:var(--radius-sm);background:var(--surface-3);width:32px;height:32px;color:var(--text-muted);flex:none;place-items:center;font-size:17px;display:none}@media (max-width:900px){.back-link{display:grid}}.thread-head-body{flex:1;min-width:0}.thread-head h1{margin:0 0 5px;font-size:16px;font-weight:650;line-height:1.35}.thread-meta{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:7px;font-size:12.5px;display:flex}.thread-controls{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:6px;padding:9px 16px;display:flex}.thread-controls select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-width:190px;padding:5px 9px;font-size:13px}.thread-controls label{color:var(--text-faint);font-size:12px}.messages{-webkit-overflow-scrolling:touch;overflow-anchor:none;flex-direction:column;flex:1;gap:12px;padding:16px 16px 8px;display:flex;overflow-y:auto}.day-sep{background:var(--surface-3);color:var(--text-faint);border-radius:12px;align-self:center;padding:2px 11px;font-size:12px;font-weight:600}.msg{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);max-width:min(660px,82%);box-shadow:var(--shadow);padding:9px 13px 7px}.msg-mine{background:var(--brand-soft);border-color:#0000;align-self:flex-end}.msg-note{background:var(--warn-soft);border:1px dashed var(--warn);align-self:flex-end;max-width:min(660px,88%)}.msg-system{background:var(--surface-3);max-width:100%;box-shadow:none;color:var(--text-muted);text-align:center;border:none;border-radius:12px;align-self:center;padding:3px 12px;font-size:12.5px}.msg-author{color:var(--brand);margin-bottom:2px;font-size:12.5px;font-weight:650}.msg-note .msg-author{color:var(--warn)}.msg-body{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;font-size:14.5px}.msg-foot{color:var(--text-faint);justify-content:flex-end;align-items:center;gap:6px;margin-top:3px;font-size:11.5px;display:flex}.msg-src{background:var(--surface-3);text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:700}.composer{border-top:1px solid var(--border);background:var(--surface);padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.composer-tabs{gap:5px;margin-bottom:7px;display:flex}.composer-tab{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:14px;padding:3px 10px;font-size:12.5px}.composer-tab[data-active=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.composer-tab[data-active=true][data-note=true]{background:var(--warn);border-color:var(--warn);color:#fff}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex:1;min-height:42px;max-height:180px;padding:10px 12px;font-size:15px;line-height:1.45}.composer textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}.composer-hint{color:var(--text-faint);margin-top:5px;font-size:11.5px}.btn{border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--brand);color:var(--brand-ink);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 15px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn-ghost:hover{background:var(--surface-3);filter:none}.btn-sm{padding:5px 11px;font-size:13px}.btn-send{border-radius:var(--radius);flex:none;width:42px;height:42px;padding:0;font-size:17px}.empty{text-align:center;color:var(--text-faint);flex:1;place-items:center;padding:40px 24px;display:grid}.empty-inner{max-width:330px}.empty h2{color:var(--text-muted);margin:0 0 6px;font-size:16px;font-weight:600}.empty p{margin:0;font-size:13.5px;line-height:1.5}.page{flex:1;padding:18px 16px 40px;overflow-y:auto}.page-narrow{max-width:680px;margin:0 auto}.page h1{margin:0 0 4px;font-size:19px;font-weight:650}.page-sub{color:var(--text-muted);margin:0 0 18px;font-size:13.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px}.field{margin-bottom:13px}.field label{color:var(--text-muted);margin-bottom:5px;font-size:13px;font-weight:600;display:block}.field input,.field textarea,.field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;padding:10px 12px;font-size:15px}.field textarea{resize:vertical;min-height:120px;line-height:1.5}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--brand);outline-offset:-1px}.form-error{border-radius:var(--radius-sm);color:var(--danger);background:#a32b2b1a;margin-bottom:13px;padding:9px 12px;font-size:13.5px}.login-wrap{place-items:center;min-height:100dvh;padding:24px 18px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:14px;padding:26px 24px}.login-head{margin-bottom:20px}.login-head .app-mark{border-radius:10px;width:38px;height:38px;margin-bottom:12px;font-size:17px}.login-head h1{margin:0 0 4px;font-size:19px;font-weight:650}.login-head p{color:var(--text-muted);margin:0;font-size:13.5px}.login-card .btn{width:100%;padding:11px}.login-foot{border-top:1px solid var(--border);color:var(--text-faint);margin-top:16px;padding-top:14px;font-size:12px;line-height:1.5}.inbox-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:var(--radius);margin-bottom:11px;padding:13px 14px}.inbox-meta{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:7px;font-size:12.5px;display:flex}.inbox-body{white-space:pre-wrap;margin-bottom:11px;font-size:14.5px}.inbox-actions{border-top:1px dashed var(--border);flex-direction:column;gap:8px;padding-top:11px;display:flex}.inbox-actions form{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.inbox-actions select,.inbox-actions input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex:1;min-width:170px;padding:7px 10px;font-size:14px}.fab{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--surface) 60%, transparent);border-top:1px solid var(--border);position:sticky;bottom:0}.fab .btn{width:100%}.attention{border-bottom:1px solid var(--border);background:var(--surface-2);scrollbar-width:none;gap:8px;padding:10px 12px;display:flex;overflow-x:auto}.attention::-webkit-scrollbar{display:none}.attention-calm{border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-faint);padding:9px 14px;font-size:12.5px}.attention-item{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);flex:none;padding:6px 12px;line-height:1.3}.attention-item[data-tone=warn]{border-color:var(--warn);background:var(--warn-soft)}.attention-item[data-tone=danger]{border-color:var(--danger);background:#a32b2b17}.attention-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);font-size:11px;display:block}.attention-item[data-tone=warn] .attention-label{color:var(--warn)}.attention-item[data-tone=danger] .attention-label{color:var(--danger)}.attention-value{white-space:nowrap;font-size:14px;font-weight:700}.thread-cta{background:var(--info-soft);color:var(--info);border-radius:6px;margin:5px 0 4px;padding:4px 9px;font-size:12.5px;font-weight:650;display:inline-block}.thread-cta[data-tone=warn]{background:var(--warn-soft);color:var(--warn)}.thread-cta[data-tone=danger]{color:var(--danger);background:#a32b2b1a}.thread-state{border-bottom:1px solid var(--border);background:var(--surface-2);max-height:46vh;padding:12px 16px 4px;overflow-y:auto}.track{scrollbar-width:none;gap:0;margin-bottom:12px;padding-bottom:2px;display:flex;overflow-x:auto}.track::-webkit-scrollbar{display:none}.track-step{text-align:center;flex-direction:column;flex:1 0 84px;align-items:center;gap:3px;display:flex;position:relative}.track-line{background:var(--border-strong);width:100%;height:2px;position:absolute;top:10px;right:50%}.track-step[data-state=done] .track-line,.track-step[data-state=current] .track-line{background:var(--brand)}.track-dot{z-index:1;border:2px solid var(--border-strong);background:var(--surface);width:21px;height:21px;color:var(--brand-ink);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid;position:relative}.track-step[data-state=done] .track-dot{background:var(--brand);border-color:var(--brand)}.track-step[data-state=current] .track-dot{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}.track-title{color:var(--text-faint);font-size:12px;font-weight:600;line-height:1.2}.track-step[data-state=done] .track-title,.track-step[data-state=current] .track-title{color:var(--text)}.track-step[data-state=current] .track-title{color:var(--brand)}.track-date{color:var(--text-faint);min-height:13px;font-size:11px}.waiting{border-radius:var(--radius-sm);margin-bottom:10px;padding:8px 12px;font-size:13.5px}.waiting-client{background:var(--warn-soft);color:var(--warn);border-left:3px solid var(--warn)}.waiting-us{background:var(--surface-3);color:var(--text-muted);border-left:3px solid var(--border-strong)}.invoice-panel{border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:10px;padding:12px 14px}.invoice-panel[data-tone=warn]{border-left-color:var(--warn)}.invoice-panel[data-tone=danger]{border-left-color:var(--danger)}.invoice-panel[data-tone=ok]{border-left-color:var(--ok)}.invoice-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.invoice-title{flex-wrap:wrap;align-items:baseline;gap:7px;min-width:0;display:flex}.invoice-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-size:11px;font-weight:700}.invoice-amount{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:19px;font-weight:700}.invoice-dim{color:var(--text-faint);font-size:12.5px;font-weight:400}.invoice-status{align-items:baseline;gap:7px;margin-bottom:8px;font-size:13.5px;font-weight:650;line-height:1.4;display:flex}.invoice-dot{background:var(--border-strong);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.invoice-panel[data-tone=warn] .invoice-status{color:var(--warn)}.invoice-panel[data-tone=warn] .invoice-dot{background:var(--warn)}.invoice-panel[data-tone=danger] .invoice-status{color:var(--danger)}.invoice-panel[data-tone=danger] .invoice-dot{background:var(--danger)}.invoice-panel[data-tone=ok] .invoice-status{color:var(--ok)}.invoice-panel[data-tone=ok] .invoice-dot{background:var(--ok)}.invoice-progress{margin-bottom:9px}.invoice-bar{background:var(--surface-3);border-radius:3px;height:6px;margin-bottom:5px;overflow:hidden}.invoice-bar span{background:var(--ok);height:100%;display:block}.invoice-actions{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:8px;display:flex}.invoice-note{border-top:1px dashed var(--border);color:var(--text-faint);margin:0;padding-top:8px;font-size:11.5px;line-height:1.45}.invoice-source{background:var(--surface-3);border-radius:4px;padding:0 5px;font-weight:600;display:inline-block}.invoice-history{color:var(--text-muted);margin-bottom:10px;font-size:12.5px}.invoice-history summary{cursor:pointer;color:var(--text-faint);padding:5px 0}.invoice-history ul{margin:4px 0 0;padding-left:18px;line-height:1.6}.invoice-history a{color:var(--brand);text-decoration:underline}.staff-controls{border-bottom:1px solid var(--border);background:var(--surface)}.staff-tabs{gap:6px;padding:8px 16px;display:flex}.staff-panel{border-top:1px dashed var(--border);padding:4px 16px 12px}.staff-row{align-items:center;gap:7px;margin-bottom:8px;display:flex}.staff-row-wrap{flex-wrap:wrap}.staff-row label{color:var(--text-faint);white-space:nowrap;font-size:12px}.staff-row select,.staff-row input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);min-width:0;padding:6px 9px;font-size:13px}.staff-row input[type=text],.staff-row input:not([type]){flex:1;min-width:140px}.staff-row input[type=file]{max-width:230px;padding:4px;font-size:12px}.staff-hint{color:var(--text-faint);margin:4px 0 0;font-size:11.5px;line-height:1.45}@media (max-width:900px){.thread-state{max-height:none;padding:10px 12px 2px}.staff-row{flex-wrap:wrap}}
