@charset "UTF-8";
:root{--ink:#192f38;--muted:#78868c;--line:#e5eaea;--green:#14665b;--pale:#edf6f3;--bg:#f5f7f8;--amber:#9a681d}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.6 "Microsoft YaHei","Segoe UI",sans-serif}button,input,select{font:inherit}button{border:1px solid #d9e1e1;background:#fff;border-radius:6px;padding:9px 17px;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .15s}button:hover{background:#edf2f1}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#0d5148}input,select{border:1px solid #dce3e4;border-radius:5px;background:white;min-height:39px;padding:8px 11px;color:var(--ink);min-width:0}input:focus,select:focus,button:focus-visible{outline:2px solid #78b9ab;outline-offset:2px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#60737b}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.45;letter-spacing:-1px}h2{font-size:17px}h3{font-size:16px}.muted{color:var(--muted);margin-top:7px}.eyebrow{font:10px/1.5 "Segoe UI",sans-serif;letter-spacing:2px;color:#6e8d88;margin-bottom:8px;font-weight:600}.brand-symbol{display:inline-flex;width:36px;height:36px;background:#d8f0e7;color:#145b51;align-items:center;justify-content:center;font:700 24px/1 Georgia;border-radius:8px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:white;font-size:22px;font-weight:700}.brand small{display:block;font:9px/1.4 "Segoe UI";letter-spacing:3px;color:#9fb8b5}.workspace-tag{margin:28px 0 35px;font-size:11px;color:#b4c8c5;border:1px solid #385853;padding:9px;border-radius:5px;display:flex;justify-content:space-between}.workspace-tag span{color:#80a99e}aside{position:fixed;inset:0 auto 0 0;width:214px;background:#173c38;padding:27px 22px;color:#e6f1ee;display:flex;flex-direction:column}.nav-caption{font-size:10px;letter-spacing:2px;color:#85a29c;margin-bottom:12px}nav{display:grid;gap:8px}nav button{border:0;background:none;color:#b7ceca;text-align:left;padding:13px 12px;font-size:13px}nav button span{font-size:17px;margin-right:10px}nav button.active{background:#2b514a;color:#fff;border-left:3px solid #9ed3bc}nav button:hover{background:#294c46}.side-bottom{margin-top:auto;color:#a2bdb6;font-size:11px}.side-bottom p{font-size:10px;margin:5px 0 24px;color:#799b91}.side-bottom button{background:none;border:1px solid #36584e;color:#afcbc1;width:100%;font-size:12px}.status-dot{display:inline-block;background:#68c2a3;width:6px;height:6px;border-radius:50%;margin-right:6px}.workspace{margin-left:214px}header{height:68px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-size:12px;color:var(--muted)}header strong{color:#425760;font-weight:400}header span{margin:0 10px}.header-right{display:flex;align-items:center;gap:5px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#eef2f2;color:#4f6768}main{padding:30px 32px}.page-top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:26px}.actions{display:flex;align-items:center;gap:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stats>div{background:white;border:1px solid var(--line);border-radius:8px;padding:20px 23px;position:relative}.stats>div:before{content:"";position:absolute;top:22px;right:22px;width:7px;height:7px;background:#b8c8c4;border-radius:50%}.stats>div:nth-child(2):before{background:#49a38c}.stats>div:last-child:before{background:#d4ac68}.stats span{font-size:12px;color:#647a81}.stats strong{font:500 34px/1.7 "Segoe UI",sans-serif;display:block;color:#254b46}.stats small{font-size:10px;color:#8b989c}.card{border:1px solid var(--line);border-radius:8px;background:#fff}.filters{padding:20px;margin-bottom:20px}.filter-main{display:flex;align-items:flex-end;gap:12px}.filter-main label{flex:1;min-width:120px}.filter-main .search{flex:2.2}.filter-main button{height:39px}details{margin-top:14px}summary{color:#648079;font-size:12px;cursor:pointer}.filter-extra{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:15px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px}.table-toolbar h2 span{display:inline-block;font-size:11px;font-weight:400;background:#f1f4f3;border-radius:4px;margin-left:8px;padding:2px 7px;color:#72847d}.table-toolbar p{font-size:11px;color:#899792;margin-top:4px}.table-toolbar button,.table-toolbar select{font-size:12px;padding:7px 11px}.table-scroll{overflow:auto;max-height:570px;border-top:1px solid var(--line)}table{border-collapse:separate;border-spacing:0;width:100%;white-space:nowrap;font-size:12px}th{position:sticky;top:0;background:#f6f8f8;font-weight:500;color:#6f8186;text-align:left;border-bottom:1px solid var(--line);z-index:1}th,td{padding:14px 16px;border-bottom:1px solid #edf0f1}tbody tr:hover td{background:#f4f9f7}td{color:#4e626b}td:first-child,th:first-child{position:sticky;left:0;background:white;z-index:2;border-right:1px solid #edf0f1}th:first-child{background:#f6f8f8;z-index:3}.box-link{border:0;padding:0;background:none;color:#176b5a;font:600 12px "Segoe UI",sans-serif;letter-spacing:.3px}.box-link:hover{text-decoration:underline;background:none}.sub{display:block;font-size:10px;color:#8a989b;margin-top:4px}.tag{display:inline-block;font-size:10px;border-radius:4px;background:#edf2f3;color:#5d7681;padding:3px 7px}.tag.good{background:#eaf5ee;color:#367f59}.tag.warn{background:#fff4e2;color:#a5752c}.tag.bad{background:#fbeeee;color:#aa5858}.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;color:#889599;font-size:11px}.pagination button{font-size:11px;padding:5px 12px;margin-left:7px}.empty{text-align:center;padding:55px 15px 65px}.empty-icon{font-size:32px;color:#94afa4;display:block;margin-bottom:15px}.empty p{font-size:12px;color:#8c9a9b;margin:12px 0 22px}.footnote{font-size:10px;color:#98a3a5;margin:17px 2px}.padded{padding:28px}.notice{background:#f1f6f3;border-left:3px solid #b3cdbf;padding:14px 17px;font-size:12px;color:#6a7f73;margin:20px 0;line-height:1.8}.settings-card{max-width:740px}.settings-card form>label{display:grid;grid-template-columns:1fr 180px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.settings-card small{grid-row:2;font-size:11px;color:#8c9d93}.unit{display:flex;align-items:center;gap:9px;grid-column:2;grid-row:1}.unit input{width:80px}.unit span{font-size:12px;color:#8a9990}.client-item{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.client-item h3{font-size:14px}.client-item p{color:#87958d;font-size:12px;margin-top:5px}dialog{border:0;border-radius:12px;padding:28px;width:min(720px,94vw);max-height:90vh;color:var(--ink);box-shadow:0 24px 90px #152c3b44}dialog::backdrop{background:#122f3855;backdrop-filter:blur(2px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.dialog-head button{font-size:20px;border:0;padding:0 8px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.file-drop{border:1px dashed #b5c9bf;background:#f6faf7;padding:24px;margin:20px 0;border-radius:8px}.file-drop input{background:transparent;border:0;padding:0}.import-summary{display:flex;gap:12px;margin:15px 0}.import-summary span{padding:10px;background:#f4f6f5;flex:1;text-align:center;border-radius:5px}.error-list{max-height:240px;overflow:auto}.error-list li{font-size:12px;color:#a0724b;margin-bottom:8px}.detail-dialog{width:min(1000px,96vw)}.detail-status{display:flex;gap:20px;flex-wrap:wrap;background:#f3f7f5;border-radius:6px;padding:16px;margin-bottom:24px}.detail-status small{color:#7d8f85}.detail-status strong{display:block;font-size:13px;font-weight:500}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.detail-section{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.detail-section h3{margin-bottom:14px}.detail-section table{font-size:11px}.history{font-size:12px;color:#6a8076;margin:10px 0}.detail-section .actions{margin-top:15px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}.login-story{background:#173c38;color:white;padding:14vh 9vw;display:flex;flex-direction:column;justify-content:center}.login-story .eyebrow{margin-top:55px;color:#92b9a7}.login-story h1{font-size:36px;line-height:1.65;margin:10px 0 25px;font-weight:500}.login-story>p:not(.eyebrow){color:#9fbfb0;font-size:13px;line-height:2.2}.route-art{margin-top:75px;display:flex;align-items:center;gap:9px;color:#9ec7b4;font-size:10px}.route-art i{width:7px;height:7px;background:#84b89e;border-radius:50%}.route-art b{flex:1;border-top:1px dashed #557e68}.login-form{width:340px;max-width:85%;margin:auto}.login-form h2{font-size:24px}.login-form .muted{font-size:12px;margin-bottom:35px}.login-form label{margin-top:20px}.login-form button{width:100%;margin-top:28px}.login-form small{display:block;text-align:center;color:#a0aaa5;font-size:10px;margin-top:35px}#login-error{color:#b36150;font-size:12px;margin-top:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 24px;background:#163e36;color:white;box-shadow:0 4px 20px #0002;border-radius:8px;z-index:1000;max-width:90vw;font-size:13px}[hidden]{display:none!important}@media(max-width:1100px){aside{width:180px;padding:25px 16px}.workspace{margin-left:180px}main{padding:24px 20px}.filter-main{flex-wrap:wrap}.filter-main .search{flex-basis:100%}.filter-extra{grid-template-columns:repeat(3,1fr)}.stats{gap:10px}.stats>div{padding:16px}.page-top{align-items:flex-start}.table-toolbar{gap:15px}.header-right{font-size:10px}}@media(max-width:750px){aside{position:static;width:auto;padding:15px}.brand,.workspace-tag,.nav-caption,.side-bottom{display:none}nav{display:flex}nav button{padding:8px}.workspace{margin-left:0}header{padding:0 15px}.page-top{flex-direction:column}.stats{grid-template-columns:repeat(2,1fr)}.filter-extra,.detail-grid{grid-template-columns:repeat(2,1fr)}.table-toolbar{flex-wrap:wrap}.login-shell{display:block}.login-story{display:none}.login-form{padding-top:15vh}.settings-card form>label{grid-template-columns:1fr 140px}.header-right #client-badge{display:none}}
