:root{color-scheme:light;font-family:Inter,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box;margin:0;padding:0}#root,body,html{min-height:100%;min-width:320px;width:100%}body{background:#f6f7fb;color:#111827;font-size:14px;min-height:100vh}button,input,select,textarea{font:inherit}button{color:inherit}button,select{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed}svg :focus,svg:focus{outline:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 25%,#0000);outline-offset:2px}::-webkit-scrollbar{height:9px;width:9px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#cbd5e1;background-clip:padding-box;border:2px solid #0000;border-radius:999px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#475569;background-clip:padding-box;border:2px solid #0000}.app-shell{background:var(--page-bg);color:var(--text-primary);display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.app-sidebar{background:var(--sidebar-bg);color:#fff;display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px 14px 16px;position:sticky;top:0;z-index:20}.brand-block{align-items:center;display:flex;gap:12px;padding:4px 8px 26px}.brand-mark{background:linear-gradient(135deg,#818cf8,#4f46e5);border-radius:12px;box-shadow:0 8px 24px #4f46e559;display:grid;font-size:17px;font-weight:800;height:38px;place-items:center;width:38px}.brand-block strong{display:block;font-size:15px;letter-spacing:-.01em}.brand-block span{color:#94a3b8;display:block;font-size:11px;letter-spacing:.04em;margin-top:2px}.primary-nav{display:flex;flex:1 1;flex-direction:column;gap:5px}.primary-nav__label{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.12em;padding:0 10px 8px}.primary-nav>button{grid-gap:10px;align-items:center;background:#0000;border:1px solid #0000;border-radius:12px;color:#94a3b8;display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr);min-height:54px;padding:8px 10px;text-align:left;transition:background .16s ease,color .16s ease,transform .16s ease;width:100%}.primary-nav>button:hover{background:#ffffff0f;color:#e2e8f0;transform:translateX(2px)}.primary-nav>button.is-active{background:#818cf829;border-color:#818cf838;color:#fff}.nav-icon{background:#ffffff0f;border-radius:9px;color:#a5b4fc;display:grid;font-size:10px;font-weight:800;height:32px;place-items:center;width:32px}.is-active .nav-icon{background:#4f46e5;box-shadow:0 5px 14px #4f46e552;color:#fff}.nav-copy{min-width:0}.nav-copy small,.nav-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-copy strong{font-size:13px;font-weight:600}.nav-copy small{color:#64748b;font-size:11px;font-weight:400;margin-top:2px}.is-active .nav-copy small{color:#a5b4fc}.sidebar-profile{align-items:center;border-top:1px solid #94a3b826;display:flex;gap:10px;margin-top:18px;padding:14px 10px 2px}.profile-avatar{background:#1e293b;border-radius:50%;color:#c7d2fe;display:grid;font-size:12px;font-weight:700;height:34px;place-items:center;width:34px}.sidebar-profile small,.sidebar-profile strong{display:block}.sidebar-profile strong{font-size:12px}.sidebar-profile small{color:#64748b;font-size:10px;margin-top:2px}.app-workspace{min-width:0}.workspace-header{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--header-bg);border-bottom:1px solid var(--divider);display:flex;justify-content:space-between;min-height:78px;padding:14px clamp(18px,3vw,36px);position:sticky;top:0;z-index:15}.page-identity{align-items:center;display:flex;gap:18px}.page-identity>span{color:var(--text-faint);font-size:12px;font-weight:600;white-space:nowrap}.page-identity>span:after{color:var(--divider);content:"/";margin-left:18px}.page-identity h1{color:var(--text-primary);font-size:20px;letter-spacing:-.03em;line-height:1.2}.page-identity p{color:var(--text-muted);font-size:12px;margin-top:4px}.view-actions{align-items:center;display:flex;gap:7px;justify-content:flex-end}.label-size-group button,.view-actions>button{background:var(--card-bg);border:1px solid var(--card-border);border-radius:9px;box-shadow:var(--shadow-sm);color:var(--text-muted);font-size:12px;font-weight:600;min-height:34px;padding:0 11px}.label-size-group button:hover,.view-actions>button:hover{border-color:var(--primary);color:var(--primary)}.view-actions button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.view-actions>button span{margin-right:5px}.label-size-group{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;display:flex;padding:3px}.label-size-group button{border:0;box-shadow:none;min-height:27px}.context-toolbar{align-items:flex-end;background:color-mix(in srgb,var(--card-bg) 72%,var(--page-bg));border-bottom:1px solid var(--divider);display:flex;gap:12px;padding:16px clamp(18px,3vw,36px)}.context-toolbar__title{min-width:112px;padding-bottom:5px}.context-toolbar__title span,.context-toolbar__title strong{display:block}.context-toolbar__title span{color:var(--text-faint);font-size:11px;font-weight:700;letter-spacing:.06em}.context-toolbar__title strong{color:var(--text-sub);font-size:12px;font-weight:500;margin-top:3px}.app-selector{align-items:flex-end;border-left:3px solid var(--slot-color);display:flex;gap:7px;padding-left:11px}.slot-badge{align-self:center;background:var(--slot-color);border-radius:8px;color:#fff;display:grid;font-size:11px;font-weight:800;height:25px;margin-right:2px;place-items:center;width:25px}.field-group{display:flex;flex-direction:column;gap:4px}.field-group__label{color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.04em}.field-group select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:9px;color:var(--text-primary);font-size:13px;font-weight:500;height:36px;min-width:145px;padding:0 31px 0 11px}.field-group select:disabled{opacity:.5}.compare-toggle{align-self:flex-end;background:var(--card-bg);border:1px solid var(--card-border);border-radius:9px;color:var(--text-muted);font-size:12px;font-weight:700;height:36px;padding:0 13px}.compare-toggle.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.workspace-content{min-height:calc(100vh - 150px);padding:22px clamp(18px,3vw,36px) 48px}.workspace-content>*{animation:content-in .2s ease-out}@keyframes content-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.dashboard-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow-sm);padding:20px}.dashboard-card:hover{border-color:color-mix(in srgb,var(--primary) 25%,var(--card-border))}.section-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.section-heading__eyebrow{color:var(--primary);display:block;font-size:10px;font-weight:800;letter-spacing:.1em;margin-bottom:4px;text-transform:uppercase}.section-heading__title{color:var(--text-primary);font-size:15px;font-weight:700;letter-spacing:-.02em}.kpi-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--shadow-sm);min-height:112px;min-width:0;overflow:hidden;padding:16px 18px;position:relative}.kpi-card:before{background:var(--primary);background:var(--kpi-accent,var(--primary));content:"";height:100%;left:0;position:absolute;top:0;width:4px}.kpi-card__top{align-items:center;display:flex;justify-content:space-between}.kpi-card__label{color:var(--text-muted);font-size:12px;font-weight:600}.kpi-card__icon{color:var(--primary);color:var(--kpi-accent,var(--primary))}.kpi-card__value{font-feature-settings:"tnum";color:var(--text-primary);display:block;font-size:clamp(20px,2vw,26px);font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1;margin-top:11px}.kpi-card__sub{color:var(--text-faint);display:block;font-size:11px;margin-top:8px}.period-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--shadow-sm);margin-bottom:18px;overflow:hidden;position:relative}.period-panel__header{align-items:center;border-bottom:1px solid var(--divider);display:flex;gap:9px;min-height:45px;padding:8px 12px}.period-panel__title{align-items:center;color:var(--text-sub);display:flex;font-size:12px;font-weight:700;gap:7px;margin-right:3px}.period-panel__icon{color:var(--primary);font-size:15px}.period-panel__extra{margin-left:auto}.period-panel__body{display:flex;flex-direction:column;gap:8px;padding:10px 12px}.period-row{align-items:center;display:flex;gap:9px;min-height:34px}.period-row__label{background:var(--primary);border-radius:7px;color:#fff;display:grid;flex:0 0 24px;font-size:10px;font-weight:800;height:24px;place-items:center}.period-row__custom,.period-row__presets{align-items:center;display:flex;gap:6px}.period-row__custom{color:var(--text-faint)}.filter-chip{background:#0000;border:1px solid var(--card-border);border-radius:8px;color:var(--text-muted);font-size:12px;font-weight:600;min-height:30px;padding:0 11px;transition:.14s ease}.filter-chip:hover{border-color:var(--primary);color:var(--primary)}.filter-chip.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.loading-inline{align-items:center;color:var(--text-muted);display:flex;font-size:10px;gap:6px}.loading-inline>span{animation:pulse 1s ease-in-out infinite;background:var(--primary);border-radius:50%;height:7px;width:7px}@keyframes pulse{50%{opacity:.35;transform:scale(.85)}}.progress-track{background:var(--divider);height:3px;overflow:hidden;width:100%}.progress-track>div{background:linear-gradient(90deg,#4f46e5,#8b5cf6);border-radius:3px;height:100%;transition:width .32s ease}.ui-control{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:13px;min-height:34px;padding:0 10px}.ui-input::placeholder{color:var(--text-faint)}.ui-btn{border:1px solid #0000;border-radius:8px;font-size:12px;font-weight:700;min-height:34px;padding:0 13px;transition:transform .12s ease,opacity .12s ease}.ui-btn:hover:not(:disabled){transform:translateY(-1px)}.ui-btn:disabled{opacity:.45}.ui-btn--primary{background:var(--primary);color:#fff}.ui-btn--ghost{background:var(--card-bg);border-color:var(--card-border);color:var(--text-muted)}.ui-btn--danger{background:#dc2626;color:#fff}.chart-tooltip{border:1px solid;border-radius:10px;box-shadow:0 10px 24px #0f172a1f;min-width:150px;padding:10px 12px}.chart-tooltip__label{color:var(--text-muted);font-size:10px;font-weight:700;margin-bottom:7px}.chart-tooltip__row{display:flex;font-size:11px;gap:16px;justify-content:space-between;margin-top:4px}.chart-tooltip__row strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;min-height:220px;padding:38px 20px;text-align:center}.empty-state__icon{background:color-mix(in srgb,var(--primary) 9%,var(--card-bg));border-radius:50%;color:var(--primary);display:grid;font-size:20px;height:42px;margin-bottom:12px;place-items:center;width:42px}.empty-state strong{color:var(--text-sub);font-size:14px}.empty-state>span:last-child{font-size:12px;margin-top:6px}.status-banner{align-items:center;border:1px solid;border-radius:11px;display:flex;font-size:12px;gap:10px;min-height:46px;padding:9px 12px}.status-banner--info{background:color-mix(in srgb,var(--primary) 7%,var(--card-bg));border-color:color-mix(in srgb,var(--primary) 28%,var(--card-border));color:var(--text-sub)}.status-banner--warning{background:#f59e0b17;border-color:#d9770659;color:#b45309}.status-banner--error{background:#ef444414;border-color:#dc262652;color:#b91c1c}[data-theme=dark] .status-banner--warning{color:#fcd34d}[data-theme=dark] .status-banner--error{color:#fca5a5}.status-banner.is-compact{min-height:38px;padding:7px 10px}.status-banner__icon{border:1px solid;border-radius:50%;display:grid;flex:0 0 auto;font-size:11px;font-weight:800;height:22px;place-items:center;width:22px}.status-banner__message{flex:1 1 auto;line-height:1.45}.status-banner__action{flex:0 0 auto}.workspace-notice{padding:14px 22px 0}.workspace-content .status-banner{margin-bottom:14px}.workspace-notice .status-banner{margin-bottom:0}.page-error{align-items:center;display:flex;flex-direction:column}.page-error .empty-state{min-height:180px}.page-fallback{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(3,9px);justify-content:center;min-height:240px;padding-top:100px}.page-fallback span{animation:fallback-bounce .9s ease-in-out infinite alternate;background:var(--primary);border-radius:50%;height:9px;width:9px}.page-fallback span:nth-child(2){animation-delay:.15s}.page-fallback span:nth-child(3){animation-delay:.3s}@keyframes fallback-bounce{to{opacity:.45;transform:translateY(-8px)}}.loading-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0206178a;display:grid;inset:0;place-items:center;position:fixed;z-index:9999}.loading-overlay__panel{align-items:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:18px;box-shadow:0 22px 60px #00000047;color:var(--text-primary);display:flex;flex-direction:column;padding:28px;width:min(320px,calc(100vw - 40px))}.loading-overlay__panel strong{font-size:14px;margin-top:14px}.loading-overlay__panel>span:not(.loading-spinner){color:var(--text-muted);font-size:11px;margin:5px 0 16px}.loading-spinner{animation:spin .7s linear infinite;border:3px solid var(--divider);border-radius:50%;border-top-color:var(--primary);height:34px;width:34px}@keyframes spin{to{transform:rotate(1turn)}}.workspace-content table{font-feature-settings:"tnum";border-collapse:initial;border-spacing:0;font-variant-numeric:tabular-nums;width:100%}.workspace-content thead th{background:color-mix(in srgb,var(--card-bg) 93%,var(--page-bg));border-bottom:1px solid var(--divider);color:var(--text-muted)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.03em;padding-bottom:10px!important;padding-top:10px!important;position:sticky;top:0;white-space:nowrap;z-index:1}.workspace-content tbody td{border-bottom:1px solid var(--divider);line-height:1.45}.workspace-content tbody tr:last-child td{border-bottom:0}.workspace-content tbody tr:hover td{background:var(--row-hover)}.workspace-content tr.is-clickable{cursor:pointer}.workspace-content tr.is-selected td{background:color-mix(in srgb,var(--primary) 9%,var(--card-bg))}.admin-page{margin:0 auto;max-width:1480px}.admin-page input:not([type=checkbox]):not([type=radio]),.admin-page select,.admin-page textarea{font-size:13px!important;min-height:36px}.admin-subnav{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--shadow-sm);display:flex;gap:5px;margin:-5px 0 20px;overflow-x:auto;padding:5px;position:sticky;top:89px;z-index:10}.admin-subnav button{background:#0000;border:0;border-radius:8px;color:var(--text-muted);flex:0 0 auto;font-size:11px;font-weight:600;min-height:34px;padding:0 14px}.admin-subnav button:hover{background:var(--row-hover);color:var(--text-primary)}.admin-subnav button.is-active{background:var(--primary);box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 26%,#0000);color:#fff}.viewer-admin{grid-gap:16px;display:grid;gap:16px}.viewer-admin__form{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;max-width:760px}.viewer-admin__form label{grid-gap:6px;color:var(--text-muted);display:grid;font-size:11px;font-weight:700;gap:6px}.viewer-admin__feedback{font-size:12px;font-weight:600;margin:12px 0 0}.viewer-admin__feedback.is-error{color:#dc2626}.viewer-admin__feedback.is-success{color:#059669}[data-theme=dark] .fraud-admin__feedback.is-success,[data-theme=dark] .viewer-admin__feedback.is-success{color:#6ee7b7}.viewer-admin__loading{color:var(--text-muted);display:grid;font-size:12px;min-height:150px;place-items:center}.viewer-admin__list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.viewer-admin__list li{align-items:center;background:var(--input-bg);border:1px solid var(--divider);border-radius:10px;display:flex;gap:16px;justify-content:space-between;padding:11px 13px}.viewer-admin__list li>div{grid-gap:3px;display:grid;gap:3px;min-width:0}.viewer-admin__list strong{color:var(--text-primary);font-size:13px;overflow:hidden;text-overflow:ellipsis}.viewer-admin__list span{color:var(--text-faint);font-size:11px}.iap-whales-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.scroll-panel{max-height:340px;overflow:auto}.scroll-panel--tall{max-height:480px}.iap-whales-grid__user-id{color:var(--text-faint);font-size:11px;margin-bottom:12px;word-break:break-all}.iap-whales-grid__user-id span{color:var(--text-sub);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.iap-whales-grid__kpis{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.fraud-admin{grid-gap:16px;display:grid;gap:16px}.fraud-admin__form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) auto;max-width:720px}.fraud-admin__help{color:var(--text-faint);font-size:11px;margin:8px 0 0}.fraud-admin__feedback{font-size:12px;font-weight:600;margin:10px 0 0}.fraud-admin__feedback.is-error{color:#dc2626}.fraud-admin__feedback.is-success{color:#059669}.fraud-admin__list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.fraud-admin__list li{align-items:center;background:var(--input-bg);border:1px solid var(--divider);border-radius:10px;display:flex;gap:14px;justify-content:space-between;padding:10px 12px}.fraud-admin__list code{color:var(--text-sub);font-size:12px;overflow:hidden;text-overflow:ellipsis}.responsive-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.platform-settings-form{display:grid;grid-template-columns:minmax(100px,1fr) repeat(3,minmax(150px,2fr)) auto}@media (max-width:1180px){.app-shell{grid-template-columns:84px minmax(0,1fr)}.brand-block{justify-content:center;padding-left:0;padding-right:0}.brand-block>div:last-child,.nav-copy,.primary-nav__label,.sidebar-profile>span:last-child{display:none}.primary-nav>button{grid-template-columns:1fr;justify-items:center;padding:8px}.sidebar-profile{justify-content:center;padding-left:0;padding-right:0}.context-toolbar{flex-wrap:wrap}}@media (max-width:760px){.app-shell{display:block;padding-bottom:72px}.app-sidebar{border-top:1px solid #94a3b82e;bottom:0;height:72px;left:0;overflow:visible;padding:6px 8px;position:fixed;top:auto;width:100%;z-index:50}.brand-block,.primary-nav__label,.sidebar-profile{display:none}.primary-nav{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(5,minmax(0,1fr))}.primary-nav>button{border-radius:9px;gap:2px;min-height:58px;padding:4px}.fraud-admin__form,.iap-whales-grid,.platform-settings-form,.responsive-two-column,.viewer-admin__form{grid-template-columns:1fr}.nav-icon{font-size:9px;height:26px;width:26px}.nav-copy{display:block;text-align:center;width:100%}.nav-copy strong{font-size:10px}.nav-copy small{display:none}.workspace-header{align-items:flex-start;padding:14px 16px;position:static}.page-identity p,.page-identity>span{display:none}.page-identity h1{font-size:18px}.view-actions{flex-wrap:wrap}.view-actions>button{color:#0000;overflow:hidden;padding:0;white-space:nowrap;width:34px}.view-actions>button span{color:var(--text-muted);display:inline;margin:0}.view-actions>button.is-active span{color:#fff}.label-size-group{display:none}.context-toolbar{align-items:stretch;padding:12px 16px}.context-toolbar__title{display:none}.app-selector{flex:1 1 100%}.field-group{flex:1 1}.field-group select{min-width:0;width:100%}.compare-toggle{align-self:auto}.workspace-content{padding:16px 12px 34px}.admin-subnav{position:static}.dashboard-card{border-radius:13px;padding:15px}.period-row{align-items:flex-start}.period-row,.period-row__custom{flex-wrap:wrap}.period-row__custom .ui-control{width:132px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
/*# sourceMappingURL=main.08160282.css.map*/