:root{--ink:#163c30;--accent:#d4ef7a;--muted:#718078;--line:#e1e7e2;--bg:#f5f7f5;--red:#ad3e35}*{box-sizing:border-box}body{margin:0;font:14px/1.65 Manrope,'Noto Sans Thai',sans-serif;color:#21362c;background:var(--bg)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-.8px}h2{font-size:21px}h3{font-size:16px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #98ac6e;outline-offset:3px}.loading{padding:80px;text-align:center}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--ink);color:white;padding:30px 20px;position:fixed;inset:0 auto 0 0;width:230px;display:flex;flex-direction:column;z-index:3}.brand{font-size:27px;font-weight:800;letter-spacing:-1px;padding:0 12px}.brand span{color:var(--accent)}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;margin-top:4px}.sidebar nav{display:grid;gap:6px;margin-top:40px}.nav-btn{border:0;background:none;color:#b9ccc1;text-align:left;padding:11px 14px;border-radius:6px;font-size:13px}.nav-btn.active,.nav-btn:hover{background:#ffffff15;color:white}.nav-btn.active{border-left:3px solid var(--accent)}.sidebar-bottom{margin-top:auto;padding:22px 12px 0;font-size:11px;color:#bbccc2}.sidebar-bottom a{color:var(--accent);display:block;margin-top:14px}.workspace{grid-column:2;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 35px;border-bottom:1px solid var(--line);background:white;gap:16px}.topbar p{font-size:12px;color:var(--muted)}.user-chip{display:flex;align-items:center;gap:15px;font-size:12px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e9efdf;color:var(--ink);font-weight:700}.content{padding:30px 35px 60px;max-width:1700px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-head p{color:var(--muted);margin-top:5px;font-size:12px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--ink);color:white;border:1px solid var(--ink);padding:10px 17px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap}.btn:hover{filter:brightness(1.12)}.btn.secondary{color:var(--ink);background:white;border-color:var(--line)}.btn.danger{background:#fff0ed;color:var(--red);border-color:#f1d4ce}.btn.small{padding:6px 11px;font-size:11px}.btn:disabled{opacity:.5;cursor:wait}.link{border:0;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.stat{background:white;padding:23px;border:1px solid var(--line);border-radius:9px}.stat>span{font-size:11px;color:var(--muted)}.stat strong{display:block;font-size:30px;margin:8px 0 2px;letter-spacing:-1px}.stat small{font-size:10px;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:22px}.panel-title{padding:19px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-body{padding:22px}.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th,td{text-align:left;padding:14px 19px;border-bottom:1px solid #edf0ec}th{font-size:10px;letter-spacing:.4px;color:var(--muted);background:#fbfcfa;font-weight:600}td small{display:block;font-size:10px;color:var(--muted)}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:20px;font-size:10px;padding:3px 10px;background:#eef2ed;color:#4e6256}.badge.pending{background:#fff2d4;color:#916b20}.badge.confirmed{background:#e8edfc;color:#4366a5}.badge.active{background:#dff2e9;color:#267155}.badge.returned{background:#f0eafa;color:#7656a7}.badge.cancelled,.badge.maintenance{background:#fbe9e5;color:#b25443}.badge.completed{background:#e8efe6;color:#61725a}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.toolbar input{max-width:320px}.toolbar select{max-width:190px}.toolbar .btn{margin-left:auto}label{display:block;font-size:12px;font-weight:500;margin-bottom:5px}input,select,textarea{display:block;width:100%;border:1px solid #dce3db;background:white;border-radius:5px;padding:10px 12px;min-height:43px;color:#21362c;min-width:0}textarea{resize:vertical;min-height:80px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}.field small{font-size:10px;color:var(--muted)}.checks{display:flex;gap:20px;flex-wrap:wrap}.checks label{display:flex;gap:8px;align-items:center}.checks input{width:17px;min-height:17px;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.notice{padding:14px 18px;border-radius:6px;font-size:12px;background:#edf2e4;border:1px solid #dde7ce;margin-bottom:22px}.notice.warning{background:#fff6e6;border-color:#f1e2c7}.muted{color:var(--muted);font-size:12px}.empty{text-align:center;padding:35px;color:var(--muted);font-size:13px}dialog{border:0;border-radius:12px;padding:30px;width:min(920px,95vw);max-height:92vh;color:#21362c;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#122c24a8;backdrop-filter:blur(3px)}.close{position:absolute;right:13px;top:9px;font-size:27px;background:none;border:0;color:var(--ink)}dialog h2{margin-bottom:20px;padding-right:22px}dialog h3{margin:22px 0 13px}.detail-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:12px}.facts div>span{display:block;color:var(--muted);font-size:10px}.summary{border:1px solid var(--line);background:var(--bg);padding:18px;border-radius:6px}.summary>div{display:flex;justify-content:space-between;gap:20px;margin:8px 0;font-size:12px}.summary .total{border-top:1px solid var(--line);padding-top:12px;font-weight:700;font-size:20px}.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.note-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}.timeline{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.timeline small{display:block;color:var(--muted)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-intro{background:var(--ink);color:white;padding:70px;display:flex;flex-direction:column;justify-content:space-between}.auth-intro h1{font-size:45px;line-height:1.4}.auth-intro p{color:#bacac0;max-width:380px;margin-top:20px}.auth-intro .brand{padding:0}.auth-main{display:grid;place-items:center;padding:35px}.auth-card{width:min(390px,100%)}.auth-card h2{font-size:28px}.auth-card .muted{margin:10px 0 26px}.auth-card label{margin-top:18px}.auth-card button{width:100%;margin-top:25px}.auth-card>a{display:block;margin-top:25px;font-size:12px}.error{color:var(--red);font-size:12px;margin:15px 0;white-space:pre-wrap}#toast{position:fixed;bottom:25px;right:25px;max-width:calc(100vw - 40px);background:var(--ink);color:white;padding:12px 20px;border-radius:7px;z-index:20;display:none;box-shadow:0 7px 30px #0002;font-size:13px}.calendar td,.calendar th{padding:8px;min-width:37px;text-align:center;border-right:1px solid var(--line)}.calendar td:first-child,.calendar th:first-child{position:sticky;left:0;min-width:180px;text-align:left;background:#fff;z-index:1}.cal-cell{display:block;min-height:30px;width:100%;border:0;background:transparent;border-radius:3px}.cal-cell.confirmed{background:#dce6ff;color:#4262a4}.cal-cell.active{background:#bfe9d3;color:#245a3f}.cal-cell.maintenance{background:#f8ddd3;color:#925544}.cal-cell.today{outline:1px solid #7e9a5f}.row-card{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.row-card:last-child{border:0}.row-card small{display:block;color:var(--muted)}.mobile-menu{display:none}.vehicle-thumb{width:65px;height:45px;object-fit:cover;border-radius:4px}.progress{height:6px;border-radius:5px;background:#eaf0e4;overflow:hidden;margin:9px 0}.progress span{height:100%;display:block;background:#8daa59}.security-info{font-size:11px;color:var(--muted);margin-top:30px}.subhead{margin:24px 0 12px}.report-filters{display:flex;gap:12px;align-items:end;margin-bottom:20px}.report-filters label{max-width:220px}.danger-text{color:var(--red)}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.sidebar{width:205px}.shell{grid-template-columns:205px 1fr}.content{padding:25px}.auth-intro{padding:45px}.auth-intro h1{font-size:35px}}@media(max-width:720px){.shell{display:block}.sidebar{display:none;width:250px}.sidebar.open{display:flex;top:65px;box-shadow:15px 0 30px #0002}.workspace{width:100%}.mobile-menu{display:block;border:0;background:none;font-size:22px}.topbar{padding:15px;position:sticky;top:0;z-index:4}.topbar>p{display:none}.content{padding:20px 15px 50px}.page-head{align-items:start}.page-head h1{font-size:25px}.page-head .btn{font-size:11px;padding:9px}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:25px}.form-grid,.detail-grid{grid-template-columns:1fr}.full{grid-column:auto}.auth{grid-template-columns:1fr}.auth-intro{padding:25px;gap:25px}.auth-intro h1{font-size:26px}.auth-intro p,.auth-intro>small{display:none}.auth-main{padding:35px 25px}.auth-intro .brand{font-size:24px}dialog{padding:25px 18px}.facts{gap:14px}.toolbar input{max-width:none}.toolbar .btn{margin-left:0}.user-chip{font-size:11px;gap:8px}.report-filters{flex-wrap:wrap}.report-filters label{flex:1}.panel-body{padding:16px}.sidebar-bottom{margin-top:20px}.sidebar nav{margin-top:20px}#toast{bottom:15px;right:15px}.detail-head{display:block}.detail-head .badge{margin-top:6px}}

.ops-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 24px}.op-card{border:1px solid var(--line);background:#fff;border-radius:8px;padding:16px;text-align:left;cursor:pointer;color:var(--ink)}.op-card span{display:block;font-size:12px;color:var(--muted);min-height:34px}.op-card strong{display:block;font-size:28px;margin-top:5px}.op-card small{color:#6f8750}.op-card:hover{border-color:#8daa59;background:#fbfdf8}@media(max-width:1100px){.ops-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.ops-grid{grid-template-columns:repeat(2,1fr)}}

.material-symbols-rounded.ui-icon{font-size:20px;line-height:1;flex:0 0 auto;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;user-select:none}.nav-btn{display:flex;align-items:center;gap:11px;text-align:left}.nav-btn .ui-icon{font-size:19px;opacity:.76}.nav-btn.active .ui-icon{opacity:1}.mobile-menu{align-items:center;justify-content:center}.mobile-menu .ui-icon{font-size:26px}.sidebar-bottom a,.user-chip .link{display:inline-flex;align-items:center;gap:5px}.sidebar-bottom a .ui-icon,.user-chip .link .ui-icon{font-size:16px}.close{display:grid;place-items:center}.close .material-symbols-rounded{font-size:22px;pointer-events:none}.op-label{display:flex!important;align-items:center;gap:8px;min-height:34px}.op-label .op-symbol{font-size:21px;color:#69844c}.op-card:hover .op-symbol{color:#173d32}@media(max-width:720px){.nav-btn .ui-icon{font-size:20px}.user-chip .link span:last-child{display:none}.user-chip .link .ui-icon{font-size:19px}}

.integration-panel{margin-top:22px}.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.integration-card{border:1px solid var(--line);border-radius:8px;padding:15px;background:#fff}.integration-card.ready{border-color:#bad9c1;background:#f8fcf8}.integration-card.pending{border-color:#ead7aa;background:#fffdf7}.integration-head{display:flex;align-items:center;gap:10px}.integration-head .ui-icon{font-size:22px}.integration-head div{display:grid}.integration-head strong{font-size:13px}.integration-head span{font-size:11px;color:var(--muted)}.integration-card.ready .integration-head span{color:#2f6e43}.integration-card.pending .integration-head span{color:#8a6720}.integration-card details{margin-top:12px;font-size:11px}.integration-card summary{cursor:pointer;color:var(--muted)}.integration-card code{display:block;margin-top:8px;white-space:normal;line-height:1.7;font-size:10px}.integration-help{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:12px}.integration-help p{margin:6px 0}.integration-help code{font-size:11px}@media(max-width:1100px){.integration-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.integration-grid{grid-template-columns:1fr}}
