:root{--ink:#1c2931;--muted:#74828a;--line:#e2e8e9;--bg:#f5f8f8;--white:#fff;--teal:#087e79;--teal-dark:#056660;--pale:#e7f5f2;--amber:#a96814;--amber-pale:#fff4df;--red:#b84441;--red-pale:#fceeed;--nav:#1e2c34}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;letter-spacing:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.hidden{display:none!important}.app-shell{display:flex;min-height:100vh}.sidebar{width:228px;min-width:228px;background:var(--nav);color:#c1cdd1;display:flex;flex-direction:column;padding:26px 14px 20px;min-height:100vh}.brand,.auth-brand{display:flex;align-items:center;gap:10px;padding:0 12px;color:white;font-size:19px;font-weight:600;white-space:nowrap}.brand-strong{color:#65d4c4}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:#0e8e82;border-radius:7px;color:white}.brand-mark svg{width:18px;height:18px}.side-group-label{color:#70848d;font-size:11px;font-weight:700;padding:45px 16px 13px}.side-nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;color:#b8c6cc;padding:11px 13px;border-radius:6px;display:flex;align-items:center;text-align:left;gap:12px;width:100%;height:43px;font-weight:550}.nav-item:hover,.nav-item.active{background:#30434a;color:white}.nav-item.active:before{content:"";height:18px;width:3px;background:#5fd1be;position:absolute;left:14px;border-radius:3px}.nav-item svg,.logout-button svg{width:17px;height:17px}.nav-count{margin-left:auto;font-size:11px;color:#91adb3}.sidebar-bottom{margin-top:auto}.environment{border-top:1px solid #374850;border-bottom:1px solid #374850;padding:18px 12px;display:flex;align-items:flex-start;gap:10px}.environment-dot,.status-indicator{display:inline-block;background:#f0ba61;width:7px;height:7px;border-radius:50%;margin-top:6px;flex:none}.environment strong,.environment small{display:block}.environment strong{color:#eff6f5;font-size:12px}.environment small{color:#89a0a9;font-size:11px;margin-top:4px}.logout-button{display:flex;align-items:center;gap:12px;border:0;color:#aabec4;background:none;padding:19px 13px 0;width:100%;text-align:left}.logout-button:hover{color:white}.workspace{min-width:0;flex:1}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 39px}.breadcrumb,.topbar-right{display:flex;align-items:center;gap:11px}.breadcrumb{color:#8a979c;font-size:12px}.breadcrumb strong{color:#3e525a;font-weight:600}.breadcrumb svg{width:13px;height:13px}.topbar-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#88999d}.avatar{background:#dcece9;color:#26766f;border-radius:50%;height:29px;width:29px;display:grid;place-items:center;font-size:12px;font-weight:700}.main-content{max-width:1280px;margin:auto;padding:36px 40px 90px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px;gap:20px}.eyebrow,.auth-kicker{color:#0b8179;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:750;letter-spacing:1px}.page-heading h1{font-size:28px;line-height:1.3;margin:10px 0 7px;font-weight:700}.page-heading p,.section-heading p,.admin-section-title p{color:var(--muted);margin:0;font-size:13px}.today{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#98a5a9;font-size:11px;padding-bottom:3px}.notice{display:flex;align-items:flex-start;gap:12px;padding:14px 17px;background:var(--amber-pale);color:#80551a;border-left:3px solid #dfad56;margin-bottom:28px}.notice svg{width:17px;height:17px;flex:none;margin-top:1px}.notice strong{font-size:12px;margin-right:10px}.notice span{font-size:12px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);margin-bottom:38px}.metric{padding:19px 22px 17px;min-height:116px;border-right:1px solid var(--line);display:flex;flex-direction:column}.metric:last-child{border-right:0}.metric span{font-size:12px;color:#718189}.metric strong{font-size:31px;line-height:1.3;margin-top:7px;font-weight:680}.metric small{font-size:11px;color:#a2adb1}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;gap:16px}.section-heading h2,.admin-section-title h2{font-size:17px;margin:0 0 5px;font-weight:680}.step-label{color:#9caaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.upload-tool{display:grid;grid-template-columns:minmax(0,1fr) 240px;background:#fff;border:1px solid var(--line);min-height:230px}.drop-zone{margin:16px;border:1px dashed #bbcdcf;background:#fafcfc;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:8px;outline:none;padding:20px;color:var(--ink)}.drop-zone:hover,.drop-zone.dragging,.drop-zone:focus-visible{border-color:var(--teal);background:#f0faf8}.upload-icon{height:42px;width:42px;background:#e4f3f0;display:grid;place-items:center;color:var(--teal);border-radius:8px;margin-bottom:5px}.upload-icon svg{height:21px;width:21px}.drop-zone strong{font-size:14px;font-weight:650;overflow-wrap:anywhere}.drop-zone span{font-size:11px;color:#8a999f}.task-options{border-left:1px solid var(--line);padding:20px;display:flex;flex-direction:column}.option-title{font-weight:680;font-size:12px;margin-bottom:14px}.task-options label{font-size:11px;color:#65757c;margin-bottom:6px}.task-options select{height:34px;padding:0 9px;border:1px solid #d5e0e0;border-radius:4px;background:#fff;color:#35474f;margin-bottom:12px;outline:none}.task-options select:focus{border-color:var(--teal)}.primary-button{border:0;background:var(--teal);color:#fff;min-height:38px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:650;border-radius:4px}.primary-button:hover:not(:disabled){background:var(--teal-dark)}.primary-button svg,.text-action svg{width:15px;height:15px}.options-note{color:#9aa7a8;font-size:10px;line-height:1.45;margin-top:10px}.inline-error,.form-error{color:var(--red);font-size:12px;min-height:17px;margin:8px 0 0}.recent-heading{margin-top:27px}.text-action{display:flex;align-items:center;gap:7px;background:none;border:0;color:var(--teal);font-size:12px;font-weight:650}.task-list{border-top:1px solid var(--line)}.task-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 145px;align-items:center;gap:16px;padding:15px 10px;border-bottom:1px solid var(--line)}.file-cell{display:flex;align-items:center;gap:11px;min-width:0}.file-icon{width:34px;height:34px;display:grid;place-items:center;background:#e7efef;color:#408078;border-radius:5px;flex:none}.file-icon svg{width:17px;height:17px}.file-cell strong,.file-cell small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-cell strong{font-size:12px;font-weight:650}.file-cell small{font-size:10px;color:#96a3a6;margin-top:4px}.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.ready{color:var(--amber)}.status.active{color:var(--teal)}.status.failed{color:var(--red)}.row-actions{display:flex;justify-content:flex-end;gap:5px}.icon-button{border:1px solid #dce6e6;background:#fff;color:#5d7279;width:30px;height:30px;display:grid;place-items:center;border-radius:4px}.icon-button:hover{border-color:var(--teal);color:var(--teal)}.icon-button.danger:hover{border-color:var(--red);color:var(--red)}.icon-button svg{width:15px;height:15px}.empty-inline{padding:35px;text-align:center;color:#8b9a9e;font-size:12px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:33px 0 0;overflow:auto}.tab{border:0;border-bottom:2px solid transparent;padding:0 1px 13px;background:none;color:#798a8f;white-space:nowrap;font-size:12px;font-weight:600}.tab span{font-size:10px;color:#a7b3b7;margin-left:3px}.tab.active{color:var(--teal);border-color:var(--teal)}.task-table-wrap{overflow:auto}.task-table{border-collapse:collapse;width:100%;min-width:720px;text-align:left}.task-table th{color:#91a0a4;font-size:10px;font-weight:650;padding:15px 12px;background:#f0f5f5}.task-table td{padding:14px 12px;border-bottom:1px solid var(--line);font-size:11px;color:#53636b}.task-table td:first-child{max-width:250px}.task-table .file-cell strong{color:var(--ink)}.action-th{text-align:right}.empty-state{display:flex;align-items:center;flex-direction:column;padding:75px 20px;color:#91a2a6;gap:10px}.empty-state svg{width:31px;height:31px;color:#b0c2c3}.empty-state strong{font-size:14px;color:#41545b}.empty-state span{font-size:11px}.secondary-button{border:1px solid var(--teal);color:var(--teal);background:transparent;padding:9px 15px;border-radius:4px;font-size:11px;font-weight:650;margin-top:8px}.admin-section{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;max-width:760px}.admin-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:19px}.admin-section-title>svg{width:18px;height:18px;color:var(--teal);margin-top:2px}.detail-row{display:flex;justify-content:space-between;padding:12px 2px;border-bottom:1px solid var(--line);gap:20px;font-size:12px}.detail-row span{color:#7d8c92}.detail-row strong{text-align:right;color:#354850;font-weight:600}.detail-row .status-indicator{margin:0 0 1px 4px}.toast{position:fixed;bottom:22px;right:24px;background:#24363c;color:white;padding:12px 17px;border-radius:5px;box-shadow:0 8px 24px #1e303030;font-size:12px;max-width:320px;z-index:10}.auth-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(120deg,#edf5f3,#f8fafa 55%,#e8f0f2);padding:38px 5vw}.auth-brand{color:var(--ink);padding:0}.auth-panel{background:#fff;border:1px solid var(--line);border-top:3px solid var(--teal);width:min(410px,100%);margin:auto;padding:34px 37px 38px;box-shadow:0 20px 60px #203d4010}.auth-panel h1{font-size:25px;margin:14px 0 7px}.auth-panel p{color:#87979c;font-size:12px;line-height:1.55;margin:0 0 26px}.auth-panel label{display:block;color:#52656b;font-size:11px;font-weight:650;margin-bottom:8px}.auth-panel input{width:100%;height:42px;border:1px solid #ccdada;border-radius:4px;padding:0 11px;outline:none}.auth-panel input:focus{border-color:var(--teal)}.auth-panel .form-error{margin:8px 0 10px;min-height:15px}.auth-panel .primary-button{width:100%;height:41px;justify-content:space-between}.auth-foot{text-align:center;color:#a3b1b5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:1px}@media(max-width:980px){.sidebar{width:192px;min-width:192px}.main-content{padding:30px 28px 70px}.topbar{padding:0 28px}.metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:700px){.app-shell{display:block}.sidebar{width:100%;min-width:0;min-height:0;height:auto;padding:12px 16px;flex-direction:row;align-items:center;gap:12px}.brand{font-size:16px;padding:0;flex:none}.brand-mark{width:27px;height:27px}.side-group-label,.sidebar-bottom{display:none}.side-nav{display:flex;margin-left:auto;gap:0}.nav-item{width:37px;height:37px;padding:10px;justify-content:center}.nav-item span,.nav-item.active:before{display:none}.nav-item svg{width:17px;height:17px}.topbar{height:48px;padding:0 18px}.topbar-label{display:none}.main-content{padding:27px 18px 60px}.page-heading h1{font-size:23px}.page-heading p{font-size:12px}.today{display:none}.notice{line-height:1.6}.notice strong{display:block}.metric{min-height:104px;padding:14px 16px}.metric strong{font-size:26px}.upload-tool{display:block}.drop-zone{min-height:175px}.task-options{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.option-title,.options-note{grid-column:1/-1}.task-options label:nth-of-type(1){grid-column:1;grid-row:2}.task-options select:nth-of-type(1){grid-column:1;grid-row:3}.task-options label:nth-of-type(2){grid-column:2;grid-row:2}.task-options select:nth-of-type(2){grid-column:2;grid-row:3}.task-options .primary-button{grid-column:1/-1}.task-row{grid-template-columns:minmax(0,1fr) auto;gap:7px}.task-row .status{grid-column:1;margin-left:45px;grid-row:2}.task-row .row-actions{grid-column:2;grid-row:1/3}.auth-shell{padding:20px}.auth-panel{padding:27px 25px}}@media(max-width:380px){.brand{font-size:14px}.brand-mark{width:24px;height:24px}.sidebar{padding:10px}.nav-item{width:32px}.main-content{padding-left:14px;padding-right:14px}.section-heading h2{font-size:15px}}:focus-visible{outline:2px solid #1aa495;outline-offset:2px}
