:root{--font-scale:1;--bg:#f4f6f8;--bg-elev:#fff;--text:#142033;--muted:#5b6b7c;--border:#d7dee7;--accent:#1a4f8b;--accent-2:#0e7c66;--danger:#b42318;--warn:#b54708;--sidebar:#0f2744;--sidebar-text:#e8eef6;--positive:#067647;--neutral:#b54708;--negative:#b42318;--shadow:0 1px 2px rgba(16,24,40,.06)}[data-theme=dark]{--bg:#0b1220;--bg-elev:#121a2b;--text:#e7eef8;--muted:#9aa8bc;--border:#243247;--accent:#5b9bd5;--accent-2:#3dba9a;--sidebar:#07101d;--sidebar-text:#dce7f5;--shadow:0 1px 2px rgba(0,0,0,.35)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:IBM Plex Sans Thai,Noto Sans Thai,Sarabun,sans-serif;font-size:calc(15px * var(--font-scale));line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);border-radius:8px;padding:.45rem .8rem}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);border-radius:8px;padding:.55rem .7rem}input[type=checkbox],input[type=radio]{width:1rem;height:1rem;margin:0;flex-shrink:0;accent-color:var(--accent);vertical-align:middle}label{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.92em}label.row{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:0;color:var(--text);cursor:pointer}[data-theme=dark] input:not([type=checkbox]):not([type=radio]),[data-theme=dark] select,[data-theme=dark] textarea{background:#fff;color:#111;border-color:#c9d1d9}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#6b7280}[data-theme=dark] input:not([type=checkbox]):not([type=radio]):focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.app-shell{display:grid;grid-template-columns:var(--sidebar-w,240px) 1fr;min-height:100vh}.app-shell.collapsed{--sidebar-w:72px}.sidebar{background:linear-gradient(180deg,var(--sidebar),#16365c);color:var(--sidebar-text);padding:1rem .75rem;display:flex;flex-direction:column;gap:.5rem}.sidebar .brand{display:flex;align-items:center;gap:.65rem;padding:.4rem .5rem 1rem;border-bottom:1px solid hsla(0,0%,100%,.12);margin-bottom:.5rem}.sidebar .brand img{width:36px;height:36px;object-fit:contain;border-radius:8px;background:#fff}.sidebar nav a{display:flex;align-items:center;gap:.7rem;padding:.65rem .7rem;border-radius:10px;color:var(--sidebar-text);opacity:.9}.sidebar nav a.active,.sidebar nav a:hover{background:hsla(0,0%,100%,.12);opacity:1}.sidebar .icon{width:1.25rem;text-align:center;flex-shrink:0}.collapsed .sidebar .brand-text,.collapsed .sidebar .label{display:none}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-elev);box-shadow:var(--shadow)}.content{padding:1.25rem}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:1rem;box-shadow:var(--shadow)}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:var(--bg-elev)}td,th{border-bottom:1px solid var(--border);padding:.55rem .6rem;text-align:left;vertical-align:top}th{font-size:.9em;color:var(--muted);background:color-mix(in srgb,var(--bg) 70%,var(--bg-elev))}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.85em;font-weight:600;line-height:1.35;white-space:nowrap}.badge.positive{background:#dcfae6;color:var(--positive)}.badge.neutral{background:#fef0c7;color:var(--neutral)}.badge.negative{background:#fee4e2;color:var(--negative)}[data-theme=dark] .badge.positive{background:#0b3b2a}[data-theme=dark] .badge.neutral{background:#3b2a0b}[data-theme=dark] .badge.negative{background:#3b1212}.platform-badge-list{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}.platform-check-list{gap:.45rem}label.platform-check{display:inline-flex;align-items:center;gap:.4rem;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.35rem .7rem;border-radius:999px;opacity:.72;transition:opacity .15s ease,box-shadow .15s ease}label.platform-check.is-checked{opacity:1;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 35%,transparent);font-weight:700}label.platform-check input[type=checkbox]{width:1rem;height:1rem;margin:0;flex-shrink:0;accent-color:currentColor}.badge.platform{border:1px solid transparent}.badge.platform-youtube{background:#ffe5e5;color:#c4302b;border-color:#f5b5b5}.badge.platform-pantip{background:#fff3e0;color:#a15c00;border-color:#f0d0a0}.badge.platform-x{background:#e8e8e8;color:#111;border-color:#cfcfcf}.badge.platform-tiktok{background:#f3e8ff;color:#7a1fa2;border-color:#d9b8f0}.badge.platform-facebook{background:#e7f0ff;color:#1877f2;border-color:#b7d0fb}.badge.platform-telegram{background:#e6f6ff;color:#229ed9;border-color:#a9dcf5}.badge.platform-news{background:#e8f5e9;color:#2e7d32;border-color:#b7dfb9}.badge.platform-web{background:#eef2ff;color:#3949ab;border-color:#c5cae9}.badge.platform-instagram{background:#fce4ec;color:#c2185b;border-color:#f48fb1}.badge.platform-default{background:#edf2f7;color:#4a5568;border-color:#cbd5e0}[data-theme=dark] .badge.platform-youtube{background:#3a1515;color:#ff8a80;border-color:#6b2a2a}[data-theme=dark] .badge.platform-pantip{background:#3a2a12;color:#ffb74d;border-color:#6b4e1e}[data-theme=dark] .badge.platform-x{background:#2a2a2a;color:#f5f5f5;border-color:#555}[data-theme=dark] .badge.platform-tiktok{background:#2a1840;color:#ce93d8;border-color:#5a3a7a}[data-theme=dark] .badge.platform-facebook{background:#132a4a;color:#90caf9;border-color:#2a5080}[data-theme=dark] .badge.platform-telegram{background:#123040;color:#81d4fa;border-color:#2a607a}[data-theme=dark] .badge.platform-news{background:#14301a;color:#a5d6a7;border-color:#2e5a34}[data-theme=dark] .badge.platform-web{background:#1a2040;color:#9fa8da;border-color:#3a4570}[data-theme=dark] .badge.platform-instagram{background:#3a1528;color:#f48fb1;border-color:#6b2a48}[data-theme=dark] .badge.platform-default{background:#243247;color:#cbd5e0;border-color:#3a4a60}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 20% 20%,rgba(26,79,139,.18),transparent 40%),radial-gradient(circle at 80% 0,rgba(14,124,102,.16),transparent 35%),var(--bg)}.auth-card{width:min(420px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow)}.auth-card h1{margin:0 0 .25rem;font-size:1.35rem}.muted{color:var(--muted)}.row{gap:.5rem;align-items:center}.row,.tabs{display:flex;flex-wrap:wrap}.tabs{gap:.4rem;margin-bottom:1rem}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.error{color:var(--danger);margin:.5rem 0}.success{color:var(--accent-2)}.stack{display:grid;grid-gap:.75rem;gap:.75rem}.filters-bar input{width:auto}.action-menu{position:relative;display:inline-block}.action-menu-panel{z-index:50;min-width:180px;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.18);display:grid;padding:.35rem;grid-gap:.25rem;gap:.25rem}.action-menu-fixed{position:fixed}.action-menu-panel button{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:6px}.action-menu-panel button:hover:not(:disabled){background:var(--bg)}.action-menu-panel button.danger{color:var(--danger)}.action-menu-panel button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow:auto}.modal-card{width:min(720px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:var(--shadow)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem 1rem;gap:.75rem 1rem}.detail-text{white-space:pre-wrap;max-height:280px;overflow:auto;padding:.75rem;background:var(--bg)}.button-link,.detail-text{border:1px solid var(--border);border-radius:8px}.button-link{display:inline-block;background:var(--bg-elev);color:var(--text);padding:.45rem .8rem}@media (max-width:860px){.app-shell,.app-shell.collapsed{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:5}.detail-grid{grid-template-columns:1fr}}