:root{--nav:#153431;--nav-muted:#a5c2bc;--ink:#182e2b;--text:#344b47;--muted:#61746f;--bg:#f3f5f2;--line:#dbe3de;--green:#17614f;--light:#e7f2ec;--amber:#986510;--white:#fff;--radius:9px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.6 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #dfaa47}button{min-height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:9px 15px;cursor:pointer}button:hover{background:#f1f6f3}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#104b3d}.text-button{border:0;background:transparent;padding:8px;color:var(--muted)}a{color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.4;margin-bottom:8px;font-weight:650;letter-spacing:-.7px}h2{font-size:23px;margin-bottom:14px}h3{font-size:16px;margin-bottom:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--muted);font-weight:700;margin-bottom:12px}.skip{position:absolute;left:-999px;z-index:20}.skip:focus{left:20px;top:15px;background:#fff;padding:10px}.brand-mark{width:70px;height:70px;border:1px solid #91b6a8;display:grid;place-items:center;font-size:30px;font-weight:500;letter-spacing:-3px;border-radius:18px;margin-bottom:30px}.brand-mark.small{width:39px;height:39px;border-radius:10px;font-size:21px;margin:0}.login-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-brand{background:var(--nav);color:white;padding:70px 11%;display:flex;flex-direction:column}.login-brand h1{font-size:clamp(28px,3.2vw,47px);line-height:1.5;letter-spacing:-1px;margin:25px 0}.login-brand p,.login-brand .eyebrow{color:#b5cec5}.brand-bottom{margin-top:auto;padding-top:90px;line-height:2}.brand-bottom small{color:#b5cec5;letter-spacing:3px}.login-panel{display:grid;place-items:center;padding:50px}.login-panel>div{width:min(390px,100%)}label{display:grid;gap:6px;color:var(--text);font-weight:500}input,select,textarea{width:100%;min-height:43px;border:1px solid #bfcec5;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink)}textarea{min-height:95px;resize:vertical}#login-form{display:grid;gap:20px;margin-top:33px}#login-form .primary{display:flex;justify-content:space-between}.login-note{margin-top:32px;font-size:12px;color:var(--muted);line-height:1.8}.sidebar{background:var(--nav);position:fixed;inset:0 auto 0 0;width:218px;color:#fff;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:28px 22px;font-size:20px;font-weight:650}.brand small{display:block;font-size:10px;letter-spacing:1px;color:var(--nav-muted);font-weight:400}.nav-section{padding:18px 26px 6px;color:var(--nav-muted);font-size:10px;letter-spacing:1.5px}nav{overflow:auto}nav button{display:flex;align-items:center;gap:13px;width:calc(100% - 24px);margin:3px 12px;color:#d7e5df;background:transparent;border:0;border-radius:6px;text-align:left;padding:11px 15px}nav button span{font-size:17px;width:20px;text-align:center}nav button.active{background:#285148;color:#fff;box-shadow:inset 3px 0 #b8ce99}nav button:hover{background:#234840}.sidebar-bottom{margin-top:auto;padding:26px 20px;color:#cfdfd7;font-size:10px}.sidebar-bottom small{display:block;color:var(--nav-muted);padding-left:13px;margin-top:4px}.dot{display:inline-block;width:6px;height:6px;background:#b8ce99;border-radius:100%;margin-right:6px}.shell{margin-left:218px}.topbar{min-height:73px;padding:16px 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.company-name{font-size:12px;font-weight:600}.account{display:flex;align-items:center;gap:13px;font-size:12px}#role-badge{background:var(--light);color:var(--green);padding:4px 9px;border-radius:5px}#menu-toggle{display:none}.icon-button{font-size:22px;padding:4px 12px;border:0}main{padding:32px 34px;min-height:calc(100vh - 122px);max-width:1800px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:27px}.page-heading p{margin-bottom:0}.page-heading .eyebrow{margin-bottom:8px}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:26px}.stat{padding:23px 25px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat .value{font-size:34px;font-weight:550;line-height:1.3;margin:11px 0 5px}.stat .value small{font-size:12px;font-weight:400;color:var(--muted);margin-left:9px}.stat .caption{font-size:12px;color:var(--muted)}.section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;overflow:hidden}.section-head{padding:19px 23px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.section-head h3{margin:0}.section-head small{color:var(--muted)}.flow{display:flex;padding:27px 22px;gap:0;overflow:auto}.flow-step{flex:1;min-width:113px;position:relative;font-size:12px}.flow-step:not(:last-child):after{content:"";position:absolute;left:33px;right:12px;top:15px;height:1px;background:#c9d7cd}.flow-number{display:grid;place-items:center;width:30px;height:30px;border:1px solid #b8ccbf;border-radius:50%;color:var(--green);font-size:11px;margin-bottom:11px;background:#f8fbf7}.flow-step small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.split{display:grid;grid-template-columns:1.5fr 1fr;gap:23px}.empty{padding:45px 24px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:17px;margin:8px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.section .table-wrap{border:0;border-radius:0}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}th{padding:13px 17px;background:#f7f9f6;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}td{padding:15px 17px;border-bottom:1px solid #edf1ed;max-width:330px;overflow:hidden;text-overflow:ellipsis}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf9}.number{font-variant-numeric:tabular-nums}td button{font-size:12px;min-height:30px;padding:4px 9px}.status{display:inline-block;padding:3px 9px;background:#eef2ee;color:#596c63;border-radius:4px;font-size:11px}.status.posted,.status.released,.status.sent{background:#e7f2e9;color:#286440}.status.draft,.status.confirmed{background:#faf0d9;color:#825a13}.status.void{color:#963932;background:#f7eaea}.toolbar{display:flex;gap:12px;margin-bottom:17px;align-items:center;flex-wrap:wrap}.toolbar input{max-width:300px}.toolbar .muted{font-size:12px}.notice{padding:14px 18px;background:#f8f0df;color:#745317;border:1px solid #e7d6b1;border-radius:7px;margin-bottom:18px;font-size:12px}.responsibility{padding:18px 23px}.person{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf1ed}.person:last-child{border:0}.person small{color:var(--muted)}footer{padding:15px 34px;background:white;border-top:1px solid var(--line);color:var(--muted);font-size:10px;display:flex;gap:24px}footer span:last-child{margin-left:auto}dialog{width:min(920px,calc(100vw - 30px));max-height:90vh;border:1px solid var(--line);border-radius:12px;padding:0;color:var(--ink)}dialog::backdrop{background:#10272280}.dialog-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 27px;border-bottom:1px solid var(--line)}.dialog-heading h2,.dialog-heading p{margin:0}.dialog-heading .eyebrow{margin-bottom:6px}#form-fields,#detail-body{padding:25px 27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.form-grid .wide{grid-column:1/-1}.dialog-actions{display:flex;align-items:center;gap:10px;padding:18px 27px;border-top:1px solid var(--line);background:#f8faf7}.dialog-actions span{font-size:11px;margin-right:auto}.error{color:#a62c2c;font-size:13px;white-space:pre-wrap}.error:not(:empty){padding:12px 20px;background:#fff0ef;border-radius:5px}#form-error{margin:0 25px 20px}.line-editor{grid-column:1/-1;overflow:auto;border:1px solid var(--line);border-radius:6px}.line-editor h3{padding:12px 14px;margin:0;background:#f8faf7}.line-editor th,.line-editor td{padding:7px}.line-editor input,.line-editor select{min-width:90px;padding:7px;min-height:36px;font-size:12px}.line-editor input[data-key=name]{min-width:140px}.line-editor .add-line{margin:10px}.detail-grid{display:grid;grid-template-columns:160px 1fr;font-size:13px;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:20px}.detail-grid dt,.detail-grid dd{padding:10px 14px;margin:0;background:#fff;white-space:pre-wrap;overflow-wrap:anywhere}.detail-grid dt{background:#f7f9f6;color:var(--muted)}#toast{position:fixed;bottom:26px;right:25px;background:var(--nav);color:white;padding:13px 22px;border-radius:7px;z-index:30;box-shadow:0 4px 20px #0002}#demo-banner{background:#e9f1e4;border:1px solid #c9d9be;color:#42632d;padding:9px 14px;margin-bottom:22px;font-size:12px}[hidden]{display:none!important}
@media(max-width:1100px){.sidebar{width:190px}.shell{margin-left:190px}.topbar,main{padding-left:22px;padding-right:22px}.company-name{display:none}.topbar{justify-content:flex-end}.split{grid-template-columns:1fr}.stat{padding:19px 16px}.stat .value{font-size:29px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:218px}.sidebar.open{transform:none;top:70px}.shell{margin-left:0}#menu-toggle{display:block}.topbar{justify-content:space-between;padding:10px 15px;min-height:70px}.account{gap:7px;flex-wrap:wrap;justify-content:flex-end;font-size:10px}main{padding:23px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:15px}h1{font-size:25px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.login-wrap{grid-template-columns:1fr}.login-brand{padding:30px;min-height:240px}.login-brand .brand-mark{margin-bottom:12px}.login-brand h1{font-size:28px;margin:8px 0}.brand-bottom{display:none}.login-panel{padding:35px 25px}.form-grid{grid-template-columns:1fr}.dialog-heading,#form-fields,#detail-body{padding:19px}.dialog-actions{padding:14px;flex-wrap:wrap}.dialog-actions span{width:100%}.detail-grid{grid-template-columns:110px 1fr}footer{padding:13px 16px;flex-wrap:wrap;gap:5px 12px}.company-name{display:none}}
@media print{.sidebar,.topbar,.heading-actions,.toolbar,footer,#toast,#demo-banner{display:none!important}.shell{margin:0}main{padding:0}.table-wrap,.section{overflow:visible;break-inside:avoid}body{background:#fff}button{display:none}th,td{white-space:normal;overflow:visible;text-overflow:clip}.stats{break-inside:avoid}}

@media(max-width:1100px){.flow{flex-wrap:wrap;gap:22px 0}.flow-step{flex:0 0 25%;min-width:0}.flow-step:nth-child(4):after{display:none}}
@media(max-width:760px){.flow-step{flex-basis:50%}.flow-step:nth-child(even):after{display:none}.section-head{gap:12px;flex-wrap:wrap}.detail-grid dd{min-width:0}}

.source-version{border:1px solid var(--line);padding:14px;margin:10px 0;border-radius:7px}.source-version summary{cursor:pointer;overflow-wrap:anywhere}.source-version p{font-size:11px;overflow-wrap:anywhere}.source-text{white-space:pre-wrap;overflow-wrap:anywhere}.source-cell{white-space:pre-wrap;max-width:none}.status.imported{background:#edf0fa;color:#385276}
@media(max-width:760px){input,select,textarea{font-size:16px}td button{min-height:44px} .source-version{padding:10px}.source-version summary a{display:block;padding:9px 0}.line-editor input,.line-editor select{font-size:16px;min-height:44px}}

.factory-nav{display:block;margin:6px 12px 16px;padding:14px 12px;background:#e7f2ec;color:#153431;border-radius:7px;text-decoration:none;font-weight:600}.company-brand{width:38px;height:38px;object-fit:cover;vertical-align:middle;margin-right:10px}
.login-brand img.brand-mark{width:140px;height:140px;object-fit:contain}
.brand img.brand-mark.small{width:68px;height:68px;object-fit:contain;flex-shrink:0}
.company-name img.company-brand{width:76px;height:76px;object-fit:contain;flex-shrink:0}
@media(max-width:760px){.login-brand img.brand-mark{width:108px;height:108px}}
