/* SMART Plus+ / Forest & Canvas — white tent, forest green, mint. */
:root{--bg:#f3f8f3;--panel:#ffffff;--panel2:#f0f7f0;--line:#dce9de;--muted:#668071;--text:#19372c;--green:#14794c;--mint:#ccebd9;--amber:#a86b12;--red:#c4424d;--blue:#286f9b;--purple:#7955aa;--shadow:0 9px 32px #16462d12}
body{background:#f3f8f3;color:var(--text);background-image:radial-gradient(circle at 88% 9%,#dcefe240,transparent 32%)}
.sidebar{background:linear-gradient(158deg,#174f3b,#113b2f 63%,#0b2f25);border-right:1px solid #27664d;padding:18px 11px}.sidebar nav{gap:7px}.brand{padding:8px 8px 21px}.brand-mark{border:1px solid #bfe8c8;background:#ecf9ef;color:#125739;width:43px;height:43px;font-size:20px}.brand span{color:#bce0cb}.brand em{color:#c0edcf}.brand small{color:#9cd3b2}.event-chip{background:#0d382c;border:1px solid #367258}.event-chip small{color:#b3d6c0}.sidebar-foot{border-color:#367258;color:#b2d7c1}.sidebar-foot small{color:#9bc4aa}
.nav-item{color:#daeee0;min-height:46px;padding:9px 10px;font-size:12px}.nav-item small{color:#b4d0bf}.nav-item:hover,.nav-item.active{background:#277c57;color:white}.nav-item.active{box-shadow:inset 3px 0 #c5f3d1}.nav-item.active small{color:#e4f7e9}
.nav-ico{display:grid!important;place-items:center;width:30px!important;height:30px;flex:none;border-radius:10px;font-size:17px!important;line-height:1;background:#d4eadc;color:#175d41!important}.ico-blue{background:#e0f0fa;color:#2377a6!important}.ico-amber{background:#fff0d5;color:#92621a!important}.ico-red{background:#ffeaec;color:#bc4c55!important}.ico-purple{background:#efe4ff;color:#784bb1!important}.ico-green{background:#d6f0df;color:#157448!important}
.nav-group{border-top:1px solid #397058;padding-top:6px}.nav-group summary{display:flex;align-items:center;gap:10px;min-height:44px;list-style:none;cursor:pointer;color:#d6e9db;padding:7px 9px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary b{flex:1;font-size:12px;font-weight:600}.nav-group summary small{font-size:13px;color:#a9cbb4}.nav-group .nav-item{padding-left:20px;margin-top:2px}.nav-group:not([open]) .nav-item{display:none}
.topbar{background:#ffffffec;border-bottom:1px solid var(--line);box-shadow:0 2px 14px #204f2d06}.topbar h1{color:#173d2c}.eyebrow{color:#3d8a63}.live-pill{background:#eaf6ee;border-color:#cce9d6;color:#246842}.live-pill i{background:#1f9e63}.clock{background:#f5faf6;border:1px solid #daebdf;color:#29513a}.user-pill{background:#e9f5ec;border:1px solid #c3e1cd;color:#185c3b}.menu-btn{background:#e5f5e9;color:#205338;border:1px solid #cce9d5}.content{padding-top:22px}footer{border-color:var(--line);color:#809b85}
.stat,.panel,.hero{background:#fff;border:1px solid #e0ede4;border-radius:20px;box-shadow:var(--shadow)}.stat{min-height:120px}.stat:after{background:#9edab630}.stat .label{color:#617d6e;font-weight:600}.stat .value{color:#214e37}.stat .sub{color:#809688}.stat.green .value{color:#157f50}.stat.amber .value{color:#a86b12}.stat.red .value{color:#bd4751}.stat.blue .value{color:#2e7ca1}.stat.purple .value{color:#704fad}
.hero{position:relative;overflow:hidden;background:linear-gradient(103deg,#f8fdf8 0%,#e9f5e9 72%,#e1f1e6 100%);padding:27px 27px 30px;min-height:172px}.hero:before{content:'';pointer-events:none;position:absolute;top:3px;bottom:0;right:0;width:43%;background:url('tent-illustration.svg') no-repeat right bottom;background-size:contain;opacity:.95}.hero>*{position:relative}.hero h2{font-size:25px;color:#164a34}.hero p{color:#4b7960;font-size:12px}.hero .actions{position:relative;z-index:1}.hero-row>div:first-child{max-width:72%}.tag{background:#dcefe3;color:#216a47;border:1px solid #bddcc7}.tag.warn{background:#fff2dc;color:#95641b;border-color:#f2d69c}.tag.danger{background:#ffecef;color:#b44251;border-color:#f6cbd3}.date-hero{font:600 16px Kanit!important;color:#175b3a!important;margin-top:14px!important}.date-pill{display:inline-block;font:500 10px 'IBM Plex Sans Thai';background:#d2e9d9;border:1px solid #b7d7c1;padding:2px 9px;border-radius:9px;margin-left:6px;color:#426e52}
.primary-btn{background:#187c4b;color:#fff}.primary-btn:hover{background:#0e6640}.secondary-btn{background:#eef8f0;color:#255e3c;border:1px solid #c7e5d1}.secondary-btn:hover{background:#e2f3e6}.danger-btn{background:#f8e2e7;color:#ab3b4c;border:1px solid #efc2cb}.text-btn{color:#1c8250}.panel{padding:20px}.panel h3{color:#214b34}.panel p{color:#698375}.route-item{background:#f8fbf9;border-color:#e2eee5}.route-item b{color:#244936}.route-item small{color:#789482}.route-num{background:#e0f1e5;color:#1b794b}.table-wrap{border-color:#e0ece5}th,td{border-color:#e3eee6}th{background:#f0f7f1;color:#52745d}td{color:#2b4d38}.empty{color:#7c9983}.notice{background:#eef8ef;color:#355f3d;border:1px solid #c9e8d1}.notice.warn{background:#fff6e7;color:#8b651e;border-color:#eed5a5}.notice.danger{background:#fff0f2;border-color:#f2c8cf;color:#ab4650}
.field label,label{color:#4b7357}.field input,.field select,.field textarea,input,select,textarea{background:#fcfefd;border:1px solid #cadfce;color:#244631;outline-color:#4aab75}.field input:focus, .field select:focus{border-color:#4f9a66}.field input[readonly]{background:#f3f7f4}.loading-panel{color:#5d866d}.toast{background:#1f6345;border-color:#449c71;color:white}.dialog-card{background:#fff;color:#214a32;border:1px solid #d0e5d6}.dialog-card h2{color:#1e4d33}.dialog-card p{color:#607967}.dialog-card input{background:#f7fbf8;color:#20452f}.close{color:#61876d}.leaflet-container{background:#eef4ef}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#244c39}.chart-bars div{background:linear-gradient(180deg,#82d6a7,#1e8b55)}.chart-bars span{color:#6e8a75}.map{background:#f3f8f2;border-color:#cce3d2}.map-legend{color:#547962}
.weather-card{background:linear-gradient(110deg,#e8f5eb,#fafffb);border:1px solid #cfe7d6;border-radius:20px;padding:19px 23px;margin-bottom:17px;box-shadow:var(--shadow)}.weather-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:13px}.weather-heading h3{margin:1px 0 2px;font:600 19px Kanit;color:#1b5c3b}.weather-heading p,.weather-foot{font-size:11px;color:#567b63;margin:1px 0 0}.weather-display{display:flex;align-items:center;gap:20px;margin:15px 0 7px;min-height:80px}.weather-icon{font-size:48px;line-height:1}.weather-display b{color:#225538}.weather-display small{display:block;font-size:11px;color:#638272}.weather-degree{font:700 42px Kanit;color:#1c5a39;line-height:1}.weather-degree small{margin-top:2px}.weather-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;color:#365c44;font-size:12px}.weather-metrics small{width:100%}
@media(max-width:1050px){.hero:before{opacity:.6}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.hero{min-height:190px}.hero:before{width:62%;opacity:.2}.hero-row>div:first-child{max-width:100%}.hero h2{font-size:20px}.date-hero{font-size:14px!important}.weather-card{padding:15px}.weather-display{gap:12px;flex-wrap:wrap}.weather-metrics{gap:8px 12px;font-size:11px}.weather-icon{font-size:38px}.weather-degree{font-size:35px}.nav-group .nav-item{padding-left:14px}}
