:root{color-scheme:dark;--bg: #1b1b1d;--card: #242427;--card-2: #2b2b2f;--tx: #f5f4f1;--sub: rgba(245, 244, 241, .6);--mut: rgba(245, 244, 241, .34);--line: rgba(245, 244, 241, .12);--line-strong: rgba(245, 244, 241, .22);--acc: #ff5136;--acc-ink: #ff5136;--acc-soft: rgba(255, 81, 54, .14);--acc-line: rgba(255, 81, 54, .5);--series: #ee4429;--series-soft: rgba(238, 68, 41, .28);--good: #3ec48a;--good-soft: rgba(62, 196, 138, .16);--warn: #e9b23c;--warn-soft: rgba(233, 178, 60, .16);--bad: #ff5136;--bad-soft: rgba(255, 81, 54, .16);--shadow: 0 18px 40px rgba(0, 0, 0, .4);--font: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--mono: "SF Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:light){:root{color-scheme:light;--bg: #f3f1ee;--card: #fdfdfc;--card-2: #f6f5f2;--tx: #232326;--sub: rgba(35, 35, 38, .6);--mut: rgba(35, 35, 38, .36);--line: rgba(35, 35, 38, .1);--line-strong: rgba(35, 35, 38, .2);--acc-ink: #e0401f;--series: #ff5136;--series-soft: rgba(255, 81, 54, .22);--good: #1f9d64;--good-soft: rgba(31, 157, 100, .14);--warn: #b7810a;--warn-soft: rgba(183, 129, 10, .14);--bad: #d63a1f;--bad-soft: rgba(214, 58, 31, .12);--shadow: 0 18px 40px rgba(35, 35, 38, .1)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:15px}p{margin:0}code,.mono{font-family:var(--mono);font-size:12px}.jp{font-family:var(--font-jp)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100%}.side{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px;background:var(--bg)}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px var(--acc-soft)}.brand b{font-weight:800;letter-spacing:-.01em}.brand small{display:block;color:var(--mut);font-size:11px}.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--sub);font-weight:600}.nav:hover{background:var(--card);color:var(--tx)}.nav.active{background:var(--card);color:var(--tx);box-shadow:inset 2px 0 0 var(--acc)}.nav svg{width:16px;height:16px;opacity:.8}.side .who{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--line);font-size:12px;color:var(--sub)}.side .who b{display:block;color:var(--tx)}.main{padding:28px 36px 60px;max-width:1240px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head .sub{color:var(--sub);margin-top:4px}.micro{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}@media(max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.side .who{display:none}.main{padding:20px 16px 40px}}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px}.card+.card{margin-top:16px}.card h2{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card h2 .micro{font-weight:700}.grid{display:grid;gap:16px}.grid.kpi{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid>.card+.card{margin-top:0}.stack{display:flex;flex-direction:column;gap:16px}.stat .label{color:var(--sub);font-weight:600;font-size:12px}.stat .value{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-top:4px}.stat .delta{color:var(--sub);font-size:12px;margin-top:4px}.stat .delta b{color:var(--tx);font-weight:700}.stat .delta.up b{color:var(--good)}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;border:1px solid var(--line-strong);background:var(--card);color:var(--tx);font-weight:600;cursor:pointer;line-height:1.2;white-space:nowrap}.btn:hover{border-color:var(--tx)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff;box-shadow:0 8px 22px #ff51364d}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--bad);border-color:var(--acc-line)}.btn.danger:hover{background:var(--bad-soft)}.btn.ghost{border-color:transparent;background:transparent;color:var(--sub)}.btn.ghost:hover{color:var(--tx);background:var(--card-2)}.btn.small{padding:5px 10px;font-size:12px;border-radius:7px}.input,.select,.textarea{width:100%;padding:8px 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--bg);color:var(--tx);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}.textarea{min-height:72px;resize:vertical;line-height:1.6}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:12px;font-weight:600;color:var(--sub)}.field .hint{font-size:12px;color:var(--mut)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar .input{max-width:300px}.toolbar .select{width:auto}.toolbar .spacer{flex:1}.actions{display:flex;gap:8px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}.segmented button{padding:6px 12px;border:0;background:transparent;color:var(--sub);font-weight:600;cursor:pointer}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button.on{background:var(--card-2);color:var(--tx)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;background:var(--card-2);color:var(--sub);border:1px solid var(--line);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.badge.plain:before{display:none}.badge.good{color:var(--good);background:var(--good-soft);border-color:transparent}.badge.warn{color:var(--warn);background:var(--warn-soft);border-color:transparent}.badge.bad{color:var(--bad);background:var(--bad-soft);border-color:transparent}.badge.acc{color:var(--acc-ink);background:var(--acc-soft);border-color:transparent}.table-wrap{overflow-x:auto;margin:0 -20px;padding:0 20px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.link{cursor:pointer}tr.link:hover td{background:var(--card-2)}tr.selected td{background:var(--acc-soft)}td .sub,.sub{color:var(--sub)}td .mut,.mut{color:var(--mut)}.cell-main{font-weight:600}.cell-sub{display:block;color:var(--sub);font-size:12px}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--sub);font-size:12px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:13px}.kv dt{color:var(--sub)}.kv dd{margin:0;font-weight:600;word-break:break-all}.kv dd.mono{font-weight:500}.meter{display:grid;grid-template-columns:110px 1fr max-content;align-items:center;gap:10px;font-size:13px;padding:4px 0}.meter .track{height:6px;border-radius:3px;background:var(--series-soft);overflow:hidden}.meter .fill{height:100%;background:var(--series);border-radius:3px}.meter .n{font-variant-numeric:tabular-nums;font-weight:700}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart .grid-line{stroke:var(--line);stroke-width:1}.chart .axis-text{fill:var(--mut);font-size:11px;font-family:var(--font)}.chart .bar{fill:var(--series)}.chart .bar.dim{opacity:.55}.chart .hit{fill:transparent}.chart .line{fill:none;stroke:var(--series);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--series);opacity:.1}.chart .marker{fill:var(--series);stroke:var(--card);stroke-width:2}.chart .crosshair{stroke:var(--line-strong);stroke-width:1}.chart .end-label{fill:var(--tx);font-size:12px;font-weight:700;font-family:var(--font)}.tooltip{position:absolute;pointer-events:none;z-index:2;transform:translate(-50%,calc(-100% - 10px));background:var(--tx);color:var(--bg);padding:6px 10px;border-radius:8px;font-size:12px;white-space:nowrap;box-shadow:var(--shadow)}.tooltip b{font-size:14px}.tooltip .key{display:inline-block;width:10px;height:2px;background:var(--series);vertical-align:middle;margin-right:6px}.chart-table td:first-child{color:var(--sub)}ruby{ruby-align:center}rt{font-size:.55em;color:var(--sub);font-weight:400}.sentence{font-family:var(--font-jp);font-size:17px;line-height:2}.sentence.big{font-size:24px;line-height:2.1}.sentence mark{background:var(--acc-soft);color:inherit;border-radius:3px}.overlay{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:10;padding:20px}.dialog{width:min(520px,100%);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 24px;box-shadow:var(--shadow)}.dialog h2{margin-bottom:6px}.dialog .sub{margin-bottom:16px}.dialog form{display:flex;flex-direction:column;gap:14px}.dialog .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.notice{padding:10px 14px;border-radius:10px;font-size:13px;border:1px solid transparent}.notice.bad{background:var(--bad-soft);color:var(--bad)}.notice.good{background:var(--good-soft);color:var(--good)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice ul{margin:6px 0 0;padding-left:18px}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:20}.toast{background:var(--tx);color:var(--bg);padding:10px 14px;border-radius:10px;font-weight:600;box-shadow:var(--shadow)}.empty{padding:30px;text-align:center;color:var(--mut)}.loading{opacity:.55;transition:opacity .2s}.error-page{display:grid;place-items:center;min-height:60vh;color:var(--sub)}.login{min-height:100%;display:grid;place-items:center;padding:20px;background:#1b1b1d;color:#f5f4f1;color-scheme:dark}.login .card{width:min(380px,100%);background:#242427;border-color:#f5f4f11f;padding:28px}.login .input{background:#1b1b1d;color:#f5f4f1;border-color:#f5f4f138}.login form{display:flex;flex-direction:column;gap:14px;margin-top:18px}.login .brand{padding-bottom:6px}.review{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}.review .editor{position:sticky;top:20px}@media(max-width:1100px){.review{grid-template-columns:1fr}.review .editor{position:static}}.diff{font-size:12px;color:var(--sub)}.diff del{color:var(--bad);text-decoration:line-through;opacity:.8}.diff ins{color:var(--good);text-decoration:none}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;gap:6px;align-items:baseline;padding:6px 12px;border-radius:10px;background:var(--card-2);border:1px solid var(--line);font-size:12px;color:var(--sub);cursor:pointer}.chip.on{border-color:var(--acc);color:var(--tx)}.chip b{font-size:14px;color:var(--tx);font-variant-numeric:tabular-nums}
