:root{--bg:#080606;--bg-2:#110d0d;--bg-3:#181212;--red:#cf1f2e;--red-bright:#e63946;--gold:#d4a843;--white:#f4f1ec;--fg:var(--white);--fg-soft:rgba(244,241,236,.84);--fg-mute:rgba(244,241,236,.66);--fg-dim:rgba(244,241,236,.42);--hair:rgba(244,241,236,.12);--hair-strong:rgba(244,241,236,.26);--ok:#3fae6a;
--f-head:'Anton','Noto Sans JP',sans-serif;--f-num:'Bebas Neue','Noto Sans JP',sans-serif;--f-jp:'Noto Sans JP',sans-serif;--f-mono:'JetBrains Mono','Noto Sans JP',monospace}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font-family:var(--f-jp);font-weight:500;line-height:1.6;font-size:13px;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit}
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
[hidden]{display:none!important}.mono{font-family:var(--f-mono);font-size:11px;color:var(--fg-mute);letter-spacing:.06em}
.logo{font-family:var(--f-head);font-size:22px;letter-spacing:.02em}.logo .sl{color:var(--red)}.logo small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:var(--fg-mute);margin-top:4px}
.login{min-height:100vh;display:grid;place-content:center;gap:16px;text-align:center}.login .note{color:var(--fg-mute);font-size:12px}
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.side{background:var(--bg-2);border-right:1px solid var(--hair);padding:18px}
.side h2{padding:14px 0 6px;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:var(--fg-dim)}
.ev{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:8px 10px;margin:0 -10px;font-weight:700;color:var(--fg-soft);border-left:3px solid transparent;text-decoration:none;cursor:pointer}
.ev small{display:block;font-family:var(--f-mono);font-weight:500;font-size:10px;color:var(--fg-dim);letter-spacing:.06em}
.ev[aria-current]{background:var(--bg-3);border-left-color:var(--red);color:var(--white)}
.badge{display:inline-flex;padding:2px 8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;border:1px solid var(--hair-strong);color:var(--fg-soft)}.badge.live{border-color:var(--red);color:var(--red-bright)}.badge.test{border-color:var(--gold);color:var(--gold)}
.new{margin:12px 0 0;height:40px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--hair-strong);font-size:12px;font-weight:700;color:var(--fg-mute)}
.glob{padding:8px 0;border-top:1px solid var(--hair);font-size:12px;display:grid;gap:6px}.glob label{font-family:var(--f-mono);font-size:10px;color:var(--fg-dim);letter-spacing:.1em}
textarea,input,select{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--hair-strong);color:var(--white)}
.small{height:32px;padding:0 12px;border:1px solid var(--hair-strong);font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;text-decoration:none;width:auto}
.small.danger{border-color:var(--red);color:var(--red-bright)}.small.primary{background:var(--white);color:var(--bg);border-color:var(--white)}
.pill{display:inline-flex;border:1px solid var(--hair-strong)}.pill button{height:30px;padding:0 10px;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;color:var(--fg-mute)}.pill button[aria-pressed=true]{background:var(--white);color:var(--bg)}
.main{min-width:0}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid var(--hair)}.bar h1{font-size:18px;font-weight:900}.bar .right{display:flex;align-items:center;gap:16px}
.stop{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border:2px solid var(--red);color:var(--red-bright);font-weight:900;letter-spacing:.06em;position:relative;overflow:hidden}
.stop small{font-weight:500;font-size:10px;color:var(--fg-mute)}.stop::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--fill,0);background:rgba(207,31,46,.35);transition:width .1s linear}
.banner{padding:10px 24px;background:var(--red);color:var(--white);font-weight:900;display:flex;justify-content:space-between;align-items:center}
.banner button{border:1px solid var(--white);height:30px;padding:0 10px;font-weight:700}
.tabs{display:flex;gap:2px;padding:0 24px;border-bottom:1px solid var(--hair)}.tabs button{height:44px;padding:0 14px;font-weight:700;color:var(--fg-mute);border-bottom:3px solid transparent}.tabs button[aria-selected=true]{color:var(--white);border-bottom-color:var(--red)}
.tabs button b{margin-left:6px;padding:1px 6px;background:var(--red);color:var(--white);font-family:var(--f-mono);font-size:10px}
.pane{padding:22px 24px 40px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar input,.toolbar select{width:auto;min-width:160px}
.empty{padding:40px;text-align:center;color:var(--fg-mute)}.help{color:var(--fg-mute);margin-bottom:10px}
.rev{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0;border:1px solid var(--hair);background:var(--bg-2)}
.rev .img{aspect-ratio:4/3;background:#000;position:relative;display:grid;place-items:center}.rev .img img,.rev .img video{max-width:100%;max-height:100%;object-fit:contain}
.rev .tag{position:absolute;left:12px;top:12px;padding:4px 8px;background:var(--gold);color:var(--bg);font-weight:900;font-size:11px}
.rev .meta{padding:14px 16px;border-left:1px solid var(--hair);display:grid;gap:10px;align-content:start}.rev dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--fg-dim)}.rev dd{color:var(--fg-soft);word-break:break-all}
.acts{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px;border-top:1px solid var(--hair)}
.acts button{height:48px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;font-size:14px}.acts .ok{background:var(--white);color:var(--bg)}.acts .hide{border:1px solid var(--hair-strong)}
.acts kbd{font-family:var(--f-mono);font-size:10px;padding:1px 5px;border:1px solid currentColor;opacity:.7}
.acts .nav{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:11px;color:var(--fg-mute)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.mgrid .m{position:relative;aspect-ratio:1;background:var(--bg-3);overflow:hidden}.mgrid img{width:100%;height:100%;object-fit:cover}
.mgrid .ops{position:absolute;left:0;right:0;bottom:0;display:flex;gap:2px;background:rgba(8,6,6,.85)}.mgrid .ops button{flex:1;height:28px;font-size:11px;font-weight:700}
.mgrid .lbl{position:absolute;left:0;top:0;padding:1px 5px;background:rgba(8,6,6,.85);font-family:var(--f-mono);font-size:9px}
.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--hair);text-align:left;vertical-align:top}.tbl th{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--fg-dim);font-weight:500}
.tok{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hair)}.tok code{font-family:var(--f-mono);font-size:11px;color:var(--fg-mute);word-break:break-all}
.qrbox{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;margin-top:16px;padding:16px;background:var(--white);color:var(--bg)}.qrbox .mono{color:#333}.qrbox .small{border-color:#333;color:#111}
.form{display:grid;gap:14px;max-width:760px}.form label{display:grid;gap:4px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--fg-dim)}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);padding:10px 14px;background:var(--bg-2);border:1px solid var(--hair-strong);z-index:9}.toast.err{border-color:var(--red)}
