:root{--bg:#0a0a0c;--panel:#121218;--panel2:#181820;--text:#f8f8fb;--muted:#a7a5b0;--line:#292933;--pink:#ff4f82;--accent:#ff4f82;--green:#39d49a;--red:#ff4b55}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top right,#211725 0,#0a0a0c 40%);color:var(--text)}a{color:inherit;text-decoration:none}button,input{font:inherit}.gate-body{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:min(460px,100%);background:rgba(18,18,24,.96);border:1px solid var(--line);border-radius:28px;padding:38px;box-shadow:0 30px 80px #0008}.mini-mark{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,var(--accent),#ffd6e5);color:#111;display:grid;place-items:center;font-weight:900;letter-spacing:-1px}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--accent);font-weight:800;margin:24px 0 8px}.gate-card h1{font-size:40px;margin:0 0 8px}.muted{color:var(--muted);line-height:1.6}.gate-form{display:grid;gap:12px;margin-top:26px}.gate-form label{font-size:13px;color:#d9d6df}.gate-form input{background:#0d0d12;border:1px solid #373743;border-radius:14px;padding:15px;color:#fff;outline:none}.gate-form input:focus{border-color:var(--accent)}.gate-form button,.primary{border:0;border-radius:14px;padding:14px 18px;background:linear-gradient(135deg,var(--accent),#ff8eb5);color:#111;font-weight:850;cursor:pointer}.error{color:#ff8088;margin:0}.tiny{font-size:12px;color:#6f6d77;margin-top:18px}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid var(--line);background:#0d0d12}.brand{display:flex;align-items:center;gap:11px;font-weight:900;font-size:18px;margin:4px 8px 28px}.brand .mini-mark{width:38px;height:38px;border-radius:12px;font-size:13px}.nav{display:grid;gap:7px}.nav a{padding:12px 13px;border-radius:12px;color:#bebbc7;font-weight:650}.nav a:hover,.nav a.active{background:#1a1a21;color:#fff}.nav .live{color:#ff95b6}.sidebar-foot{position:absolute;bottom:22px;left:18px;right:18px}.sidebar-foot a{display:block;padding:12px;color:#8f8c98}.main{padding:28px 34px 50px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.topbar h1{font-size:31px;margin:0}.top-actions{display:flex;gap:10px;align-items:center}.pill{padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:#c8c5cf;background:#111118}.go-live{padding:12px 18px;border-radius:14px;background:var(--green);color:#07110e;font-weight:900}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:linear-gradient(180deg,#15151b,#111117);border:1px solid var(--line);border-radius:22px;padding:22px}.stat .label{color:var(--muted);font-size:13px}.stat .value{font-size:31px;font-weight:900;margin:8px 0 4px}.delta{font-size:12px;color:var(--green)}.two{grid-template-columns:1.35fr .65fr}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-title h2{margin:0;font-size:19px}.section-title a{color:var(--accent);font-size:13px}.bars{display:grid;gap:13px}.bar-row{display:grid;grid-template-columns:120px 1fr 80px;gap:12px;align-items:center;font-size:13px}.bar{height:9px;background:#27272f;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent));border-radius:inherit}.news{display:grid;gap:10px}.news-item{padding:14px 0;border-bottom:1px solid var(--line)}.news-item:last-child{border:0}.tag{font-size:11px;padding:5px 8px;border-radius:999px;background:#2a1c24;color:#ff9fbe}.studio{display:grid;grid-template-columns:260px 1fr 390px;gap:0;min-height:calc(100vh - 120px);border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#101015}.studio-pane{padding:18px;border-right:1px solid var(--line)}.studio-pane:last-child{border-right:0}.conversation{padding:12px;border-radius:12px;background:#191920;margin-bottom:8px}.chat-log{height:58vh;overflow:auto;padding:8px}.bubble{max-width:72%;padding:11px 13px;border-radius:14px;background:#20202a;margin:10px 0;color:#e7e4eb}.bubble.me{margin-left:auto;background:#302030}.chatbox{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:14px}.chatbox input{flex:1;background:#0c0c10;border:1px solid var(--line);border-radius:12px;padding:13px;color:#fff}.video{aspect-ratio:4/3;border-radius:18px;background:linear-gradient(135deg,#2b1f2b,#17171d);display:grid;place-items:center;color:#8f8b98;margin-bottom:15px}.video .camera{font-size:54px}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.control{background:#202027;border:1px solid #303039;padding:12px;border-radius:12px;text-align:center}.control.danger{background:#3a1117;color:#ff9ba1}.live-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.metric{background:#17171d;border-radius:14px;padding:13px}.metric b{display:block;font-size:20px;margin-top:4px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px;border-bottom:1px solid var(--line);font-size:13px}.table th{color:#918e99;font-size:11px;text-transform:uppercase;letter-spacing:.08em}@media(max-width:1000px){.shell{grid-template-columns:80px 1fr}.brand span,.nav a span,.sidebar-foot{display:none}.brand{margin-left:0}.sidebar{padding:20px 12px}.nav a{text-align:center}.stats{grid-template-columns:repeat(2,1fr)}.two,.studio{grid-template-columns:1fr}.studio-pane{border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:620px){.main{padding:20px 14px}.stats{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.shell{grid-template-columns:1fr}.sidebar{display:none}.gate-card{padding:28px}.gate-card h1{font-size:32px}}
.live-video{position:relative;overflow:hidden;background:#050507}.live-video video{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.video-placeholder{position:absolute;inset:0;display:grid;place-items:center;align-content:center;background:linear-gradient(135deg,#2b1f2b,#17171d)}.hidden{display:none!important}.live-badge{position:absolute;left:14px;top:14px;background:#e5233f;color:white;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:900;box-shadow:0 6px 24px #0007}.controls-four{grid-template-columns:repeat(2,1fr)}button.control{color:var(--text);cursor:pointer;font:inherit}button.control:disabled{opacity:.42;cursor:not-allowed}.control.go{background:#12392e;color:#7ff0c2;border-color:#276853}.status-live{color:#7ff0c2!important;border-color:#276853!important;background:#102a22!important}

.permission-overlay{position:fixed;inset:0;z-index:9999;background:rgba(7,7,10,.86);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:24px}.permission-overlay.hidden{display:none}.permission-card{width:min(540px,100%);background:#15151b;border:1px solid #33313a;border-radius:24px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.55);text-align:center}.permission-card h2{font-size:30px;margin:8px 0 12px}.permission-icon{font-size:46px;margin-bottom:12px}.permission-button{width:100%;margin-top:14px;min-height:52px;font-size:16px}.permission-help{margin-top:18px;padding:14px 16px;border-radius:14px;background:#211b1f;border:1px solid #53323d;text-align:left;line-height:1.5;color:#f0dfe4}.hidden{display:none!important}.live-video video{width:100%;height:100%;object-fit:cover;background:#0a0a0d;transform:scaleX(-1)}

/* Camera framing fix: always show the full camera image instead of cropping it. */
.studio .studio-pane:last-child{min-width:0;align-self:start}
.live-video{
  width:100%;
  height:clamp(320px,58vh,620px);
  aspect-ratio:auto;
  overflow:hidden;
  background:#050507;
}
.live-video video{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center center;
  display:block;
  background:#050507;
  transform:scaleX(-1);
}
@media(max-width:1200px){
  .studio{grid-template-columns:230px minmax(320px,1fr) minmax(320px,420px)}
}
@media(max-width:1000px){
  .live-video{height:min(70vh,620px)}
}

/* Landscape broadcaster preview: match the wide studio framing used by ClubIslive. */
.live-video{
  width:100%;
  height:auto !important;
  aspect-ratio:16/9 !important;
  border-radius:0;
  margin-bottom:15px;
  background:#050507;
  overflow:hidden;
}
.live-video video{
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center;
  display:block;
  background:#050507;
  transform:scaleX(-1);
}
@media(max-width:1000px){
  .live-video{height:auto !important;aspect-ratio:16/9 !important;}
}
.admin-wrap{max-width:1400px;margin:0 auto;padding:32px}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.admin-form{display:grid;gap:14px}.admin-form label{display:grid;gap:7px;color:#d8d5dd;font-size:13px}.admin-form input,.admin-form textarea{width:100%;background:#0c0c10;border:1px solid var(--line);border-radius:12px;padding:13px;color:#fff}.profile-preview{padding:0;overflow:hidden}.profile-cover{width:100%;height:260px;object-fit:cover;display:block}.placeholder-cover{background:linear-gradient(135deg,#3a2739,#111117)}.profile-id{display:flex;gap:18px;align-items:end;padding:0 24px 24px;margin-top:-48px;position:relative}.avatar-lg{width:110px;height:110px;border-radius:50%;object-fit:cover;border:5px solid #15151b;background:#222}.avatar-empty{display:grid;place-items:center;font-weight:900;font-size:24px}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.album-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px}
/* Profile editor refresh */
.profile-editor-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;margin-top:18px}.profile-editor-card,.album-card{min-width:0}.compact{margin:0 0 5px}.profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.profile-form .field{display:flex;flex-direction:column;gap:8px}.profile-form .field-wide{grid-column:1/-1}.profile-form label,.upload-field b{font-size:13px;font-weight:750;color:#ebe7ef}.profile-form input[type=text],.profile-form input:not([type]),.profile-form textarea{width:100%;appearance:none;background:#0b0b10!important;color:#fff!important;border:1px solid #32323c!important;border-radius:14px!important;padding:14px 15px!important;outline:none!important;box-shadow:none!important}.profile-form textarea{resize:vertical;min-height:140px}.profile-form input:focus,.profile-form textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(255,79,130,.12)!important}.profile-form small,.upload-field small{display:block;color:#8f8c98;line-height:1.45;margin-top:4px}.upload-field{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1fr);gap:18px;align-items:center;padding:16px;border:1px solid #292933;border-radius:16px;background:#101016}.upload-field input[type=file]{width:100%;color:#aaa7b2;background:#0b0b10;border:1px solid #30303a;border-radius:12px;padding:8px}.upload-field input[type=file]::file-selector-button{border:0;background:#24242d;color:#fff;border-radius:9px;padding:9px 12px;margin-right:12px;cursor:pointer;font-weight:700}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:4px}.form-actions .primary{min-width:210px}.profile-notice{margin-bottom:18px;padding:14px 16px;border:1px solid #285844;background:#102a22;color:#87e8bf;border-radius:14px}.album-card{align-self:start}.album-empty{grid-column:1/-1;text-align:center;padding:45px 20px;border:1px dashed #34343f;border-radius:16px;background:#0e0e13}.album-empty-icon{width:54px;height:54px;margin:0 auto 12px;border-radius:16px;display:grid;place-items:center;background:#1d1d25;font-size:28px;color:var(--accent)}.album-empty h3{margin:0 0 6px}.table-wrap{overflow:auto}@media(max-width:1050px){.profile-editor-layout{grid-template-columns:1fr}}@media(max-width:720px){.profile-form{grid-template-columns:1fr}.profile-form .field-wide,.upload-field,.form-actions{grid-column:auto}.upload-field{grid-template-columns:1fr}.form-actions .primary{width:100%}}

/* Pink Bad Bunnies lobby */
:root{--bunny-pink:#ff4f9a;--bunny-hot:#ff2f86;--bunny-soft:#ff9bc6}
.bunny-welcome{position:relative;overflow:hidden;min-height:350px;border:1px solid rgba(255,79,154,.34);border-radius:30px;padding:clamp(30px,5vw,60px);display:flex;align-items:center;justify-content:space-between;gap:40px;background:linear-gradient(125deg,#181018,#21101b 55%,#120e13);box-shadow:0 24px 70px #0005,inset 0 0 80px rgba(255,79,154,.05);margin-bottom:26px}.welcome-glow{position:absolute;width:430px;height:430px;border-radius:50%;right:-90px;top:-180px;background:rgba(255,47,134,.27);filter:blur(70px)}.welcome-copy{position:relative;z-index:2;max-width:790px}.pink-eyebrow{margin:0 0 12px;color:var(--bunny-soft);font-size:12px;font-weight:900;letter-spacing:.2em}.bunny-welcome h1{font-size:clamp(38px,5vw,68px);letter-spacing:-.045em;line-height:.98;margin:0 0 20px}.welcome-lead{max-width:720px;color:#d6ccd3;font-size:17px;line-height:1.7;margin:0}.welcome-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.pink-primary,.pink-secondary{padding:14px 20px;border-radius:14px;font-weight:900}.pink-primary{background:linear-gradient(135deg,var(--bunny-hot),#ff76ad);color:#fff;box-shadow:0 10px 30px rgba(255,47,134,.28)}.pink-secondary{border:1px solid rgba(255,117,173,.4);background:#ffffff0a;color:#ffd5e6}.welcome-mark{position:relative;z-index:2;min-width:190px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;border:1px solid #ff87b966;background:radial-gradient(circle,#ff4f9a38,#ff4f9a08 64%);box-shadow:0 0 45px #ff2f8638}.welcome-mark span{font-size:54px;font-weight:950;letter-spacing:-.08em;color:#ff8fbd}.welcome-mark small{font-weight:900;font-size:10px;letter-spacing:.18em;line-height:1.5;color:#ffd0e3}
.club-flow{margin:26px 0}.flow-intro{max-width:700px;margin-bottom:18px}.flow-intro h2{font-size:28px;margin:0 0 8px}.flow-cards{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px}.flow-card{padding:22px;border-radius:20px;border:1px solid var(--line);background:#121217}.flow-card.current{border-color:#ff4f9a6b;background:linear-gradient(145deg,#ff4f9a21,#121217)}.flow-card span{display:block;color:var(--bunny-soft);font-size:11px;font-weight:900;letter-spacing:.14em;margin-bottom:22px}.flow-card b{display:block;font-size:16px;margin-bottom:8px}.flow-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.flow-arrow{display:grid;place-items:center;color:#ff78ae;font-size:22px}
.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.quick-actions a{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#16151b,#111116);transition:.2s}.quick-actions a:hover{transform:translateY(-3px);border-color:#ff4f9a73}.quick-actions i{width:42px;height:42px;border-radius:13px;background:#ff4f9a21;color:#ff82b5;display:grid;place-items:center;font-style:normal;font-weight:900}.quick-actions b,.quick-actions span{display:block}.quick-actions span{font-size:11px;line-height:1.4;color:var(--muted);margin-top:4px}.quick-actions strong{color:#ff79ae}.bunny-stats .card{border-top-color:#ff4f9a4d}.bunny-stats .delta{color:#ff8dbb}.pink-info{background:linear-gradient(160deg,#ff4f9a17,#111117)}.section-title a{color:#ff83b7}.bar i{background:linear-gradient(90deg,#ff3d8d,#ff9ac4)}.tag{background:#ff4f9a24;color:#ff9fc7}
@media(max-width:1100px){.quick-actions{grid-template-columns:repeat(2,1fr)}.flow-cards{grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg);height:20px}.welcome-mark{min-width:150px}}@media(max-width:720px){.bunny-welcome{align-items:flex-start;flex-direction:column}.welcome-mark{display:none}.quick-actions{grid-template-columns:1fr}.welcome-actions a{width:100%;text-align:center}}


/* Safe pink login accents. These do not override the authenticated dashboard layout. */
body:has(form input[name="login_username"]){
  background:
    radial-gradient(circle at 15% 15%, rgba(255,79,154,.12), transparent 34rem),
    #0d0c10;
}
form input[name="login_username"],
form input[name="login_password"]{
  border-color:rgba(255,79,154,.28);
}
form input[name="login_username"]:focus,
form input[name="login_password"]:focus{
  border-color:#ff5d9e;
  box-shadow:0 0 0 3px rgba(255,79,154,.10);
}

.profile-mark{overflow:hidden;position:relative}.profile-mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-mark small{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2;background:rgba(10,10,12,.72);padding:5px 8px;border-radius:8px;white-space:nowrap;color:#fff}.profile-mark:has(img){border:3px solid rgba(255,79,130,.6);box-shadow:0 0 45px rgba(255,47,134,.35)}
