:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eef3fb;background:#101722;--bg:#101722;--panel:#182231;--panel2:#202c3d;--panel3:#27364a;--line:#33445b;--muted:#9cacbf;--text:#eef3fb;--accent:#6e9cff;--accent2:#8bb2ff;--good:#65d2a5;--warn:#f5c469;--bad:#ff808b;--shadow:0 18px 50px rgba(0,0,0,.24)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(74,113,190,.18),transparent 34rem),radial-gradient(circle at 90% 15%,rgba(71,121,104,.12),transparent 28rem),var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.brandmark{width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#729dff,#456dcc);display:grid;place-items:center;font-weight:900;color:white;box-shadow:var(--shadow)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);padding:28px}.login-hero{border:1px solid var(--line);border-radius:26px;background:linear-gradient(145deg,rgba(32,44,61,.94),rgba(20,29,42,.94));padding:clamp(34px,6vw,88px);display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent2);font-weight:800}.login-hero h1{font-size:clamp(40px,6vw,76px);line-height:.98;margin:14px 0 22px;max-width:850px}.login-hero p{max-width:720px;color:#b9c6d8;font-size:18px;line-height:1.7}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:38px}.feature-row div{padding:18px;border:1px solid #3a4c65;background:#1d2939;border-radius:18px}.feature-row b{display:block;margin-bottom:5px}.feature-row span{font-size:13px;color:var(--muted);line-height:1.5}.login-card-wrap{display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.login-card h2{margin:10px 0 8px;font-size:26px}.login-card p{color:var(--muted);line-height:1.55}.discord-btn,.primary-btn,.ghost-btn{border:0;border-radius:13px;padding:12px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px}.discord-btn{width:100%;margin-top:18px;background:#5865f2;color:white}.primary-btn{background:var(--accent);color:white}.ghost-btn{background:#253247;color:#dce6f4;border:1px solid #3a4b63}.errorbox{border:1px solid rgba(255,128,139,.45);background:rgba(255,128,139,.1);color:#ffb1b8;padding:12px 14px;border-radius:12px;margin-top:14px}.shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{border-right:1px solid var(--line);background:rgba(18,26,38,.94);padding:22px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 6px 22px}.brand strong{display:block}.brand small{color:var(--muted)}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#b8c5d6;padding:11px 12px;border-radius:12px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:700}.nav button:hover,.nav button.active{background:#243247;color:#fff}.nav button.active{box-shadow:inset 3px 0 0 var(--accent)}.side-foot{position:absolute;left:16px;right:16px;bottom:20px;padding:14px;border-radius:16px;background:#1c2737;border:1px solid #314158}.side-foot b,.side-foot span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-foot span{font-size:12px;color:var(--muted);margin-top:4px}.content{padding:28px 32px 64px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.topbar h1{margin:4px 0 0;font-size:32px}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:8px}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat{background:linear-gradient(155deg,#202c3d,#1a2534);border:1px solid #36475e;border-radius:18px;padding:18px}.stat span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.stat strong{display:block;font-size:26px;margin-top:8px}.grid2{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 8px 30px rgba(0,0,0,.12)}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.panel-head h2{font-size:18px;margin:0}.panel-head span{color:var(--muted);font-size:13px}.list{display:grid;gap:10px}.row{background:#1d2939;border:1px solid #33455c;border-radius:15px;padding:14px;display:flex;justify-content:space-between;gap:16px;align-items:center}.row:hover{border-color:#476180}.row-main{min-width:0}.row-main b{display:block}.row-main small{display:block;color:var(--muted);margin-top:4px;line-height:1.4}.row-side{text-align:right;flex:0 0 auto}.row-side strong{display:block}.row-side small{color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid #465873;background:#28364a;color:#c8d4e5}.badge.good{border-color:rgba(101,210,165,.35);background:rgba(101,210,165,.11);color:#91e3be}.badge.warn{border-color:rgba(245,196,105,.35);background:rgba(245,196,105,.1);color:#f8d58e}.badge.bad{border-color:rgba(255,128,139,.35);background:rgba(255,128,139,.1);color:#ffabb2}.progress{height:7px;background:#111923;border-radius:99px;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#5f8cff,#89afff);border-radius:99px}.money{font-variant-numeric:tabular-nums}.section-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.section-toolbar input,.section-toolbar select,.form input,.form select,.form textarea{background:#111a26;border:1px solid #3a4b63;color:var(--text);border-radius:11px;padding:10px 12px;outline:none}.section-toolbar input:focus,.form input:focus,.form select:focus,.form textarea:focus{border-color:#668bd2;box-shadow:0 0 0 3px rgba(102,139,210,.14)}.empty{padding:32px;text-align:center;color:var(--muted);border:1px dashed #3a4a60;border-radius:14px}.timeline{display:grid;gap:12px}.event{display:grid;grid-template-columns:12px 1fr;gap:12px}.event i{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:6px;box-shadow:0 0 0 4px rgba(110,156,255,.12)}.event b{display:block}.event p{margin:5px 0 0;color:#bac7d8;white-space:pre-wrap;line-height:1.5}.event small{color:var(--muted)}.form{display:grid;gap:12px}.form label{display:grid;gap:6px;color:#cbd6e4;font-size:13px;font-weight:700}.form textarea{min-height:140px;resize:vertical}.request-card{background:#1c2737;border:1px solid #34465e;border-radius:15px;padding:15px}.request-card header{display:flex;justify-content:space-between;gap:12px}.request-card p{color:#bcc9da;white-space:pre-wrap;line-height:1.5}.request-card footer{font-size:12px;color:var(--muted)}.file-btn{border:1px solid #425570;background:#26364b;color:white;border-radius:10px;padding:8px 10px;text-decoration:none;font-size:12px;font-weight:800}.legacy-link{color:#9ebcff;text-decoration:none}.toast{position:fixed;right:24px;bottom:24px;background:#233148;border:1px solid #45607f;padding:12px 16px;border-radius:13px;box-shadow:var(--shadow);z-index:9}.mobile-head{display:none}@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:760px){.login-shell{grid-template-columns:1fr;padding:12px}.login-hero{padding:30px 22px}.feature-row{grid-template-columns:1fr}.login-card-wrap{padding:14px 0}.shell{display:block}.sidebar{display:none}.mobile-head{display:flex;position:sticky;top:0;z-index:5;background:rgba(16,23,34,.94);backdrop-filter:blur(14px);padding:10px 14px;border-bottom:1px solid var(--line);justify-content:space-between}.mobile-head select{background:#202c3d;color:white;border:1px solid #3c4d65;border-radius:10px;padding:8px}.content{padding:20px 14px 54px}.topbar{align-items:flex-start}.topbar h1{font-size:26px}.cards{grid-template-columns:repeat(2,1fr)}.row{align-items:flex-start}.row-side{max-width:38%}}@media(max-width:460px){.cards{grid-template-columns:1fr}.top-actions{display:none}}


/* Phase 3.2.3 project deliveries */
.project-downloads{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.project-downloads .file-btn{display:inline-flex;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row{align-items:flex-start}

/* Phase 3.2.7 · Discord tickets: active + archived side by side */
.discord-ticket-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.discord-ticket-group{min-width:0;border:1px solid #34465e;background:#172130;border-radius:17px;padding:15px}.discord-ticket-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.discord-ticket-group>header h2{margin:3px 0 0;font-size:17px}.discord-ticket-group>header>strong{display:grid;place-items:center;min-width:34px;height:34px;border-radius:11px;background:#24344b;border:1px solid #405675}.discord-ticket-grid{display:grid;gap:10px}.discord-ticket-card{border:1px solid #3b516d;background:#202d40;border-radius:14px;padding:14px;min-width:0}.discord-ticket-card.archived{background:#1b2533;border-color:#374659;opacity:.88}.discord-ticket-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.discord-ticket-top>div{min-width:0}.discord-ticket-top small{display:block;color:var(--muted);margin-top:4px}.discord-channel{display:block;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discord-ticket-meta{margin:12px 0 8px;padding:9px 10px;border-radius:10px;background:#131c28;border:1px solid #304158;display:grid;gap:3px}.discord-ticket-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.discord-ticket-meta code{font-size:12px;color:#c9d8ec;overflow:hidden;text-overflow:ellipsis}.discord-ticket-card>small{color:var(--muted);font-size:11px}.empty.compact{padding:20px 12px}
@media(max-width:980px){.discord-ticket-layout{grid-template-columns:1fr}}

/* Phase 3.2.11 · SQLMOD portal visual refresh */
:root{--bg:#0d1219;--panel:#161f2a;--panel2:#1b2633;--panel3:#223041;--line:#2f3f52;--muted:#98a5b6;--text:#f4f6f9;--accent:#d8b66f;--accent2:#e4c987;--good:#69d09d;--warn:#e7bd67;--bad:#ef7d86;--shadow:0 20px 60px rgba(0,0,0,.34)}
body{background:radial-gradient(circle at 8% 0%,rgba(216,182,111,.09),transparent 30rem),radial-gradient(circle at 94% 8%,rgba(255,255,255,.035),transparent 24rem),linear-gradient(180deg,#0d1219,#0b1016 65%,#090d12);}
.brandmark{background:linear-gradient(145deg,#e0bf78,#9b7c42);color:#101317}
.brand-logo{width:48px;height:48px;object-fit:contain;flex:none;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}.login-logo-wrap{display:flex;align-items:center;margin-bottom:18px}.login-logo{width:min(220px,42vw);max-height:150px;object-fit:contain;filter:drop-shadow(0 18px 28px rgba(0,0,0,.32))}.login-help{font-size:12px;margin-top:18px!important}.login-shell{gap:24px;background:transparent}.login-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(27,37,50,.97),rgba(15,21,29,.98));border-color:#334356}.login-hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-130px;bottom:-170px;background:radial-gradient(circle,rgba(216,182,111,.16),transparent 68%);pointer-events:none}.login-hero h1{letter-spacing:-.045em}.login-hero p{color:#bdc7d4}.feature-row div{background:linear-gradient(160deg,#1b2531,#141d27);border-color:#334356}.login-card{background:linear-gradient(160deg,#17212d,#111821);border-color:#35465a}.discord-btn{background:#5865f2;box-shadow:0 10px 24px rgba(88,101,242,.2)}.primary-btn{background:linear-gradient(135deg,#dfbf79,#b48e4d);color:#15120b}.ghost-btn{background:#1b2633;color:#e7eaf0;border-color:#35465a}.ghost-btn:hover{border-color:#5a4a2e;background:#202c3a}.eyebrow{color:var(--accent2)}
.sidebar{background:linear-gradient(180deg,rgba(14,20,28,.98),rgba(11,16,22,.99));border-right-color:#263545}.brand{border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:14px;padding-bottom:18px}.nav button{color:#aab4c1}.nav button:hover{background:#19232f;color:#fff}.nav button.active{background:linear-gradient(90deg,rgba(216,182,111,.13),rgba(216,182,111,.035));color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.side-foot{background:#151f2a;border-color:#2f4053}.content{max-width:1700px;width:100%;margin:0 auto}.topbar{padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.055)}.topbar h1{letter-spacing:-.035em}.panel{background:linear-gradient(165deg,#171f29,#121a23);border-color:#2e3c4d}.row{background:#151f2a;border-color:#2e4053}.row:hover{border-color:#665636;background:#182330}.stat{background:linear-gradient(155deg,#1a2531,#131b24);border-color:#314154;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}.stat strong{color:#fff}.progress{background:#0d131b}.progress i{background:linear-gradient(90deg,#b58e4e,#e0bf78)}.file-btn{background:#1d2937;border-color:#40526a}.file-btn:hover{border-color:#806a3d;color:#f6ddb0}.event i{background:var(--accent);box-shadow:0 0 0 4px rgba(216,182,111,.12)}.section-toolbar input,.section-toolbar select,.form input,.form select,.form textarea{background:#0f161f;border-color:#34465a}.section-toolbar input:focus,.form input:focus,.form select:focus,.form textarea:focus{border-color:#8e7644;box-shadow:0 0 0 3px rgba(216,182,111,.11)}.request-card{background:#151f2a;border-color:#304156}.toast{background:#1b2633;border-color:#665636}.legacy-link{color:#e3c77f}
.welcome-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,300px);gap:28px;align-items:center;margin-bottom:18px;padding:28px 32px;border:1px solid #3b4a5c;border-radius:22px;background:linear-gradient(135deg,rgba(30,41,54,.98),rgba(17,24,32,.98));position:relative;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.16)}.welcome-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(216,182,111,.075),transparent 45%);pointer-events:none}.welcome-hero>div{position:relative;z-index:1}.welcome-hero h2{font-size:34px;letter-spacing:-.04em;margin:7px 0 8px}.welcome-hero p{max-width:720px;color:#b9c4d1;line-height:1.6;margin:0}.welcome-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.welcome-logo{justify-self:end;width:min(270px,100%);max-height:180px;object-fit:contain;filter:drop-shadow(0 18px 30px rgba(0,0,0,.35));opacity:.96}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-brand img{width:30px;height:30px;object-fit:contain}.discord-ticket-group{background:#141e29;border-color:#304256}.discord-ticket-card{background:#192532;border-color:#33485e}.discord-ticket-meta{background:#0e151e;border-color:#2b3b4d}
@media(max-width:900px){.welcome-hero{grid-template-columns:1fr}.welcome-logo{justify-self:start;width:180px}.login-logo{width:160px}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.welcome-hero{padding:22px}.welcome-hero h2{font-size:28px}.welcome-logo{width:135px}.brand-logo{width:42px;height:42px}}

/* Product releases use the same portal rows and download buttons as the existing customer area. */
.cards{grid-template-columns:repeat(6,minmax(0,1fr))}.product-portal-row{align-items:flex-start}.row-main>p{margin:8px 0 0;color:#b9c4d1;white-space:pre-wrap;line-height:1.5;font-size:13px}.portal-release-list{display:grid;gap:8px;margin-top:12px}.portal-release-list>div{padding:10px 11px;border:1px solid #304156;border-radius:11px;background:#111a23}.portal-release-list header{display:grid;grid-template-columns:auto auto 1fr;gap:9px;align-items:center}.portal-release-list header b{color:var(--accent2)}.portal-release-list header span,.portal-release-list header small{font-size:11px;color:var(--muted);margin:0}.portal-release-list>div>p{margin:7px 0 0;color:#b9c4d1;font-size:12px;white-space:pre-wrap;line-height:1.45}@media(max-width:1300px){.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.cards{grid-template-columns:1fr}}

.invoice-download{display:inline-flex;margin-top:8px;align-items:center;justify-content:center;white-space:nowrap}.row-side .invoice-download{margin-left:auto}
/* SQLMOD Customer Portal v2 · beta.15.48 · Visual design inspired by sqlmod.de */
:root{--bg:#060b0e;--panel:#0b1418;--panel2:#101b20;--panel3:#142429;--line:#21343a;--muted:#8e9ca8;--text:#eff7f4;--accent:#35e99b;--accent2:#6bf3b6;--good:#50e5a3;--warn:#efc06b;--bad:#ff777f;--shadow:0 16px 46px #0006}
html{color-scheme:dark}body{background:radial-gradient(ellipse 760px 500px at 79% 3%,rgba(11,136,86,.1),transparent 65%),linear-gradient(180deg,#070c10,#060a0e 65%,#05090c);color:var(--text)}
button,a,select{ -webkit-tap-highlight-color:transparent }button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button{transition:border-color .17s ease,background .17s ease,color .17s ease,transform .17s ease}button:hover{border-color:#3b9c74}button:active{transform:translateY(1px)}
.portal-v2.shell{grid-template-columns:230px minmax(0,1fr);max-width:none;min-height:100vh}
.portal-v2 .sidebar{background:radial-gradient(ellipse at 5% 80%,rgba(20,148,83,.05),transparent 50%),#080e12;border-right:1px solid #1a2a2e;padding:18px 15px 16px;display:flex;flex-direction:column;gap:6px;height:100dvh;min-height:630px;z-index:12}
.portal-v2 .brand{gap:9px;padding:0 8px 20px;margin-bottom:14px;border-bottom:1px solid #1a282c}.portal-v2 .brand-logo{height:42px;width:42px}.portal-v2 .brand strong{font-size:12px;letter-spacing:.045em}.portal-v2 .brand small{font-size:12px}
.portal-v2 .nav{display:grid;gap:6px}.portal-v2 .nav button{border:1px solid transparent;background:transparent;color:#aab8c3;min-height:44px;padding:11px 13px;border-radius:11px;display:flex;gap:12px;font-weight:650;font-size:13px}
.portal-v2 .nav button .ui-icon{color:#a0b7c4;flex-shrink:0}.portal-v2 .nav button:hover{background:#10231d;color:white}.portal-v2 .nav button.active{color:#e8fff3;border-color:rgba(48,229,147,.38);background:linear-gradient(95deg,rgba(44,228,142,.19),rgba(37,213,131,.045));box-shadow:inset 3px 0 0 #36eda0,0 0 16px #00e48b15}.portal-v2 .nav button.active .ui-icon{color:#50f0ae}
.portal-v2 .sidebar-lower{margin-top:auto;display:grid;gap:15px}.portal-v2 .side-help{padding:15px 12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(150deg,#0b181b,#081116);display:grid;grid-template-columns:30px 1fr;gap:7px;color:#eafaf2}
.portal-v2 .help-mark{height:27px;width:27px;background:#123328;border:1px solid #286a4c;color:var(--accent);border-radius:9px;display:grid;place-items:center}.portal-v2 .side-help b{font-size:12px}.portal-v2 .side-help p{font-size:11px;color:var(--muted);line-height:1.45;margin:4px 0}
.portal-v2 .side-help button{grid-column:1 / -1;border:1px solid #224139;color:#75efb9;background:#0d211b;border-radius:9px;padding:10px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:700;cursor:pointer}
.portal-v2 .side-foot{position:static;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#091319;min-width:0}.portal-v2 .side-avatar{width:36px;height:36px;flex:none}.portal-v2 .side-avatar img,.portal-v2 .side-avatar .avatar-fallback{width:100%;height:100%;border-radius:50%;object-fit:cover}.portal-v2 .side-account{min-width:0}.portal-v2 .side-account b{font-size:12px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:block}.portal-v2 .side-account span{font-size:11px;color:var(--muted)}.portal-v2 .account-dot{width:8px;height:8px;flex:none;background:#43ef9b;border-radius:99px;margin-left:auto;box-shadow:0 0 0 3px #17422e}
.portal-v2 .page-column{min-width:0;min-height:100vh}.portal-v2 .utility-header{position:sticky;top:0;z-index:10;background:rgba(6,12,15,.93);backdrop-filter:blur(18px);border-bottom:1px solid #18282a;min-height:74px;padding:14px clamp(16px,2.3vw,35px);display:flex;align-items:center;justify-content:space-between;gap:16px}
.portal-v2 .search-wrap{width:min(450px,48vw);position:relative;display:flex;align-items:center;gap:10px;border:1px solid #254039;background:#091219;border-radius:11px;padding:0 13px;height:42px;color:#90b9a9}.portal-v2 .search-wrap input{flex:1;min-width:0;background:transparent;color:var(--text);border:0;outline:0;font-size:13px}.portal-v2 .search-wrap input::placeholder{color:#7a929d}.portal-v2 .search-wrap input::-webkit-search-cancel-button{cursor:pointer}.portal-v2 .search-wrap kbd{font-size:10px;white-space:nowrap;color:#839ba4;background:#091014;border:1px solid #203038;padding:3px 5px;border-radius:5px}
.portal-v2 .search-results{position:absolute;top:calc(100% + 7px);left:0;right:0;background:#0c191e;border:1px solid #2d604b;box-shadow:0 20px 50px #000b;border-radius:13px;padding:6px;max-height:370px;overflow:auto}.portal-v2 .search-results[hidden]{display:none}.portal-v2 .search-results button{display:flex;align-items:center;gap:11px;text-align:left;width:100%;background:transparent;color:var(--text);border:0;border-radius:8px;padding:10px;cursor:pointer;font-size:12px}.portal-v2 .search-results button:hover{background:#153328}.portal-v2 .search-results button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-v2 .search-results button small{color:var(--accent);margin-left:auto}.portal-v2 .search-results p{margin:8px;color:var(--muted);font-size:13px}
.portal-v2 .top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.portal-v2 .language-switch{display:flex;align-items:center;gap:5px;background:#071511;border:1px solid #215940;padding:3px 7px;border-radius:10px;min-height:40px}.portal-v2 .language-switch button{border:0;background:transparent;color:var(--muted);padding:8px 4px;font-size:12px;font-weight:700;cursor:pointer}.portal-v2 .language-switch button.selected{color:#eafff4}.portal-v2 .language-switch>span{color:#466158}
.portal-v2 .ghost-btn{background:#0b181b;border:1px solid #28423c;border-radius:10px;color:#e4f6ec;font-size:12px;font-weight:700;padding:10px 12px;gap:8px;white-space:nowrap;min-height:39px}.portal-v2 .ghost-btn:hover{background:#102a20;border-color:#328960}.portal-v2 .primary-btn{background:linear-gradient(120deg,#32e797,#6bf2b2);color:#061710;box-shadow:0 9px 25px #16dc8c35;border-radius:10px;padding:12px 17px;font-size:13px}.portal-v2 .primary-btn:hover{background:linear-gradient(120deg,#73ffd0,#41e8a0)}
.portal-v2 .content{max-width:1940px;margin:0 auto;padding:17px clamp(16px,2.2vw,34px) 46px}.portal-v2 .topbar{border:0;margin:0;padding:0}.portal-v2 .topbar.overview-heading{display:none}.portal-v2 .topbar:not(.overview-heading){margin:7px 0 22px}.portal-v2 .topbar h1{font-size:27px;line-height:1.2;margin:5px 0}.portal-v2 .topbar p{font-size:12px}.portal-v2 .eyebrow{color:var(--accent);font-size:10px;letter-spacing:.15em}
.portal-v2 .welcome-hero{display:grid;grid-template-columns:minmax(300px,1fr) minmax(320px,.94fr);gap:clamp(18px,2vw,35px);min-height:268px;align-items:center;position:relative;border:1px solid #23503e;border-radius:14px;margin-bottom:17px;padding:28px 30px;box-shadow:none;background:radial-gradient(ellipse at 80% 15%,rgba(7,152,89,.16),transparent 58%),repeating-linear-gradient(90deg,transparent 0 59px,rgba(34,99,70,.035) 60px 61px),linear-gradient(130deg,#081219,#091614 75%,#07130f);overflow:hidden}
.portal-v2 .welcome-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 68% 0%,#0fa5680d,transparent 60%);pointer-events:none}.portal-v2 .hero-copy{min-width:0}.portal-v2 .hero-copy h2{font-size:clamp(26px,2.7vw,41px);line-height:1.06;letter-spacing:-.045em;margin:13px 0 13px;color:#f7fffb;font-weight:850}.portal-v2 .hero-copy h2 span{color:#69efaa;overflow-wrap:anywhere}.portal-v2 .hero-copy p{font-size:14px;line-height:1.65;color:#aabfc4;margin:0;max-width:540px}.portal-v2 .welcome-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}
.portal-v2 .discord-profile{min-width:0;padding:21px;border:1px solid #23503e;border-radius:14px;background:radial-gradient(circle at 78% 0%,#0ac47518,transparent 60%),linear-gradient(145deg,#0b1d1a,#091319);box-shadow:0 8px 28px #0004;z-index:1}.portal-v2 .discord-card-top{display:flex;align-items:center;gap:18px;min-width:0}.portal-v2 .hero-avatar{width:98px;height:98px;flex:none;position:relative;display:grid;place-items:center;border:2px solid #33d58b;background:#0f271e;border-radius:50%;padding:4px;box-shadow:0 0 22px #10d87931}.portal-v2 .hero-avatar img,.portal-v2 .hero-avatar .avatar-fallback{width:100%;height:100%;border-radius:50%;object-fit:cover;display:grid;place-items:center;font-size:32px;font-weight:850;color:#61edab}.portal-v2 .hero-avatar .online-indicator{position:absolute;bottom:5px;right:4px;background:#39ec97;box-shadow:0 0 0 4px #0d201a;width:16px;height:16px;border-radius:50%}
.portal-v2 .discord-identity{min-width:0}.portal-v2 .discord-connection{font-size:9px;color:#54f4a9;letter-spacing:.13em;font-weight:800;display:flex;align-items:center;gap:7px}.portal-v2 .discord-connection i{width:6px;height:6px;border-radius:50%;background:var(--accent)}.portal-v2 .discord-identity h3{font-size:19px;margin:10px 0 4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal-v2 .discord-identity p{font-size:11px;color:#97abb8;margin:0 0 10px;overflow-wrap:anywhere}.portal-v2 .verified-pill{display:inline-flex;align-items:center;gap:5px;background:#102d24;border:1px solid #245a42;border-radius:999px;padding:5px 9px;color:#8bf7ba;font-size:10px;font-weight:700}.portal-v2 .discord-card-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;border-top:1px solid #234139;margin-top:20px;padding-top:16px}.portal-v2 .discord-card-bottom>div{display:flex;align-items:center;gap:8px;font-size:10px;color:#afc2c7;min-width:0}.portal-v2 .discord-card-bottom .ui-icon{color:#5ae8ac;flex:none}
.portal-v2 .cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.portal-v2 .stat{padding:15px 13px 14px;text-align:left;display:grid;position:relative;grid-template-rows:31px min-content min-content;align-content:start;gap:6px;min-height:117px;border:1px solid #203b33;border-radius:12px;background:linear-gradient(150deg,#0d1b1b,#081217);box-shadow:none;cursor:pointer;min-width:0}.portal-v2 .stat:before{content:none}.portal-v2 .stat:hover{background:#10241e;border-color:#389c6b;transform:translateY(-1px)}.portal-v2 .stat-icon{position:relative;display:grid;place-items:center;border:1px solid #23543e;border-radius:9px;width:33px;height:33px;color:#70efaf;background:#102b22}.portal-v2 .stat-label{font-size:11px;color:#a8b9c4;line-height:1.25;letter-spacing:0;text-transform:none}.portal-v2 .stat strong{font-size:23px;margin:0;color:#f5fcf8;line-height:1.2;white-space:nowrap}.portal-v2 .stat-arrow{position:absolute;right:13px;top:19px;color:#748f8a}
.portal-v2 .overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}.portal-v2 .overview-bottom{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:13px}.portal-v2 .panel{min-width:0;background:linear-gradient(155deg,#0b151a,#080f14);border:1px solid #223841;border-radius:13px;padding:17px 16px;box-shadow:none}.portal-v2 .panel-head{align-items:flex-start;gap:10px;margin-bottom:15px}.portal-v2 .panel-head h2{color:#f2f8f6;font-size:17px;letter-spacing:-.025em;margin:0 0 4px}.portal-v2 .panel-head span{font-size:11px;line-height:1.4;color:#809baa}.portal-v2 .panel-head .ghost-btn{flex-shrink:0;padding:8px 10px;min-height:35px;font-size:11px}
.portal-v2 .compact-list{display:grid;gap:8px}.portal-v2 .overview-project,.portal-v2 .overview-update{width:100%;min-width:0;border:1px solid #192e35;background:#091318;border-radius:11px;text-align:left;padding:10px 11px;display:flex;align-items:center;gap:11px;color:#eaf5ef;cursor:pointer}.portal-v2 .overview-project:hover,.portal-v2 .overview-update:hover{border-color:#3b7658;background:#0d1e1b}.portal-v2 .project-emblem{width:51px;height:51px;display:grid;place-items:center;background:linear-gradient(135deg,#173e30,#102130);border:1px solid #26493f;border-radius:9px;color:#7eedb9;flex:none}.portal-v2 .project-title{min-width:0;flex:1}.portal-v2 .project-title strong{display:block;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal-v2 .project-title small{display:block;font-size:10px;line-height:1.4;color:#96a8b5;margin-top:4px}.portal-v2 .overview-project>.ui-icon{flex:none;color:#759487}.portal-v2 .overview-project .badge{flex:none}.portal-v2 .badge.good{background:#0e2b21;border-color:#225f41;color:#7befa9}.portal-v2 .badge.warn{background:#2a2416;border-color:#6c5a27;color:#efd293}.portal-v2 .badge.bad{background:#341c23;border-color:#70403f;color:#ffa4a4}
.portal-v2 .overview-update{display:grid;grid-template-columns:9px minmax(0,1fr) 16px;gap:11px;min-height:64px}.portal-v2 .overview-update>.update-dot{width:9px;height:9px;border-radius:50%;background:#47f39f;box-shadow:0 0 10px #33ee9966}.portal-v2 .overview-update>span:nth-child(2){min-width:0}.portal-v2 .overview-update b{display:block;font-size:12px}.portal-v2 .overview-update small{display:block;color:#74998d;font-size:10px;margin-top:3px}.portal-v2 .overview-update span span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#a5b8bb;font-size:11px;line-height:1.4;margin-top:3px}
.portal-v2 .invoice-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.portal-v2 .portal-table-wrap{overflow-x:auto;max-width:100%}.portal-v2 .invoice-table th{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:#84949b;text-align:left;padding:10px 7px;border-bottom:1px solid #22363c}.portal-v2 .invoice-table td{padding:12px 7px;border-bottom:1px solid #1d3036;color:#dce9e5}.portal-v2 .file-btn{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:8px 9px;font-size:11px;border-radius:8px;background:#0e201f;border-color:#2a5047;color:#edfef5;text-decoration:none;white-space:nowrap}.portal-v2 .file-btn:hover{border-color:#42ce93;color:#82f3b8}
.portal-v2 .overview-product{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 8px;border:1px solid #1d3235;border-radius:10px;background:#091418}.portal-v2 .product-emblem{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#112f26;color:#65eeac;flex:none}.portal-v2 .product-text{min-width:0;flex:1}.portal-v2 .product-text b{display:block;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.portal-v2 .product-text small{display:block;color:#8caaab;font-size:10px;margin-top:3px}.portal-v2 .overview-product .file-btn{flex:none}.portal-v2 .overview-product .ghost-btn{flex:none}
.portal-v2 .support-empty{border:1px dashed #23403b;border-radius:11px;min-height:167px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:15px;color:#5cf1ae}.portal-v2 .support-empty strong{color:#e0efe9;font-size:12px}.portal-v2 .support-empty p{font-size:11px;color:#91a9b4;margin:0;line-height:1.45}.portal-v2 .support-empty button{margin-top:4px}
/* Existing functional pages retain their existing layouts with the same renewed palette. */
.portal-v2 .row{background:#0b181d;border-color:#20343c}.portal-v2 .row:hover{background:#10251f;border-color:#36825d}.portal-v2 .request-card,.portal-v2 .discord-ticket-card{background:#0b191d;border-color:#24413a}.portal-v2 .discord-ticket-group{background:#0b151b;border-color:#24413a}.portal-v2 .discord-ticket-meta{background:#071115;border-color:#213b37}.portal-v2 .portal-release-list>div{background:#09161c;border-color:#1e3735}.portal-v2 .form input,.portal-v2 .form select,.portal-v2 .form textarea{background:#071417;border-color:#26483e;color:#effdf5}.portal-v2 .form input:focus,.portal-v2 .form select:focus,.portal-v2 .form textarea:focus{border-color:#36d38c;box-shadow:0 0 0 3px #36d38c22}.portal-v2 .progress i{background:linear-gradient(90deg,#229765,#62f4b5)}.portal-v2 .event i{background:var(--accent);box-shadow:0 0 0 4px #35ed9a22}
.portal-v2 .mobile-head{display:none}.portal-v2 .empty{background:#091319;border-color:#25413b;color:#879fa3;font-size:12px}.portal-v2 .row-main>p{color:#9fb4bd}.portal-v2 .row-side{min-width:0}.portal-v2 .login-shell{background:transparent}
/* Login and mobile: retain Discord OAuth, preserve all existing workflows. */
.login-hero,.login-card{background:linear-gradient(145deg,#0e1c1c,#080f14);border-color:#285543}.login-hero:after{background:radial-gradient(circle,#21e78b25,transparent 70%)}.feature-row div{background:#0b1b1a;border-color:#255342}.login-hero p,.login-card p{color:#9ab9af}.login-card .brand{border-color:#21533a}.login-hero .eyebrow,.login-card .eyebrow{color:#69f1b3}.discord-btn{background:#5865f2}.discord-btn:hover{background:#7781fa}
@media (max-width:1390px){.portal-v2 .welcome-hero{grid-template-columns:minmax(260px,1fr) minmax(280px,.95fr);padding:25px 22px}.portal-v2 .discord-card-bottom{grid-template-columns:1fr 1fr}.portal-v2 .overview-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-v2 .support-widget{grid-column:1/-1}.portal-v2 .stat{padding:13px 10px}.portal-v2 .stat strong{font-size:21px}}
@media (max-width:1120px){.portal-v2.shell{grid-template-columns:205px minmax(0,1fr)}.portal-v2 .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-v2 .welcome-hero{grid-template-columns:1fr}.portal-v2 .discord-profile{max-width:680px}.portal-v2 .overview-grid{grid-template-columns:1fr}}
@media (max-width:760px){
 .portal-v2.shell{display:block;min-height:100vh}.portal-v2 .sidebar{display:none}.portal-v2.menu-open .sidebar{display:flex;position:fixed;top:0;bottom:0;left:0;width:min(280px,88vw);height:100dvh;min-height:0;z-index:30;overflow-y:auto;box-shadow:30px 0 60px #000b}.portal-v2 .utility-header{min-height:68px;padding:12px 14px;gap:8px}.portal-v2 .search-wrap{width:100%;max-width:none;flex:1;padding:0 9px}.portal-v2 .search-wrap input{font-size:14px}.portal-v2 .search-wrap kbd{display:none}.portal-v2 .top-actions{flex-shrink:0;gap:5px}.portal-v2 .top-actions .ghost-btn{display:none}.portal-v2 .language-switch{min-height:42px;padding:2px 6px}.portal-v2 .mobile-head{display:flex;align-items:center;gap:10px;position:relative;background:transparent;border:0;padding:10px 15px}.portal-v2 .mobile-head #mobileMenuBtn{background:#102820;border:1px solid #315b46;color:#baf8d6;width:43px;height:43px;display:grid;place-items:center;border-radius:10px;font-size:22px}.portal-v2 .mobile-head b{font-size:15px;color:#daf8e8}.portal-v2 .mobile-head select{font-size:16px;background:#101e20;border:1px solid #315b46;margin-left:auto;max-width:52%;min-height:43px;color:var(--text)}.portal-v2 .content{padding:12px 13px 35px}.portal-v2 .topbar:not(.overview-heading){margin:5px 0 16px}.portal-v2 .welcome-hero{padding:23px 19px;gap:21px}.portal-v2 .hero-copy h2{font-size:clamp(25px,6.4vw,34px)}.portal-v2 .hero-copy p{font-size:13px}.portal-v2 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-v2 .overview-grid,.portal-v2 .overview-bottom{grid-template-columns:1fr}.portal-v2 .support-widget{grid-column:auto}.portal-v2 .panel{padding:15px 12px}.portal-v2 .stat{min-height:108px}.portal-v2 .row{flex-wrap:wrap}.portal-v2 .row-side{max-width:none}.portal-v2 .project-title strong{white-space:normal}.portal-v2 .discord-card-bottom{grid-template-columns:1fr 1fr}.portal-v2 .overview-project .badge{display:none}.portal-v2 .topbar p{overflow-wrap:anywhere}.portal-v2 .portal-table-wrap{max-width:100%}
}
@media (max-width:420px){.portal-v2 .welcome-hero{padding:20px 14px}.portal-v2 .discord-profile{padding:16px}.portal-v2 .hero-avatar{width:78px;height:78px}.portal-v2 .discord-identity h3{font-size:16px}.portal-v2 .discord-card-bottom{grid-template-columns:1fr}.portal-v2 .overview-product{flex-wrap:wrap}.portal-v2 .overview-product .file-btn{margin-left:50px}.portal-v2 .panel-head{flex-wrap:wrap}.portal-v2 .stat strong{font-size:20px}.portal-v2 .stat-label{font-size:10px}.portal-v2 .welcome-actions .primary-btn,.portal-v2 .welcome-actions .ghost-btn{width:100%}.portal-v2 .discord-connection{font-size:8px}}
@media (prefers-reduced-motion:reduce){.portal-v2 *{transition:none!important}}

.portal-v2 .avatar-fallback[hidden],.avatar-fallback[hidden]{display:none!important}
.login-language{display:flex;gap:7px;margin-bottom:17px;justify-content:flex-end}.login-language button{border:1px solid #2e5141;border-radius:7px;background:#101e20;color:#aabcb7;padding:7px 10px;cursor:pointer;font-size:12px}.login-language button.active{border-color:#45cc8d;color:#d3ffe8;background:#123426}

/* beta.15.49 – customer ticket conversations */
.portal-ticket-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px;margin-bottom:14px}.portal-ticket-layout>.panel{min-width:0}.portal-ticket-list{display:grid;gap:8px;max-height:390px;overflow:auto}.portal-ticket-item{background:rgba(17,29,30,.85);border:1px solid #274339;border-radius:12px;color:var(--text);padding:13px;text-align:left;cursor:pointer;display:grid;gap:7px;min-width:0}.portal-ticket-item.active{border-color:#39d98d;background:rgba(53,217,143,.09)}.portal-ticket-item>span{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-ticket-item b{font-size:13px;overflow-wrap:anywhere}.portal-ticket-item small{color:var(--muted);font-size:11px}.portal-ticket-item p{margin:0;color:var(--muted);line-height:1.45;font-size:12px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.portal-chat-panel{border-color:#2a674c!important}.portal-chat-messages{min-height:210px;max-height:460px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:15px;background:rgba(0,9,12,.24);border-radius:12px}.portal-chat-loading{color:var(--muted);text-align:center;margin:auto}.portal-chat-bubble{width:fit-content;max-width:min(85%,680px);padding:11px 14px;border:1px solid #28443b;border-radius:12px 12px 12px 3px;background:#101d20;overflow-wrap:anywhere}.portal-chat-bubble.mine{align-self:flex-end;border-color:#3c9a6a;background:#133226;border-radius:12px 12px 3px 12px}.portal-chat-bubble strong{display:block;font-size:12px;color:#6cf6b3}.portal-chat-bubble p{white-space:pre-wrap;line-height:1.55;font-size:13px;margin:7px 0}.portal-chat-bubble time{color:var(--muted);font-size:10px}.portal-chat-compose{margin-top:12px;display:grid;gap:9px}.portal-chat-compose label{color:var(--muted);font-size:12px;font-weight:700}.portal-chat-compose textarea{width:100%;box-sizing:border-box;min-height:85px;resize:vertical;background:#071417;border:1px solid #2b5544;border-radius:11px;padding:12px;color:var(--text);font-size:15px}.portal-chat-compose .primary-btn{justify-self:end}
@media(max-width:900px){.portal-ticket-layout{grid-template-columns:1fr}.portal-chat-bubble{max-width:94%}}@media(max-width:600px){.portal-chat-compose .primary-btn{width:100%}.portal-chat-panel{padding:14px}.portal-chat-messages{padding:9px}}

/* beta.15.50 · Produktupdates und Lesestatus im SQLMOD-Portal */
.nav-unread{margin-left:auto;min-width:19px;height:19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;font-size:11px;font-weight:800;background:#ef4058;color:white;box-shadow:0 0 14px rgba(239,64,88,.25)}
.portal-updates-list{display:grid;gap:12px}
.portal-update-entry{border:1px solid var(--line, #2b3d48);background:rgba(13,24,29,.7);border-radius:14px;padding:17px 19px;min-width:0}
.portal-update-entry.unread{border-color:rgba(234,70,91,.48);box-shadow:inset 3px 0 #ec455b}
.update-meta{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap}
.update-meta>div{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px}
.update-meta b{font-size:15px;color:var(--text,#f1f6f8)}
.update-meta small{color:#879ba6;font-size:12px}
.portal-update-entry>p{margin:12px 0 0;color:#adbdc7;white-space:pre-wrap;overflow-wrap:anywhere}
.update-pill{background:rgba(239,64,88,.14);border:1px solid rgba(239,64,88,.35);color:#ff6879;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800}
.update-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.update-actions>.file-btn,.update-actions>.ghost-btn{min-height:38px;display:inline-flex;align-items:center;gap:7px}
.update-no-file,.update-read{color:#81949c;font-size:12px}
@media(max-width:600px){.portal-update-entry{padding:14px}.update-actions>.file-btn,.update-actions>.ghost-btn{flex:1;justify-content:center}.nav-unread{flex-shrink:0}}
