:root{color:#232329;background:#f5f5f7;--red:#c51f2a;--dark:#18181b;--border:#e2e2e8;--muted:#686875;--radius:12px}
button{border-color:#d7d7de;border-radius:8px;padding:10px 15px;min-height:42px;color:#303039;font-weight:600;transition:background .15s,border-color .15s}
button:hover{background:#f3f3f6;border-color:#b7b7c1}
button:disabled{opacity:.55;cursor:not-allowed}
button.primary{background:var(--red);border-color:var(--red);color:#fff}
button.primary:hover{background:#aa1420;border-color:#aa1420}
button.danger{color:#ad1b26;border-color:#e8b8bd;background:#fff5f6}
button.danger:hover{background:#ffe8eb}
:focus-visible{outline:3px solid #e78790;outline-offset:3px}
input,textarea,select{min-height:42px;border-color:#ceced7;border-radius:7px;padding:10px 11px;color:#232329}
input:focus,textarea:focus,select:focus{border-color:var(--red)}
input[readonly]{background:#f3f3f6;color:#5a5a65}
input[type=file]{font-size:14px;padding:8px}
label{color:#4b4b58}
label input,label textarea,label select{margin-top:6px}
h1,h2,h3,p{overflow-wrap:anywhere}
h1{font-size:30px;letter-spacing:-.7px;margin:0 0 8px}
h2{font-size:23px;letter-spacing:-.4px;margin:0 0 18px}
h3{font-size:16px;margin:0 0 12px}
p{line-height:1.55}
.muted{color:var(--muted)}
header.topbar{height:88px;background:#fff;color:#232329;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:10px 32px;gap:20px}
.brand{display:flex;align-items:center;gap:23px;color:#35353f;text-decoration:none}
.brand img{display:block;width:105px;height:68px;object-fit:contain}
.brand-description{font-size:12px;letter-spacing:2px;font-weight:700;border-left:1px solid var(--border);padding-left:23px}
.brand-description span{display:block;letter-spacing:0;font-size:12px;font-weight:400;margin-top:5px;color:var(--muted)}
.topbar-meta{display:flex;gap:20px;align-items:center;font-size:13px;color:#53535f}
.version{font-size:12px;color:#777783;white-space:nowrap}
.workspace{display:flex;min-height:calc(100vh - 88px)}
nav.sidebar{width:222px;flex:0 0 222px;background:var(--dark);color:#eeeef2;padding:26px 16px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:6px;position:sticky;top:0;height:calc(100vh - 88px);margin:0}
.nav-caption{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#92929f;margin:8px 14px 10px}
.nav-caption:not(:first-child){margin-top:27px}
.sidebar>button{background:transparent;border-color:transparent;color:#ceced6;text-align:left;font-size:14px;padding:12px 14px}
.sidebar>button:hover{background:#29292f;color:#fff}
.sidebar>button.active{background:#352026;color:#fff;border-left:3px solid #ea3543;padding-left:12px}
.sidebar>button.nav-create{margin-top:5px;background:var(--red);color:#fff}
.sidebar>button.nav-create:hover{background:#aa1420}
.sidebar-footer{margin-top:auto;padding:24px 7px 0;border-top:1px solid #35353b;display:grid;gap:13px;font-size:12px;color:#a6a6b2}
.sidebar-footer button{background:#27272d;color:#dcdce3;border-color:#3e3e47;text-align:left;font-size:13px}
main{flex:1;min-width:0;max-width:1600px;padding:32px clamp(18px,3vw,44px);margin:0 auto}
.card{border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:0 3px 12px #18181b04;margin-bottom:22px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}
.page-head p{margin:0;font-size:14px}
.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:var(--red);margin:0 0 10px}
.toolbar{gap:10px;margin-bottom:20px}
.toolbar h2{margin:0;font-size:22px}
.toolbar input{max-width:420px}
.toolbar>label{max-width:150px}
.toolbar .search-input{flex:1;min-width:220px;max-width:none}
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.wide{grid-column:1/-1}
.group{border-color:var(--border);border-radius:10px;padding:21px;margin:20px 0}
.group h3{font-size:15px;color:#35353f;padding-bottom:12px;border-bottom:1px solid #ededf1;margin-bottom:18px}
.actions{gap:9px;flex-wrap:wrap;margin-top:22px}
.error{color:#b51e2b;line-height:1.5}
.notice{padding:13px 16px;border:1px solid #ead6a5;background:#fffaee;border-radius:8px;font-size:14px;line-height:1.5;margin:12px 0}
.status{font-size:11px;font-weight:600;border-radius:5px;padding:5px 8px;background:#eeeef3;color:#4d4d5c}
th,td{padding:14px 12px;border-bottom:1px solid #ececf1;font-size:13px}
th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#70707c;background:#fafafb;white-space:nowrap}
tr.clickable:hover{background:#fff3f4}
.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}
.empty-state h3{color:#30303a;margin-bottom:8px}
.empty-state p{font-size:14px;max-width:440px;margin:0 auto 18px}
.is-login .topbar{background:transparent;border:0}
.is-login .workspace{min-height:calc(100vh - 88px);display:block}
.is-login main{max-width:1150px;padding-top:48px}
.login-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:70px}
.login-intro h1{font-size:44px;max-width:490px;line-height:1.15;letter-spacing:-1.5px}
.login-intro>p:not(.eyebrow){max-width:420px;color:var(--muted);font-size:16px;line-height:1.7}
.login-points{display:grid;gap:18px;margin-top:35px}
.login-point{display:flex;gap:13px;align-items:flex-start;color:#4e4e5c;font-size:14px}
.login-point::before{content:"";width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--red);flex:none}
.login{padding:36px;max-width:440px;margin:0;width:100%;border-top:4px solid var(--red);box-shadow:0 14px 40px #18181b09}
.login-logo{width:152px;height:106px;object-fit:contain;display:block;margin-bottom:22px}
.login h2{font-size:25px;margin-bottom:6px}
.login .muted{font-size:14px;margin:0 0 27px}
.login label{margin:18px 0}
.login button{width:100%;margin-top:9px}
.login-footnote{font-size:12px!important;text-align:center;margin:20px 0 0!important;color:#888894}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.metric{padding:22px;background:#fff;border:1px solid var(--border);border-radius:12px}
.metric-label{color:#656573;font-size:13px;margin:0 0 12px}
.metric-value{font-size:33px;font-weight:700;letter-spacing:-1px;margin:0;line-height:1.15}
.metric-note{font-size:12px;color:#858591;margin:10px 0 0}
.metric.attention{border-top:3px solid var(--red);padding-top:20px}
.metric.attention .metric-value{color:var(--red)}
.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr);gap:24px;align-items:start}
.dashboard-columns .card{min-width:0}
.dashboard-columns .table-scroll table{min-width:500px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-head h2{font-size:17px;margin:0}
.card-head button{font-size:12px;padding:7px 11px;min-height:34px}
.task-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;border-bottom:1px solid #eeeef3;border-radius:0;text-align:left;padding:14px 0;background:none}
.task-item:hover{background:#fff5f6}
.task-item strong{font-size:13px;display:block}
.task-item span{font-size:12px;color:#747480;display:block;margin-top:4px;font-weight:400}
.task-item .task-due{color:#b31d28;text-align:right;white-space:nowrap}
.system-line{display:flex;gap:8px;align-items:center;font-size:13px;color:#5c5c69;margin:15px 0}
.system-dot{width:7px;height:7px;border-radius:50%;background:#388c5b}
.system-dot.offline{background:#b51e2b}
.loading{color:var(--muted);padding:24px 0}
#upload{display:grid;grid-template-columns:190px 1fr auto;gap:12px;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
#files p{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
#files .file-download{font-weight:600;font-size:13px}
dialog{color:#232329;box-shadow:0 20px 90px #0004}
dialog::backdrop{background:#18181b88}
@media(min-width:1800px){main{width:calc(100% - 222px)}}
@media(max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}nav.sidebar{width:190px;flex-basis:190px}.login-layout{gap:35px}}
@media(max-width:760px){header.topbar{height:76px;padding:7px 18px}.brand img{width:92px;height:60px}.brand-description{display:none}.topbar-meta{gap:10px}#account-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{display:block}nav.sidebar{width:100%;height:auto;position:static;padding:12px;flex-direction:row;gap:6px;overflow-x:auto;align-items:center}.sidebar>button{white-space:nowrap;padding:10px 12px;min-height:44px}.sidebar>button.active{border-left:0;border-bottom:2px solid #ea3543;padding-left:12px}.sidebar>button.nav-create{margin:0}.nav-caption,.sidebar-footer>span{display:none}.sidebar-footer{margin:0 0 0 auto;padding:0;border:0;display:block}.sidebar-footer button{white-space:nowrap;min-height:44px}main{padding:24px 16px}.page-head{align-items:flex-start;margin-bottom:20px}.page-head h1{font-size:26px}.page-head button{white-space:nowrap}.card{padding:18px}.login-layout{grid-template-columns:1fr;gap:24px;max-width:440px;margin:auto}.is-login main{padding-top:15px}.login-intro h1{font-size:29px}.login-intro>p:not(.eyebrow),.login-points{display:none}.login{padding:26px}.login-logo{width:125px;height:87px}.metric{padding:17px}.metric.attention{padding-top:15px}.metric-value{font-size:28px}#upload{grid-template-columns:1fr}.group{padding:16px}.table-scroll table{min-width:650px}.dashboard-columns{gap:0}}
@media(max-width:500px){th:nth-child(n+5),td:nth-child(n+5){display:table-cell}}
@media(max-width:420px){.grid{grid-template-columns:1fr}.page-head{flex-wrap:wrap}.topbar-meta{font-size:11px}.metric-grid{gap:10px}.metric-label{font-size:12px}.metric-note{font-size:11px}.toolbar{gap:8px}.toolbar>button{flex:1}.toolbar .search-input{min-width:100%}}
