:root{--ink:#172924;--nav:#172722;--green:#365a40;--lime:#c6e986;--bg:#f4f5ef;--line:#e1e5da;--muted:#788179;--white:#fff;--amber:#946619}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:var(--green);text-decoration:none}a:hover{color:#659541}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d8ded1;background:white;border-radius:7px;padding:10px 16px;font-weight:600;cursor:pointer;color:var(--ink);line-height:1.3;white-space:normal;text-align:center}button:hover,.button:hover{background:#edf2e7;color:var(--ink)}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#294831;color:white}.lime{background:var(--lime);border-color:var(--lime);color:#172924}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:var(--nav);color:#c3cfc5;padding:31px 20px;display:flex;flex-direction:column;z-index:10}.brand{font-size:35px;font-weight:950;line-height:.84;letter-spacing:-2px;color:var(--lime);display:block;padding:8px 13px 36px;position:relative}.brand-dot{font-size:20px;margin-left:4px;vertical-align:top;letter-spacing:0}.brand:hover{color:var(--lime)}.workspace-label{font-size:9px;letter-spacing:1.7px;color:#8c9d8f;padding:15px 12px}.sidebar nav a{display:flex;gap:14px;color:#bdc9bf;border-radius:7px;padding:11px 13px;margin:3px 0;font-size:13px}.sidebar nav a span{width:15px;font-size:17px;line-height:18px;opacity:.8}.sidebar nav a:hover{background:#263a2e}.sidebar nav a.active{background:var(--lime);color:#203321;font-weight:700}.nav-divider{border-top:1px solid #344439;margin:21px 12px 15px}.sidebar-footer{display:flex;align-items:center;gap:10px;border-top:1px solid #344439;padding-top:22px;margin-top:auto;font-size:12px}.sidebar-footer small{display:block;color:#8c9d8f}.avatar{border-radius:50%;background:#394c3f;color:var(--lime);padding:10px 14px}.logout{background:transparent;color:#bdc9bf;border:none;padding:8px}.shell{margin-left:226px;min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:12px}.live-dot{display:inline-block;width:7px;height:7px;background:#82b460;border-radius:50%;margin-right:9px}.top-right{display:flex;align-items:center;gap:20px;color:var(--muted)}.muted{color:var(--muted);margin-left:9px}main{padding:34px 38px 46px;max-width:1840px;margin:auto}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#7d8a76;margin-bottom:9px}h1{font-weight:650;font-size:32px;letter-spacing:-1.1px;line-height:1.2;margin:0 0 9px}h2{font-size:17px;letter-spacing:-.35px;margin:0}h3{font-size:14px}p{margin:6px 0 18px;color:#6e796e}.page-head{display:flex;gap:22px;align-items:center;justify-content:space-between;margin-bottom:26px}.page-head p{margin:0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:25px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:20px 22px;color:var(--ink);min-width:0}.stat span{font-size:12px;color:#6e796e;display:block}.stat>strong{font-size:40px;letter-spacing:-1.5px;display:block;line-height:1.35;margin:8px 0 12px;font-weight:600}.stat small{font-size:10px;color:#7a847a;display:block}.stat small b{float:right;font-size:15px}.stat.green{background:#e8efd9;border-color:#dbe5cd}.amber-stat{background:#f5efe1;border-color:#eee5d4}.panel{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:22px}.panel-head{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head p{font-size:11px;margin:5px 0 0}.panel-head>a{font-size:11px;font-weight:600}.panel-body{padding:20px 24px}.panel-foot{padding:17px 24px;border-top:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between;gap:16px}.panel-foot span{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:22px}.dashboard-grid .panel{margin:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:normal}th{background:#f8f9f5;color:#7f887c;text-align:left;font-size:10px;font-weight:600;padding:12px 24px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}td{padding:17px 24px;border-top:1px solid #eef0e9;font-size:12px;vertical-align:middle}td strong,.cell-title{font-weight:650;color:#293e2d}td small{display:block;margin-top:4px;font-size:10px;color:var(--muted)}.numeric{text-align:right;white-space:nowrap}.badge{display:inline-block;border-radius:5px;background:#edf0e8;color:#64765c;padding:4px 8px;font-size:10px;font-weight:600;letter-spacing:.1px;vertical-align:middle;white-space:nowrap}.badge.green{background:#e5efd9;color:#44643c}.badge.amber{background:#f6edda;color:#976b29}.dark-panel{padding:28px 28px 0;background:#203b2e;color:white;min-height:330px;position:relative;isolation:isolate}.dark-panel .eyebrow{color:#b2cd94}.dark-panel h2{font-size:26px;font-weight:500;line-height:1.3;margin:20px 0 12px}.dark-panel p{color:#b6c7b7;font-size:12px;max-width:275px;line-height:1.7}.dark-panel .button{font-size:12px;position:relative;z-index:2}.wood-lines{display:flex;gap:9px;position:absolute;bottom:-60px;right:-14px;transform:rotate(-28deg);z-index:-1;opacity:.42}.wood-lines i{height:200px;width:23px;background:linear-gradient(90deg,#365943,#65916a,#385c43);border:1px solid #55795a;border-radius:3px}.list-row{display:flex;align-items:center;gap:15px;padding:16px 24px;border-top:1px solid #eef0e9;color:var(--ink)}.list-row:hover,.list-row.selected{background:#f1f6e8}.list-row strong{font-size:12px}.list-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.row-end{margin-left:auto;white-space:nowrap;font-size:12px}.date-box{background:#f0f3e9;padding:7px 12px;text-align:center;line-height:1.2;font-weight:600;border-radius:6px}.date-box small{font-size:9px;text-transform:uppercase}.event{display:flex;gap:12px;padding:10px 24px}.event:last-child{padding-bottom:24px}.event-dot{width:6px;height:6px;margin-top:6px;background:#a4bd87;border-radius:50%;flex-shrink:0}.event strong{font-size:11px;display:block}.event small{font-size:10px;color:var(--muted);display:block}.page-footer{display:flex;gap:22px;color:#929a8c;font-size:10px;padding:10px 38px 24px;letter-spacing:1px}.page-footer span{letter-spacing:0}.filters{display:flex;gap:10px;margin-bottom:22px;max-width:950px}.filters input{flex:1}.filters select{max-width:210px}.filters button{min-width:90px}input,textarea,select{background:white;border:1px solid #d6ddcf;border-radius:6px;padding:10px 12px;color:var(--ink);max-width:100%;width:100%}input[type=checkbox]{width:auto}input:focus,select:focus,textarea:focus{outline:2px solid #91b666;outline-offset:1px}label{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.form-panel{padding:26px;max-width:1100px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}form p{margin:15px 0}.helptext,.hint{font-size:11px;color:#7d8876;line-height:1.7}.errorlist{padding:10px 15px 10px 30px;background:#fbebe4;border-radius:6px;color:#9b482c;font-size:12px}.back{display:inline-block;font-size:12px;margin-bottom:20px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;background:#eef1e7;border:1px solid var(--line);border-radius:9px;padding:23px;margin-bottom:24px}.summary-strip small{display:block;font-size:10px;color:#7b8474;margin-bottom:6px}.summary-strip strong{font-size:13px;font-weight:600}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.two-col .panel{min-width:0}.progress{height:5px;background:#e8eddf;border-radius:6px;overflow:hidden;min-width:80px;margin-top:10px}.progress i{height:100%;background:#95bd65;display:block;border-radius:6px}.document-link{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.document-link small{display:block;color:var(--muted)}details{margin-top:20px}summary{cursor:pointer;font-weight:600;padding:10px 0}.text-danger{border:none;background:transparent;color:#a05239;font-size:11px;padding:12px 0}.history-row{display:flex;gap:22px;padding:13px 24px;border-top:1px solid var(--line);font-size:11px}.history-row time{color:var(--muted)}.history-row>span:last-child{margin-left:auto;color:var(--muted)}.inline-form{display:flex;gap:8px}.notice{padding:15px 20px;background:#eaf0df;border:1px solid #dce5ce;border-radius:7px;margin-bottom:20px;font-size:12px}.notice.error{background:#fcf0e6;border-color:#ecd4bc;color:#945333}.notice.success{background:#e5f0dc;color:#406231}.empty{padding:32px 24px;color:#8c9487;font-size:12px;text-align:center}.job-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.job-card{display:block;background:white;border:1px solid var(--line);border-radius:10px;padding:22px;color:var(--ink)}.job-card:hover{border-color:#9fba7e;box-shadow:0 5px 20px #17292408;color:var(--ink)}.job-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:23px}.mono{font:12px ui-monospace,SFMono-Regular,monospace;letter-spacing:.3px}.job-card h2{font-size:17px}.job-card p{font-size:12px;min-height:36px;margin-top:7px}.job-spec{display:flex;gap:24px;margin:22px 0}.job-spec strong{font-size:19px;font-weight:550}.job-spec small{display:block;font-size:9px;font-weight:400;color:var(--muted);text-transform:uppercase;margin-top:3px}.job-card-foot{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#7d8875;margin-top:18px}.warning-text{color:#a27835}.job-card>.warning-text{display:block;font-size:10px;margin-top:12px}.route-list{padding:3px 24px 18px}.route-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid #edf0e7}.step-number{display:flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;background:#eef0e9;color:#83917a}.route-row.done .step-number{background:#cde6ac;color:#436333}.route-row.running .step-number{background:#385e40;color:white}.route-row strong{font-size:13px}.route-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.week-column{border:1px solid var(--line);border-radius:10px;padding:18px;background:#ecefe5;min-height:285px}.week-head h2{font-size:21px}.capacity{margin:15px 0 22px}.capacity>div:first-child{display:flex;justify-content:space-between;gap:6px;align-items:center}.capacity strong{font-size:12px}.capacity small{font-size:10px;color:var(--muted)}.capacity .progress{margin:9px 0 6px;background:#dce3d1}.capacity.over .progress i{background:#ba8853}.capacity.over small{color:#a1733e}.plan-card{display:block;background:white;border:1px solid var(--line);border-radius:7px;margin:10px 0;padding:15px}.plan-card>div:first-child,.plan-card-meta{display:flex;justify-content:space-between;gap:10px}.plan-card p{font-size:12px;margin:5px 0}.plan-card small{font-size:10px;color:var(--muted)}.plan-card-meta{font-size:10px;color:#6e805e;border-top:1px solid #edf0e7;padding-top:12px;margin-top:12px}.backlog{padding:4px 20px}.pagination{display:flex;align-items:center;justify-content:space-between;margin:15px 0 26px;font-size:11px;color:var(--muted)}.pagination>div{display:flex;gap:9px}code{font-size:11px;background:#eef1e8;padding:2px 4px;border-radius:4px;overflow-wrap:anywhere}.auth-shell{min-height:100vh;background:radial-gradient(ellipse at 0 0,#dbe8c5,transparent 65%)}.auth-shell main{padding-top:7vh}.login-card{max-width:440px;margin:auto;padding:38px;background:white;border:1px solid var(--line);border-radius:15px;box-shadow:0 15px 65px #233a2010}.login-brand{background:var(--nav);border-radius:10px;padding:15px;display:inline-block;font-size:28px;margin-bottom:35px}.login-card h1{font-size:30px}.login-card button{width:100%;margin:9px 0 20px}.login-card small{font-size:11px;color:var(--muted)}.login-divider{text-align:center;color:var(--muted)}.auth-shell .page-footer{justify-content:center;margin-top:30px}.checkbox-field{display:flex;align-items:center;gap:12px}.checkbox-field label{margin:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #9cba74;outline-offset:3px}
@media(min-width:1700px){.week-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:1200px){main{padding:28px 24px}.sidebar{width:200px;padding:25px 14px}.shell{margin-left:200px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.stats{gap:12px}.stat{padding:16px}.job-grid{grid-template-columns:repeat(2,minmax(0,1fr))}td,th{padding:14px 16px}.page-head{align-items:flex-start}.page-head .actions{justify-content:flex-end}.topbar{padding:0 24px}}@media(max-width:900px){.sidebar{position:relative;width:100%;padding:12px 18px;display:block}.brand{font-size:22px;padding:4px;display:inline-block}.workspace-label,.sidebar-footer,.nav-divider{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:6px;margin-top:12px}.sidebar nav a{flex-shrink:0;font-size:11px;padding:8px}.sidebar nav a span{display:none}.shell{margin-left:0}.topbar{height:50px}.dashboard-grid{grid-template-columns:1fr}.dark-panel{min-height:270px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.top-right>span:last-child{display:none}}@media(max-width:560px){main{padding:22px 15px}.page-head{display:block}.page-head>.button,.page-head>.actions{margin-top:18px;justify-content:flex-start}h1{font-size:27px}.stats{gap:10px}.stat>strong{font-size:32px}.stat small{font-size:9px}.job-grid,.week-grid,.form-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters input{min-width:100%}.filters select{flex:1}.topbar{padding:0 15px}.topbar .muted{display:none}.summary-strip{padding:18px;gap:16px}.panel-head{padding:18px}.history-row{gap:10px;padding:12px;font-size:10px}.page-footer{padding:10px 15px}.pagination{align-items:flex-start;gap:10px}.form-panel{padding:21px}.login-card{padding:28px}}
