*{box-sizing:border-box} :root{--pine:#19543b;--forest:#123e2d;--mint:#eaf3ec;--light:#f7faf7;--line:#d8e4db;--ink:#1e2d27;--muted:#61756b;--amber:#8e5a12;--blue:#305a8f;--shadow:0 8px 35px rgba(16,48,29,.06)}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--light)}body{margin:0}a{color:var(--pine);text-decoration:none}a:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--forest);color:#e4f2e6;padding:20px 14px;height:100vh;position:sticky;top:0;overflow:auto}.brand{font-size:17px;font-weight:800;line-height:1.3;border-bottom:1px solid #3c725b;padding:4px 8px 18px;margin-bottom:12px}.brand small{font-size:11px;letter-spacing:1.5px;opacity:.7;display:block;text-transform:uppercase;margin-top:6px}.nav-group{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;opacity:.7;margin:18px 10px 6px}.sidebar a{display:block;padding:8px 12px;border-radius:8px;color:#d6e9dc;font-size:12px;margin:1px 0}.sidebar a:hover,.sidebar a.selected{background:#316c50;color:white;text-decoration:none}.main{min-width:0}.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:15px 32px;border-bottom:1px solid var(--line);background:#fff}.topbar small{color:var(--muted)}.topbar .tagline{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--pine)}.workarea{max-width:1200px;margin:auto;padding:30px 32px 80px}.pagetop{margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--pine);font-weight:800;margin:0 0 7px}.pagetop h1{font-size:28px;letter-spacing:-.7px;margin:0 0 8px}.pagetop p{color:var(--muted);margin:0}.card{background:#fff;border:1px solid var(--line);border-radius:13px;margin:0 0 17px;padding:23px;box-shadow:var(--shadow)}.card-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}.card h2{font-size:16px;color:var(--forest);margin:0}.card h3{font-size:17px;margin:10px 0}.card p{font-size:14px;line-height:1.55}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.kpi{border:1px solid var(--line);background:white;border-radius:13px;padding:19px;display:flex;flex-direction:column;gap:5px}.kpi span{color:var(--muted);font-size:12px}.kpi strong{font-size:24px;color:var(--pine)}.kpi small{color:var(--muted);font-size:11px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:var(--mint);color:var(--forest);font-size:12px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}td{white-space:normal}.pill{display:inline-block;padding:4px 9px;border-radius:999px;font-weight:750;font-size:11px;background:#eee}.pill.green{background:#e4f3e9;color:#19613b}.pill.amber{background:#fff3dc;color:#895900}.pill.blue{background:#e7f0ff;color:#23588b}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;font-weight:700;font-size:12px;border-radius:8px;border:1px solid var(--pine);background:var(--pine);color:#fff;cursor:pointer;text-decoration:none;margin:3px 7px 3px 0;min-height:41px}.btn:hover{opacity:.89;color:#fff;text-decoration:none}.btn.secondary{background:#fff;color:var(--pine)}.btn.secondary:hover{color:var(--pine)}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}label{font-size:12px;font-weight:700;color:#3e5347;display:block;margin-bottom:14px}input:not([type=checkbox]):not([type=file]),select,textarea{display:block;margin-top:7px;width:100%;border:1px solid #ccdcd0;border-radius:8px;padding:11px 12px;font:inherit;font-size:13px;background:#fff;color:#25372e}input:focus,textarea:focus,select:focus{outline:2px solid #a7d8b4;outline-offset:1px}textarea{resize:vertical}.checkline{display:flex;flex-wrap:wrap;gap:15px;margin:13px 0}.checkline label{font-weight:500;margin:0}.checkline input{accent-color:var(--pine)}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.hint{font-size:12px!important;color:var(--muted);margin:12px 0 0}.meta{display:flex;gap:13px;flex-wrap:wrap;background:var(--mint);padding:13px;border-radius:9px;font-size:12px}.trail{font-size:12px;padding:11px 15px;border:1px solid var(--line);background:white;margin-bottom:17px;border-radius:8px}.trail b{padding:0 5px;color:var(--muted)}.steps{display:flex;gap:4px;margin-bottom:19px;flex-wrap:wrap}.step{font-size:12px;flex:1;background:#e9efea;color:#6b8271;padding:12px 13px;border-radius:8px;min-width:110px}.step b{margin-right:6px}.step.active{background:#d4ecd9;color:var(--forest);font-weight:800}.flowline{background:#eef6ef;border-radius:12px;padding:20px;line-height:2;color:var(--forest);font-size:13px;font-weight:650}.flowline b{color:#569574;padding:0 6px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.emptyphoto{min-height:150px;display:grid;place-content:center;text-align:center;gap:5px;border:2px dashed #c2d3c7;border-radius:9px;color:#71907e;background:#f7faf8;font-weight:750;font-size:12px}.emptyphoto small{font-weight:400}.photo-drop{border:2px dashed #b7d6bc;background:#f5faf5;min-height:180px;border-radius:11px;padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;text-align:center;cursor:pointer;position:relative}.photo-drop span{color:var(--muted);font-size:11px}.photo-icon{font-size:30px!important}.photo-drop input{width:100%;font-size:12px;margin-top:10px}.photo-preview{max-height:145px;max-width:100%;object-fit:contain}.kv{display:grid;grid-template-columns:1fr 1.5fr;gap:13px;font-size:13px;margin:9px 0}.kv span{color:var(--muted)}.task-card{border-left:4px solid var(--pine);padding:4px 0 6px 14px}.task-card small{color:var(--muted);font-size:11px}.taskmeta{font-size:12px;margin:12px 0}.inline-state{font-size:12px!important;color:var(--muted)}.logo-large{text-align:center;font-size:46px;margin:20px 0 25px}.success-icon{display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;width:70px;height:70px;background:#daf1df;color:#1b6b39;font-size:35px;font-weight:800}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0}.cal-day{min-height:77px;padding:8px;background:#f8fbf9;border:1px solid var(--line);border-radius:7px;font-size:12px}.cal-tag{display:block;margin-top:9px;background:#e5f2e6;color:var(--pine);font-size:10px;padding:3px}.notice{padding:14px;border-bottom:1px solid var(--line);font-size:13px}.toolbar{display:flex;align-items:center;gap:13px}.toolbar label{flex:1}.footer{font-size:11px;color:var(--muted);padding:17px 32px;border-top:1px solid var(--line)}.toast{position:fixed;right:20px;bottom:20px;max-width:340px;background:var(--forest);color:white;border-radius:10px;padding:14px 19px;box-shadow:0 8px 22px #0002;font-size:13px;z-index:20}.mobile-shell{max-width:455px;margin:0 auto 45px;min-height:740px;background:#f9fcfa;border:1px solid #d5e6d9;border-radius:28px;overflow:hidden;box-shadow:0 18px 60px #123e2d19;position:relative}.mobile-top{padding:22px 20px 16px;background:var(--forest);color:white}.mobile-top a{color:#d5f0dc;font-size:11px}.mobile-top h1{font-size:21px;margin:9px 0 2px}.mobile-top p{color:#b9dbc3;font-size:12px;margin:3px 0}.mobile-content{padding:17px 14px 100px}.mobile-content .card{padding:18px;margin-bottom:13px}.mobile-content .card h2{font-size:15px}.mobile-content .formgrid{grid-template-columns:1fr}.mobile-content .kpi-grid{grid-template-columns:repeat(3,1fr);gap:6px}.mobile-content .kpi{padding:10px 7px}.mobile-content .kpi strong{font-size:17px}.mobile-content .kpi span{font-size:9px}.mobile-content .kpi small{font-size:9px}.mobile-content .btn{width:100%;margin:4px 0}.mobile-content .steps{gap:3px}.mobile-content .step{font-size:9px;min-width:50px;padding:10px 6px}.mobile-content .step b{margin:0 3px 0 0}.mobile-content table{font-size:10px}.mobile-content td,.mobile-content th{padding:9px 6px}.mobile-content .photo-pair .emptyphoto{min-height:95px}.mobile-bottom{position:absolute;bottom:0;left:0;right:0;background:white;border-top:1px solid #dde9df;display:flex;justify-content:space-around;padding:10px 2px 15px}.mobile-bottom a{font-size:10px;display:flex;flex-direction:column;gap:4px;align-items:center;color:#53705c}.mobile-bottom a.active{color:var(--pine);font-weight:800}.mobile-bottom b{font-size:20px}.mobile-overview{max-width:980px;margin:auto;padding:24px}.mobile-overview .backnav{font-size:12px}.mobile-navigator{max-width:455px;margin:0 auto 20px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px}.mobile-navigator summary{font-size:12px;color:var(--pine);cursor:pointer;font-weight:800}.mobile-navigator a{display:inline-block;padding:9px;font-size:12px}.demo-banner{font-size:11px;line-height:1.6;color:#537060;padding:8px 14px;text-align:center}.index-shell{max-width:1150px;margin:0 auto;padding:50px 24px}.index-shell h1{font-size:38px;color:var(--forest)}.index-shell p{color:var(--muted);line-height:1.6}.index-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.link-grid a{font-size:12px;display:block;background:#f5f9f5;padding:10px;border:1px solid var(--line);border-radius:7px}.mini{font-size:12px;color:var(--muted)}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:204px minmax(0,1fr)}}@media(max-width:740px){.layout{display:block}.sidebar{height:auto;position:relative;padding:12px}.sidebar .brand{font-size:13px;border:0;margin:0;padding:7px}.sidebar nav{display:none}.topbar{padding:14px}.workarea{padding:17px 13px}.pagetop h1{font-size:23px}.formgrid{grid-template-columns:1fr}.index-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.card{padding:15px}.mobile-shell{border-radius:0;min-height:calc(100vh - 70px)}.mobile-overview{padding:0}.mobile-navigator{border-radius:0}.calendar-grid{grid-template-columns:repeat(4,1fr)}}
/* Form validation error states */
input.error, select.error, textarea.error { border-bottom: 2px solid #c00 !important; border-color: #c00; }
.field-error { font-size: 11px; color: #c00; margin-top: 4px; display: block; }

/* Required field indicator */
label:has(input[required], select[required], textarea[required])::before { content: "* "; color: #c00; font-weight: 800; }
