:root{
  --bg:#0b0d12;--panel:#141821;--line:#2a3140;--text:#f6f7fb;
  --muted:#9ca7b8;--accent:#ffcf33;--danger:#ff5d6c;--success:#43d17d;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif}
body{min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(255,207,51,.08),transparent 30%),linear-gradient(180deg,#0b0d12,#090b0f)}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}
.eyebrow{font-size:.72rem;letter-spacing:.22em;font-weight:900;color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.8rem}.hidden{display:none!important}.span-2{grid-column:span 2}.span-all{grid-column:1/-1}
.btn{border:1px solid var(--line);background:#202633;color:var(--text);border-radius:12px;padding:.72rem 1rem;font-weight:800;transition:.15s}
.btn:hover:not(:disabled){transform:translateY(-1px);border-color:#46516a}.btn:disabled{opacity:.38;cursor:not-allowed}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#191400}.btn.danger{background:var(--danger);border-color:var(--danger);color:white}
.btn.danger-outline{background:transparent;border-color:#713842;color:#ff8792}.btn.ghost{background:transparent}.btn.wide{width:100%}.small-btn{padding:.5rem .72rem;font-size:.82rem}
.text-link{display:block;text-align:center;color:var(--muted);margin-top:1rem}.alert.error{background:#341a20;border:1px solid #77343f;color:#ff99a3;padding:10px;border-radius:10px}
.landing,.auth-page{display:grid;place-items:center;padding:24px}.landing-card,.auth-card{width:min(620px,100%);background:#141821f2;border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:0 18px 50px #0005}
.landing-card h1,.auth-card h1{font-size:clamp(2rem,7vw,4rem);margin:.4rem 0 1rem}.landing-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}.auth-card{width:min(440px,100%)}
.auth-card label,.form-grid label{display:grid;gap:7px;color:var(--muted);font-size:.88rem;font-weight:700}.auth-card label{margin:16px 0}
.auth-card input,.auth-card select,.form-grid input,.form-grid textarea,.search-input{width:100%;border:1px solid var(--line);border-radius:11px;background:#0f131b;color:white;padding:.82rem .9rem;outline:none}
.auth-card input:focus,.auth-card select:focus,.form-grid input:focus,.form-grid textarea:focus,.search-input:focus{border-color:var(--accent)}
.topbar{min-height:92px;padding:18px 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:20;background:#0b0d12eb;backdrop-filter:blur(14px)}
.topbar h1{margin:.2rem 0 0;font-size:1.5rem}.topbar-actions,.button-row,.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-layout,.team-layout{width:min(1500px,calc(100% - 32px));margin:24px auto 60px;display:grid;gap:18px}
.panel{background:#141821f2;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 30px #0002}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-head h2{font-size:1.08rem;margin:0}
.badge{display:inline-flex;align-items:center;border:1px solid #4b5260;border-radius:999px;padding:.4rem .65rem;font-size:.74rem;font-weight:900;background:#202633}.badge.success{border-color:#246a43;background:#173624;color:#7be8a6}
.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.status-grid>div{background:#0f131b;border:1px solid var(--line);border-radius:13px;padding:14px}.status-grid span,.status-grid strong{display:block}.status-grid strong{font-size:1.55rem;margin-top:4px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}.form-grid textarea{resize:vertical}
.admin-list{display:grid;gap:8px;margin-top:18px}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px;border:1px solid var(--line);border-radius:13px;background:#10141c}.team-inline{display:flex;align-items:center;gap:11px}
.mini-avatar,.member-admin-avatar,.member-avatar,.modal-avatar,.conflict-avatar{object-fit:cover;background:#252c39;border:1px solid #394153;display:grid;place-items:center;font-weight:900}.mini-avatar{width:42px;height:42px;border-radius:10px}
.member-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.member-admin-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#10141c;display:grid;grid-template-columns:54px 1fr;gap:10px}.member-admin-avatar{width:54px;height:54px;border-radius:12px}
.member-admin-info p{font-size:.82rem;color:var(--muted);margin:.4rem 0}.member-admin-card .row-actions{grid-column:1/-1}.subpanel{margin-top:18px;background:#10141c;border:1px solid var(--line);border-radius:14px;padding:16px}
.admin-cards{display:flex;gap:8px;flex-wrap:wrap}.tiny-card{min-width:120px;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;background:#191f2a}
.winner-banner{margin-top:14px;padding:15px;border-radius:12px;text-align:center;font-size:1.2rem;font-weight:1000;background:var(--accent);color:#171200}.log-list{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.log-row{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:9px 12px;border-bottom:1px solid #222936;font-size:.84rem}.log-row span{color:var(--muted)}.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
.team-layout{max-width:1200px}.hero-state{padding:24px;border-radius:20px;background:linear-gradient(125deg,#171b24,#22200f);border:1px solid #403b20;display:flex;justify-content:space-between;gap:20px;align-items:center}
.hero-state h2{font-size:clamp(1.5rem,4vw,2.5rem);margin:.3rem 0}.round-label{font-size:.8rem;letter-spacing:.16em;font-weight:900;color:var(--accent)}.big-number{text-align:right}.big-number strong{font-size:3rem}.big-number span{display:block;color:var(--muted)}
.search-input{max-width:300px}.member-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.member-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#10141c;min-width:0;transition:.15s}.member-card.clickable{cursor:pointer}.member-card.clickable:hover{border-color:var(--accent);transform:translateY(-2px)}
.member-avatar{width:100%;aspect-ratio:1.25/1;border:0;border-radius:0;font-size:2rem}.member-card-body{padding:13px}.member-card-body h3{margin:0 0 .4rem;font-size:1rem}.member-card-body p{height:2.6em;overflow:hidden;color:var(--muted);font-size:.8rem;margin:0}.member-card-foot{padding:9px 13px;border-top:1px solid var(--line);font-size:.75rem;font-weight:800;color:var(--accent)}
.pick-list{display:grid;gap:8px}.pick-row{display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:#10141c;padding:9px;border-radius:12px}.pick-round{width:70px;color:var(--muted);font-size:.8rem}
.conflict-member{display:flex;align-items:center;gap:14px;margin-bottom:16px}.conflict-avatar{width:76px;height:76px;border-radius:16px}.rps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rps-btn{border:1px solid var(--line);border-radius:16px;background:#0f131b;color:white;padding:18px;font-weight:900}.rps-btn span{display:block;font-size:2.5rem;margin-bottom:8px}.rps-btn:hover:not(:disabled){border-color:var(--accent)}.rps-btn:disabled{opacity:.45}
.rps-last,.waiting-box{padding:12px;border:1px solid var(--line);border-radius:12px;background:#0f131b;margin:12px 0;color:var(--muted)}.waiting-box.strong{color:white;text-align:center;font-weight:900}
.rank-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.rank-strip span{background:#0f131b;border:1px solid var(--line);padding:.5rem .7rem;border-radius:999px;font-size:.8rem}
.card-select-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.draft-card{aspect-ratio:.72/1;border-radius:15px;border:2px solid #495266;background:linear-gradient(145deg,#202735,#11161f);color:white;display:grid;place-items:center;padding:10px}.draft-card.mine{border-color:var(--accent)}.draft-card:not(:disabled):hover{transform:translateY(-3px);border-color:var(--accent)}
.card-q{font-size:3rem;font-weight:1000}.card-result{font-size:1.3rem;font-weight:1000}.card-result.win{color:var(--accent)}.card-result.lose{color:#a9b2c1}
.modal{position:fixed;inset:0;background:#000b;z-index:100;display:grid;place-items:center;padding:20px}.modal-card{position:relative;width:min(460px,100%);background:#171b24;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 18px 50px #0008}.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:white;font-size:1.7rem}.modal-avatar{width:100%;aspect-ratio:16/9;border-radius:15px;margin-bottom:16px;font-size:3rem}.modal-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:20px}
.toast{position:fixed;right:18px;bottom:18px;z-index:200;background:#1c2c22;border:1px solid #2d6a43;color:#95efb5;padding:12px 16px;border-radius:12px;box-shadow:0 14px 38px #0006}.toast.error{background:#341a20;border-color:#77343f;color:#ff99a3}
.display-body{overflow:hidden;background:#080a0f}.display-stage{height:100vh;display:grid;grid-template-rows:auto 1fr minmax(180px,30vh);padding:2.2vh 2.4vw;gap:2vh}.display-header{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:2px solid #2b313e;padding-bottom:1.6vh}.display-header h1{font-size:clamp(1.6rem,3vw,3.2rem);margin:.2rem 0 0}.display-round{text-align:right;display:grid;gap:4px;font-size:1.05rem;font-weight:900}.display-round span:last-child{color:var(--accent)}
.display-main{min-height:0;display:grid;place-items:center}.display-idle,.display-conflict{text-align:center;width:100%}.display-kicker{font-weight:1000;letter-spacing:.22em;color:var(--accent);font-size:clamp(.8rem,1.2vw,1.2rem)}.display-idle h2,.display-conflict h2{font-size:clamp(2.6rem,6vw,6.8rem);margin:1vh 0 2vh}.progress-big{font-size:clamp(3rem,7vw,8rem);font-weight:1000}
.display-team-row,.display-rps-result{display:flex;justify-content:center;gap:1vw;flex-wrap:wrap}.display-team-chip,.display-rps-result span{background:#151a23;border:1px solid #313949;border-radius:999px;padding:.8vh 1.2vw;font-weight:900}.display-rps{margin-top:3vh;display:grid;gap:8px;font-size:1.2rem}
.display-card-row{display:flex;justify-content:center;gap:1.5vw;align-items:stretch}.display-card{width:min(15vw,230px);aspect-ratio:.72/1;border-radius:1.3vw;border:.2vw solid #586277;background:linear-gradient(145deg,#212a39,#0f141c);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;box-shadow:0 2vh 4vh #0005}.display-card.locked{border-color:#8c7a32}.display-card-mark{font-size:6vw;font-weight:1000}.display-card-result{font-size:2vw;font-weight:1000}.display-card.winner{border-color:var(--accent);box-shadow:0 0 4vw #ffcf3355}.display-card.winner .display-card-result{color:var(--accent)}.flip-open{animation:flipCard .75s ease both}@keyframes flipCard{0%{transform:rotateY(90deg) scale(.92);opacity:.4}100%{transform:rotateY(0) scale(1);opacity:1}}
.display-bottom-message{font-size:clamp(1.2rem,2vw,2.2rem);font-weight:1000;margin-top:2vh;letter-spacing:.08em}.draft-board-wrap{min-height:0}.section-title{font-size:.8rem;letter-spacing:.2em;font-weight:900;color:var(--muted);margin-bottom:8px}.draft-board{height:calc(100% - 26px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#0e1117}.draft-board table{width:100%;border-collapse:collapse;font-size:clamp(.72rem,1vw,1rem)}.draft-board th,.draft-board td{border-bottom:1px solid #242a36;border-right:1px solid #242a36;padding:.7vh .7vw;text-align:center;white-space:nowrap}.draft-board th{background:#151a22}.draft-board tbody th{color:var(--accent);position:sticky;left:0;z-index:2}
@media(max-width:900px){.landing-actions{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.member-admin-grid{grid-template-columns:1fr 1fr}.member-grid{grid-template-columns:repeat(2,1fr)}.status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.topbar{padding:14px 16px}.admin-layout,.team-layout{width:calc(100% - 20px);margin:12px auto 40px}.panel{padding:14px;border-radius:14px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.member-admin-grid{grid-template-columns:1fr}.member-grid{grid-template-columns:1fr 1fr;gap:8px}.member-card-body{padding:10px}.member-card-body p{display:none}.hero-state{padding:16px}.big-number strong{font-size:2.2rem}.rps-grid{gap:6px}.rps-btn{padding:12px 6px}.log-row{grid-template-columns:1fr}.search-input{max-width:180px}}

/* ===== Admin sidebar layout ===== */
.team-edit-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;margin:auto;padding:24px;color:var(--text,#fff);background:#171b24;border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 50px #0008}
.team-edit-dialog::backdrop{background:#000b}
.team-edit-dialog h2{margin:0 0 20px}
.team-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.team-edit-form label{min-width:0}
.team-edit-form p{margin:0}
.team-edit-form .modal-actions{margin-top:4px}
.team-edit-error{color:#ff9292}
.team-edit-error:empty{display:none}
@media(max-width:480px){.team-edit-dialog{padding:20px}.team-edit-form{grid-template-columns:1fr}}
.admin-body{overflow-x:hidden}
.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.admin-sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#0e1117;padding:22px 14px;display:flex;flex-direction:column;z-index:30}
.sidebar-brand{padding:8px 12px 22px;border-bottom:1px solid var(--line)}
.sidebar-brand strong{display:block;margin-top:5px;font-size:1.05rem;letter-spacing:.08em}
.sidebar-nav{display:grid;gap:6px;padding:18px 0}
.side-nav-btn,.side-link{width:100%;border:0;background:transparent;color:var(--muted);border-radius:11px;padding:11px 12px;text-align:left;font-weight:800;display:flex;align-items:center;gap:10px}
.side-nav-btn:hover,.side-link:hover{background:#171c25;color:white}
.side-nav-btn.active{background:#25240f;color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.side-icon{width:22px;text-align:center;font-size:1rem}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:5px}
.sidebar-bottom form{margin:0}
.danger-link{color:#ff8993}
.admin-main{min-width:0}
.admin-content-header{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:16px 28px;background:#0b0d12e8;backdrop-filter:blur(12px);position:sticky;top:0;z-index:19}
.admin-content-header h1{font-size:1.45rem;margin:.2rem 0 0}
.admin-content{width:min(1320px,calc(100% - 44px));margin:24px auto 60px}
.admin-view{display:none;animation:adminViewIn .16s ease}
.admin-view.active{display:grid;gap:18px}
@keyframes adminViewIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-panel{min-height:0}
.panel-description{margin:5px 0 0;color:var(--muted);font-size:.84rem}
.form-note{margin:14px 0 0;color:var(--muted);font-size:.82rem}
.dashboard-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.summary-card{appearance:none;text-align:left;border:1px solid var(--line);border-radius:16px;background:#11161e;color:white;padding:18px;display:grid;gap:4px;transition:.15s}
.summary-card:hover{border-color:#5b6475;transform:translateY(-2px)}
.summary-card span{color:var(--accent);font-size:.72rem;letter-spacing:.18em;font-weight:900}
.summary-card strong{font-size:2.3rem}.summary-card small{color:var(--muted)}
.admin-primary-actions{margin-top:4px}
.team-create-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.member-create-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.team-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.team-admin-card{border:1px solid var(--line);border-radius:16px;background:#10141c;padding:15px;min-width:0}
.team-card-head{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center}
.team-admin-logo{width:58px;height:58px;border-radius:13px;object-fit:cover;background:#252c39;border:1px solid #394153;display:grid;place-items:center;font-weight:900}
.team-card-title strong{display:block;font-size:1.08rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-card-title span{display:block;margin-top:5px;color:var(--muted);font-size:.8rem}
.order-badge{font-size:.75rem;font-weight:900;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 8px}
.credential-box{margin-top:14px;border:1px solid #303849;border-radius:12px;overflow:hidden;background:#0b0f15}
.credential-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #242b38}
.credential-row:last-child{border-bottom:0}
.credential-row span{color:var(--muted);font-size:.76rem;font-weight:800}
.credential-row code{color:white;font-family:Consolas,"SFMono-Regular",monospace;font-size:1rem;font-weight:800;word-break:break-all}
.credential-row .pin-code{color:var(--accent);font-size:1.12rem;letter-spacing:.08em}
.credential-row .pin-code.missing{color:#ff8993;font-size:.78rem;letter-spacing:0}
.team-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}

@media(max-width:1000px){
  .admin-shell{grid-template-columns:210px minmax(0,1fr)}
  .admin-content{width:calc(100% - 28px)}
  .team-admin-grid{grid-template-columns:1fr}
  .team-create-grid,.member-create-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .admin-shell{display:block}
  .admin-sidebar{position:sticky;height:auto;top:0;padding:9px 10px;border-right:0;border-bottom:1px solid var(--line);display:block;z-index:40}
  .sidebar-brand{display:none}
  .sidebar-nav{padding:0;display:flex;gap:5px;overflow-x:auto;scrollbar-width:none}
  .sidebar-nav::-webkit-scrollbar{display:none}
  .side-nav-btn{width:auto;min-width:max-content;padding:9px 11px}
  .side-nav-btn.active{box-shadow:inset 0 -3px 0 var(--accent)}
  .sidebar-bottom{display:none}
  .admin-content-header{height:auto;min-height:72px;top:52px;padding:12px 16px}
  .admin-content{width:calc(100% - 20px);margin:12px auto 40px}
  .dashboard-summary-grid{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .summary-card{padding:12px}.summary-card strong{font-size:1.65rem}.summary-card small{font-size:.7rem}
  .team-create-grid,.member-create-grid{grid-template-columns:1fr}
  .credential-row{grid-template-columns:92px minmax(0,1fr)}
}

.nomination-announcement{display:flex;align-items:center;justify-content:center;gap:4vw;width:100%;height:100%;padding:1vh 2vw}.announcement-avatar{width:32vw;height:40vh;object-fit:contain;border-radius:18px;background:#171b24;flex-shrink:0;display:grid;place-items:center;font-size:5rem}.nomination-announcement h2{font-size:clamp(1.8rem,4vw,4.5rem);margin:.3em 0;overflow-wrap:anywhere}.nomination-announcement h3{font-size:clamp(1.2rem,2.5vw,3rem);margin:.3em 0}.nomination-announcement p{color:var(--muted)}
