:root{font-family:"Microsoft YaHei UI","PingFang SC",Arial,sans-serif;color:#202b2b;background:#f4f6f5}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-width:320px}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.6}
input,textarea,select{border:1px solid #bdc9c7;border-radius:4px;background:white;color:#202b2b}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid #237564;outline-offset:2px}
a{color:#146455}
.muted{color:#61716f;font-size:12px}
.error{color:#a62e30;font-size:13px}
.primary{border:1px solid #176958;background:#176958;color:white;font-weight:700;padding:11px 16px;border-radius:4px}
.text-button{border:0;background:none;color:#176958;font-size:12px;font-weight:700;padding:5px}
.brand-symbol{display:grid;place-items:center;background:#176958;color:white;font-size:21px;font-weight:800;width:34px;height:34px;border-radius:4px}
.login-layout{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:center;gap:8vw;padding:8vw;background:#e8eeeb}
.login-brand{justify-self:center}.login-brand .brand-symbol{width:50px;height:50px}
.login-brand p{font-size:19px;font-weight:700;margin:26px 0 4px}
.login-brand h1{font-size:clamp(32px,5vw,60px);letter-spacing:0;margin:0 0 16px}
.login-brand>span:last-child{color:#526864}
.login-form{display:grid;gap:11px;padding:32px;background:white;border:1px solid #d3ddda;border-radius:6px;box-shadow:0 12px 36px #24463a12}
.login-form h2{font-size:21px;margin:0 0 10px}.login-form label{font-size:12px;font-weight:700}
.login-form input{height:41px;padding:8px 10px}.login-form button{margin-top:12px}
.login-form #mfa-field{display:grid;gap:11px}
.login-panel{min-width:0;background:white;border:1px solid #d3ddda;border-radius:6px;box-shadow:0 12px 36px #24463a12}
.login-panel .login-form{border:0;box-shadow:none;border-radius:0;padding:24px 32px}
.login-form textarea{min-height:72px;max-height:140px;padding:8px 10px;resize:vertical}
.login-modes{display:flex;border-bottom:1px solid #d7dfdc}
.login-modes button{flex:1;min-width:0;border:0;border-bottom:2px solid transparent;background:white;padding:12px 4px;font-size:12px;color:#526864}
.login-modes button[aria-selected=true]{border-bottom-color:#176958;color:#176958;font-weight:700}
.review-form{display:grid;gap:10px}
.review-form label,.review-form legend{font-size:12px;font-weight:700}
.review-form select{padding:9px;width:100%}
.review-form fieldset{border:1px solid #d7dfdc;padding:9px}
.login-panel>.status{padding:0 32px}
.topbar{height:62px;display:flex;align-items:center;gap:34px;background:white;border-bottom:1px solid #d7dfdc;padding:0 24px}
.brand{display:flex;align-items:center;gap:9px;min-width:230px}.brand strong,.brand small{display:block}.brand strong{font-size:14px}.brand small{font-size:10px;color:#61716f}
.topbar nav{display:flex;align-items:center;gap:18px;font-size:14px;color:#176958}.topbar nav a{font-size:12px}.account{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:12px;min-width:0}.account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace{display:grid;grid-template-columns:minmax(285px,350px) minmax(0,1fr);min-height:calc(100dvh - 62px)}
.initial-loading{position:fixed;z-index:10;left:0;right:0;top:62px;display:flex;align-items:center;justify-content:center;gap:10px;background:#e7eeeafa;border-bottom:1px solid #d7dfdc;height:42px;color:#405c52;font-size:12px}
.initial-loading[hidden]{display:none}
.spinner{width:17px;height:17px;border:2px solid #b5c9c1;border-top-color:#176958;border-radius:50%;animation:turn .8s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none;border-color:#176958}}
.input-panel{border-right:1px solid #d7dfdc;background:white;min-width:0}
#plan-form{display:grid;gap:9px;padding:21px;border-bottom:1px solid #d7dfdc}
#plan-form h1{font-size:18px;margin:0 0 8px}
#plan-form>label,.mode legend{font-size:12px;font-weight:700}
#plan-form>input,#plan-form textarea{padding:9px 10px;width:100%}
#plan-form textarea{height:145px;min-height:100px;resize:vertical;line-height:1.5;font-family:Consolas,"Microsoft YaHei UI",monospace}
#plan-form p{margin:0}.catalog-options{border:1px solid #d7dfdc;height:185px;overflow:auto}
.catalog-option{display:flex;gap:8px;align-items:flex-start;padding:8px;border-bottom:1px solid #edf0ef;font-size:12px;cursor:pointer}
.catalog-option:hover{background:#f2f8f5}.catalog-option input{margin:2px 0;flex:none;accent-color:#176958}
.catalog-option small{display:block;color:#61716f;margin-top:2px}
.catalog-options>.muted{display:block;padding:10px}
.mode{border:0;padding:0;margin:4px 0;display:flex;gap:14px;flex-wrap:wrap}
.mode legend{margin-bottom:7px}.mode label{font-size:12px;white-space:nowrap}.mode input{accent-color:#176958}
.saved{padding:17px 21px}.section-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.section-head h2,.section-head h3{font-size:14px;margin:0}.section-head label{margin-left:auto;font-size:12px}
.section-head select{padding:5px}.section-head button{margin-left:auto}
.saved-list{display:grid;gap:5px}.saved-list button{width:100%;text-align:left;background:#f5f8f6;border:1px solid #dce5e1;border-radius:4px;padding:8px;font-size:12px}
.saved-list small{display:block;color:#61716f;margin-top:3px}
.results{min-width:0;padding:22px 3vw 70px}
.results-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #d7dfdc;padding-bottom:14px}
.results-bar h2{font-size:20px;margin:0}.results-bar p{margin:6px 0 0}
.actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.actions button,.export-row button{border:1px solid #176958;border-radius:4px;background:white;color:#176958;font-size:12px;font-weight:700;padding:7px 9px}
.status{min-height:29px;color:#a24223;font-size:12px;margin:10px 0}
.table-scroll{width:100%;overflow:auto;background:white;border:1px solid #d7dfdc}
table{border-collapse:collapse;min-width:1060px;width:100%;table-layout:fixed;font-size:12px}
th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e5ebe8;padding:9px;overflow-wrap:anywhere}
th{background:#e6efeb;font-size:11px}th:first-child{width:72px}th:nth-child(2){width:110px}th:nth-child(3){width:130px}th:nth-child(4){width:82px}th:nth-child(6){width:170px}th:nth-child(7){width:72px}th:nth-child(8){width:85px}
td img{max-width:56px;max-height:55px;object-fit:contain}
.parameters{white-space:pre-line;line-height:1.45}.quantities{display:grid;gap:3px}.quantities span{display:flex;justify-content:space-between;gap:6px}
.group-row th{background:#f0f3f1;color:#405c52}
#details{display:grid;gap:14px;margin-top:20px}
.part-detail{background:white;border:1px solid #d7dfdc;border-radius:5px;padding:16px;min-width:0}
.part-detail h4{margin:0 0 10px;font-size:15px}.part-detail h5{font-size:12px;margin:17px 0 7px}
.part-intro{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px}
.part-intro img{width:130px;height:110px;object-fit:contain;border:1px solid #e5ebe8}
.detail-fields{display:grid;grid-template-columns:120px minmax(0,1fr);font-size:12px;line-height:1.5;margin:0}
.detail-fields dt,.detail-fields dd{padding:5px;border-bottom:1px solid #edf0ef;overflow-wrap:anywhere}
.detail-fields dt{font-weight:700;color:#53625f}.detail-fields dd{margin:0;white-space:pre-wrap}
.location{display:grid;grid-template-columns:minmax(0,1fr) 65px 85px;gap:10px;padding:9px 0;border-top:1px solid #edf0ef;font-size:12px}
.location p{margin:3px 0;color:#61716f;overflow-wrap:anywhere}
.exports{margin-top:25px}.export-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #d7dfdc;font-size:12px}
.export-row small{color:#61716f}.export-row .error{margin:0}
.admin-main{padding:24px max(22px,5vw) 70px;max-width:1380px;margin:auto}
.admin-main h1{font-size:21px;margin:0 0 8px}.admin-main>p{margin:0 0 20px}
.admin-grid{display:grid;grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:25px}
.admin-form{display:grid;gap:9px;align-content:start;background:white;border:1px solid #d7dfdc;padding:18px}
.admin-form h2{font-size:15px;margin:0 0 5px}.admin-form label,.admin-form legend{font-size:12px;font-weight:700}
.admin-form>input,.admin-form select{padding:9px;width:100%}
.admin-form fieldset{border:1px solid #d7dfdc;padding:9px;display:flex;flex-wrap:wrap;gap:10px}
.admin-form fieldset label{font-weight:400}.admin-form fieldset input{accent-color:#176958}
.admin-form .form-numbers{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.catalog-select{height:190px;overflow:auto;border:1px solid #d7dfdc}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.admin-actions .primary{flex:1}
.admin-list{min-width:0}
.admin-client{border-bottom:1px solid #d7dfdc;padding:12px 0;font-size:12px}
.admin-client header{display:flex;justify-content:space-between;gap:10px;align-items:start}
.admin-client h3{font-size:14px;margin:0}.admin-client p{margin:5px 0;color:#61716f;overflow-wrap:anywhere}
.admin-client .actions{justify-content:flex-start;margin-top:7px}
.admin-client .revoked{color:#a62e30}
.admin-tabs{display:flex;gap:16px;border-bottom:1px solid #cbd8d2;margin:13px 0 8px;overflow-x:auto}
.admin-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:10px 3px;white-space:nowrap;color:#526864;font-size:13px}
.admin-tabs button[aria-selected=true]{border-bottom-color:#176958;color:#176958;font-weight:700}
.admin-lower{margin-top:32px;padding-top:24px;border-top:1px solid #d7dfdc}
.option-list{display:grid;gap:7px;max-height:180px;overflow:auto;min-width:0;width:100%}
.option-list label{display:flex;align-items:flex-start;gap:7px;font-weight:400}
.option-list input{flex:none;accent-color:#176958}
.admin-form fieldset .option-list{flex-basis:100%}
.audit-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid #d7dfdc}
.audit-filters div{display:grid;gap:5px;min-width:0}
.audit-filters label{font-size:12px;font-weight:700}
.audit-filters input,.audit-filters select{padding:8px;width:100%;min-width:0}
.audit-event{display:grid;grid-template-columns:165px minmax(130px,1fr) 90px minmax(0,1fr);gap:10px;align-items:start;border-bottom:1px solid #d7dfdc;padding:10px 0;font-size:12px;overflow-wrap:anywhere}
.audit-event strong{font-size:12px}.audit-event details{grid-column:1/-1}
.audit-event pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;background:white;border:1px solid #d7dfdc}
.session-list{max-height:min(55vh,440px);overflow:auto;border-top:1px solid #d7dfdc}
.session-item{padding:11px 0;border-bottom:1px solid #d7dfdc;font-size:12px;overflow-wrap:anywhere}
.session-item div{display:flex;gap:8px;justify-content:space-between}
.session-item p{margin:5px 0;color:#61716f}
.session-item button{border:1px solid #176958;border-radius:4px;background:white;color:#176958;padding:5px 8px;font-size:12px}
.token-dialog{border:1px solid #a6b9b1;border-radius:6px;width:min(540px,calc(100vw - 32px));padding:20px;box-shadow:0 18px 60px #182b2770}
.token-dialog::backdrop{background:#182b2788}
.token-dialog h2{font-size:16px;margin:0 0 10px}.token-dialog p{font-size:12px}
.token-dialog textarea{width:100%;height:95px;resize:none;padding:9px;overflow-wrap:anywhere}
.token-dialog .actions{margin-top:12px}
@media(max-width:850px){.workspace,.admin-grid{grid-template-columns:1fr}.input-panel{border-right:0;border-bottom:1px solid #d7dfdc}.results{padding:20px 14px 60px}.login-layout{grid-template-columns:1fr;gap:30px}.login-brand{justify-self:start}.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.topbar{height:auto;min-height:88px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:8px 12px}.brand{min-width:0;grid-column:1;grid-row:1}.brand strong{font-size:11px}.topbar nav{grid-column:1/-1;grid-row:2;gap:14px;overflow-x:auto;white-space:nowrap;font-size:11px;padding:3px 0}.topbar nav a{font-size:11px}.account{grid-column:2;grid-row:1;max-width:none;gap:4px}.account span{display:none}.account button{white-space:nowrap}.initial-loading{top:88px}.results-bar{display:block}.actions{justify-content:flex-start;margin-top:12px}.part-intro{grid-template-columns:1fr}.detail-fields{grid-template-columns:85px minmax(0,1fr)}.location{grid-template-columns:1fr auto}.location>span{grid-column:2}.location>div{grid-row:1 / span 2}.login-layout{padding:24px}.login-panel .login-form{padding:22px}.login-panel>.status{padding:0 22px}.admin-main{padding:18px 14px 55px}.audit-filters{grid-template-columns:1fr}.audit-event{grid-template-columns:1fr auto}.audit-event time{grid-column:1/-1}}
@media print{.topbar,.input-panel,.actions,.exports,.status,.section-head select,.section-head label{display:none!important}.workspace{display:block}.results{padding:0}.table-scroll{overflow:visible;border:0}table{min-width:0}.part-detail{break-inside:avoid;border:0;border-bottom:1px solid #bbb}.results-bar{margin-bottom:12px}}
