:root{--primary:#1f7a4d;--primary-soft:#e3f2ea;--on-primary:#fff;--background:#f4f6f5;--surface:#fff;--border:#e2e6e4;--text:#1d2320;--text-muted:#4b5651;--danger:#d64040;--danger-soft:#fde8e8;--warning:#b37400;--warning-soft:#fff4dc;--info:#2a6fd6;--info-soft:#e5eefc;--radius:12px;--sidebar:#17251e;--sidebar-text:#cfe0d6;--sidebar-muted:#8fa89a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--background);color:var(--text);font-family:Sarabun,Noto Sans Thai,system-ui,sans-serif;font-size:16px;line-height:1.5}a{color:var(--primary)}h1{margin:0 0 16px;font-size:24px}h2{margin:0;font-size:19px}input,textarea,select{font:inherit;border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;padding:10px 12px}label{gap:4px;font-weight:600;display:grid}.layout{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.nav{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:2px;padding:16px 10px;display:flex}.nav-title{color:#fff;padding:4px 10px 16px;font-size:18px;font-weight:800}.nav a{color:inherit;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:15px;text-decoration:none;display:flex}.nav a:hover{background:#ffffff0f}.nav a.active{background:var(--primary);color:var(--on-primary)}.nav-label{align-items:center;gap:8px;display:flex}.nav-foot{color:var(--sidebar-muted);gap:8px;margin-top:auto;padding:10px 12px;font-size:13px;display:grid}.nav-signout{font:inherit;color:var(--sidebar-text);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:8px;padding:8px 12px}.nav-signout:hover{background:#ffffff0f}.main{max-width:1100px;padding:24px 32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:8px;padding:16px;display:grid}.list{gap:12px;display:grid}.section{gap:12px;margin-bottom:32px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.muted{color:var(--text-muted);font-size:14px}.amount{font-size:22px;font-weight:700}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;min-height:44px;padding:10px 16px;font-weight:700}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.badge{background:var(--background);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.count{background:var(--danger);color:var(--on-primary);border-radius:999px;padding:0 8px;font-size:13px}.banner{border-radius:8px;padding:10px 14px;font-weight:600}.banner-danger{background:var(--danger-soft);color:var(--danger)}.banner-info{background:var(--info-soft);color:var(--info)}.banner-warning{background:var(--warning-soft);color:var(--warning)}.images{flex-wrap:wrap;gap:8px;display:flex}.images a{color:var(--text-muted);gap:4px;font-size:13px;text-decoration:none;display:grid}.images img{object-fit:cover;border:1px solid var(--border);background:var(--background);border-radius:8px;width:150px;height:150px}.images img.tall{width:180px;height:260px}.state{text-align:center;color:var(--text-muted);justify-items:center;gap:12px;padding:32px;display:grid}.login{max-width:380px;margin:12vh auto}.tabs{margin-bottom:16px}.filters{align-items:end;margin-bottom:16px}.filters label{flex:1;min-width:200px}.fields{align-items:end}.fields label{flex:1;min-width:200px}.timeline{gap:8px;margin:0;padding-left:20px;display:grid}.setting{border-top:1px solid var(--border);padding:8px 0}.setting input{width:140px}.check input{width:auto}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:15px}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:8px}.table th{color:var(--text-muted);font-size:14px;font-weight:600}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tfoot td{border-bottom:none;font-weight:700}.legal{background:var(--surface);max-width:760px;min-height:100vh;margin:0 auto;padding:32px 16px 64px}.legal h1{margin:0 0 4px;font-size:28px}.legal h2{margin:28px 0 8px;font-size:19px}.legal p{margin:0 0 10px}
