@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{--bg:#eef3f0;--bg-accent:#d9e7df;--surface:#fff;--ink:#14231c;--muted:#5b6d63;--line:#d0ddd5;--brand:#0f3d2e;--brand-soft:#1f6a4f;--accent:#c45c26;--danger:#b42318;--warn:#b54708;--success:#027a48;--shadow:0 10px 30px #0f3d2e14;--radius:16px;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans Thai,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top left, #1f6a4f1f, transparent 35%), radial-gradient(circle at top right, #c45c261a, transparent 28%), linear-gradient(180deg, #f7faf8 0%, var(--bg) 40%, #e7efe9 100%);min-width:320px}a{color:var(--brand-soft);text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,strong.brand-title{font-family:Manrope,IBM Plex Sans Thai,sans-serif}.center-screen{place-items:center;min-height:100vh;display:grid}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);border-radius:24px;gap:16px;padding:28px;display:grid}.login-brand{text-align:center}.login-brand h1{margin:10px 0 6px;font-size:2rem}.login-brand p,.muted,.page-header p{color:var(--muted);margin:0}.brand-mark{background:var(--brand);color:#f4f7f5;border-radius:12px;place-items:center;width:42px;height:42px;font-family:Manrope,sans-serif;font-weight:800;display:inline-grid}.brand-mark.large{border-radius:18px;width:64px;height:64px;font-size:1.25rem}.admin-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#edf5f0;background:linear-gradient(#0f3d2e 0%,#164f3b 100%);flex-direction:column;gap:24px;padding:20px 14px;display:flex}.brand{align-items:center;gap:12px;padding:8px;display:flex}.brand small{opacity:.75;display:block}.sidebar nav{gap:6px;display:grid}.sidebar a{color:inherit;opacity:.9;border-radius:12px;padding:12px 14px}.sidebar a.active,.sidebar a:hover{opacity:1;background:#ffffff1f}.main-area{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:#ffffffbf;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0}.topbar-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.user-label{color:var(--muted);font-size:.95rem}.page{padding:20px}.page-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.page-header h1,.panel h2{margin:0 0 6px}.stack,.stack-lg{gap:12px;display:grid}.stack-lg{gap:20px}.panel,.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat{gap:8px;padding:18px;display:grid}.stat span{color:var(--muted)}.stat strong{font-family:Manrope,sans-serif;font-size:2rem}label{gap:6px;font-weight:500;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:12px;padding:11px 12px}input:focus,select:focus,textarea:focus{border-color:var(--brand-soft);outline:2px solid #1f6a4f40}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid .full,.form-actions.full{grid-column:1/-1}.form-actions,.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{cursor:pointer;border:0;border-radius:12px;padding:10px 14px;font-weight:600}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand);color:#f7faf8}.btn-secondary{color:var(--brand);background:#edf5f0;border:1px solid #c7ddd1}.btn-ghost{color:var(--brand-soft);background:0 0;border:1px solid #0000}.btn-ghost:hover{border-color:var(--line);background:#f3f8f5}.btn-danger{color:var(--danger);background:#fff1f0;border:1px solid #ffd4d0}.badge{color:#1f4d3a;background:#e8f0ec;border-radius:999px;align-items:center;padding:4px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.badge.success{color:var(--success);background:#e8f8ef}.badge.warn{color:var(--warn);background:#fff7ed}.notice{color:#8a4b08;background:#fff8eb;border:1px solid #f6d9a8;border-radius:12px;padding:12px}.error{color:var(--danger);margin:8px 0 0}.success{color:var(--success);margin:8px 0 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}th{color:var(--muted);font-size:.92rem;font-weight:600}code{background:#f1f5f3;border-radius:6px;padding:2px 6px;font-size:.9rem}.menu-btn,.backdrop{display:none}.chat-panel{gap:14px;display:grid}.chat-log{gap:10px;max-height:420px;padding-right:4px;display:grid;overflow:auto}.chat-bubble{white-space:pre-wrap;border-radius:14px;max-width:min(720px,100%);padding:12px 14px}.chat-bubble.user{background:#e7f3ec;justify-self:end}.chat-bubble.bot{border:1px solid var(--line);background:#f6f7f8;justify-self:start}.chat-bubble p{margin:6px 0 0}.chat-form{grid-template-columns:1fr auto;gap:10px;display:grid}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#f8fbf9;border-radius:999px;padding:8px 12px}.faq-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.faq-list li{border-bottom:1px solid var(--line);padding-bottom:14px}.faq-list p{color:var(--muted);margin:6px 0 0}@media (width<=960px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell{grid-template-columns:1fr}.sidebar{z-index:20;width:min(280px,84vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.menu-btn,.backdrop{display:inline-flex}.backdrop{z-index:15;background:#0a141073;border:0;position:fixed;inset:0}}@media (width<=640px){.form-grid,.stat-grid,.chat-form{grid-template-columns:1fr}.page{padding:14px}.topbar{padding:12px}}
