:root{--bg:#e7ebf0;--surface:#f3f5f8;--surface-2:#eaeef3;--border:#d3d9e1;--text:#2c3542;--text-2:#56606e;--muted:#7a8492;--primary:#3f6fa3;--primary-hover:#335d8b;--primary-soft:#dbe4ee;--success:#4f8a5b;--success-soft:#dde9df;--warning:#b7832f;--warning-soft:#efe5d4;--danger:#b5524f;--danger-soft:#f0dedd;--radius:10px;--shadow:0 1px 2px #1e28370f, 0 4px 14px #1e28370d;color:var(--text);background:var(--bg);font-family:IBM Plex Sans Thai,system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b2027;--surface:#232a33;--surface-2:#2a313b;--border:#3a434f;--text:#d3d9e1;--text-2:#b0b8c3;--muted:#8b95a2;--primary:#6f9bcc;--primary-hover:#86acd6;--primary-soft:#2d3a48;--success:#74a77f;--success-soft:#2f3c33;--warning:#cfa45c;--warning-soft:#40392b;--danger:#d27f7b;--danger-soft:#413231;--shadow:none}}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);margin:0;line-height:1.55}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5em;line-height:1.25}.container{max-width:1120px;margin:0 auto;padding:0 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.grid{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-2{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:16px;display:flex}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex;text-decoration:none!important}.btn-primary,.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#f3f6fa}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-sm{padding:5px 10px;font-size:13px}.input,select.input{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:9px 12px}.input:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}label.field{flex-direction:column;gap:6px;font-size:14px;display:flex}.badge,label.field{color:var(--text-2)}.badge{white-space:nowrap;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:12.5px;font-weight:500;display:inline-block}.badge.success{background:var(--success-soft);color:var(--success)}.badge.danger,.badge.primary,.badge.success,.badge.warning{border-color:#0000}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.primary{background:var(--primary-soft);color:var(--primary)}.muted{color:var(--muted);font-size:14px}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.price{font-size:28px;font-weight:700}.alert{background:var(--primary-soft);color:var(--text);border-radius:8px;padding:12px 14px;font-size:14px}.alert.warning{background:var(--warning-soft)}.alert.danger{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--success-soft)}.choice{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:inherit;padding:14px;transition:border-color .15s}.choice.selected,.choice:hover:not(:disabled){border-color:var(--primary)}.choice.selected{background:var(--primary-soft)}.choice:disabled{opacity:.5;cursor:not-allowed}.bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.bar>div{background:var(--primary);height:100%;transition:width .4s}table.list{border-collapse:collapse;width:100%;font-size:14px}table.list td,table.list th{border-bottom:1px solid var(--border);text-align:left;padding:10px 8px}table.list th{color:var(--muted);font-weight:500}@media (width<=640px){.hide-sm{display:none}}
