:root{--bg:#05060a;--surface:#10131f;--surface-2:#0b0e18;--line:rgba(201,162,74,.18);--fg:#f4f3ef;--muted:#9a9ca8;--accent:#c9a24a;--accent-soft:rgba(201,162,74,.12);--accent-line:rgba(201,162,74,.55);--accent-fg:#05060a;--rail:#0b0e18;--rail-fg:#f4f3ef;--rail-muted:#9a9ca8;--rail-active:rgba(201,162,74,.1);--good:#7cc49a;--good-soft:rgba(124,196,154,.12);--bad:#ff6b6b;--bad-soft:rgba(255,107,107,.12);--warn:#e8913a;--warn-soft:rgba(232,145,58,.13);--chart:#c9a24a;--chart-fill:rgba(201,162,74,.28);--chart-prev:#9a9ca8;--glow:radial-gradient(60% 50% at 50% 0%, rgba(201,162,74,.08) 0%, transparent 60%);--font-display:"Cormorant Garamond","Times New Roman","Yu Mincho",serif;--font-body:"Segoe UI","Noto Sans JP","Hiragino Sans","Yu Gothic UI",system-ui,sans-serif;--font-num:"Segoe UI","Noto Sans JP",system-ui,sans-serif;color-scheme:dark}:root{--rail-width:220px;--header-title-size:22px;--radius-card:6px;--radius-control:3px;--shadow-card:none;--card-padding:18px 20px;--table-row-pad:12px 8px;--table-head-size:11px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--glow),var(--bg);background-attachment:fixed;color:var(--fg);font-family:var(--font-body);font-size:14px;line-height:1.6}[hidden]{display:none!important}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}a{color:var(--accent);text-underline-offset:3px}code{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-control);padding:1px 6px;font-size:12px;word-break:break-all}.app{display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);min-height:100vh}.rail{background:var(--rail);color:var(--rail-fg);border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.brand{padding:0 8px;display:flex;flex-direction:column;gap:6px}.brand b{font:600 22px/1 var(--font-display);letter-spacing:.3em;color:var(--accent)}.brand span{font-size:10px;color:var(--rail-muted);letter-spacing:.24em}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-control);color:var(--rail-fg);text-decoration:none;font-size:13.5px;white-space:nowrap;border:1px solid transparent}.nav a:hover{background:var(--rail-active)}.nav a[aria-current=page]{background:var(--rail-active);border-color:var(--line);color:var(--accent)}.nav svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6}.rail-foot{margin-top:auto;padding:0 8px;font-size:11.5px;color:var(--rail-muted);line-height:1.7;display:flex;flex-direction:column;gap:6px}.rail-foot button{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}.rail .menu-toggle{display:none}.main{padding:24px 28px 56px;display:flex;flex-direction:column;gap:18px;min-width:0}.topbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;justify-content:space-between}.topbar h1{font:600 var(--header-title-size)/1.2 var(--font-display);letter-spacing:.14em;margin:4px 0 0;color:var(--accent);text-wrap:balance}.eyebrow{font-size:10.5px;letter-spacing:.24em;color:var(--muted)}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.select,.input,textarea.input{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-control);padding:8px 10px;min-width:0;max-width:100%;color:var(--fg)}.select:focus,.input:focus{outline:2px solid var(--accent-line);outline-offset:1px}.seg{display:inline-flex;gap:4px}.seg button{border:1px solid var(--line);background:transparent;padding:6px 14px;border-radius:var(--radius-control);cursor:pointer;color:var(--muted);font-size:12.5px;letter-spacing:.06em}.seg button:hover{border-color:var(--accent-line);color:var(--fg)}.seg button[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.src{font-size:11px;padding:3px 10px;border-radius:999px;font-weight:500;white-space:nowrap;letter-spacing:.04em;border:1px solid transparent}.src.demo{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-soft)}.src.tiktok{background:var(--good-soft);color:var(--good)}.src.manual{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}.src.bad{background:var(--bad-soft);color:var(--bad)}.meta{font-size:12px;color:var(--muted);margin:0}.demo-banner{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-soft);border-radius:var(--radius-card);padding:10px 14px;font-size:13px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--card-padding);box-shadow:var(--shadow-card);min-width:0}.panel h2,.sec-title{font:500 11.5px/1.3 var(--font-body);letter-spacing:.2em;color:var(--muted);margin:0;text-transform:uppercase}.panel h2 small{letter-spacing:.04em;text-transform:none;margin-left:8px}.panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.note{font-size:12px;color:var(--muted);margin:0}.stack{display:flex;flex-direction:column;gap:14px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}.kpi{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:16px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}.kpi .label{font-size:10.5px;letter-spacing:.2em;color:var(--muted)}.kpi .label small{display:block;letter-spacing:.04em;font-size:11px;margin-top:2px}.kpi .value{font:600 30px/1.1 var(--font-display);color:var(--fg);font-variant-numeric:tabular-nums;letter-spacing:.01em}.kpi .value.na{font-family:var(--font-body);font-size:16px;color:var(--muted);font-weight:400}.kpi .sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.chip{font-size:11px;padding:1px 8px;border-radius:999px;font-weight:600;font-variant-numeric:tabular-nums}.chip.up{background:var(--good-soft);color:var(--good)}.chip.down{background:var(--bad-soft);color:var(--bad)}.chip.na{background:var(--surface);color:var(--muted);font-weight:400;border:1px solid var(--line)}.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}.chart{position:relative;min-height:220px}.chart svg{display:block;width:100%}.chart text{fill:var(--muted);font-size:10.5px;font-family:var(--font-body)}.chart .gridline{stroke:var(--line);stroke-width:1}.chart .baseline{stroke:var(--accent-line);stroke-width:1}.chart .bar{fill:var(--chart-fill)}.chart .bar-top{stroke:var(--accent-line);stroke-width:2}.chart .bar.hover{fill:#c9a24a73}.chart .bar.irregular{fill:none;stroke:var(--warn);stroke-width:1.5;stroke-dasharray:3 2}.chart .area{fill:var(--accent-soft)}.chart .line{fill:none;stroke:var(--chart);stroke-width:2;stroke-linejoin:round}.chart .prev{fill:none;stroke:var(--chart-prev);stroke-width:1.5;stroke-dasharray:4 4}.chart .dot{fill:var(--chart);stroke:var(--surface);stroke-width:2}.chart .gapmark{fill:var(--warn)}.chart .irregular-dot{fill:var(--surface);stroke:var(--warn);stroke-width:2}.chart .cursor{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3}.tip{position:absolute;pointer-events:none;background:var(--surface-2);color:var(--fg);border:1px solid var(--accent-line);font-size:12px;padding:7px 10px;border-radius:4px;transform:translate(-50%,-100%);line-height:1.5;z-index:2}.legend{display:flex;gap:14px;font-size:11.5px;color:var(--muted);flex-wrap:wrap;align-items:center}.legend i{display:inline-block;width:12px;height:10px;background:var(--chart-fill);border-top:2px solid var(--accent-line);vertical-align:-1px;margin-right:6px}.legend i.l{height:0;border-top:2px solid var(--chart);background:none}.legend i.p{height:0;border-top:2px dashed var(--chart-prev);background:none}.legend i.w{background:var(--warn);border:0;width:8px;height:8px}.legend i.r{background:none;border:1.5px dashed var(--warn)}.toplist{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}.toplist li{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;gap:10px;align-items:center;cursor:pointer}.toplist .rk{font:600 15px/1 var(--font-display);color:var(--muted);text-align:right}.toplist li:nth-child(-n+3) .rk{color:var(--accent)}.toplist .t{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toplist .bar{height:6px;background:var(--surface-2);border-radius:4px;margin-top:5px;overflow:hidden}.toplist .bar span{display:block;height:100%;background:var(--accent);border-radius:4px}.toplist .v{font-size:12.5px;text-align:right}.toplist li:hover .t{color:var(--accent)}.thumb{width:34px;aspect-ratio:9/16;border-radius:3px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;max-width:100%;object-fit:cover;flex:none;overflow:hidden;border:1px solid var(--line)}.pl{display:inline-block;font-size:10.5px;letter-spacing:.06em;padding:1px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);white-space:nowrap}.table-wrap{overflow-x:auto;margin:0 -20px;padding:0 20px}table{border-collapse:collapse;width:100%;font-size:13px}th{font-size:var(--table-head-size);letter-spacing:.12em;color:var(--muted);font-weight:500;text-align:right;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:var(--table-row-pad);border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}th:first-child,td:first-child,th.l,td.l{text-align:left}tr.click{cursor:pointer}tr.click:hover td{background:var(--accent-soft)}td.na{color:var(--muted)}.vt{display:flex;align-items:center;gap:10px;min-width:220px}.vt div{display:flex;flex-direction:column;white-space:normal;gap:2px}.vt small{color:var(--muted);font-size:11px}.stale{font-size:11px;color:var(--warn)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;align-items:center}.toolbar .input{flex:1 1 200px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.tabs button{border:0;background:transparent;padding:8px 12px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;letter-spacing:.04em}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.rank-row{display:grid;grid-template-columns:30px 34px minmax(0,1fr) minmax(90px,150px);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}.rank-row:last-child{border-bottom:0}.rank-row .no{font:600 20px/1 var(--font-display);text-align:center;color:var(--muted)}.rank-row:nth-child(-n+3) .no{color:var(--accent)}.rank-row .t{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row .s{font-size:11.5px;color:var(--muted)}.rank-row .m{text-align:right}.rank-row .m b{font:600 18px/1.2 var(--font-display);display:block}.rank-row .m small{color:var(--muted);font-size:11px}.empty{padding:28px 8px;text-align:center;color:var(--muted);font-size:13px}.form-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 12px;align-items:end}.form-grid .wide{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:5px;font-size:11.5px;letter-spacing:.04em;color:var(--muted);min-width:0}.field .input,.field .select{width:100%}.field.invalid .input,.field.invalid .select{border-color:var(--bad)}.field-err{color:var(--bad);font-size:11.5px}.btn{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);padding:8px 16px;border-radius:var(--radius-control);cursor:pointer;text-decoration:none;display:inline-block;font-size:12.5px;letter-spacing:.08em;white-space:nowrap}.btn:hover,.btn:focus-visible{background:#c9a24a33}.btn.primary{background:#c9a24a2e}.btn.ghost{background:transparent;border-color:var(--line);color:var(--muted)}.btn.ghost:hover{color:var(--fg);border-color:var(--accent-line)}.btn.danger{border-color:#ff6b6b73;background:var(--bad-soft);color:var(--bad)}.btn.sm{padding:4px 10px;font-size:11.5px}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sumline{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;color:var(--muted);letter-spacing:.04em}.sumline b{color:var(--fg);font:600 18px/1.2 var(--font-display);margin-left:6px;font-variant-numeric:tabular-nums}.linkbtn{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:inherit}.status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}.status:last-child{border-bottom:0}.status .grow{flex:1 1 200px;min-width:0}.pill{font-size:11.5px;padding:2px 10px;border-radius:999px;font-weight:500;white-space:nowrap}.pill.api{background:var(--good-soft);color:var(--good)}.pill.calc{background:var(--accent-soft);color:var(--accent)}.pill.no{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.fields td,.fields th{text-align:left;white-space:normal}.flash{border-radius:var(--radius-card);padding:10px 14px;font-size:13px;border:1px solid transparent}.flash.ok{background:var(--good-soft);color:var(--good)}.flash.err{background:var(--bad-soft);color:var(--bad);border-color:#ff6b6b4d}.err{color:var(--bad);font-size:13px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;justify-content:flex-end;z-index:10}.drawer{background:var(--bg);border-left:1px solid var(--line);width:min(680px,100%);height:100%;overflow-y:auto;padding:calc(20px + env(safe-area-inset-top,0px)) 24px calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}.drawer-head{display:flex;gap:14px;align-items:flex-start}.drawer-head .thumb{width:54px;font-size:15px}.drawer-head h2{margin:2px 0;font:600 20px/1.3 var(--font-display);letter-spacing:.04em;text-wrap:balance}.drawer-head .x{margin-left:auto;flex:none}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.history li{padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;display:grid;grid-template-columns:auto 1fr;gap:2px 12px}.history li:last-child{border-bottom:0}.history time{color:var(--muted);font-size:11.5px;white-space:nowrap}.history .what{color:var(--fg)}.history .diff{grid-column:2;color:var(--muted);font-size:11.5px;word-break:break-all}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login form{width:min(420px,100%);display:flex;flex-direction:column;gap:14px;padding:36px 32px}.login .brand{padding:0;margin-bottom:10px;align-items:center;text-align:center}.login .brand b{font-size:28px}.login .input{width:100%}.login{grid-template-rows:1fr auto}.site-foot{font-size:12px;letter-spacing:.06em;padding-top:16px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px}.site-foot a,.rail-foot a{color:var(--rail-muted);text-underline-offset:3px}.site-foot a:hover,.rail-foot a:hover{color:var(--accent)}@media (max-width:1100px){.kpis,.kpis.k5{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,1fr)}}@media (max-width:860px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:sticky;top:0;z-index:5;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));border-right:0;border-bottom:1px solid var(--line)}.brand{flex-direction:row;align-items:baseline;gap:10px;padding:0}.brand b{font-size:18px}.rail .menu-toggle{display:inline-flex;margin-left:auto;align-items:center;gap:6px}.nav,.rail-foot{display:none;flex-basis:100%}.rail.open .nav{display:flex}.rail.open .rail-foot{display:flex;flex-direction:row;justify-content:space-between;padding:8px 2px 0;border-top:1px solid var(--line)}.main{padding:16px 16px 40px}}@media (max-width:600px){.kpi .value{font-size:24px}.rank-row{grid-template-columns:24px 30px minmax(0,1fr) 84px;gap:8px}.table-wrap{margin:0;padding:0}table.cards thead{display:none}table.cards,table.cards tbody{display:block}table.cards tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:14px 0;border-bottom:1px solid var(--line)}table.cards td{border:0;padding:0;text-align:left;white-space:normal}table.cards td:first-child{grid-column:1/-1}table.cards td[data-label]:before{content:attr(data-label) "：";color:var(--muted);font-size:11.5px}.drawer{padding-left:16px;padding-right:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.sort-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;color:inherit;font:inherit;letter-spacing:inherit;white-space:nowrap}.sort-btn:hover,.sort-btn.on{color:var(--accent)}.sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.sort-btn .arrow{display:inline-block;min-width:.8em;font-size:.85em}
