:root{color:#eaf4f0;background:#0d1514;font-family:Noto Sans JP Variable,Inter,ui-sans-serif,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 85% 5%,rgba(46,153,129,.12),transparent 32rem),#0d1514}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.adminShell{min-height:100vh}.adminHeader{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;min-height:76px;padding:12px clamp(20px,4vw,64px);border-bottom:1px solid #253634;background:#0d1514e6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.adminBrand,.adminSession,.adminSession span,.adminSession button,.adminEyebrow,.formHeading,.metricGrid article,.secondaryButton,.primaryButton,.actionCell button{display:flex;align-items:center}.adminBrand{gap:12px}.adminBrand img{width:44px;height:44px;object-fit:contain}.adminBrand div{display:grid;gap:1px}.adminBrand span{color:#829b95;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em}.adminBrand strong{color:#f1f8f5;font-size:1rem}.adminSession{gap:12px}.adminSession span{gap:7px;color:#9eb2ad;font-variant-numeric:tabular-nums}.adminSession button,.secondaryButton,.actionCell button{gap:7px;border:1px solid #314541;border-radius:10px;background:#14211f;color:#dce9e5;cursor:pointer}.adminSession button{padding:9px 12px}.adminMain{width:min(1400px,calc(100% - 40px));margin:0 auto;padding:42px 0 64px}.adminIntro{display:flex;align-items:end;justify-content:space-between;gap:24px}.adminEyebrow{gap:7px;margin:0 0 8px;color:#5fd0b3;font-size:.78rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.adminIntro h1,.adminLogin h1{margin:0;color:#f4faf8;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em}.adminIntro p:not(.adminEyebrow),.adminLogin p:not(.adminEyebrow){margin:9px 0 0;color:#91a7a1}.secondaryButton{padding:10px 14px}.metricGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px 0 22px}.metricGrid article{gap:14px;min-height:92px;padding:18px 20px;border:1px solid #263936;border-radius:15px;background:#14211fd1;color:#5fd0b3;box-shadow:0 18px 45px #0000001f}.metricGrid article div{display:grid}.metricGrid strong{color:#f4faf8;font-size:1.65rem;line-height:1.05}.metricGrid span{color:#849c96;font-size:.83rem}.adminTabs{display:flex;gap:5px;width:fit-content;margin-bottom:16px;padding:5px;border:1px solid #263936;border-radius:12px;background:#111d1b}.adminTabs button{padding:9px 15px;border:0;border-radius:8px;background:transparent;color:#8ca29c;cursor:pointer}.adminTabs button.active{background:#263d38;color:#eaf4f0;box-shadow:inset 0 0 0 1px #36574f}.addAccessForm{display:grid;grid-template-columns:minmax(230px,.8fr) 1fr 1fr auto;align-items:end;gap:14px;margin-bottom:16px;padding:18px;border:1px solid #263936;border-radius:15px;background:#121e1c}.formHeading{gap:10px;align-self:center;color:#5fd0b3}.formHeading div{display:grid}.formHeading strong{color:#edf6f3}.formHeading span,label span{color:#7f9791;font-size:.76rem}label{display:grid;gap:6px}input{width:100%;min-height:42px;padding:9px 11px;border:1px solid #324944;border-radius:9px;outline:0;background:#0d1715;color:#edf6f3}input:focus{border-color:#54bda3;box-shadow:0 0 0 3px #54bda321}.primaryButton{justify-content:center;gap:7px;min-height:42px;padding:9px 16px;border:1px solid #69d1b6;border-radius:9px;background:#55c0a5;color:#07120f;font-weight:760;cursor:pointer}button:disabled{cursor:wait;opacity:.55}.adminTableCard{overflow:hidden;border:1px solid #263936;border-radius:15px;background:#111d1beb}.tableTitle{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #263936}.tableTitle h2{margin:0;font-size:1.05rem}.tableTitle span{color:#78918b;font-size:.78rem}.tableScroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:11px 18px;background:#0f1a18;color:#718a84;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}td{padding:15px 18px;border-top:1px solid #223330;color:#a9bbb7;font-size:.88rem;vertical-align:middle}tbody tr:first-child td{border-top:0}td strong,td small{display:block}td strong{color:#e8f2ef;font-weight:650}td small{margin-top:3px;color:#708a83;font-size:.73rem}.statusBadge{display:inline-flex;max-width:220px;padding:5px 8px;border:1px solid;border-radius:999px;font-size:.72rem;font-weight:700}.statusBadge.active{border-color:#327461;background:#173a31;color:#77dec2}.statusBadge.pending{border-color:#756130;background:#352d18;color:#e0bd60}.statusBadge.revoked{border-color:#70433f;background:#321d1c;color:#e58e86}.actionCell{text-align:right}.actionCell button{margin-left:auto;padding:7px 10px;white-space:nowrap}.actionCell button.dangerAction{border-color:#623c38;color:#dc8b83}.emptyTable{padding:48px;color:#78908a;text-align:center}.adminError{margin:0 0 16px;padding:12px 14px;border:1px solid #71433f;border-radius:10px;background:#321d1c;color:#eda29b}.loadMoreButton{display:block;margin:14px auto 0;padding:9px 16px;border:1px solid #314541;border-radius:9px;background:#14211f;color:#cbdad6;cursor:pointer}.adminGate,.adminLogin{min-height:100vh;display:grid;place-items:center;padding:24px}.adminGate{align-content:center;gap:12px;color:#9bb0aa}.adminLogin section{width:min(480px,100%);padding:38px;border:1px solid #2b403c;border-radius:22px;background:#121e1cf0;box-shadow:0 30px 80px #00000059}.adminLogin img{width:76px;margin-bottom:24px}.adminLogin h1{font-size:2.25rem}.adminLogin .adminError{margin-top:20px}.googleButton{display:block;margin-top:26px;padding:12px 16px;border-radius:10px;background:#edf5f2;color:#13201d;font-weight:760;text-align:center;text-decoration:none}.spin{animation:spin .8s linear infinite}.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.addAccessForm{grid-template-columns:1fr 1fr}.formHeading{grid-column:1 / -1}}@media(max-width:680px){.adminHeader{align-items:flex-start;padding:12px 16px}.adminBrand span,.adminSession span{display:none}.adminMain{width:min(100% - 24px,1400px);padding-top:28px}.adminIntro{align-items:flex-start}.adminIntro h1{font-size:2rem}.secondaryButton{padding:9px}.secondaryButton{font-size:0}.metricGrid{grid-template-columns:1fr}.metricGrid article{min-height:72px}.addAccessForm{grid-template-columns:1fr}.formHeading{grid-column:auto}.adminLogin section{padding:28px 24px}}
