:root{color:#172034;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background:#f5f7fb;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}:root{--color-primary:#0c8af9;--color-primary-soft:#e3f1fd;--color-page:#f5f7fb;--color-surface:#fff;--color-surface-subtle:#fafbfc;--color-border:#e5e8ef;--color-border-strong:#dfe3eb;--color-heading:#111827;--color-text:#172034;--color-text-body:#3c465a;--color-text-muted:#737b8e;--color-text-subtle:#9299a8;--color-success:#28b879;--color-danger:#dc5d62;--color-warning:#d07124}*{box-sizing:border-box}button,input{font:inherit}button{border:0}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.toggle{cursor:pointer;border-radius:999px;width:50px;height:28px;padding:3px;transition:background-color .2s;position:relative}.toggle-inner{background:var(--color-surface);border-radius:50%;width:22px;height:22px;transition:transform .2s;display:block;transform:translate(0);box-shadow:0 1px 4px #141b2d3d}.toggle.dev{background:var(--color-success)}.toggle.prod{background:var(--color-primary)}.toggle.prod .toggle-inner{transform:translate(22px)}.toggle:focus-visible{outline:3px solid var(--color-primary-soft);outline-offset:2px}.app-shell{background:var(--color-page);min-height:100vh;color:var(--color-text)}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:64px;padding:0 48px;display:flex}.brand{letter-spacing:-.2px;align-items:center;gap:11px;font-size:15px;font-weight:750;display:flex}.brand img{width:30px;height:30px}.topbar-actions{align-items:center;gap:16px;display:flex}.environment{color:var(--color-text-subtle);letter-spacing:.08em;align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.environment-label{text-align:right;min-width:34px}.logout-button{color:var(--color-text-muted);cursor:pointer;background:#f0f2f5;border-radius:7px;padding:7px 10px;font-size:11px;font-weight:700}.logout-button:hover{color:var(--color-text);background:#e7eaf0}.tabbar{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.tabbar-inner{align-items:stretch;gap:28px;width:min(1440px,100% - 64px);height:48px;margin:0 auto;display:flex}.tab-button{color:var(--color-text-muted);cursor:pointer;background:0 0;align-items:center;padding:0 2px;font-size:13px;font-weight:750;display:flex;position:relative}.tab-button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tab-button:hover{color:var(--color-text)}.tab-button.active{color:var(--color-primary)}.tab-button.active:after{background:var(--color-primary)}.tab-button:focus-visible{outline:3px solid var(--color-primary-soft);outline-offset:2px;border-radius:4px}.login-shell{background:var(--color-page);place-items:center;width:100%;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;width:min(420px,100%);padding:38px;box-shadow:0 20px 55px #1c243817}.login-brand{color:var(--color-heading);align-items:center;gap:10px;margin-bottom:38px;font-size:14px;font-weight:750;display:flex}.login-brand img{width:32px;height:32px}.login-card h1{letter-spacing:-1px;font-size:27px}.login-copy{color:var(--color-text-muted);margin:11px 0 27px;font-size:13px;line-height:1.6}.login-card form{flex-direction:column;gap:9px;display:flex}.login-card label{color:var(--color-text-body);font-size:12px;font-weight:750}.login-card input{border:1px solid var(--color-border-strong);height:46px;color:var(--color-text);border-radius:8px;outline:none;padding:0 14px}.login-card input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0c8af91a}.login-card form>button{background:var(--color-primary);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:46px;margin-top:8px;font-size:13px;font-weight:750;display:flex}.login-card form>button:disabled{opacity:.7;cursor:wait}.login-error{color:var(--color-danger);margin:0;font-size:11px}main{width:min(1440px,100% - 64px);margin:0 auto;padding:52px 0 80px}.page-heading{justify-content:space-between;align-items:flex-end;margin-bottom:28px;display:flex}.eyebrow{color:var(--color-primary);letter-spacing:.13em;margin:0 0 8px;font-size:11px;font-weight:850}h1{color:var(--color-heading);letter-spacing:-1.4px;margin:0;font-size:34px;line-height:1.2}.heading-copy{color:var(--color-text-muted);margin:11px 0 0;font-size:14px}.api-state{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);border-radius:99px;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:650;display:flex;box-shadow:0 4px 18px #141b2d09}.status-dot{background:var(--color-success);border-radius:50%;width:7px;height:7px}.error-dot{background:var(--color-danger)}.filter-card{z-index:10;border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;padding:22px 24px;position:relative;box-shadow:0 8px 28px #1c24380d}.filter-grid{grid-template-columns:150px minmax(290px,1.45fr) 240px 175px 200px 126px;align-items:end;gap:12px;display:grid}.field{flex-direction:column;gap:8px;min-width:0;display:flex;position:relative}.field-label{color:#555e71;font-size:12px;font-weight:750}.field input[type=date],.select-trigger{border:1px solid var(--color-border-strong);background:var(--color-surface);color:#293247;border-radius:8px;outline:none;width:100%;height:44px;padding:0 13px;font-size:13px;transition:all .16s}.field input[type=date]:focus,.select-trigger.open{border-color:var(--color-primary);box-shadow:0 0 0 3px #0c8af91a}.select-trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;display:flex}.select-trigger:disabled{color:#a2a8b6;cursor:wait}.select-trigger>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-trigger svg{flex:none;width:16px;transition:transform .18s}.select-trigger.open svg{transform:rotate(180deg)}.segmented{border:1px solid var(--color-border-strong);background:#f6f7f9;border-radius:8px;grid-template-columns:repeat(2,1fr);height:44px;padding:3px;display:grid}.segmented.triple{grid-template-columns:repeat(3,1fr)}.segmented button{color:#858c9b;cursor:pointer;background:0 0;border-radius:6px;font-size:12px;font-weight:700}.segmented button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 5px #1d25371f}.search-button{background:var(--color-primary);height:44px;color:var(--color-surface);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:750;transition:all .16s;display:flex;box-shadow:0 6px 14px #0c8af93b}.search-button:hover{background:var(--color-primary);transform:translateY(-1px)}.search-button:disabled{opacity:.7;cursor:wait;transform:none}.search-button svg{width:17px;height:17px}.inline-error{color:var(--color-danger);cursor:pointer;background:0 0;padding:0;font-size:10px;position:absolute;top:70px}.device-menu{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:10px;width:min(420px,92vw);position:absolute;top:70px;left:0;overflow:hidden;box-shadow:0 18px 48px #181f3029}.device-search{border-bottom:1px solid var(--color-border);align-items:center;gap:9px;padding:10px 12px;display:flex}.device-search svg{color:#99a0ae;width:17px}.device-search input{color:#263046;border:0;outline:0;width:100%;font-size:12px}.device-categories{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);grid-template-columns:repeat(3,1fr);gap:4px;padding:8px 10px;display:grid}.device-categories button{color:#858c9b;cursor:pointer;background:0 0;border-radius:6px;height:30px;font-size:11px;font-weight:750}.device-categories button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 5px #1d25371f}.device-list{max-height:280px;padding:6px;overflow-y:auto}.device-option{color:var(--color-text-body);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:9px 8px;font-size:12px;display:flex}.device-option:hover{background:var(--color-surface-subtle)}.device-option-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:650;overflow:hidden}.storage-options{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:5px;display:flex}.storage-options button{color:#70798b;cursor:pointer;background:#f5f6f8;border:1px solid #e1e4eb;border-radius:5px;padding:5px 8px;font-size:10px;transition:all .14s}.storage-options button:hover,.storage-options button.selected{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.menu-empty{text-align:center;color:#989fab;padding:28px 16px;font-size:12px}.notice{border-radius:10px;align-items:flex-start;gap:12px;margin-top:18px;padding:15px 17px;display:flex}.notice>svg{flex:none;margin-top:1px}.notice strong{font-size:13px}.notice p{margin:3px 0 0;font-size:12px;line-height:1.5}.notice>button{color:inherit;cursor:pointer;background:0 0;margin-left:auto;padding:0}.notice>button svg{width:17px}.error-notice{color:#a44449;background:#fff5f5;border:1px solid #f0cdcf}.guide-panel,.empty-state,.loading-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;margin-top:22px}.guide-panel{grid-template-columns:90px 1fr auto;align-items:center;gap:24px;min-height:205px;padding:36px 42px;display:grid}.guide-visual{background:linear-gradient(145deg, var(--color-primary-soft), #f7fbff);width:84px;height:84px;color:var(--color-primary);border-radius:22px;place-items:center;display:grid}.guide-visual svg{stroke-width:1.5px;width:46px;height:46px}.guide-panel h2,.empty-state h2{letter-spacing:-.6px;margin:0 0 8px;font-size:20px}.guide-panel>div:nth-child(2)>p:last-child,.empty-state p,.loading-panel p{color:var(--color-text-subtle);margin:0;font-size:13px}.rule-card{border-left:3px solid var(--color-primary);background:var(--color-surface-subtle);border-radius:4px 9px 9px 4px;min-width:270px;padding:18px 20px}.rule-card span{color:var(--color-text-subtle);letter-spacing:.08em;margin-bottom:5px;font-size:10px;font-weight:800;display:block}.rule-card strong{color:#3d4660;font-size:13px}.rule-card p{color:var(--color-text-subtle);margin:4px 0 0;font-size:10px}.empty-state,.loading-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:280px;display:flex}.empty-state>svg{color:#b2b8c5;stroke-width:1.4px;width:56px;height:56px;margin-bottom:17px}.loading-panel{color:#5d6578;gap:8px;font-size:14px}.loading-panel .spinner{width:30px;height:30px;color:var(--color-primary);border-width:3px;margin-bottom:8px}.tag-placeholder{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:320px;display:flex}.tag-placeholder-icon{background:var(--color-primary-soft);width:76px;height:76px;color:var(--color-primary);border-radius:20px;place-items:center;margin-bottom:20px;display:grid}.tag-placeholder-icon svg{stroke-width:1.5px;width:38px;height:38px}.tag-placeholder h2{color:var(--color-heading);letter-spacing:-.6px;margin:0 0 9px;font-size:20px}.tag-placeholder p{color:var(--color-text-subtle);margin:0;font-size:13px}.results-section{margin-top:32px}.results-heading{justify-content:space-between;align-items:flex-end;margin-bottom:14px;display:flex}.title-line{align-items:center;gap:9px;display:flex}.title-line h2{letter-spacing:-.6px;margin:0;font-size:20px}.count-badge{background:var(--color-primary-soft);color:var(--color-primary);border-radius:99px;padding:3px 7px;font-size:10px;font-weight:800}.results-heading p{color:var(--color-text-subtle);margin:6px 0 0;font-size:11px}.result-meta{color:var(--color-text-subtle);align-items:center;gap:12px;font-size:10px;display:flex}.anomaly-pill{color:#c16e22;background:#fff9f1;border:1px solid #f1d7bd;border-radius:99px;align-items:center;gap:5px;padding:6px 9px;font-weight:700;display:flex}.anomaly-pill svg{width:13px;height:13px}.rank-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;overflow:hidden;box-shadow:0 5px 20px #1c243809}.rank-card-header{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.rank-title-row{align-items:center;gap:9px;display:flex}.rank-title-row h3{letter-spacing:-.3px;margin:0;font-size:15px}.rank-card-header>div>p{color:var(--color-text-subtle);margin:6px 0 0;font-size:10px}.contract-tag,.storage-tag{border-radius:5px;padding:4px 7px;font-size:9px;font-weight:800}.contract-tag.number_change{color:#3472c5;background:#e9f1ff}.contract-tag.device_change{color:#2a8b63;background:#ebf7f1}.contract-tag.new_activation{background:var(--color-primary-soft);color:var(--color-primary)}.storage-tag{color:#626b7d;background:#eff1f5}.summary-stats{margin:0;display:flex}.summary-stats>div{text-align:right;border-left:1px solid #e3e6ec;min-width:105px;padding:0 17px}.summary-stats dt{color:var(--color-text-subtle);margin-bottom:3px;font-size:9px;font-weight:700}.summary-stats dd{color:#3c4659;margin:0;font-size:12px;font-weight:750}.table-wrap{overflow-x:auto}table{border-collapse:collapse;table-layout:fixed;width:100%}th{background:var(--color-surface-subtle);height:39px;color:var(--color-text-subtle);text-align:left;padding:0 16px;font-size:10px;font-weight:700}th:first-child,td:first-child{text-align:center;width:70px}th:nth-child(2){width:24%}th:nth-child(3),th:nth-child(4){width:18%}th:nth-child(5){width:15%}th:last-child,td:last-child{width:52px}td{color:#4d5668;border-top:1px solid #edf0f3;height:61px;padding:0 16px;font-size:12px}tbody tr{transition:background .14s}tbody tr:hover{background:var(--color-surface-subtle)}.suspicious-row{background:#fffaf3}.suspicious-row:hover{background:#fff7eb}.rank-number{color:#687183;border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;font-weight:800;display:inline-grid}.rank-1{color:#b87918;background:#fff0d5}.rank-2{color:#687183;background:#f0f2f5}.rank-3{color:#976a49;background:#f5eee8}.store-cell,.price-cell{flex-direction:column;gap:3px;display:flex}.store-cell strong,.price-cell strong{color:#2e384d;font-size:12px}.store-cell small{color:#a0a6b2;font-size:9px}.price-cell span{color:var(--color-warning);align-items:center;gap:3px;font-size:9px;font-weight:750;display:flex}.price-cell span svg{width:11px;height:11px}.negative{color:var(--color-danger);font-weight:700}.positive{color:#5e8f78}.detail-link{color:#737b8c;border:1px solid #e0e3e9;border-radius:6px;place-items:center;width:29px;height:29px;transition:all .15s;display:grid}.detail-link:hover{border-color:var(--color-primary-soft);background:var(--color-primary-soft);color:var(--color-primary)}.detail-link svg{width:14px;height:14px}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1260px){.filter-grid{grid-template-columns:150px minmax(280px,1fr) 230px 170px}.search-button{grid-column:4}}@media (width<=860px){.topbar{padding:0 20px}.tabbar-inner{width:calc(100% - 40px)}main{width:min(100% - 32px,720px);padding-top:34px}.api-state{display:none}h1{font-size:28px}.filter-grid{grid-template-columns:1fr 1fr}.device-field{grid-area:2/1/auto/-1}.guide-panel{grid-template-columns:72px 1fr;padding:28px}.guide-visual{width:68px;height:68px}.rule-card{grid-column:1/-1;min-width:0}.rank-card-header{align-items:flex-start;gap:18px}.summary-stats>div{min-width:auto;padding:0 10px}}@media (width<=560px){.topbar{padding:0 12px}.tabbar-inner{gap:22px;width:calc(100% - 24px)}.brand span{display:none}.topbar-actions{gap:8px}main{width:calc(100% - 24px);padding-top:26px}.filter-grid{grid-template-columns:1fr}.device-field,.search-button{grid-column:1}.filter-card{padding:18px}.guide-panel{text-align:center;grid-template-columns:1fr}.guide-visual{margin:0 auto}.rule-card{text-align:left}.rank-card-header{flex-direction:column}.summary-stats{width:100%}.summary-stats>div{text-align:left;flex:1}.summary-stats>div:first-child{border-left:0;padding-left:0}table{min-width:780px}}
