:root{font:15px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#203b33;background:#f6f8f5;--green:#21674e;--dark:#153d33;--dim:#65786f;--line:#dde5dc;--pale:#eaf2e6;--white:#fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;color:inherit;background:white;border:1px solid var(--line);border-radius:8px;padding:8px 13px;min-height:39px;font-weight:550}button:hover{border-color:#80a18b;background:#f4f8f1}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #80ac88;outline-offset:2px}input,select,textarea{min-width:0;width:100%;border:1px solid #cbd7cc;border-radius:7px;background:white;color:#203b33;padding:10px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:#538468;box-shadow:0 0 0 3px #ecf4e9}textarea{min-height:76px;resize:vertical}h1,h2,h3,p{margin:0}h1{font-size:clamp(25px,3vw,38px);letter-spacing:-1.2px;line-height:1.22}h2{font-size:19px}h3{font-size:16px}.muted,small{color:var(--dim)}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:750;color:#62816a;margin-bottom:9px}.brand{display:flex;gap:10px;align-items:center;font-size:21px;letter-spacing:.7px;font-weight:750}.brand img{width:40px;height:40px}.brand small{display:block;letter-spacing:2px;font-weight:500;font-size:10px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#154e38;color:white}.danger{color:#935142}.link{border:0;background:transparent;color:var(--green);padding:4px;font-size:14px}.login{min-height:100dvh;display:grid;place-content:center;padding:28px;background:radial-gradient(ellipse at 24% 14%,#e5eddf,transparent 50%),#f4f5ee}.loginbox{width:min(980px,92vw);display:grid;grid-template-columns:1.05fr 1fr;border-radius:22px;background:white;box-shadow:0 18px 80px #2b4c3520;overflow:hidden;border:1px solid #d6dfd2}.story{background:#e5ecdc;padding:38px 36px 0;display:flex;flex-direction:column;position:relative;overflow:hidden}.story .eyebrow{margin-top:55px}.story h2{font-size:35px;letter-spacing:-1px}.story img.scene{width:calc(100% + 72px);margin:32px -36px 0;display:block;flex:1;object-fit:cover;min-height:170px}.loginform{align-self:center;padding:48px}.loginform h1{font-size:30px;margin:8px 0}.loginform form{margin-top:28px}.loginform label,dialog label{display:block;font-size:13px;font-weight:650}.loginform label{margin:16px 0}.loginform input,dialog label>input,dialog label>select,dialog label>textarea{margin-top:6px}.loginform button{width:100%;margin-top:8px}.error{color:#a34132;white-space:pre-wrap}.boot{text-align:center;padding:18vh 12px}.shell{display:grid;grid-template-columns:213px minmax(0,1fr);min-height:100dvh}.rail{position:sticky;top:0;align-self:start;height:100dvh;display:flex;flex-direction:column;background:var(--dark);color:#edf3e9;padding:27px 15px 18px;z-index:4}.rail .brand{padding:0 4px}.rail .brand img{background:#285142}.rail small,.rail .eyebrow{color:#b1c7b5}.rail .eyebrow{margin:49px 11px 12px}.rail nav button,.rail .foot button{width:100%;border:0;background:transparent;color:#d3e1d3;text-align:left;display:flex;align-items:center;gap:12px;padding:11px 13px}.rail nav button.on,.rail nav button:hover,.rail .foot button:hover{background:#345a4a;color:white}.rail nav{display:grid;gap:4px}.icon{width:19px;height:19px;vertical-align:middle;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.foot{margin-top:auto;border-top:1px solid #476456;padding-top:14px}.account{display:flex;align-items:center;gap:10px;margin:8px 9px 13px}.avatar,.badgeIcon{border-radius:50%;height:35px;width:35px;display:inline-grid;place-items:center;background:#e3ecd8;color:#315d43;font-weight:700}.account small{display:block;font-size:11px}.rail .foot button{font-size:12px;min-height:32px;padding:6px 12px}.topbar{height:65px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,42px);gap:12px;font-size:13px}.status{display:inline-flex;gap:7px;align-items:center;color:#5d7163}.status:before{content:"";width:7px;height:7px;background:#76a571;border-radius:50%}.workspace{padding:30px clamp(16px,3vw,42px) 55px;max-width:1600px;margin:auto}.pagehead,.panelhead,.toolbar,.row,.between{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pagehead,.panelhead,.between{justify-content:space-between}.pagehead{margin:0 0 25px}.pagehead p{color:var(--dim);margin-top:8px;font-size:14px}.hero{display:flex;position:relative;overflow:hidden;min-height:138px;background:#e5eddd;border:1px solid #d3dfce;border-radius:14px;margin-bottom:20px}.heroText{padding:23px 25px;z-index:1;flex:1}.hero h2{font-size:23px;letter-spacing:-.7px}.hero p{font-size:13px;color:#556e59;margin:5px 0}.hero img{width:32%;object-fit:cover;object-position:center 65%;mask-image:linear-gradient(to right,transparent,#000 20%)}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 25px}.kpi{display:flex;flex-direction:column;align-items:start;text-align:left;gap:8px;border-radius:12px;padding:16px;background:white}.kpi .badgeIcon{width:31px;height:31px;border-radius:8px}.tone1{background:#f8edda;color:#926b41}.tone2{background:#e3eef0;color:#537c87}.tone3{background:#eae6f3;color:#76628c}.tone4{background:#e5eedb;color:#638044}.kpi small{font-weight:500}.kpi strong{font-size:32px;line-height:1.1;font-variant-numeric:tabular-nums}.panel,.card{background:white;border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:18px}.panelhead{margin-bottom:16px}.sub{font-size:13px;color:var(--dim);margin-top:4px}.grid2,.cards,.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.cards{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.card{margin:0}.card h3,.mini b,.panel,.drawer,.record{overflow-wrap:anywhere}.card .numline{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:12px 0;padding:10px 0;display:flex;gap:15px;flex-wrap:wrap;font-size:12px}.numline b{font-size:17px}.tag{display:inline-block;font-size:12px;border-radius:6px;background:#edf2e8;color:#50674d;padding:3px 8px}.tag.wait{background:#f6efe2;color:#876d44}.tag.blue{background:#e6eef0;color:#456b78}.tag.purple{background:#eee8f3;color:#705884}.record,.mini{border-top:1px solid var(--line);padding:12px 0}.mini{display:flex;align-items:center;justify-content:space-between;gap:12px}.mini small,.person small{display:block}.tablebox{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)}th{background:#f3f6ef;color:#617360;font-size:12px;font-weight:600}td:first-child,th:first-child{padding-left:12px}.empty{text-align:center;color:#667a68;background:#f7f9f5;border:1px dashed #d6e1d1;border-radius:9px;padding:24px 12px;font-size:14px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters input{width:min(100%,260px);flex:1 1 185px}.filters select{width:auto;max-width:100%;flex:1 1 110px}.switch{display:inline-flex;gap:3px;background:#edf1e9;padding:3px;border-radius:8px}.switch button{border:0;background:transparent;min-height:33px;padding:5px 11px}.switch .on{background:white;box-shadow:0 1px 4px #36523b19}.shade{position:fixed;inset:0;background:#0e261e50;z-index:6}.drawer{position:fixed;z-index:7;right:0;top:0;bottom:0;width:min(700px,88vw);background:#f8faf6;box-shadow:-12px 0 56px #192f241f;overflow:auto;overscroll-behavior:contain}.drawerhead{background:#fff;border-bottom:1px solid var(--line);padding:21px 24px 15px}.drawerhead h2{font-size:26px}.drawerbody{padding:20px}.tabs{display:flex;gap:5px;overflow:auto;padding:8px 16px;background:white;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line)}.tabs button{white-space:nowrap;flex:1;border:0;font-size:14px}.tabs .on{background:var(--pale);color:var(--green)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:15px}.facts small,.facts span{display:block}.facts span,.record p{white-space:pre-wrap}.progress{height:6px;border-radius:8px;background:#e5eadf;overflow:hidden;margin:9px 0}.progress i{display:block;height:100%;background:#4d8c60}.actionsrow{display:grid;grid-template-columns:minmax(140px,1fr) 95px 50px 85px;gap:5px;align-items:center;border-bottom:1px solid var(--line);padding:7px 0}.actionsrow .check{display:flex;align-items:center;gap:8px;background:none;border:0;text-align:left;padding-left:0;font-size:14px}.square{display:grid;place-items:center;width:19px;height:19px;border:1.5px solid #98ae9d;border-radius:4px;flex:none}.square.yes{background:#447f55;color:white;border-color:#447f55}.actionsrow.hdr{font-size:11px;color:var(--dim)}.person{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.person .meta{margin:10px 0}.record:first-child{border-top:0}.record p{font-size:14px;margin:6px 0}.record .row{gap:7px}.compact{font-size:13px}.compact button{font-size:12px}.back{margin-bottom:12px}.note{background:#f0f5eb;padding:12px 14px;border-radius:8px;font-size:13px;margin:10px 0}.full{grid-column:1/-1}dialog{width:min(540px,94vw);padding:0;border:1px solid var(--line);color:inherit;border-radius:14px;box-shadow:0 22px 80px #172b2630;max-height:91dvh}dialog::backdrop{background:#112b235c}dialog form{padding:22px}dialog h2{font-size:22px}dialog .formgrid{gap:13px;margin:18px 0}dialog .formfoot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:14px}.checks{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}.checks label{font-size:13px;background:#f3f6ef;padding:5px 8px;border-radius:6px}.checks input{width:auto;accent-color:var(--green);margin:0 4px 0 0}.pillbar{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.statline{display:flex;gap:12px;flex-wrap:wrap;color:#546c59;font-size:13px;margin-top:10px}.pillbar .tag{white-space:normal}#toast:not(:empty){position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:15;color:white;background:#254b3b;padding:10px 19px;border-radius:9px;box-shadow:0 5px 19px #0002}.subhead{margin:18px 0 8px}.mobilebrand{display:none}
@media(max-width:1050px){.shell{grid-template-columns:170px minmax(0,1fr)}.rail{padding:23px 10px}.brand{font-size:18px}.kpis{gap:8px}.kpi{padding:13px}.workspace{padding:23px 18px}.grid2{grid-template-columns:1fr}.topbar{padding:0 18px}}
@media(max-width:760px){.shell{display:block}.rail{position:static;height:auto;padding:10px 12px;display:block}.rail .brand{display:none}.rail>.eyebrow,.rail .account{display:none}.rail nav{display:flex;overflow:auto;gap:2px}.rail nav button{width:auto;white-space:nowrap;padding:8px 9px;font-size:13px;gap:5px}.rail nav .icon{width:16px}.rail .foot{display:none}.mobilebrand{display:inline-flex;align-items:center;gap:6px}.mobilebrand img{width:24px}.topbar{height:49px}.crumb{display:none}.topbar .link{display:inline-block}.status{font-size:12px}.workspace{padding:21px 12px}.pagehead{margin-bottom:16px;gap:12px}.heroText{padding:17px}.hero img{width:34%}.hero{min-height:110px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.kpi{padding:11px;gap:5px}.kpi strong{font-size:26px}.panel,.card{padding:14px}.drawer{width:100vw}.drawerhead,.drawerbody{padding:15px}.tabs{padding:6px}.loginbox{grid-template-columns:1fr;width:min(440px,94vw)}.story{padding:16px 22px}.story .eyebrow,.story h2{display:none}.story img.scene{position:absolute;width:42%;height:100%;min-height:0;top:0;right:0;margin:0;mask-image:linear-gradient(to right,transparent,#000 30%)}.loginform{padding:28px 24px}.pagehead p{font-size:13px}.actionsrow{grid-template-columns:minmax(100px,1fr) 78px 33px 64px;gap:2px}.actionsrow button,.actionsrow .check{font-size:12px;min-height:44px}.toolbar button,.tabs button,dialog button,.person button{min-height:44px}.actionsrow .link{padding:2px}.formgrid{gap:10px}dialog form{padding:17px}.filters select{font-size:13px}.filters input{flex-basis:100%}.facts{gap:12px}.hero h2{font-size:20px}}
@media(max-width:410px){.rail nav button{font-size:12px;padding:7px}.rail nav .icon{display:none}.formgrid{grid-template-columns:1fr}.actionsrow{grid-template-columns:minmax(96px,1fr) 77px 27px 61px}.topbar{padding:0 10px}}
@media(min-width:761px){.topbar .mobileonly{display:none}}
