:root{--ink:#183b30;--muted:#718078;--line:#e3eae5;--bg:#f4f7f4;--green:#26735a;--purple:#7055ba}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.6 'Microsoft YaHei',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,summary{cursor:pointer}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:7px;padding:8px 12px}button:hover{border-color:var(--green);background:#eff7f1}button:disabled{cursor:not-allowed;opacity:.45}button.primary{background:var(--green);color:white;border-color:var(--green)}button.danger{color:#b03c32}input,select,textarea{border:1px solid #d7e2d9;border-radius:6px;padding:8px;background:#fff;color:var(--ink);max-width:100%}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #9e8ad7;outline-offset:2px}textarea{min-height:80px;width:100%;resize:vertical}small,.muted{color:var(--muted);font-size:12px}.shell{height:100dvh;display:grid;grid-template-columns:190px minmax(0,1fr) 390px}.sidebar{background:#173e32;color:#dbeee2;padding:24px 14px;display:flex;flex-direction:column;overflow:auto}.brand{padding:0 10px 22px;font-size:20px;font-weight:700}.brand small{display:block;color:#a1c4af;font-size:11px;font-weight:400;letter-spacing:2px}.nav{display:block;width:100%;text-align:left;border:0;background:none;color:#dbeee2;margin:3px 0;padding:11px 13px}.nav.active,.nav:hover{background:#2c5d49;color:white}.sidefoot{margin-top:auto;padding:22px 8px 0;color:#aac5b4;font-size:11px}.workspace{overflow:auto;min-width:0}.top{position:sticky;top:0;background:#fffffff5;border-bottom:1px solid var(--line);padding:13px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:2;font-size:12px}.top select{padding:4px;max-width:150px}.content{padding:25px;max-width:1550px;margin:auto}.titlebar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px}.titlebar h1{font-size:25px;margin:0 0 4px}.actions{display:flex;gap:7px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stat{border:1px solid var(--line);border-radius:10px;background:white;padding:16px}.stat b{display:block;font-size:26px;margin:5px 0}.panel{background:white;border:1px solid var(--line);border-radius:11px;margin:17px 0;overflow:hidden}.panelhead{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.panelhead h2{margin:0;font-size:15px}.panelbody{padding:16px 18px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{font-size:11px;color:var(--muted);text-align:left;background:#f8faf8;white-space:nowrap}td,th{padding:12px 14px;border-bottom:1px solid #edf1ed;vertical-align:middle}td .actions{flex-wrap:nowrap}td button{white-space:nowrap;padding:5px 8px;font-size:11px}tbody tr:hover{background:#fafcf9}.tag{display:inline-block;border-radius:20px;padding:3px 8px;background:#edf5ef;color:#327352;font-size:10px;white-space:nowrap}.tag.warn{background:#fff2df;color:#9c6217}.tag.bad{background:#fff0ee;color:#b24338}.tag.blue{background:#edf2fb;color:#486aa1}.empty{text-align:center;padding:35px;color:var(--muted)}.notice{background:#edf5ef;border-left:3px solid var(--green);padding:10px 13px;margin:13px 0;font-size:12px}.notice.warn{background:#fff6e8;border-color:#c89c41;color:#805f24}.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.flow button{padding:15px 5px;font-size:11px}.flow b{display:block;font-size:22px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px}.field.full{grid-column:1/-1}.field>span{font-weight:600}.field small{font-size:10px}.inline{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.reqpanel{background:white;border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0;height:100dvh;z-index:6}.reqhead{padding:20px 19px 15px;border-bottom:1px solid var(--line)}.eyebrow{color:var(--purple);font-size:10px;letter-spacing:1.3px;font-weight:700}.reqhead h2{font-size:19px;margin:4px 0}.reqhead p{font-size:11px;color:var(--muted);margin:5px 0}.modes{display:flex;background:#f1eff7;padding:4px;border-radius:8px;margin:13px 0 8px}.modes button{flex:1;background:none;border:0;color:#70677c;font-size:12px}.modes button.active{background:white;color:var(--purple);box-shadow:0 1px 4px #2221;font-weight:700}.reqhead select{width:100%;margin-top:9px;font-size:12px}.reqbody{padding:17px 20px;overflow:auto;flex:1;min-height:120px;overflow-wrap:anywhere}.reqbody h3{font-size:18px;margin:10px 0 7px}.reqbody h4{font-size:12px;margin:17px 0 7px;border-left:3px solid #9982d8;padding-left:7px}.reqbody p,.reqbody li{font-size:11px;line-height:1.9;color:#5c6d64}.reqbody ul,.reqbody ol{padding-left:18px;margin:4px 0}.reqbody code{background:#f2effa;border-radius:3px;padding:1px 4px;color:#7055aa;font-size:10px}.reqmeta{color:#8062be;font-size:10px}.reqtarget{border:1px dashed #d1c6eb;border-radius:6px;padding:8px;font-size:10px;color:#826caf;margin:10px 0}.reqindex{padding:12px 18px;border-top:1px solid var(--line);max-height:23vh;overflow:auto;font-size:11px}.reqindex summary{font-weight:600}.reqindex button{display:block;background:none;border:0;width:100%;text-align:left;font-size:10px;padding:6px}.reqfoot{padding:10px 15px;border-top:1px solid var(--line);display:flex;gap:6px;flex-wrap:wrap}.reqfoot button{font-size:10px;padding:5px 7px}.reqfocus{outline:2px solid #a089df!important;outline-offset:2px}.overlay{position:fixed;inset:0 390px 0 190px;background:#17352c66;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px}.overlay[hidden]{display:none}.dialog{background:white;border-radius:13px;box-shadow:0 20px 70px #152b3a33;max-width:760px;width:100%;max-height:calc(100dvh - 48px);display:flex;flex-direction:column;min-width:0}.dialoghead{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.dialoghead h2{font-size:18px;margin:0}.dialogbody{padding:20px 22px;overflow:auto}.dialogfoot{padding:13px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.error{color:#b13f33;background:#fff0ed;padding:9px;font-size:12px;margin:12px 0;white-space:pre-line}.error:empty{display:none}.audit{padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.audit small{display:block}.toast{position:fixed;left:45%;bottom:25px;background:#173e32;color:white;border-radius:9px;padding:12px 20px;z-index:10;box-shadow:0 8px 30px #173e3244;max-width:75vw}.reqopen{position:fixed;right:16px;top:16px;z-index:8;display:none}.reqhidden .reqpanel{display:none}.reqhidden.shell{grid-template-columns:190px minmax(0,1fr)}.reqhidden .reqopen{display:block}.reqhidden .overlay{right:0}.mobile-nav{display:none}.codehint{font-size:11px;background:#f7f5fc;padding:9px;color:#716084}.steps{display:flex;gap:9px;flex-wrap:wrap}.steps>div{border:1px solid var(--line);padding:13px;border-radius:8px;flex:1;min-width:140px}.steps b{display:block}.stat small{font-size:10px}.minor{font-size:11px}.right{text-align:right}.active-tab{background:#edf5ef;border-color:var(--green);font-weight:600}
@media(max-width:1300px){.shell{grid-template-columns:165px minmax(0,1fr) 355px}.overlay{left:165px;right:355px}.content{padding:20px 17px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.flow{grid-template-columns:repeat(3,1fr)}.top{padding:12px 17px}.sidebar{padding:20px 9px}.reqhidden.shell{grid-template-columns:165px minmax(0,1fr)}}
@media(max-width:1000px){.shell{grid-template-columns:150px minmax(0,1fr) 320px}.overlay{left:150px;right:320px;padding:10px}.reqhead{padding:15px}.reqbody{padding:15px}.titlebar{flex-direction:column}.top{flex-wrap:wrap}.dialogbody{padding:15px}.formgrid{grid-template-columns:1fr}}
@media(max-width:820px){.shell{grid-template-columns:150px minmax(0,1fr)}.reqpanel{position:fixed;right:0;top:0;width:350px;box-shadow:-10px 0 35px #173e3233}.overlay{right:0;left:150px;z-index:4}.reqopen{top:auto;bottom:70px}.reqhidden.shell{grid-template-columns:150px minmax(0,1fr)}}
@media(max-width:650px){.shell,.reqhidden.shell{display:block;height:auto}.sidebar{display:none}.workspace{height:100dvh}.content{padding:18px 13px 100px}.top{padding:10px 13px;gap:6px}.top .date{display:none}.reqpanel{top:auto;bottom:0;width:100%;height:55dvh;border-radius:14px 14px 0 0}.reqhead{padding:11px 15px}.reqhead>p,.reqhead .eyebrow{display:none}.reqhead h2{font-size:16px}.modes{margin:8px 0}.reqhead select{padding:5px;margin-top:3px}.reqbody{min-height:80px}.reqindex{max-height:12vh}.reqfoot{padding:6px 12px}.overlay{inset:0;padding:10px;z-index:5}.dialog{max-height:95dvh}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:3;background:#fff;border-top:1px solid var(--line);padding:5px;gap:2px;justify-content:space-around}.mobile-nav button{padding:9px 6px;border:0;font-size:10px}.mobile-nav button.active{color:var(--green);background:#edf5ef}.formgrid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:12px}.stat b{font-size:23px}.flow{grid-template-columns:repeat(2,1fr)}}
.order-timeline{margin:16px 0;padding:13px 16px;border:1px solid #e3eae5;border-radius:9px;background:#fbfdfb}.timeline-caption{font-size:11px;font-weight:700;color:#4f6c5c;margin-bottom:10px}.timeline-item{display:grid;grid-template-columns:25px 1fr;gap:10px;position:relative;padding:7px 0;min-height:42px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:11px;top:30px;bottom:-7px;border-left:1px dashed #cbded0}.timeline-dot{width:23px;height:23px;border-radius:50%;border:1px solid #cbded0;background:#fff;color:#809188;text-align:center;line-height:21px;font-size:11px;z-index:1}.timeline-item.done .timeline-dot{background:#26735a;border-color:#26735a;color:#fff}.timeline-item.current .timeline-dot{border-color:#c89c41;color:#9c6217;box-shadow:0 0 0 3px #fff3dc}.timeline-item b{display:inline-block;width:42px;font-size:12px}.timeline-item span:not(.timeline-dot){font-size:11px;color:#567064}.timeline-item small{display:block;color:#8a9890;font-size:10px}.timeline-item.current b{color:#9c6217}
