:root{--bg: #0f172a;--panel: #ffffff;--panel-bg: #f8fafc;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #2563eb;--primary-ink: #ffffff;--moving: #16a34a;--idle: #f59e0b;--parked: #64748b;--offline: #dc2626;--danger: #dc2626;--shadow: 0 1px 3px rgba(15, 23, 42, .1), 0 1px 2px rgba(15, 23, 42, .06);font-family:Sarabun,Noto Sans Thai,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;color:var(--text);background:var(--panel-bg)}body{font-size:15px;line-height:1.45}a{color:var(--primary)}button,input,select{font:inherit}button{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);background:#fff;color:var(--text);padding:.45rem .8rem;border-radius:8px;font-weight:500;transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--panel-bg)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn-primary:hover{background:#1d4ed8}.btn-danger{color:var(--danger);border-color:#fecaca}.btn-danger:hover{background:#fef2f2}.btn-sm{padding:.3rem .55rem;font-size:.85rem;border-radius:6px}input:not([type]),input[type=text],input[type=password],input[type=search],select{border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;background:#fff;width:100%}input:focus,select:focus{outline:2px solid rgba(37,99,235,.35);outline-offset:0;border-color:var(--primary)}.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.5}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}.status-moving{background:var(--moving)}.status-idle{background:var(--idle)}.status-parked{background:var(--parked)}.status-offline{background:var(--offline)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;padding:1rem;z-index:2000}.modal{background:#fff;border-radius:14px;padding:1.25rem 1.35rem;width:100%;max-width:520px;max-height:90vh;max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0000004d}.modal.sm{max-width:400px}.modal h2{margin:0 0 1rem;font-size:1.15rem;flex-shrink:0}.modal form{display:flex;flex-direction:column;gap:.85rem;min-height:0;overflow-y:auto}.modal form>*{flex-shrink:0}.modal form>.trucks{flex-shrink:1}.modal label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;color:#334155}.modal label.check{flex-direction:row;align-items:center;gap:.5rem}.modal label.check input{width:auto}.modal textarea{border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;font:inherit;resize:vertical}.modal .error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:.55rem .7rem;border-radius:8px;font-size:.85rem}.modal .hint{margin:0;color:var(--muted);font-size:.78rem}.modal .trucks{border:1px solid var(--border);border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.55rem;overflow-y:auto}.modal .trucks>*{flex-shrink:0}.modal .trucks-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.85rem}.modal .tools{display:flex;gap:.6rem}.modal .link{background:none;border:none;color:var(--primary);padding:0;font-size:.8rem}.modal .groups-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.modal .groups-label{font-size:.78rem;color:var(--muted)}.modal .chip{border:1px solid var(--border);background:var(--panel-bg);color:var(--primary);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600}.modal .chip:hover{background:#dbeafe;border-color:#bfdbfe}.modal .truck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.25rem .5rem;flex-shrink:1;min-height:96px;max-height:220px;overflow-y:auto}.modal .truck-item{display:flex;flex-direction:row;align-items:center;gap:.35rem;font-weight:400;font-size:.85rem}.modal .truck-item input{width:auto}.modal .muted{color:var(--muted);font-size:.85rem;grid-column:1 / -1}.modal .row2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;align-items:end}.modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;position:sticky;bottom:0;background:#fff;margin-top:-.85rem;padding-top:1.1rem}.bell-wrap.svelte-1cnlv3f{position:relative}.bell.svelte-1cnlv3f{position:relative;background:none;border:none;font-size:1.15rem;padding:.3rem;border-radius:8px;line-height:1}.bell.svelte-1cnlv3f:hover{background:#ffffff1a}.bell.alerting.svelte-1cnlv3f{animation:svelte-1cnlv3f-ring 2.4s ease-in-out infinite}@keyframes svelte-1cnlv3f-ring{0%,88%,to{transform:rotate(0)}90%{transform:rotate(12deg)}92%{transform:rotate(-10deg)}94%{transform:rotate(7deg)}96%{transform:rotate(-5deg)}98%{transform:rotate(2deg)}}.count.svelte-1cnlv3f{position:absolute;top:-2px;right:-4px;background:#dc2626;color:#fff;font-size:.62rem;font-weight:700;padding:.05rem .3rem;border-radius:999px;border:2px solid #0f172a}.backdrop.svelte-1cnlv3f{position:fixed;top:0;right:0;bottom:0;left:0;background:none;border:none;z-index:1001;cursor:default}.dropdown.svelte-1cnlv3f{position:absolute;right:0;top:calc(100% + 8px);width:300px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #0f172a2e;z-index:1002;overflow:hidden}.dd-head.svelte-1cnlv3f{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;border-bottom:1px solid var(--border);font-size:.85rem}.dd-head.svelte-1cnlv3f a:where(.svelte-1cnlv3f){font-size:.8rem;text-decoration:none}.dd-empty.svelte-1cnlv3f{margin:0;padding:1rem;text-align:center;color:var(--muted);font-size:.85rem}ul.svelte-1cnlv3f{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto}li.svelte-1cnlv3f{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .8rem;border-bottom:1px solid var(--border);font-size:.83rem}li.svelte-1cnlv3f:last-child{border-bottom:none}.type.svelte-1cnlv3f{color:#dc2626;font-weight:600;flex:none}.since.svelte-1cnlv3f{margin-left:auto;color:var(--muted);font-size:.75rem;flex:none}.topbar.svelte-12qhfyh{height:56px;display:flex;align-items:center;gap:1.5rem;padding:0 1rem;background:#0f172a;color:#f8fafc;position:sticky;top:0;z-index:1000}.brand.svelte-12qhfyh{display:flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.2px}.logo.svelte-12qhfyh{font-size:1.25rem}nav.svelte-12qhfyh{display:flex;gap:.25rem}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#cbd5e1;text-decoration:none;padding:.4rem .7rem;border-radius:8px;font-weight:500}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#ffffff14;color:#fff}nav.svelte-12qhfyh a.active:where(.svelte-12qhfyh){background:#ffffff24;color:#fff}.user.svelte-12qhfyh{margin-left:auto;display:flex;align-items:center;gap:.75rem}.who.svelte-12qhfyh{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#e2e8f0}.role.svelte-12qhfyh{background:#ffffff26;padding:.05rem .4rem;border-radius:999px;font-size:.72rem}main.svelte-12qhfyh{height:100%}main.with-nav.svelte-12qhfyh{height:calc(100% - 56px)}
