:root{
  --bg:#0c0d11; --bg2:#101218; --surf:#15171f; --surf2:#1b1e28;
  --ink:#f4f5f8; --ink2:#c3c6d0; --mu:#83879a; --line:#262a36;
  --line2:#323746; --ac:#ff6a2b; --ac2:#ff4d6d; --gd:linear-gradient(120deg,#ff6a2b,#ff4d6d);
  --ok:#31c48d; --ease:cubic-bezier(.25,.46,.45,.94);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;background:var(--bg);color:var(--ink);line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.jost{font-family:'Jost',sans-serif}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.ac{color:var(--ac)}
.mu{color:var(--mu)}

/* nav */
.nav{position:sticky;top:0;z-index:60;background:rgba(12,13,17,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .in{max-width:1120px;margin:0 auto;padding:0 22px;height:62px;display:flex;align-items:center;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nav .in::-webkit-scrollbar{display:none}
.nav .in>*{flex-shrink:0}
.logo{font-family:'Jost';font-weight:700;font-size:21px;letter-spacing:.01em;cursor:pointer}
.logo span{color:var(--ac)}
.logo small{font-size:11px;color:var(--mu);letter-spacing:.02em;margin-left:2px}
.nav .grow{flex:1 1 auto;min-width:4px}
.nlink{font-size:13px;color:var(--ink2);position:relative;transition:.2s;cursor:pointer}
.nlink:hover{color:var(--ac)}
.nlink.on{color:var(--ac)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ac);color:#fff;font-weight:700;font-size:13px;letter-spacing:.01em;padding:11px 20px;border-radius:999px;border:none;cursor:pointer;transition:.22s var(--ease);font-family:inherit;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,106,43,.32)}
.btn.g{background:transparent;color:var(--ink2);border:1px solid var(--line2)}
.btn.g:hover{border-color:var(--ac);color:var(--ac);box-shadow:none}
.btn.sm{padding:8px 15px;font-size:12.5px}
.btn.wide{width:100%;padding:15px}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* views */
.view{display:none;animation:fade .4s var(--ease)}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* hero / search */
.hero{position:relative;padding:56px 0 30px;border-bottom:1px solid var(--line);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 90% at 82% 8%,rgba(255,77,109,.16),transparent 60%),
  radial-gradient(70% 80% at 10% 0%,rgba(255,106,43,.14),transparent 55%);pointer-events:none}
.ey{font-family:'Jost';font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ac);font-weight:600;display:flex;align-items:center;gap:11px;margin-bottom:15px}
.ey::before{content:"";width:24px;height:1px;background:var(--ac)}
.hero h1{font-size:clamp(27px,4.6vw,44px);line-height:1.24;font-weight:900;letter-spacing:-.01em;margin-bottom:14px}
.hero h1 .hl{background:var(--gd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p.sub{color:var(--ink2);max-width:560px;font-size:15px}
.searchbar{margin-top:26px;background:var(--surf);border:1px solid var(--line2);border-radius:16px;padding:12px;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
@media(max-width:720px){.searchbar{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px;padding:6px 8px}
.field label{font-family:'Jost';font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mu);font-weight:600}
.field select,.field input{background:transparent;border:none;color:var(--ink);font-family:inherit;font-size:15px;font-weight:500;outline:none;width:100%}
.field select option{background:var(--surf2);color:var(--ink)}
.field+.field{border-left:1px solid var(--line)}
@media(max-width:720px){.field+.field{border-left:none;border-top:1px solid var(--line)}}
.searchbar .btn{align-self:stretch;padding:0 26px}
@media(max-width:720px){.searchbar .btn{padding:14px}}

/* chips */
.chips{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0 4px}
.chip{font-size:12.5px;padding:7px 15px;border-radius:999px;border:1px solid var(--line2);color:var(--ink2);cursor:pointer;transition:.18s;white-space:nowrap;background:var(--surf)}
.chip:hover{border-color:var(--mu);color:var(--ink)}
.chip.on{background:var(--ac);border-color:var(--ac);color:#fff;font-weight:600}

/* section */
.sec{padding:34px 0 60px}
.sechead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.sechead h2{font-size:19px;font-weight:700}
.sechead .cnt{font-family:'Jost';font-size:13px;color:var(--mu)}

/* card grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
.card{background:var(--surf);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;transition:.24s var(--ease);display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);border-color:var(--line2);box-shadow:0 20px 44px rgba(0,0,0,.42)}
.cov{aspect-ratio:16/10;position:relative;display:flex;align-items:flex-end;padding:13px}
.cov::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.55))}
.cov .badge{position:relative;z-index:2;font-family:'Jost';font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:rgba(0,0,0,.5);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);color:#fff;padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:5px}
.cov .pro{position:absolute;top:12px;right:12px;z-index:2;background:var(--gd);color:#fff;font-family:'Jost';font-size:10px;font-weight:700;letter-spacing:.1em;padding:4px 9px;border-radius:6px;box-shadow:0 4px 14px rgba(255,77,109,.4)}
.cbody{padding:15px 16px 17px;display:flex;flex-direction:column;gap:9px;flex:1}
.crow{display:flex;align-items:center;gap:10px}
.av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Jost';font-weight:700;font-size:15px;color:#fff;flex-shrink:0}
.cname{font-size:15px;font-weight:700;line-height:1.3}
.cmeta{font-size:11.5px;color:var(--mu)}
.stars{color:var(--ac);font-size:12.5px;letter-spacing:.03em}
.stars b{color:var(--ink);font-weight:700}
.stars span{color:var(--mu);font-weight:400}
.ctags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:11px;color:var(--ink2);background:var(--surf2);border:1px solid var(--line);padding:3px 9px;border-radius:6px}
.cfoot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between}
.price{font-family:'Jost'}
.price b{font-size:20px;font-weight:700}
.price small{font-size:11.5px;color:var(--mu)}
.gear{font-size:11px;color:var(--mu)}

/* profile */
.pcover{aspect-ratio:21/8;border-radius:18px;position:relative;margin-top:26px;overflow:hidden;min-height:180px}
.pcover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.6))}
.back{display:inline-flex;align-items:center;gap:7px;color:var(--ink2);font-size:13px;margin:22px 0 0;cursor:pointer;transition:.2s}
.back:hover{color:var(--ac)}
.phead{display:flex;align-items:flex-end;gap:18px;margin-top:-46px;position:relative;z-index:3;padding:0 8px}
.phead .av{width:88px;height:88px;font-size:32px;border:4px solid var(--bg);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.phead h1{font-size:25px;font-weight:900;display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.pill{font-family:'Jost';font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:6px}
.pill.pro{background:var(--gd);color:#fff}
.player{display:grid;grid-template-columns:1.7fr 1fr;gap:26px;margin-top:30px;align-items:start}
@media(max-width:820px){.player{grid-template-columns:1fr}}
.panel{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:22px}
.panel h3{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.panel h3::before{content:"";width:14px;height:2px;background:var(--ac);border-radius:2px}
.bio{color:var(--ink2);font-size:14.5px;line-height:1.9}
.port{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
@media(max-width:600px){.port{grid-template-columns:repeat(2,1fr)}}
.thumb{aspect-ratio:1;border-radius:11px;position:relative;overflow:hidden;cursor:pointer}
.thumb .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.thumb .play i{width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.42);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;transition:.2s}
.thumb:hover .play i{background:var(--ac);border-color:var(--ac);transform:scale(1.1)}
.thumb .dur{position:absolute;bottom:7px;right:7px;font-family:'Jost';font-size:10px;background:rgba(0,0,0,.6);padding:2px 6px;border-radius:4px}
.kv{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.kv:last-child{border-bottom:none}
.kv span{color:var(--mu)}.kv b{font-weight:600}
.side{position:sticky;top:80px}
.pbig{font-family:'Jost';display:flex;align-items:baseline;gap:6px;margin-bottom:3px}
.pbig b{font-size:34px;font-weight:700}
.pbig small{color:var(--mu);font-size:13px}
.rev{display:flex;flex-direction:column;gap:14px}
.rev .r{border-bottom:1px solid var(--line);padding-bottom:13px}
.rev .r:last-child{border:none;padding:0}
.rev .rt{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.rev .rn{font-size:13px;font-weight:600}
.rev .rc{font-size:13.5px;color:var(--ink2);line-height:1.75}

/* forms */
.formwrap{max-width:640px;margin:0 auto}
.fld{margin-bottom:17px}
.fld>label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}
.fld>label .req{color:var(--ac);font-size:11px;margin-left:5px}
.inp,textarea.inp,select.inp{width:100%;background:var(--surf);border:1px solid var(--line2);border-radius:11px;padding:13px 14px;color:var(--ink);font-family:inherit;font-size:15px;outline:none;transition:.18s}
.inp:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(255,106,43,.14)}
textarea.inp{resize:vertical;min-height:96px;line-height:1.7}
.hint{font-size:11.5px;color:var(--mu);margin-top:6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.two{grid-template-columns:1fr}}
.optgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}
.opt{border:1px solid var(--line2);border-radius:11px;padding:11px 13px;font-size:13px;cursor:pointer;transition:.16s;display:flex;align-items:center;gap:9px;background:var(--surf)}
.opt:hover{border-color:var(--mu)}
.opt.on{border-color:var(--ac);background:rgba(255,106,43,.08)}
.opt .dot{width:15px;height:15px;border-radius:50%;border:2px solid var(--line2);flex-shrink:0;transition:.16s}
.opt.on .dot{border-color:var(--ac);background:var(--ac);box-shadow:inset 0 0 0 3px var(--surf)}

/* summary / escrow */
.sumbox{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px}
.escrow{display:flex;gap:12px;background:rgba(49,196,141,.08);border:1px solid rgba(49,196,141,.28);border-radius:12px;padding:14px 16px;margin-bottom:18px;font-size:13px;color:var(--ink2);line-height:1.7}
.escrow b{color:var(--ok)}
.note{background:var(--surf2);border:1px dashed var(--line2);border-radius:11px;padding:12px 14px;font-size:12.5px;color:var(--mu);margin-top:14px}

/* thanks */
.thanks{text-align:center;max-width:520px;margin:60px auto;padding:0 22px}
.thanks .ok{width:74px;height:74px;border-radius:50%;background:rgba(49,196,141,.12);border:1px solid rgba(49,196,141,.4);display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.thanks h1{font-size:24px;font-weight:900;margin-bottom:12px}
.thanks p{color:var(--ink2);font-size:14.5px;margin-bottom:26px}

/* how it works strip */
.how{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px 0}
.how .g3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:760px){.how .g3{grid-template-columns:1fr}}
.how .c{text-align:left}
.how .n{font-family:'Jost';font-size:13px;font-weight:700;color:var(--ac);letter-spacing:.1em;margin-bottom:9px}
.how .c h4{font-size:15px;font-weight:700;margin-bottom:6px}
.how .c p{font-size:13px;color:var(--mu);line-height:1.8}

/* footer */
footer{padding:44px 0 60px;border-top:1px solid var(--line);color:var(--mu);font-size:12.5px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.foot .lk{display:flex;gap:18px}
.foot .lk a{cursor:pointer;transition:.2s}.foot .lk a:hover{color:var(--ac)}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--surf2);border:1px solid var(--line2);color:var(--ink);padding:13px 22px;border-radius:12px;font-size:13.5px;box-shadow:0 16px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.3s var(--ease);z-index:200}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

.empty{text-align:center;padding:56px 0;color:var(--mu)}
.empty .btn{margin-top:18px}
svg{display:block}

/* page head (mypage / dash) */
.phd{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:8px 0 4px}
.phd h1{font-size:23px;font-weight:900}
.phd p{color:var(--mu);font-size:13px;margin-top:3px}

/* stat cards (dashboard) */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 26px}
@media(max-width:680px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:16px 17px}
.stat .l{font-family:'Jost';font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mu);font-weight:600;margin-bottom:7px}
.stat .v{font-family:'Jost';font-size:26px;font-weight:700;line-height:1}
.stat .v small{font-size:13px;color:var(--mu);font-weight:400;margin-left:3px}

/* request list rows */
.rqlist{display:flex;flex-direction:column;gap:12px}
.rq{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:15px 17px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:.2s var(--ease)}
.rq:hover{border-color:var(--line2);transform:translateX(3px)}
.rq .av{width:44px;height:44px;font-size:17px}
.rq .g{flex:1;min-width:0}
.rq .t{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rq .s{font-size:12px;color:var(--mu);margin-top:2px}
.rq .rt{text-align:right;flex-shrink:0}
.rq .rt .p{font-family:'Jost';font-weight:700;font-size:15px}
.rq .arrow{color:var(--mu);font-size:18px;flex-shrink:0}
.rq .unread{background:var(--ac);color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px;font-family:'Jost'}

/* status badge */
.stb{font-family:'Jost';font-size:10.5px;font-weight:700;letter-spacing:.06em;padding:3px 10px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.st-pending{background:rgba(255,106,43,.14);color:#ff9d6b;border-color:rgba(255,106,43,.3)}
.st-accepted{background:rgba(58,123,213,.16);color:#7bb3ff;border-color:rgba(58,123,213,.34)}
.st-completed{background:rgba(49,196,141,.14);color:#4fd4a0;border-color:rgba(49,196,141,.32)}
.st-reviewed{background:var(--surf2);color:var(--mu);border-color:var(--line2)}
.st-declined,.st-cancelled{background:rgba(200,75,75,.14);color:#e88;border-color:rgba(200,75,75,.3)}

/* timeline */
.tl{display:flex;align-items:center;margin:6px 0 22px}
.tl .stp{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}
.tl .stp .dot{width:26px;height:26px;border-radius:50%;background:var(--surf2);border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;font-family:'Jost';font-size:12px;font-weight:700;color:var(--mu);z-index:2;transition:.3s}
.tl .stp .lb{font-size:11px;color:var(--mu);text-align:center}
.tl .stp::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line2);z-index:1}
.tl .stp:first-child::before{display:none}
.tl .stp.done .dot{background:var(--ac);border-color:var(--ac);color:#fff}
.tl .stp.done .lb{color:var(--ink2)}
.tl .stp.done::before{background:var(--ac)}
.tl .stp.cur .dot{box-shadow:0 0 0 4px rgba(255,106,43,.18)}

/* chat */
.chat{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto;padding:4px 2px 8px}
.chat .empty2{color:var(--mu);font-size:12.5px;text-align:center;padding:18px 0}
.msg{max-width:80%;padding:9px 13px;border-radius:13px;font-size:13.5px;line-height:1.65}
.msg .who{font-size:10px;font-family:'Jost';letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-bottom:2px}
.msg.them{background:var(--surf2);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.msg.me{background:var(--ac);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.chatbar{display:flex;gap:9px;margin-top:12px}
.chatbar input{flex:1;background:var(--surf2);border:1px solid var(--line2);border-radius:11px;padding:11px 13px;color:var(--ink);font-family:inherit;font-size:14px;outline:none}
.chatbar input:focus{border-color:var(--ac)}
.chatbar .btn{padding:0 18px}

/* star rating input */
.rate{display:flex;gap:6px;margin:4px 0 14px}
.rate span{font-size:30px;color:var(--line2);cursor:pointer;transition:.12s;line-height:1}
.rate span:hover,.rate span.on{color:var(--ac);transform:scale(1.08)}

/* action row */
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.acts .btn{flex:1;min-width:130px}
.rolechip{display:inline-flex;align-items:center;gap:6px;font-family:'Jost';font-size:11px;font-weight:600;letter-spacing:.06em;padding:4px 11px;border-radius:999px;background:var(--surf2);border:1px solid var(--line2);color:var(--ink2)}

/* ============ 本番追加: 認証・運営・共通 ============ */
/* auth */
.authwrap{max-width:420px;margin:56px auto;padding:0 22px}
.authcard{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:30px 26px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.authcard h1{font-size:22px;font-weight:900;margin-bottom:6px}
.authcard p.sub{color:var(--mu);font-size:13px;margin-bottom:22px}
.roletabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.roletab{border:1px solid var(--line2);border-radius:12px;padding:13px;text-align:center;cursor:pointer;transition:.16s;background:var(--surf2)}
.roletab .ti{font-size:20px;margin-bottom:4px}
.roletab .tl{font-size:13px;font-weight:700}
.roletab .td{font-size:10.5px;color:var(--mu);margin-top:2px}
.roletab.on{border-color:var(--ac);background:rgba(255,106,43,.08)}
.authswitch{text-align:center;font-size:12.5px;color:var(--mu);margin-top:18px}
.authswitch a{color:var(--ac);cursor:pointer;font-weight:600}
.autherr{background:rgba(200,75,75,.1);border:1px solid rgba(200,75,75,.32);color:#e88;font-size:12.5px;padding:10px 13px;border-radius:10px;margin-bottom:16px}
.authok{background:rgba(49,196,141,.1);border:1px solid rgba(49,196,141,.32);color:#4fd4a0;font-size:12.5px;padding:10px 13px;border-radius:10px;margin-bottom:16px}

/* account menu */
.acct{position:relative}
.acctbtn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;background:var(--surf);border:1px solid var(--line2);border-radius:999px;padding:5px 6px 5px 12px;font-size:12.5px;color:var(--ink2);transition:.18s}
.acctbtn:hover{border-color:var(--mu)}
.acctbtn .av{width:26px;height:26px;font-size:12px}
.acctmenu{position:absolute;right:0;top:44px;background:var(--surf2);border:1px solid var(--line2);border-radius:13px;padding:7px;min-width:190px;box-shadow:0 18px 44px rgba(0,0,0,.5);z-index:80;display:none}
.acctmenu.on{display:block}
.acctmenu .mrow{padding:9px 12px;border-radius:9px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:9px;color:var(--ink2)}
.acctmenu .mrow:hover{background:var(--surf);color:var(--ink)}
.acctmenu .mhd{padding:8px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:5px}
.acctmenu .mhd .nm{font-size:13px;font-weight:700;color:var(--ink)}
.acctmenu .mhd .rl{font-family:'Jost';font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ac);margin-top:2px}

/* admin */
.adtabs{display:flex;gap:8px;margin:22px 0 6px;flex-wrap:wrap}
.adtab{font-size:13px;padding:9px 16px;border-radius:10px;border:1px solid var(--line2);color:var(--ink2);cursor:pointer;background:var(--surf);transition:.16s}
.adtab.on{background:var(--ac);border-color:var(--ac);color:#fff;font-weight:600}
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;margin-top:16px}
table.tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
table.tbl th{text-align:left;font-family:'Jost';font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mu);font-weight:600;padding:12px 14px;background:var(--surf2);border-bottom:1px solid var(--line)}
table.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tr:hover td{background:rgba(255,255,255,.02)}
.tbl .mini{display:inline-flex;align-items:center;gap:7px}
.btn.xs{padding:5px 11px;font-size:11.5px}
.btn.danger{background:#c94b4b}
.btn.ok2{background:var(--ok)}

/* spinner / loading */
.load{text-align:center;padding:60px 0;color:var(--mu);font-size:13px}
.spin{width:26px;height:26px;border:2.5px solid var(--line2);border-top-color:var(--ac);border-radius:50%;margin:0 auto 14px;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* gate notice */
.gate{max-width:440px;margin:60px auto;text-align:center;padding:0 22px}
.gate h2{font-size:20px;font-weight:800;margin-bottom:10px}
.gate p{color:var(--mu);font-size:14px;margin-bottom:22px}

.badge-pill{font-family:'Jost';font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border-radius:6px;text-transform:uppercase}
.bp-approved{background:rgba(49,196,141,.14);color:#4fd4a0}
.bp-pending{background:rgba(255,106,43,.14);color:#ff9d6b}
.bp-suspended{background:rgba(200,75,75,.14);color:#e88}

/* ============ スケジュール / 活動場所 ============ */
.availform{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:8px;align-items:end}
@media(max-width:640px){.availform{grid-template-columns:1fr 1fr;gap:8px}.availform>button{grid-column:1/-1}}
.alabel{display:block;font-family:'Jost';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);font-weight:600;margin-bottom:5px}
.avlist{display:flex;flex-direction:column;gap:8px}
.avrow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surf2);border:1px solid var(--line);border-radius:11px;padding:11px 14px}
.avd{min-width:0;font-size:13.5px}
.avd b{font-weight:700}
