
:root{--ink:#15334c;--muted:#5a6f7e;--line:#b5c4cf;--bg:#f2f6f8;--yellow:#fff1bd;--auto:#edf1f4;--green:#146b52;--red:#b03232}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #8ea6b7;border-radius:8px;background:white;color:var(--ink);padding:9px 13px}button:hover{background:#edf5f7}button:focus-visible,a:focus-visible{outline:3px solid #589ec6;outline-offset:2px}.primary{background:var(--green);color:white;border-color:var(--green);font-weight:650}.primary:hover{background:#10563f}.danger{color:var(--red);border-color:#d69494}.small{padding:5px 9px;font-size:13px}header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line)}.top{max-width:1250px;margin:auto;padding:18px 24px;display:flex;gap:20px;align-items:center;justify-content:space-between}.brand{font-size:21px;font-weight:750}.sub{font-size:13px;color:var(--muted)}.tools,.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nav{max-width:1250px;margin:auto;display:flex;gap:5px;padding:0 24px 12px;flex-wrap:wrap}.nav button{border-color:transparent;background:transparent}.nav button.active{background:#e2edf2;border-color:#a8bdca;font-weight:700}main{max-width:1250px;margin:auto;padding:24px}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}h1{font-size:27px;line-height:1.3;margin:0 0 6px}h2{font-size:20px;margin:0 0 14px}h3{font-size:16px;margin:18px 0 10px}p{margin:6px 0 14px}.metrics{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.metric{background:white;border:1px solid var(--line);border-radius:10px;padding:13px 20px;min-width:150px}.metric strong{display:block;font-size:26px}.metric span{color:var(--muted);font-size:13px}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}.empty{padding:55px 20px;text-align:center;background:white;border:1px dashed #9cb3c2;border-radius:12px}.empty h2{margin-bottom:8px}.badge{display:inline-block;background:var(--auto);border:1px solid #c3cdd4;border-radius:5px;font-size:12px;padding:3px 7px}.deleted{color:var(--red);background:#fff0f0}.search{width:100%;max-width:650px;background:#fff;border:1px solid #8fa7b7;border-radius:9px;padding:12px;margin-bottom:20px}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{border-collapse:collapse;width:100%;font-size:14px}th{background:#eaf0f4;text-align:left;white-space:nowrap}td,th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:11px;vertical-align:top}td:last-child,th:last-child{border-right:0}tbody tr:nth-child(even){background:#f6f8fa}td{max-width:310px;overflow-wrap:anywhere}td .sub{margin-top:4px}.keyvalue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kv{border:1px solid var(--line);border-radius:8px;overflow:hidden}.kv dt{padding:7px 11px;background:var(--auto);font-size:13px;color:var(--muted)}.kv dd{margin:0;padding:10px 11px;white-space:pre-wrap;overflow-wrap:anywhere;min-height:42px}.notice{border:1px solid #c7a45b;background:#fff6de;border-radius:8px;padding:12px;margin-bottom:15px}.notice.error{color:#872b2b;background:#fff0f0;border-color:#d89999}.success{background:#e6f3ed;border-color:#9bbdab}.warn{color:var(--red)}dialog{border:1px solid #9cb3c2;border-radius:14px;width:min(900px,96vw);max-height:92vh;padding:0;color:var(--ink);box-shadow:0 20px 80px #17334f33}dialog::backdrop{background:#15334c80}.dialoghead{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.dialoghead h2{margin:0}.formbody{padding:22px 24px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide{grid-column:1/-1}label.field{display:block}.field>span{display:block;font-weight:600;font-size:14px;margin-bottom:6px}.field input,.field select,.field textarea,.auto{width:100%;border:1px solid #8da7b8;border-radius:7px;padding:10px;background:white;color:var(--ink)}.field textarea{min-height:94px;resize:vertical}.field.required input{background:var(--yellow);border-color:#c4a760}.auto{background:var(--auto);border-color:#b8c5ce}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #74b0cc;outline-offset:1px}fieldset{border:1px solid var(--line);border-radius:8px;padding:14px;margin:0}legend{font-weight:650;font-size:14px;padding:0 6px}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.checks label{border:1px solid var(--line);border-radius:6px;padding:9px;display:flex;gap:9px;align-items:center}.checks input{width:19px;height:19px;margin:0;accent-color:var(--green)}details{margin-top:20px;border:1px solid var(--line);border-radius:9px;padding:13px}summary{cursor:pointer;font-weight:650;margin-bottom:8px}.footactions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:15px 24px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.errorbox{display:none;border:1px solid #ce8282;background:#fff0f0;color:#872b2b;padding:12px;margin-bottom:15px;border-radius:7px}.guide li{margin:10px 0}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:30;background:#17334f;color:#fff;padding:12px 18px;border-radius:8px;box-shadow:0 5px 20px #0003;max-width:90vw}.toast button{margin-left:10px}.storage{font-size:12px;border:1px solid var(--line);border-radius:5px;padding:4px 8px;background:var(--auto)}footer{max-width:1250px;margin:auto;padding:0 24px 26px;color:var(--muted);font-size:13px}#printroot{display:none}.print-page table{font-size:9pt}.print-page th,.print-page td{padding:4px 6px}.print-page h1{font-size:18pt}.print-page h2{font-size:12pt}.print-page p{margin:5px 0;font-size:9.5pt;white-space:pre-wrap}.print-page{font-size:9.5pt}.print-label{color:#526273}.print-head{display:flex;justify-content:space-between;margin-bottom:12px}.print-page .smallprint{font-size:8pt;color:#555;margin-top:12px}
@media(max-width:700px){.top{padding:13px 16px;align-items:flex-start}.brand{font-size:18px}.top .tools{justify-content:flex-end}.top .tools button{font-size:12px;padding:7px}.nav{padding:0 12px 10px}.nav button{font-size:12px;padding:8px}.storage{display:none}main{padding:16px}.heading{flex-direction:column}h1{font-size:24px}.grid,.keyvalue{grid-template-columns:1fr}.checks{grid-template-columns:1fr}.dialoghead,.formbody{padding:16px}.footactions{padding:12px 16px}.metric{min-width:120px;padding:10px 14px}.metric strong{font-size:23px}}
@page{size:A4 portrait;margin:12mm}@media print{html,body{background:white;color:#111;margin:0}header,main,footer,dialog,.toast{display:none!important}#printroot{display:block!important}.print-page{break-after:page;break-inside:avoid;max-width:186mm;min-height:250mm}.print-page:last-child{break-after:auto}.print-page section{break-inside:avoid}.print-page td,.print-page th{border:1px solid #8da0ad}.print-page h1,.print-page h2{break-after:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.print-probe{display:block!important;position:fixed;left:-9999px;top:0;width:186mm;visibility:hidden}.print-probe .print-page{width:186mm;min-height:0}.print-probe .tablewrap{overflow:visible;border:0}.print-probe table{table-layout:fixed;width:100%}.print-probe th{white-space:normal}.print-probe td{max-width:none;overflow-wrap:anywhere}.print-probe h3{font-size:10pt;margin:10px 0 4px}
@media print{.print-page .tablewrap{overflow:visible;border:0}.print-page table{table-layout:fixed;width:100%}.print-page th{white-space:normal}.print-page td{max-width:none;overflow-wrap:anywhere}.print-page h3{font-size:10pt;margin:10px 0 4px}}

[hidden]{display:none!important}.loginbutton{display:inline-block;background:var(--green);color:white;padding:12px 18px;border-radius:8px;text-decoration:none}.rolechoice{font:inherit;padding:7px;border:1px solid var(--line);border-radius:6px}.tablewrap{max-height:70vh}th{position:sticky;top:0;z-index:1}.print-page .tablewrap{max-height:none}.print-page th{position:static}
