@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db9bfcd87f1d73a3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4e2312c98e240c05-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/feed52454563c595-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f83e5507ec3854fa-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8934311971e59087-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bfdf244a9384e8b2-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b10e9fa1144bb4fb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d13ab8ed065835e4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d8c0f620f258dcc1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5fcb63deed33aab6-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e595057e1ab84c19-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/861fabf8a4ffc042-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/2b32cc5cb75c7a84-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0d4277ce62acaedf-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/942c4903ae74b0f3-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/66c5464579bf95d1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai Fallback;src:local("Arial");ascent-override:110.31%;descent-override:52.78%;line-gap-override:0.00%;size-adjust:101.17%}.__className_700a60{font-family:IBM Plex Sans Thai,IBM Plex Sans Thai Fallback;font-style:normal}.__variable_700a60{--font-sans:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}:root{--bg:#f6f5f2;--surface:#ffffff;--surface-2:#f0eee9;--border:#e2ded6;--text:#1c2430;--text-2:#5b6472;--text-3:#8a92a0;--primary:#111129;--primary-hover:#26264a;--primary-soft:#e9e9f1;--on-primary:#ffffff;--accent:#e0703a;--ok:#2f8f5b;--ok-soft:#e3f3ea;--warn:#9a6512;--warn-soft:#fbf1de;--err:#c2413a;--err-soft:#fbe7e5;--cat-makeup:#d14d72;--cat-personal_care:#d98a1f;--cat-skincare:#3a78c2;--cat-other:#8a92a0;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px rgba(20,30,50,0.06),0 4px 16px rgba(20,30,50,0.05);--sidebar-w:256px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12161c;--surface:#1b2129;--surface-2:#222a34;--border:#2c343f;--text:#e8ebef;--text-2:#a3abb7;--text-3:#77808d;--primary:#c3c7dc;--primary-hover:#d8dbea;--primary-soft:#262a3b;--on-primary:#0f1722;--accent:#f08a57;--ok:#5cc28a;--ok-soft:#173326;--warn:#e0b057;--warn-soft:#362a12;--err:#ef7b73;--err-soft:#3a1c1a;--cat-makeup:#ea7896;--cat-personal_care:#edb04f;--cat-skincare:#6fa3e3;--cat-other:#8f98a6;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.25);color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans),system-ui,"Segoe UI","Noto Sans Thai",sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.3;margin:0}code{font-family:ui-monospace,Consolas,monospace;font-size:.9em;background:var(--surface-2);padding:1px 6px;border-radius:4px}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:18px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 8px}.logo-tile{width:44px;height:44px;border-radius:10px;background:#ffffff;border:1px solid var(--border);display:grid;place-items:center;overflow:hidden;flex:none}.logo-tile img{width:100%;height:100%;object-fit:contain}.login-logo{width:132px;height:132px;border-radius:18px;background:#ffffff;display:grid;place-items:center;overflow:hidden}.login-logo img{width:100%;height:100%;object-fit:contain}.brand-name{font-weight:700;font-size:16px}.brand-sub{font-size:12px;color:var(--text-3)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:0 10px 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-2);font-size:14px}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{font-weight:600}.nav-link.disabled{opacity:.55;cursor:default}.nav-link.disabled:hover{background:transparent;color:var(--text-2)}.dot{width:10px;height:10px;border-radius:50%;flex:none}.nav-sublabel{padding:10px 10px 4px}.nav-sublabel,.soon{font-size:11px;color:var(--text-3)}.soon{margin-left:auto;border:1px solid var(--border);border-radius:999px;padding:0 7px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-left:8px}.user-chip{font-size:13px;color:var(--text-2)}.main{padding:28px 32px 48px;max-width:1200px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700}.page-sub{color:var(--text-2);margin-top:4px}.crumbs{font-size:13px;color:var(--text-3);margin-bottom:6px}.grid{display:grid;grid-gap:16px;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.card-title{font-size:15px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}.card+.card,.section+.section{margin-top:16px}.section{margin-top:24px}.section-title{font-size:17px;font-weight:600;margin-bottom:12px}.kpi-label{font-size:13px;color:var(--text-2)}.kpi-value{font-size:26px;font-weight:700;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-note{font-size:12px;color:var(--text-3);margin-top:4px}.muted{color:var(--text-2)}.small{font-size:13px}.accent-card{border-top:4px solid var(--card-accent,var(--primary))}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:2px 10px;color:var(--text-2)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-weight:600;color:var(--text-2);font-size:12px;padding:8px 10px;white-space:nowrap}td,th{border-bottom:1px solid var(--border)}td{padding:9px 10px;vertical-align:top}tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;white-space:nowrap}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-err{background:var(--err-soft);color:var(--err)}.badge-idle{background:var(--surface-2);color:var(--text-2)}.notice{border-radius:var(--radius-sm);padding:12px 14px;font-size:14px;margin-bottom:16px;border:1px solid transparent}.notice-ok{background:var(--ok-soft);color:var(--ok)}.notice-err{background:var(--err-soft);color:var(--err)}.notice-warn{background:var(--warn-soft);color:var(--warn)}.notice-info{background:var(--primary-soft);color:var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;font-weight:600;border-radius:var(--radius-sm);padding:8px 14px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2);padding:6px 8px}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;pointer-events:none}.actions{display:flex;flex-wrap:wrap;gap:8px}.inline-form{display:inline}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--text-2)}.hint{font-size:12px;color:var(--text-3)}.brand-form{max-width:720px}.brand-form .grid{gap:0 16px}.dot-cell{display:inline-flex;align-items:center;gap:8px}.check{display:flex;align-items:flex-start;gap:8px;font-size:14px;cursor:pointer}.check input{margin-top:3px;accent-color:var(--primary)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-head .section-title{margin-bottom:0}.picker{margin-bottom:16px;padding:0}.picker summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;cursor:pointer;font-weight:600}.picker[open] summary{border-bottom:1px solid var(--border)}.picker form{padding:16px 20px}.picker-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.picker-group{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.picker-group legend{width:100%;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px;padding:0}.picker-group legend a{margin-left:auto;font-weight:400}.input{font:inherit;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text)}.input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filter{font-size:13px;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:6px 12px;color:var(--text-3);background:var(--surface)}.phase-list{list-style:none;margin:0;padding:0}.phase-list li{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.phase-list li:last-child{border-bottom:none}.phase-no{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--text-2);flex:none}.phase-done .phase-no{background:var(--ok-soft);color:var(--ok)}.phase-in_progress .phase-no{background:var(--primary-soft);color:var(--primary)}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:var(--primary);color:var(--on-primary);padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;border:56px solid var(--accent);opacity:.35}.login-art h1{font-size:34px;font-weight:700;max-width:420px}.login-art p{opacity:.85;max-width:420px}.color-stripes{display:flex;gap:6px;margin-top:20px}.color-stripes span{height:6px;flex:1 1;border-radius:3px}.login-panel{display:grid;place-items:center;padding:32px 16px}.login-card{width:100%;max-width:360px}.login-card h2{font-size:22px;margin-bottom:4px}@media (max-width:960px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr}}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border)}.main{padding:20px 16px 40px}.grid-2,.grid-4,.login-wrap{grid-template-columns:1fr}.login-art{padding:28px 16px;min-height:200px;gap:20px}.login-art:after{display:none}.login-logo{width:96px;height:96px}.login-art h1{font-size:24px}}.main{max-width:1320px}.chart{width:100%;height:auto;display:block}.chart text{font-family:inherit}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.num,th.num{text-align:right}.kpi-value.big{font-size:30px}.delta{font-size:12px;font-weight:600;padding:1px 7px;border-radius:999px;white-space:nowrap}.delta-up{color:var(--ok);background:var(--ok-soft)}.delta-down{color:var(--err);background:var(--err-soft)}.delta-flat{color:var(--text-3);background:var(--surface-2)}.kpi-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.progress{position:relative;height:10px;border-radius:999px;background:var(--surface-2);overflow:visible;margin:8px 0 4px}.progress-bar{height:100%;border-radius:999px;transition:width .3s}.progress-mark{position:absolute;top:-3px;width:2px;height:16px;background:var(--text-2);border-radius:1px}.progress.sm{height:6px;margin:4px 0 0}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--text-2);margin-top:8px}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:12px;height:12px;border-radius:3px;border:2px solid transparent}.donut-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.donut-list{flex:1 1;min-width:160px;font-size:13px}.donut-list .row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px dashed var(--border)}.donut-list .row:last-child{border-bottom:none}.donut-list .row .val{margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.card-head h3{margin:0;font-size:15px}.tabs{display:inline-flex;gap:2px;background:var(--surface-2);border-radius:var(--radius-sm);padding:3px}.tab{font-size:13px;padding:4px 10px;border-radius:6px;color:var(--text-2);text-decoration:none;white-space:nowrap}.tab.active{background:var(--surface);box-shadow:var(--shadow);font-weight:600}.fbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px}.fbar details{position:relative}.fbar summary{list-style:none;cursor:pointer;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;background:var(--surface);color:var(--text);white-space:nowrap}.fbar summary::-webkit-details-marker{display:none}.fbar summary.on{border-color:var(--primary);background:var(--primary-soft);font-weight:600}.fbar .menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:220px;max-height:360px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px}.fbar .menu label{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 2px;cursor:pointer}.fbar .menu .grp{font-size:11px;color:var(--text-3);font-weight:700;margin:8px 0 2px;text-transform:uppercase;letter-spacing:.03em}.fbar .menu .menu-actions{display:flex;gap:6px;margin-top:8px;position:-webkit-sticky;position:sticky;bottom:-10px;background:var(--surface);padding:6px 0}.fbar .menu a.opt{display:block;padding:5px 6px;border-radius:6px}.fbar .chip-toggle,.fbar .menu a.opt{font-size:13px;color:var(--text);text-decoration:none}.fbar .chip-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;background:var(--surface);white-space:nowrap}.fbar .chip-toggle.on{border-color:var(--primary);background:var(--primary-soft);font-weight:600}.fbar .menu a.opt.on,.fbar .menu a.opt:hover{background:var(--surface-2)}.fbar .reset{font-size:12px;color:var(--text-3)}.fbar input[type=date],.fbar input[type=month]{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.btn-sm{padding:4px 10px}.btn-sm,.rank{font-size:12px}.rank{color:var(--text-3);width:28px}.bar-cell{position:relative;min-width:120px}.bar-cell .fill{position:absolute;left:0;top:50%;height:6px;transform:translateY(-50%);border-radius:3px;opacity:.25}.tag{display:inline-block;font-size:11px;padding:0 6px;border-radius:4px;background:var(--surface-2);color:var(--text-2);margin-right:4px;white-space:nowrap}.pill-ok{color:var(--ok)}.pill-warn{color:var(--warn)}.pill-err{color:var(--err)}.stat-strip{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:var(--text-2)}.stat-strip b{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.targets-grid input{width:110px;text-align:right;font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.targets-grid td,.targets-grid th{padding:5px 6px}.sticky-col{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1}.tag-soft{background:transparent;border:1px dashed var(--border);color:var(--text-3)}.tiny{font-size:10.5px;line-height:1.2}.channel-grid td,.channel-grid th{padding:5px 7px;white-space:nowrap}.channel-grid .row-group td{background:var(--surface-2);font-weight:700;font-size:12px;padding-top:8px}.channel-grid .row-group .sticky-col{background:var(--surface-2)}.channel-grid .row-total td{font-weight:600;border-top:1px solid var(--border);background:var(--surface)}.channel-grid .row-total.strong td{font-weight:700;background:var(--primary-soft)}.channel-grid .row-total.strong .sticky-col{background:var(--primary-soft)}.channel-grid input{width:96px;text-align:right;font:inherit;font-size:12.5px;padding:3px 5px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}@media (max-width:760px){.kpi-value.big{font-size:24px}.fbar .menu{position:fixed;left:12px;right:12px;top:auto}}.kpi-value.big{font-size:clamp(20px,2.1vw,30px);overflow-wrap:anywhere}.main{overflow-x:hidden}.card,.main{min-width:0}.bar-cell .fill{top:auto;bottom:3px;transform:none;height:4px;opacity:.55}.nav-burger,.nav-toggle{display:none}.nav-burger{margin-left:auto;font-size:14px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;background:var(--surface)}@media (max-width:760px){.nav-burger{display:inline-flex}.sidebar>.nav-group,.sidebar>.sidebar-footer{display:none}.nav-toggle:checked~.nav-group,.nav-toggle:checked~.sidebar-footer{display:block}.sidebar .brand{display:flex;align-items:center;width:100%}}@media print{.fbar,.nav-burger,.no-print,.sidebar{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.card{box-shadow:none;page-break-inside:avoid;break-inside:avoid}body{background:#fff}}.kpi-value.big{font-size:clamp(16px,1.75vw,30px);overflow-wrap:normal;white-space:nowrap}@media (max-width:760px){.kpi-value.big{font-size:24px}}.row-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 0}.row-form .input{padding:5px 8px;font-size:13px}.analysis-grid td,.analysis-grid th{padding:6px 7px;vertical-align:top}.analysis-grid input.input,.analysis-grid select.input{font-size:12px;padding:3px 5px;width:100%;min-width:170px}.grade{display:inline-block;min-width:20px;text-align:center;font-weight:700;font-size:11px;border-radius:4px;padding:1px 4px}.grade-A{background:#16a34a22;color:#15803d}.grade-B{background:#f59e0b22;color:#b45309}.grade-C{background:var(--surface-2);color:var(--text-3)}.seg{display:inline-block;color:#fff;font-size:11px;font-weight:600;border-radius:4px;padding:0 6px}.all-channels{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;grid-gap:18px;gap:18px;align-items:center}@media (max-width:760px){.all-channels{grid-template-columns:1fr}}.mix-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;background:var(--surface-2);margin:6px 0 4px}.mix-bar span{display:block;height:100%}:root{--accent-hover:#c95e2a;--accent-soft:#fcebe1;--on-accent:#ffffff;--kpi-1:#111129;--kpi-2:#e0703a;--kpi-3:#2f8f5b;--kpi-4:#3a78c2}@media (prefers-color-scheme:dark){:root{--accent-hover:#f5a47a;--accent-soft:#3a2418;--on-accent:#1a0f08;--kpi-1:#9aa3d6;--kpi-2:#f08a57;--kpi-3:#5cc28a;--kpi-4:#6fa3e3}}.btn{transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s}.btn:hover{border-color:var(--text-3)}.btn:active{transform:translateY(1px)}.btn:focus-visible,.chip-toggle:focus-visible,.nav-link:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 1px 2px rgba(224,112,58,.25),0 4px 12px rgba(224,112,58,.22)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 4px rgba(224,112,58,.3),0 6px 16px rgba(224,112,58,.28)}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:transparent}.fbar .chip-toggle,.fbar summary{transition:background-color .15s,border-color .15s}.fbar .chip-toggle:hover,.fbar summary:hover{border-color:var(--accent)}.fbar .chip-toggle.on,.fbar summary.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.fbar .menu a.opt.on{background:var(--accent-soft);font-weight:600}.tab{transition:background-color .15s,color .15s}.tab:hover{color:var(--text);background:var(--surface)}.tab.active{box-shadow:inset 0 -2px 0 var(--accent),var(--shadow);color:var(--text)}.nav-link{position:relative;transition:background-color .15s,color .15s}.nav-link.active{background:var(--primary-soft);color:var(--primary)}.nav-link.active:before{position:absolute;left:-2px;top:7px;bottom:7px;width:3px}.nav-link.active:before,.page-title:after{content:"";border-radius:3px;background:var(--accent)}.page-title:after{display:block;width:36px;height:3px;margin-top:6px}.grid-4>.card{border-top:3px solid var(--kpi-1)}.grid-4>.card:nth-child(4n+2){border-top-color:var(--kpi-2)}.grid-4>.card:nth-child(4n+3){border-top-color:var(--kpi-3)}.grid-4>.card:nth-child(4n+4){border-top-color:var(--kpi-4)}.grid-3>.card{border-top:3px solid var(--kpi-1)}.grid-3>.card:nth-child(3n+2){border-top-color:var(--kpi-2)}.grid-3>.card:nth-child(3n+3){border-top-color:var(--kpi-3)}thead th,thead th.sticky-col{background:var(--surface-2)}thead th:first-child{border-top-left-radius:6px}thead th:last-child{border-top-right-radius:6px}tbody tr{transition:background-color .1s}tbody tr:hover>td{background:color-mix(in srgb,var(--accent) 5%,transparent)}.channel-grid tbody tr:hover>td.sticky-col,.targets-grid tbody tr:hover>td.sticky-col{background:var(--surface)}.analysis-grid .input:focus,.channel-grid input:focus,.input:focus,.targets-grid input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.tag{background:var(--primary-soft);color:var(--primary)}.tag.tag-soft{background:transparent;border:1px dashed var(--border);color:var(--text-3)}.notice{border-left-width:4px}.notice-ok{border-left-color:var(--ok)}.notice-err{border-left-color:var(--err)}.notice-warn{border-left-color:var(--warn)}.notice-info{border-left-color:var(--primary)}@media print{.page-title:after{display:none}thead th{background:none}}.channel-grid td.now-col,.channel-grid th.now-col{background:color-mix(in srgb,var(--accent) 7%,transparent)}.card.flat{box-shadow:none;padding:14px 16px}.all-ch-grid+.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:center}.ai-summary{border-left:3px solid var(--accent)}.ai-text h4{margin:14px 0 6px;font-size:14px}.ai-text h4:first-child{margin-top:0}.ai-text p,.ai-text ul{margin:4px 0;line-height:1.7}.ai-text ul{padding-left:20px}.mfa-setup{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.mfa-qr{background:#fff;padding:8px;border-radius:8px;border:1px solid var(--line,#ddd);line-height:0}.mfa-qr svg{width:200px;height:200px}a.user-chip{color:inherit;text-decoration:none}a.user-chip:hover{text-decoration:underline}