:root{font-family:Segoe UI,Arial,sans-serif;color:#233447;background:#f2f5f8;font-size:14px;--ink:#163b53;--accent:#087f8c;--border:#dbe3ea}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid var(--border);border-radius:8px;padding:10px 15px;background:white;color:var(--ink);font-weight:600}button:hover{border-color:var(--accent);background:#f2fafb}button.primary{background:var(--ink);border-color:var(--ink);color:white}button.primary:hover{background:#24516c}button.danger{color:#9c3447;border-color:#e5bbc4}button:disabled{opacity:.5;cursor:not-allowed}a{color:#076e86}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.7px;margin-bottom:9px}h2{font-size:18px;margin-bottom:18px}h3{font-size:15px}p{line-height:1.6}.muted,small{color:#62768b}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{padding:27px 18px;background:#12364b;color:white;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:25px;font-weight:750;letter-spacing:-1px;padding:0 13px}.brand span{color:#62d4d1}.side .sub{font-size:11px;color:#a9c3d2;padding:8px 13px 27px;letter-spacing:.8px}.nav{display:grid;gap:5px}.nav button{text-align:left;border:0;background:transparent;color:#c5d5de;padding:12px 14px;border-radius:8px;font-weight:500}.nav button.active{background:#28536b;color:#fff}.side-note{border-top:1px solid #426175;padding:20px 10px 0;color:#b5cdd9;font-size:12px;line-height:1.6;margin-top:28px}.main{min-width:0}.topbar{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:18px 34px;background:white;border-bottom:1px solid var(--border)}.topbar select{max-width:360px}.context-label{font-size:11px;font-weight:700;color:#718296;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.workspace-line{display:flex;align-items:center;gap:10px}.pill{display:inline-block;border-radius:5px;padding:4px 8px;background:#e8f4f1;color:#256052;font-size:11px;font-weight:600;white-space:nowrap}.pill.test{background:#fff0d4;color:#8b5910}.pill.pending{background:#eef1f6;color:#5d6d80}.content{padding:32px 34px 60px;max-width:1560px;margin:auto}.lead{max-width:830px;color:#61758a;margin-bottom:25px}.bar{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card{background:white;border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:22px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.metric{background:white;border:1px solid var(--border);border-radius:11px;padding:23px}.metric b{display:block;font-size:30px;color:var(--ink);font-weight:650;margin-bottom:4px}.metric span{color:#6a7d90}.two{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.notice{padding:15px 18px;border-left:3px solid #118d97;background:#e9f4f5;color:#31596a;line-height:1.6;margin-bottom:22px}.warning{padding:14px 18px;border-left:3px solid #cf9636;background:#fff7e9;color:#7e5b23;line-height:1.6;margin-bottom:20px}.error{padding:14px 18px;background:#fff0f2;border:1px solid #edb4bd;color:#922c3e;border-radius:8px;line-height:1.6;margin-bottom:20px}.gridform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.gridform label{display:grid;gap:7px;font-size:12px;font-weight:600;color:#536b7d}input,select,textarea{border:1px solid #cdd8e2;border-radius:7px;padding:10px 11px;min-width:0;width:100%;color:#203c51;background:white}textarea{min-height:85px;resize:vertical}input[type=file]{font-size:12px}input[readonly]{background:#f1f4f6;color:#73828d}.full{grid-column:1/-1}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:#597185;background:#f6f8fb;font-size:11px;letter-spacing:.2px}td,th{border-bottom:1px solid #e5ebf0;padding:13px 12px;vertical-align:middle}td .actions button{padding:6px 9px;font-size:11px}td .actions{flex-wrap:nowrap}tr:last-child td{border-bottom:0}td strong{font-size:12px}.search{max-width:380px}.empty{text-align:center;color:#6c8194;padding:45px 20px}.empty b{display:block;font-size:19px;color:#264b63;margin-bottom:10px}.list{list-style:none;margin:0;padding:0}.list li{padding:12px 0;border-bottom:1px solid #e8edf2;line-height:1.5}.list li:last-child{border-bottom:0}details{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;background:white}summary{padding:15px;cursor:pointer;font-weight:600}details .detail-body{padding:5px 18px 20px;line-height:1.6}code{font-size:11px;background:#f1f4f6;padding:2px 5px;border-radius:3px;overflow-wrap:anywhere}dialog{border:0;border-radius:14px;padding:0;box-shadow:0 24px 100px #10304844;width:min(760px,94vw);max-height:90vh}dialog::backdrop{background:#102a4166}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid var(--border)}.modal-head h2{margin:0}.modal-body{padding:24px 25px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:18px 25px;border-top:1px solid var(--border);background:#f7f9fb}#toast{position:fixed;bottom:22px;right:24px;max-width:480px;background:#163b53;color:white;padding:14px 19px;border-radius:10px;box-shadow:0 10px 40px #163b5333;display:none;z-index:20}#toast.bad{background:#9c3349}.boot{margin:40px}.progressline{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #e5eaf0}.progressline span:first-child{width:140px}.progressline strong{margin-left:auto}.logo{max-width:70px;max-height:65px;object-fit:contain}.keyline{font-size:11px;color:#728697;word-break:break-all;margin-top:8px}ul{line-height:1.7}footer{font-size:11px;color:#7d8f9f;margin-top:28px}button.link{border:0;padding:0;background:transparent;color:#08768a;font-weight:500}.rowcheck{max-width:22px;width:auto}.long{max-width:360px}.mono{font-family:Consolas,monospace;font-size:11px}pre{white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.5}.nowrap{white-space:nowrap}@media(max-width:1050px){.shell{grid-template-columns:200px 1fr}.content{padding:26px 22px}.topbar{padding:15px 22px}.two{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.shell{display:block}.side{height:auto;position:static;padding:17px}.side .sub,.side-note{display:none}.nav{display:flex;overflow:auto;margin-top:15px}.nav button{white-space:nowrap}.topbar{align-items:flex-start;gap:12px}.workspace-line{display:block}.topbar select{max-width:220px}.gridform{grid-template-columns:1fr}.metrics{gap:10px}.metric{padding:17px}.content{padding:24px 15px}.card{padding:18px}h1{font-size:23px}}

.module-dialog{width:98vw;max-width:none;height:96vh;max-height:96vh;padding:0;overflow:hidden}.module-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:#fff;border-bottom:1px solid var(--border)}.module-head small{display:block;margin-top:4px}.module-dialog iframe{width:100%;height:calc(100% - 68px);border:0;display:block}.module-dialog #moduleNotice:not(:empty){position:absolute;top:75px;left:20px;right:20px;z-index:10;pointer-events:none}

.pdf-dialog{width:96vw;max-width:none;height:95vh;max-height:95vh;padding:0;background:#e6ebef}.pdf-dialog .module-head{position:sticky;top:0;z-index:3}.pdf-status{padding:12px 20px;margin:0;background:white;position:sticky;top:64px;z-index:2}.pdf-page{position:relative;width:min(100%,1123px);margin:18px auto;box-shadow:0 3px 18px #233b5040}.pdf-page img{display:block;width:100%}.pdf-cell{position:absolute;padding:0;background:transparent;border:0;border-radius:0;font-size:0}.pdf-cell:hover,.pdf-cell:focus-visible{background:#057eab22;outline:2px solid #087f8c;outline-offset:-2px}.pdf-render-frame{position:fixed;left:-100000px;top:0;width:1250px;height:1000px;border:0}#pdfEditForm{position:fixed;z-index:10;bottom:4vh;right:4vw;width:360px;padding:20px;background:white;border:2px solid #087f8c;box-shadow:0 8px 40px #10203055;border-radius:10px}#pdfEditForm textarea{margin:10px 0;min-height:90px}#pdfEditForm[hidden]{display:none}

.module-dialog[open]{display:flex;flex-direction:column}.module-dialog .module-head{flex:0 0 auto;gap:10px;flex-wrap:wrap}.module-dialog iframe{flex:1;min-height:0;height:auto}.pdf-dialog .module-head{gap:12px;flex-wrap:wrap}.pdf-dialog .pdf-status{position:static}.module-head a{display:inline-block;padding:8px 10px;border:1px solid #cdd8e2;border-radius:7px;background:white;text-decoration:none;font-weight:600;font-size:12px}.download-ready{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
