:root{
  --bg:#090f1c; --panel:rgba(15,23,42,.86); --panel2:rgba(30,41,59,.72); --line:rgba(255,255,255,.13);
  --text:#f8fafc; --muted:#aebbd0; --accent:#60a5fa; --accent2:#a78bfa; --good:#34d399; --warn:#fbbf24; --bad:#fb7185;
  --safe-top:max(env(safe-area-inset-top),14px); --safe-bottom:max(env(safe-area-inset-bottom),18px);
}
*{box-sizing:border-box} html,body{min-height:100%} body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,"Noto Sans JP",sans-serif;color:var(--text);background:linear-gradient(180deg,#07101f,#0b1322 50%,#08101b);}
button,input,select,textarea{font:inherit}.is-hidden{display:none!important}.admin-page{max-width:1080px;margin:0 auto;padding:calc(var(--safe-top) + 4px) 14px var(--safe-bottom)}
.admin-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:10px 4px 16px}.admin-hero h1{margin:2px 0 6px;font-size:clamp(25px,5vw,36px)}.admin-hero p{margin:0;color:var(--muted);line-height:1.65;font-size:14px}.eyebrow{font-weight:900;letter-spacing:.14em;font-size:11px;color:#93c5fd}.home-link{color:#dbeafe;text-decoration:none;border:1px solid var(--line);background:rgba(255,255,255,.06);padding:10px 13px;border-radius:14px;white-space:nowrap}
.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);box-shadow:0 18px 46px rgba(0,0,0,.24);border-radius:22px;padding:17px;margin-bottom:14px}.panel-head,.dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2,.dashboard-top h2{margin:0;font-size:19px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}
.auth-grid{display:flex;gap:10px;align-items:end;margin-top:15px}.grow{flex:1}.field{display:grid;gap:7px}.field>span{font-size:12px;font-weight:800;color:#d6e1f1}.field input,.field select,.field textarea,.search-input{width:100%;border:1px solid rgba(255,255,255,.15);border-radius:13px;background:rgba(2,6,23,.62);color:var(--text);padding:11px 12px;outline:none}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.12)}select option{background:#111827;color:#fff}.check-line{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin-top:11px}.check-line.compact{margin:0;white-space:nowrap}.mini-note{font-size:11px;color:#8190a7;margin:8px 0 0;line-height:1.6}code{color:#bfdbfe}
.btn{border:1px solid transparent;border-radius:13px;padding:10px 14px;font-weight:850;color:#fff;cursor:pointer;min-height:42px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#3b82f6,#2563eb)}.btn.ghost{background:rgba(255,255,255,.07);border-color:var(--line)}.btn.danger-soft{background:rgba(251,113,133,.12);border-color:rgba(251,113,133,.28);color:#fecdd3}.publish-btn{width:100%;margin-top:14px;background:linear-gradient(180deg,#10b981,#059669);font-size:16px;min-height:50px}
.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid var(--line)}.status-pill.neutral{color:#cbd5e1;background:rgba(148,163,184,.09)}.status-pill.good{color:#a7f3d0;background:rgba(16,185,129,.12);border-color:rgba(52,211,153,.25)}.status-pill.warn{color:#fde68a;background:rgba(245,158,11,.12);border-color:rgba(251,191,36,.25)}.status-pill.bad{color:#fecdd3;background:rgba(244,63,94,.12);border-color:rgba(251,113,133,.25)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.stat-card{background:rgba(2,6,23,.35);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px}.stat-card span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.stat-card strong{font-size:18px}.draft-banner{margin-top:11px;padding:11px 13px;border-radius:14px;font-size:13px;line-height:1.6}.draft-banner.clean{background:rgba(16,185,129,.10);border:1px solid rgba(52,211,153,.18);color:#a7f3d0}.draft-banner.dirty{background:rgba(245,158,11,.10);border:1px solid rgba(251,191,36,.20);color:#fde68a}
.admin-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;position:sticky;top:6px;z-index:20;margin:0 0 14px;padding:7px;background:rgba(9,15,28,.94);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(10px)}.tab-btn{border:none;border-radius:12px;background:transparent;color:#aebbd0;padding:10px 6px;font-weight:850;cursor:pointer;min-height:42px}.tab-btn.is-active{background:linear-gradient(180deg,rgba(96,165,250,.24),rgba(96,165,250,.10));color:#fff;box-shadow:inset 0 0 0 1px rgba(147,197,253,.18)}
.filter-row{display:flex;gap:10px;align-items:center;margin:14px 0 10px}.filter-row.two>*{flex:1}.filter-check{margin-bottom:10px}.master-list{display:grid;gap:8px}.master-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:15px;background:rgba(2,6,23,.34);border:1px solid rgba(255,255,255,.08)}.master-row.inactive{opacity:.58}.row-main{min-width:0;flex:1}.row-title{font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.row-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.badge{font-size:10px;padding:3px 7px;border-radius:999px;background:rgba(96,165,250,.11);color:#bfdbfe;border:1px solid rgba(96,165,250,.16)}.edit-btn{flex:0 0 auto;background:rgba(255,255,255,.07);border:1px solid var(--line);color:#fff;border-radius:11px;padding:8px 11px;font-weight:800}.empty-state{padding:28px 14px;text-align:center;color:var(--muted);border:1px dashed rgba(255,255,255,.13);border-radius:16px}.settings-card{display:grid;grid-template-columns:minmax(0,240px) auto;gap:10px;align-items:end;margin-top:15px}.publish-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:13px 0}.summary-line{background:rgba(2,6,23,.34);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:11px}.summary-line span{display:block;font-size:11px;color:var(--muted)}.summary-line strong{display:block;margin-top:4px}.danger-zone{margin-top:20px;padding-top:17px;border-top:1px solid rgba(255,255,255,.10)}.danger-zone h3{font-size:15px;margin:0 0 6px}.danger-zone p{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 10px}
.history-list{display:grid;gap:8px;margin-top:12px}.history-item{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:11px;border-radius:14px;background:rgba(2,6,23,.32);border:1px solid rgba(255,255,255,.07)}.history-ver{font-weight:900;color:#bfdbfe}.history-body strong{display:block;font-size:13px}.history-body span{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(2,6,23,.78);display:flex;align-items:flex-end;justify-content:center;padding:18px 10px 0}.editor-modal{width:min(820px,100%);max-height:92dvh;display:flex;flex-direction:column;background:#111827;border:1px solid rgba(255,255,255,.15);border-radius:24px 24px 0 0;box-shadow:0 -24px 70px rgba(0,0,0,.48)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid rgba(255,255,255,.09)}.modal-head h2{margin:0;font-size:19px}.icon-btn{border:none;background:rgba(255,255,255,.08);color:#fff;border-radius:50%;width:38px;height:38px;font-size:24px}.editor-modal form{display:flex;flex-direction:column;min-height:0}.modal-body{overflow:auto;padding:15px 17px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:12px 17px calc(12px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.09);background:#111827}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.form-grid.one{grid-template-columns:1fr}.form-section{margin-top:16px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09)}.form-section h3{margin:0 0 10px;font-size:14px}.number-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.number-grid.resist{grid-template-columns:repeat(4,1fr)}.number-field{display:grid;gap:4px}.number-field span{font-size:10px;color:var(--muted)}.number-field input{width:100%;min-width:0;background:rgba(2,6,23,.6);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#fff;padding:9px 7px;text-align:right}.inline-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:8px}.cp-preview{font-size:24px;font-weight:950;color:#fde68a}.toggle-box{padding:10px 12px;border-radius:13px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.toast{position:fixed;z-index:150;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,20px);max-width:min(92vw,560px);background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:11px 14px;box-shadow:0 15px 44px rgba(0,0,0,.38);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{border-color:rgba(251,113,133,.42);color:#fecdd3}
@media(max-width:760px){.admin-hero{align-items:stretch;flex-direction:column}.home-link{align-self:flex-start}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-tabs{grid-template-columns:repeat(3,1fr);top:4px}.stack-mobile{align-items:stretch;flex-direction:column}.stack-mobile .btn{width:100%}.filter-row{align-items:stretch;flex-direction:column}.filter-row.two>*{width:100%}.settings-card{grid-template-columns:1fr}.number-grid,.number-grid.resist{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.publish-summary{grid-template-columns:1fr}.auth-grid{align-items:stretch;flex-direction:column}.auth-grid .btn{width:100%}}
.import-status{margin:11px 0;padding:11px 12px;border-radius:13px;font-size:12px;line-height:1.65;border:1px solid rgba(255,255,255,.10);background:rgba(2,6,23,.34);color:var(--muted)}
.import-status.good{color:#a7f3d0;background:rgba(16,185,129,.08);border-color:rgba(52,211,153,.18)}
.import-status.warn{color:#fde68a;background:rgba(245,158,11,.08);border-color:rgba(251,191,36,.20)}
.import-status.bad{color:#fecdd3;background:rgba(244,63,94,.08);border-color:rgba(251,113,133,.25)}
.import-actions{display:flex;gap:8px;flex-wrap:wrap}.import-actions .btn{flex:1 1 240px}
