:root{--bg:#070707;--bg2:#0d0d0d;--panel:#111111;--panel2:#171717;--line:#2a2a2a;--text:#f7f7f7;--muted:#a3a3a3;--yellow:#facc15;--yellow2:#eab308;--yellow-soft:rgba(250,204,21,.12);--danger:#ef4444;--success:#22c55e;--shadow:0 22px 65px rgba(0,0,0,.48)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 12% 0%,rgba(250,204,21,.10),transparent 30%),radial-gradient(circle at 90% 10%,rgba(250,204,21,.055),transparent 25%),linear-gradient(180deg,#0b0b0b 0%,#050505 100%);color:var(--text);min-height:100vh}a{color:var(--yellow);text-decoration:none}a:hover{color:#fde047;text-decoration:underline}.shell{max-width:1220px;margin:auto;padding:32px 22px 72px}.container{max-width:1220px;margin:auto;padding:32px 22px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--yellow);font-weight:900}.top h1{margin:7px 0 5px;font-size:clamp(28px,4vw,46px);line-height:1.05}.muted{color:var(--muted)}.card{background:linear-gradient(145deg,rgba(24,24,24,.98),rgba(12,12,12,.98));border:1px solid var(--line);border-radius:18px;padding:24px;margin:18px 0;box-shadow:var(--shadow);position:relative;overflow:hidden}.card::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--yellow),transparent);opacity:.75}.card-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.plans{align-items:stretch}.plans .card{height:100%;display:flex;flex-direction:column}.plans .button,.plans form{margin-top:auto}.price{font-size:34px;font-weight:900;margin:18px 0;color:#fff}.price small{font-size:13px;color:var(--muted);font-weight:700}button,.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;padding:11px 17px;background:linear-gradient(135deg,var(--yellow),var(--yellow2));color:#111;font-weight:900;cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;box-shadow:0 8px 22px rgba(234,179,8,.16)}button:hover,.button:hover{filter:brightness(1.08);transform:translateY(-1px);text-decoration:none;box-shadow:0 11px 28px rgba(234,179,8,.22)}.button.ghost,button.ghost{background:#171717;color:#f4f4f4;border-color:#353535;box-shadow:none}.button.ghost:hover,button.ghost:hover{border-color:#5b5b5b;background:#202020}.button.danger,button.danger,.danger{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}.badge{display:inline-block;padding:5px 10px;border-radius:999px;background:#242424;color:#d4d4d4;font-size:11px;font-weight:900;border:1px solid #383838}.badge.success{background:rgba(34,197,94,.12);color:#86efac;border-color:rgba(34,197,94,.25)}.badge.error{background:rgba(239,68,68,.12);color:#fca5a5;border-color:rgba(239,68,68,.25)}.ok,.error{padding:14px 16px;border-radius:12px;margin:14px 0}.ok{background:rgba(34,197,94,.1);color:#86efac;border:1px solid rgba(34,197,94,.22)}.error{background:rgba(239,68,68,.1);color:#fca5a5;border:1px solid rgba(239,68,68,.22)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .wide{grid-column:1/-1}label{display:block;color:#d4d4d4;font-weight:700;margin:10px 0}input,select,textarea{width:100%;margin-top:7px;padding:12px 13px;border-radius:10px;border:1px solid #333;background:#0a0a0a;color:#f5f5f5;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--yellow2);box-shadow:0 0 0 3px rgba(250,204,21,.10)}textarea{min-height:90px;resize:vertical}.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin:10px 0 18px}.checks label{padding:11px 12px;border:1px solid #2c2c2c;border-radius:10px;background:#0e0e0e}.checks input{width:auto;margin-right:8px}hr{border:0;border-top:1px solid #2a2a2a;margin:28px 0}.table-wrap{overflow:auto;border:1px solid #282828;border-radius:13px}table{width:100%;border-collapse:collapse;min-width:760px;background:#0d0d0d}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #262626}th{color:#bdbdbd;font-size:11px;text-transform:uppercase;letter-spacing:.09em;background:#151515}tr:hover td{background:#141414}.inline{display:flex;gap:8px;align-items:center}.inline input{max-width:140px;margin:0}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.settings-logo-preview{max-height:70px;max-width:220px;object-fit:contain;display:block;margin-top:10px}.brand-logo{height:32px;width:32px;object-fit:contain;border-radius:7px;vertical-align:middle;margin-right:7px}.stat-card{min-height:140px;display:flex;flex-direction:column;justify-content:center}.stat-card h2{font-size:34px;margin:8px 0 0}.stat-card .eyebrow{font-size:10px}.management-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.management-grid .button{min-height:52px}.admin-nav{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 20px;background:rgba(8,8,8,.97);border-bottom:1px solid rgba(250,204,21,.20);backdrop-filter:blur(16px);box-shadow:0 10px 35px rgba(0,0,0,.55)}.admin-brand{display:flex;align-items:center;gap:8px;min-width:210px;font-weight:950;letter-spacing:.07em;white-space:nowrap;font-size:15px}.admin-brand span{color:var(--yellow)}.admin-brand small{padding:3px 7px;border-radius:999px;background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.22);color:var(--yellow);font-size:9px;font-weight:900;letter-spacing:.12em}.admin-brand-logo{height:30px;width:30px;object-fit:contain;border-radius:7px}.admin-brand-name{max-width:220px;overflow:hidden;text-overflow:ellipsis}.admin-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}.admin-links a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 12px;border:1px solid #303030;border-radius:9px;background:#151515;color:#d7d7d7;text-decoration:none;font-size:11px;font-weight:850;white-space:nowrap;transition:.15s}.admin-links a:hover{background:#202020;border-color:#555;color:#fff;text-decoration:none;transform:translateY(-1px)}.admin-links a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--yellow);margin-right:7px}.admin-links .home-link{background:rgba(250,204,21,.10);border-color:rgba(250,204,21,.28);color:var(--yellow)}.admin-links .logout-link{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.28);color:#fca5a5}.admin-links .logout-link::before{background:#ef4444}.admin-links a:focus{outline:2px solid var(--yellow);outline-offset:2px}.auth{max-width:560px;margin:8vh auto}.h1{font-size:34px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 17px;background:linear-gradient(135deg,var(--yellow),var(--yellow2));color:#111;font-weight:900;text-decoration:none}@media(max-width:1050px){.admin-nav{align-items:flex-start;flex-direction:column}.admin-brand{min-width:0}.admin-links{width:100%;justify-content:flex-start}}@media(max-width:700px){.shell,.container{padding:20px 14px 50px}.top{flex-direction:column}.top-actions{width:100%}.top-actions>*{flex:1}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.card{padding:18px;border-radius:15px}.stat-card h2{font-size:29px}.admin-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.admin-links a{width:100%;font-size:10px;padding:8px 7px}.admin-links .home-link,.admin-links .logout-link{grid-column:auto}}
.portal-footer{width:100%;text-align:center;color:var(--muted);font-size:12px;line-height:1.5;padding:20px 16px 24px;margin-top:auto}.portal-footer a{color:var(--yellow)}body{display:flex;flex-direction:column;min-height:100vh}body>.container,body>.shell{width:100%}.auth{margin-top:8vh;margin-bottom:18px}@media(max-width:700px){.auth{margin-top:5vh;margin-bottom:12px}.portal-footer{padding:16px 12px 20px;font-size:11px}}


/* V20: professional centered authentication branding */
.auth-page{background:radial-gradient(circle at 50% 0%,rgba(250,204,21,.12),transparent 34%),linear-gradient(180deg,#0b0b0b 0%,#050505 100%);}
.auth-page .container{padding-top:clamp(18px,4vh,42px);padding-bottom:clamp(18px,4vh,42px);}
.auth-brand{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:0 auto clamp(10px,1.8vh,18px);gap:7px;position:relative;z-index:2;}
.auth-brand-logo{display:block;width:var(--auth-logo-size);max-width:min(var(--auth-logo-size),72vw);max-height:140px;height:auto;object-fit:contain;border-radius:10px;}
.auth-brand-name{font-size:var(--auth-name-size);line-height:1.08;font-weight:950;letter-spacing:.02em;color:#fff;max-width:94vw;overflow-wrap:anywhere;text-shadow:0 4px 24px rgba(0,0,0,.45);}
.auth-page .card.auth{margin:0 auto;max-width:560px;}
@media(max-width:600px){.auth-page .container{padding:16px 12px 28px;}.auth-brand{margin-bottom:10px;gap:5px;}.auth-brand-logo{max-height:100px;max-width:68vw;}.auth-brand-name{font-size:min(var(--auth-name-size),24px);}.auth-page .card.auth{border-radius:15px;}}

/* V20: announcement popup covers the complete user dashboard */
body.announcement-open{overflow:hidden;}
.announcement-overlay{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:99999;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px);background:rgba(0,0,0,.86);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:announcementFadeIn .18s ease-out;}
.announcement-overlay.hidden{display:none;}
.announcement-modal{position:relative;width:min(900px,96vw);max-height:min(92vh,920px);max-height:min(92dvh,920px);overflow:auto;background:linear-gradient(145deg,#181818,#0b0b0b);border:1px solid rgba(250,204,21,.30);border-radius:22px;padding:clamp(20px,3vw,34px);box-shadow:0 30px 100px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.03);}
.announcement-kicker{display:flex;align-items:center;gap:8px;margin-right:42px;}
.announcement-live-dot{width:8px;height:8px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px rgba(250,204,21,.10);}
.announcement-modal h2{margin:8px 50px 16px 0;font-size:clamp(23px,4vw,38px);line-height:1.1;}
.announcement-media{width:100%;margin:0 0 18px;border:1px solid #303030;border-radius:15px;overflow:hidden;background:#050505;display:flex;align-items:center;justify-content:center;min-height:80px;}
.announcement-media img,.announcement-media video{display:block;width:100%;max-width:100%;max-height:min(55vh,540px);object-fit:contain;background:#050505;}
.announcement-media img{height:auto;}
.announcement-message{white-space:normal;line-height:1.7;color:#ddd;font-size:15px;}
.announcement-close{position:absolute;right:12px;top:11px;width:42px;height:42px;border:1px solid #333;background:#171717;color:#aaa;font-size:29px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.announcement-close:hover{background:#242424;color:#fff;border-color:#555;}
.announcement-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:22px;}
.announcement-actions .button{min-width:110px;}
@keyframes announcementFadeIn{from{opacity:0}to{opacity:1}}
@media(max-width:600px){.announcement-overlay{padding:8px;align-items:center;}.announcement-modal{width:96vw;max-height:94vh;max-height:94dvh;padding:20px 16px;border-radius:17px;}.announcement-modal h2{font-size:clamp(21px,7vw,29px);margin-right:42px;}.announcement-media{border-radius:12px;margin-bottom:14px;}.announcement-media img,.announcement-media video{max-height:48vh;}.announcement-message{font-size:14px;}.announcement-actions{justify-content:stretch;}.announcement-actions .button{flex:1;min-width:0;}.announcement-close{width:38px;height:38px;font-size:26px;right:10px;top:9px;}}
