:root{color-scheme:light;--bg:#eef1f6;--surface:#fff;--ink:#18263b;--muted:#617086;--line:#dce2ec;--accent:#295cc8;--hover:#edf3ff;--good:#237451;--bad:#b93846;--shadow:0 4px 18px #18263b0b;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px}
:root[data-theme=dark]{color-scheme:dark;--bg:#141a24;--surface:#1e2735;--ink:#e6edf8;--muted:#a4b2c7;--line:#354154;--accent:#8bb0ff;--hover:#29394f;--good:#84d8ad;--bad:#ffa4ad;--shadow:none}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg)}a{color:var(--accent);text-decoration:none}button,input,select{font:inherit;color:inherit}button,input,select{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:8px 10px;min-height:36px;max-width:100%}button{cursor:pointer;white-space:normal}button:hover{background:var(--hover)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}button.danger{color:var(--bad)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}input[type=checkbox]{min-height:auto;accent-color:var(--accent);width:17px;height:17px}input[type=search]{width:250px}label{display:flex;gap:7px;flex-direction:column;color:var(--muted);font-size:13px;min-width:0}label.inline{flex-direction:row;align-items:center;flex-wrap:wrap}p{line-height:1.65;margin:8px 0;color:var(--muted)}h1{font-size:24px;margin:0 0 6px}h2{font-size:17px;margin:0}h3{font-size:15px;margin:0 0 10px}small{color:var(--muted)}[hidden],.hidden{display:none!important}.skip{position:absolute;top:-80px;z-index:40;padding:12px;background:var(--surface)}.skip:focus{top:0}
.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line);min-height:64px}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);flex-shrink:0}.brand small{display:block;font-size:11px;font-weight:400;margin-top:2px}.brand img{border-radius:8px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.shell{display:grid;grid-template-columns:194px minmax(0,1fr);min-height:calc(100vh - 70px)}aside{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 10px}nav{position:sticky;top:85px;display:grid;gap:4px}nav button{border:none;text-align:left;padding:11px 13px;border-radius:6px;background:transparent}nav button.active{background:var(--hover);color:var(--accent);font-weight:650}aside footer{margin-top:auto;padding:28px 12px 10px;display:grid;gap:7px}main{padding:24px;min-width:0;max-width:1900px;width:100%}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.title-row time{font-size:12px;color:var(--muted);padding-top:5px;max-width:40%;overflow-wrap:anywhere}#notice{padding:10px 13px;border:1px solid var(--line);background:var(--surface);border-radius:6px;margin-bottom:15px;overflow-wrap:anywhere}#notice.error{color:var(--bad);border-color:var(--bad)}#content{animation:arrive .16s ease-out}.box{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:0 0 18px;box-shadow:var(--shadow);min-width:0}.box-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:15px 17px;border-bottom:1px solid var(--line)}.box-body{padding:17px}.toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.toolbar>label{flex:0 1 auto}.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;min-width:0}.stat span{color:var(--muted);font-size:12px}.stat strong{display:block;font-size:25px;line-height:1.4;margin:8px 0;overflow-wrap:anywhere}.stat small{display:block;line-height:1.5}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.badge{display:inline-flex;border-radius:4px;padding:3px 6px;background:var(--hover);color:var(--accent);font-size:12px;overflow-wrap:anywhere;max-width:100%}.badge.good{color:var(--good)}.badge.bad{color:var(--bad)}
.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}th{text-align:left;color:var(--muted);font-weight:500;background:var(--bg)}td,th{padding:11px 13px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;max-width:340px}th button{padding:0;min-height:0;border:none;background:transparent;font-size:12px;text-align:left}tbody tr:hover{background:var(--hover)}td .actions button{font-size:12px;min-height:30px;padding:4px 8px}.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;padding:12px 15px}.pager small{margin-right:auto}.empty{padding:24px;text-align:center;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label input:not([type=checkbox]),.form-grid select{width:100%}.form-footer{padding:15px 17px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dirty{color:var(--accent);font-size:12px}.group-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--line)}.group-row strong{flex:1;overflow-wrap:anywhere;min-width:80px}.group-row .rank{width:24px;color:var(--muted)}.fields,.ui-fields{display:grid;grid-template-columns:minmax(100px,180px) minmax(0,1fr);margin:0;gap:0}.fields dt,.fields dd,.ui-fields dt,.ui-fields dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.fields dt,.ui-fields dt{color:var(--muted);padding-right:12px}.fold,.ui-fold{padding:12px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;line-height:1.6;font-weight:550}details>div{padding-top:12px}.ui-detail-item{padding:12px 0;border-bottom:1px solid var(--line)}.ui-muted{color:var(--muted)}.ui-record{padding:12px;border:1px solid var(--line);border-radius:6px;margin:10px 0}.ui-record-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.ui-result-summary{padding:10px 0}.ui-progress{height:4px;background:var(--line);overflow:hidden;border-radius:3px}.ui-progress i{display:block;height:4px;width:35%;background:var(--accent);animation:progress 1.3s infinite}
dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:22px;width:min(650px,calc(100vw - 28px));max-height:88vh;overflow:auto;box-shadow:0 16px 60px #0003}dialog::backdrop{background:#08102166}.drawer-head{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:15px}.drawer-head button{font-size:24px;padding:0 10px}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.text-small{font-size:12px}#menu{display:none}#auth{background:var(--surface);padding:20px;margin-bottom:20px;border-radius:8px}#authForm{display:flex;gap:10px;align-items:flex-end;margin-top:15px}.line-note{color:var(--muted);font-size:12px;margin:10px 0}.quiet{color:var(--muted)}
@keyframes arrive{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes progress{from{transform:translateX(-100%)}to{transform:translateX(380%)}}
@media(min-width:1500px){main{padding:28px 32px}.stats{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1080px){.shell{grid-template-columns:166px minmax(0,1fr)}main{padding:18px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.header{padding:10px 14px;gap:10px}.brand{font-size:12px}.top-actions{gap:6px}.appearance-controls select{max-width:150px!important}}
@media(max-width:780px){#menu{display:block}.shell{display:block}aside{display:none;position:fixed;z-index:19;top:0;bottom:0;left:0;width:220px;box-shadow:0 10px 60px #0005;padding-top:130px;overflow:auto}body.menu-open aside{display:flex}nav{position:static}.header{flex-wrap:wrap;min-height:68px}.brand{font-size:14px}.top-actions{width:100%;margin:0}.top-actions .appearance-controls{margin-left:auto}.top-actions .badge{display:none}main{padding:17px 14px}.title-row{align-items:center}.title-row time{font-size:11px}.stats{gap:10px}.table-wrap{overflow:visible}table,thead,tbody,tr,td{display:block}thead{display:none}tbody tr{padding:10px 13px;border-bottom:1px solid var(--line)}td{display:grid;grid-template-columns:minmax(84px,30%) minmax(0,1fr);padding:6px 0;border:0;max-width:none}td:before{content:attr(data-label);color:var(--muted);font-size:12px;padding-right:10px}td[data-primary]{font-weight:650}.toolbar>label{flex:1 1 160px}.toolbar input{width:100%}.form-grid{grid-template-columns:1fr}.box-head,.box-body{padding:14px}.fields,.ui-fields{grid-template-columns:minmax(85px,32%) minmax(0,1fr)}}
@media(max-width:460px){.header{padding:9px 10px}.top-actions>button{padding:6px 8px;font-size:12px}.top-actions .appearance-controls{width:100%;margin-left:0}.appearance-controls select{flex:1!important;max-width:none!important;font-size:12px}.title-row{display:block}.title-row time{max-width:none}.stats{grid-template-columns:1fr 1fr}.stat{padding:12px}.stat strong{font-size:21px}h1{font-size:22px}.pager{justify-content:flex-start}.pager small{width:100%}.actions{gap:6px}.group-row{gap:7px}#authForm{display:block}#authForm button{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
