:root{font-size:16px;}
body{margin:0;font-family:'Montserrat','Segoe UI',sans-serif;background:#090011;color:#f5f5ff;}
.saas-shell{min-height:100vh;}
.shell-grid{display:grid;grid-template-columns:260px 1fr;min-height:100vh;}
.shell-sidebar{background:#11021f;padding:32px 24px;color:#fff;}
.shell-sidebar .brand{display:flex;align-items:center;gap:12px;margin-bottom:24px;}
.shell-sidebar .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#6a0dad,#9c4dcc);display:grid;place-items:center;font-weight:700;}
.shell-sidebar ul{list-style:none;padding:0;margin:0;}
.shell-sidebar a{color:inherit;text-decoration:none;display:flex;gap:12px;padding:12px 0;align-items:center;}
.shell-sidebar .icon{width:18px;height:18px;}
.submenu{margin-left:32px;opacity:.8;max-height:0;overflow:hidden;transition:max-height .3s ease;}
.submenu.open{max-height:220px;}
.shell-content{background:#0f031a;padding:24px 32px 48px;}
.shell-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.user-info{display:flex;align-items:center;gap:12px;}
.avatar{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-weight:600;}
.shell-main{display:flex;flex-direction:column;gap:24px;}
.ads-layout{background:rgba(255,255,255,.02);border-radius:16px;padding:16px;margin-bottom:24px;}
.ads-body{display:grid;grid-template-columns:260px 1fr;gap:16px;}
.ads-header,.ads-sidebar,.ads-inline,.ads-popup{border:1px dashed rgba(255,255,255,.2);border-radius:12px;padding:16px;text-align:center;}
.ads-popup{display:none;}
.ads-popup button{border:none;background:transparent;color:inherit;font-size:18px;margin-left:8px;cursor:pointer;}
.grid{display:grid;gap:24px;}
.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.two-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.card{background:#16052a;border-radius:24px;padding:24px;box-shadow:0 20px 60px rgba(106,13,173,.15);}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.actions{display:flex;gap:12px;flex-wrap:wrap;}
.metric-card{background:#16052a;border-radius:24px;padding:24px;box-shadow:0 20px 60px rgba(106,13,173,.15);text-transform:uppercase;}
.metric-card.empty{text-align:center;opacity:.8;}
.btn,button{border:none;background:linear-gradient(135deg,#6a0dad,#9c4dcc);color:#fff;padding:12px 24px;border-radius:12px;cursor:pointer;transition:transform .2s ease;}
.btn:hover,button:hover{transform:translateY(-2px);}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.2);}
.table{width:100%;border-collapse:collapse;}
.table th,.table td{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.auth-card{max-width:640px;margin:0 auto;background:#16052a;border-radius:24px;padding:24px;box-shadow:0 20px 60px rgba(106,13,173,.15);text-align:center;}
.auth-form{display:flex;flex-direction:column;gap:16px;text-align:left;}
.two-factor-card{text-align:left;gap:18px;}
.two-factor-context{background:rgba(255,255,255,.04);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;margin:18px 0;}
.two-factor-context ul{margin:0;padding-left:20px;color:rgba(255,255,255,.7);}
.code-input{font-size:2rem;letter-spacing:.8rem;text-align:center;padding:18px;border-radius:16px;background:rgba(5,2,11,.6);}
.two-factor-help{text-align:center;color:rgba(255,255,255,.7);}
label{display:flex;flex-direction:column;gap:8px;}
input,textarea,select{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px;background:rgba(0,0,0,.2);color:inherit;}
.wysiwyg-editor{border:1px dashed rgba(255,255,255,.2);border-radius:12px;padding:12px;min-height:160px;}
.progress{background:rgba(255,255,255,.1);border-radius:999px;height:6px;overflow:hidden;}
.progress span{display:block;height:100%;background:linear-gradient(135deg,#6a0dad,#9c4dcc);}
.alert{padding:12px;border-radius:12px;}
.alert-success{background:rgba(6,214,160,.1);color:#06d6a0;}
.alert-error{background:rgba(255,107,107,.1);color:#ff6b6b;}
@media (max-width:960px){.shell-grid{grid-template-columns:1fr;}.shell-sidebar{position:sticky;top:0;z-index:10;}}
.public-page{background:#05020b;color:#f5f5ff;font-family:'Montserrat','Segoe UI',sans-serif;margin:0;min-height:100vh;}
.public-hero{padding:72px clamp(24px,5vw,80px);background:linear-gradient(135deg,#6a0dad 0%,#4e0c7a 45%,#1e012f 100%);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;position:relative;overflow:hidden;}
.public-hero::after{content:'';position:absolute;inset:10% -20% auto;height:280px;background:radial-gradient(circle,#ffffff22 0,#0000 60%);filter:blur(60px);}
.public-hero h1{margin:0;font-size:3rem;}
.public-hero p{max-width:420px;line-height:1.6;}
.public-content{padding:56px clamp(24px,6vw,96px);display:grid;gap:32px;background:#080112;}
.public-card{background:#120224;border-radius:28px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.05);transition:transform .2s ease,box-shadow .2s ease;}
.public-card:hover{transform:translateY(-4px);box-shadow:0 30px 80px rgba(106,13,173,.25);}
.public-card header{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.public-card header h2{margin-bottom:8px;}
.public-card img{max-width:220px;border-radius:18px;box-shadow:0 15px 30px rgba(0,0,0,.4);}
.public-card.empty{display:flex;align-items:center;justify-content:center;min-height:160px;text-align:center;color:rgba(255,255,255,.7);}
.download-list{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:16px;}
.download-list li{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid rgba(255,255,255,.08);}
.gallery{display:flex;gap:14px;margin-top:20px;flex-wrap:wrap;}
.gallery img{width:140px;border-radius:14px;opacity:.85;transition:opacity .2s ease;}
.gallery img:hover{opacity:1;}
.public-footer{text-align:center;padding:40px;background:#05020b;color:rgba(255,255,255,.65);border-top:1px solid rgba(255,255,255,.04);}
.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.4px;}
.btn.ghost{color:#f5f5ff;}