@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&display=swap');
:root{--brand:#6d5ce7;--ink:#171722;--muted:#727386;--line:#e8e9f0;--surface:#fff;--bg:#f5f6fa;--shadow:0 18px 50px rgba(27,24,58,.08)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--ink);font-family:'Be Vietnam Pro',system-ui,-apple-system,sans-serif;background:var(--bg);line-height:1.55}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.no-scroll{overflow:hidden}.portal-body{min-height:100vh;background:radial-gradient(circle at 85% -10%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 32%),#f7f8fb}.topbar{height:88px;max-width:1440px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.brand img{width:46px;height:46px;object-fit:contain}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,var(--brand),#9184ff);color:#fff;font-weight:700;box-shadow:0 9px 25px color-mix(in srgb,var(--brand) 30%,transparent)}.brand strong,.brand small{display:block}.brand strong{font-size:1rem}.brand small{font-size:.74rem;color:var(--muted);margin-top:1px}.admin-link{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 18px;border:1px solid var(--line);background:rgba(255,255,255,.75);border-radius:12px;font-size:.88rem;font-weight:600}.admin-link b{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f0eefc;color:var(--brand)}.portal-shell{max-width:1344px;margin:0 auto;padding:48px 48px 70px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:38px}.eyebrow,.admin-kicker{margin:0 0 8px;color:var(--brand);font-size:.69rem;font-weight:700;letter-spacing:.13em}.welcome-row h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.12;margin:0 0 12px;letter-spacing:-.045em}.welcome-row p:not(.eyebrow){margin:0;color:var(--muted)}.summary{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 12px;padding:18px 22px;background:#171722;color:#fff;border-radius:18px;box-shadow:var(--shadow)}.summary strong{grid-row:1/3;font-size:2rem}.summary span{font-size:.77rem;color:#c7c7d1;max-width:90px}.toolbar{display:flex;gap:16px;align-items:center;margin-bottom:38px}.search{height:50px;min-width:320px;display:flex;align-items:center;gap:10px;padding:0 14px;background:#fff;border:1px solid var(--line);border-radius:14px}.search span{font-size:1.5rem;color:#898a9b}.search input{border:0;outline:0;min-width:0;flex:1;background:transparent}.search kbd{border:1px solid var(--line);border-radius:6px;background:#f7f7fa;padding:2px 7px;color:#8b8c98;font-size:.72rem}.filters{display:flex;gap:7px;overflow:auto;scrollbar-width:none}.filter{white-space:nowrap;border:1px solid transparent;background:transparent;padding:10px 14px;border-radius:10px;color:var(--muted);font-size:.83rem;font-weight:600}.filter:hover{background:#fff}.filter.active{background:#171722;color:#fff}.app-section{margin-top:34px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-heading h2{margin:0;font-size:1rem}.section-heading span{color:#9798a7;font-size:.75rem}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.app-card{min-height:148px;padding:22px;display:grid;grid-template-columns:58px 1fr auto;gap:16px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 4px 18px rgba(25,25,45,.025);transition:.2s ease}.app-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));box-shadow:var(--shadow)}.app-card[hidden]{display:none}.app-icon,.mini-icon{background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent);display:grid;place-items:center;font-weight:700}.app-icon{width:58px;height:58px;border-radius:17px;font-size:1rem}.app-icon img,.mini-icon img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.app-title{display:flex;align-items:center;gap:8px;justify-content:space-between}.app-title h3{font-size:.98rem;margin:2px 0 9px}.app-copy p{font-size:.79rem;color:var(--muted);margin:0;line-height:1.6}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:7px;font-size:.62rem;font-weight:700;white-space:nowrap}.status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.status.online{color:#12805c;background:#eaf8f2}.status.maintenance{color:#aa6a05;background:#fff7df}.status.offline{color:#b34848;background:#fff0f0}.launch{color:#a3a4b0;transition:.2s}.app-card:hover .launch{color:var(--brand);transform:translate(2px,-2px)}.empty-state{padding:70px;text-align:center;background:#fff;border:1px dashed #d7d8e2;border-radius:20px}.empty-state strong,.empty-state span{display:block}.empty-state span{font-size:.85rem;color:var(--muted);margin-top:6px}footer{max-width:1344px;margin:auto;padding:22px 48px 35px;border-top:1px solid var(--line);font-size:.74rem;color:#8c8d9a}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0,#dad5ff,transparent 28%),#f4f5f8}.login-card{width:min(100%,440px);padding:38px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 80px rgba(30,27,65,.12)}.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:42px}.login-brand .brand-mark{width:40px;height:40px;border-radius:12px}.login-intro h1{font-size:1.7rem;letter-spacing:-.03em;margin:0 0 8px}.login-intro>p:last-child{margin:0 0 25px;color:var(--muted);font-size:.86rem}.login-card form{display:grid;gap:17px}.login-card label,.form-grid label,.form-stack label,.category-form label,.upload-box label{display:grid;gap:7px;font-size:.78rem;font-weight:600}.login-card input,.form-grid input,.form-grid select,.form-stack input,.category-form input{width:100%;height:46px;border:1px solid #dadce5;border-radius:11px;padding:0 13px;outline:none;background:#fff}.login-card input:focus,.form-grid input:focus,.form-grid select:focus,.form-stack input:focus,.category-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}.btn{height:44px;padding:0 17px;border:1px solid transparent;border-radius:11px;font-size:.81rem;font-weight:700}.btn.primary{background:var(--brand);color:#fff;box-shadow:0 9px 25px color-mix(in srgb,var(--brand) 22%,transparent)}.btn.secondary{background:#fff;border-color:var(--line)}.btn.wide{width:100%;margin-top:5px}.back-link{display:block;text-align:center;margin-top:24px;color:var(--muted);font-size:.78rem}.alert{padding:12px 15px;margin:0 0 18px;border-radius:11px;font-size:.8rem}.alert.error{background:#fff0f0;color:#a93737;border:1px solid #ffd8d8}.alert.success{background:#eaf8f2;color:#126d51;border:1px solid #ccecdf}
.admin-body{background:#f4f5f9}.admin-layout{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;padding:24px 17px 18px;background:#181822;color:#e6e6ed;display:flex;flex-direction:column;z-index:30}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 6px 25px}.brand.compact .brand-mark{width:40px;height:40px;border-radius:12px}.brand.compact strong{color:#fff}.brand.compact small{color:#8d8d9e}.sidebar-close{display:none;border:0;background:transparent;color:#fff;font-size:1.7rem}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:12px 13px;display:flex;align-items:center;gap:12px;border-radius:10px;color:#a9a9b7;font-size:.82rem;font-weight:500}.sidebar nav a span{width:23px;font-size:1.08rem;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:#292935;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--brand)}.sidebar-foot{margin-top:auto;display:grid;gap:5px;border-top:1px solid #30303b;padding-top:13px}.sidebar-foot a{padding:8px 12px;color:#9797a5;font-size:.75rem}.admin-main{margin-left:260px;min-width:0}.admin-top{height:96px;padding:0 34px;display:flex;align-items:center;gap:16px;background:#fff;border-bottom:1px solid var(--line)}.admin-top h1{margin:0;font-size:1.35rem;letter-spacing:-.025em}.admin-kicker{display:block;font-size:.6rem;margin-bottom:2px}.menu-button{display:none;border:0;background:transparent;font-size:1.4rem}.admin-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:.76rem}.admin-user b{width:35px;height:35px;display:grid;place-items:center;background:#eeecff;color:var(--brand);border-radius:11px}.admin-content{padding:30px 34px 60px;max-width:1500px;margin:auto}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat-card{min-height:145px;padding:21px;background:#fff;border:1px solid var(--line);border-radius:17px;position:relative;overflow:hidden}.stat-card:after{content:'';position:absolute;width:90px;height:90px;right:-26px;top:-26px;border-radius:50%;background:var(--tone)}.stat-card.purple{--tone:#eeeafd}.stat-card.blue{--tone:#e7f0ff}.stat-card.amber{--tone:#fff1d6}.stat-card.teal{--tone:#def8f1}.stat-card span,.stat-card small,.stat-card strong{display:block;position:relative;z-index:1}.stat-card span{font-size:.72rem;color:var(--muted);font-weight:600}.stat-card strong{font-size:2rem;margin:13px 0 0}.stat-card small{font-size:.67rem;color:#a0a1ae}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:17px;margin-top:17px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px}.panel-head{padding:22px 23px 16px;display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:1rem;margin:0}.panel-head .eyebrow{font-size:.58rem;margin-bottom:3px}.text-link{font-size:.72rem;color:var(--brand);font-weight:600}.recent-list{padding:0 13px 13px}.recent-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:11px;border-top:1px solid #f0f0f4}.mini-icon{width:42px;height:42px;border-radius:12px;font-size:.72rem}.recent-item strong,.recent-item span{display:block}.recent-item strong{font-size:.78rem}.recent-item span{font-size:.67rem;color:var(--muted);margin-top:2px}.status-dot{width:8px;height:8px;border-radius:50%;background:#aaa}.status-dot.online{background:#20b887}.status-dot.maintenance{background:#f1ae34}.status-dot.offline{background:#e26767}.quick-panel{padding:22px}.quick-panel h2{font-size:1rem;margin:0 0 16px}.quick-panel>a{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #f0f0f4}.quick-panel>a>b{width:38px;height:38px;display:grid;place-items:center;background:#f3f2fb;color:var(--brand);border-radius:11px}.quick-panel>a span strong,.quick-panel>a span small{display:block}.quick-panel>a span strong{font-size:.76rem}.quick-panel>a span small{font-size:.65rem;color:var(--muted)}.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-actions p{font-size:.8rem;color:var(--muted);margin:0}.table-panel{overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.74rem}th{padding:13px 15px;background:#fafafd;text-align:left;color:#858694;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}td{padding:14px 15px;border-top:1px solid #efeff4;vertical-align:middle}td.right,th.right{text-align:right}.table-app{display:flex;align-items:center;gap:10px;min-width:230px}.table-app .mini-icon{width:39px;height:39px}.table-app strong,.table-app small{display:block}.table-app strong{font-size:.75rem}.table-app small{max-width:290px;color:var(--muted);font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.url-cell{display:block;max-width:220px;color:var(--brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline{display:inline}.icon-btn{display:inline-grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid var(--line);background:#fff;border-radius:8px;color:#585967}.icon-btn.danger{color:#c54f4f}.category-panel{margin-top:17px;padding-bottom:20px}.category-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 18px}.category-list>div{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;background:#f7f7fa;border:1px solid #ececf2;border-radius:11px}.category-list strong,.category-list small{display:block}.category-list strong{font-size:.7rem}.category-list small{font-size:.58rem;color:var(--muted)}.category-list .icon-btn{width:27px;height:27px}.category-form{display:grid;grid-template-columns:1.4fr 1.4fr .7fr auto;gap:10px;align-items:end;padding:18px 22px 0;border-top:1px solid #f0f0f4}.category-form input{height:42px}.modal{position:fixed;inset:0;display:none;z-index:100}.modal.open{display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(14,14,24,.55);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(720px,calc(100% - 30px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:19px;box-shadow:0 30px 90px rgba(0,0,0,.24)}.modal-head{position:sticky;top:0;z-index:2;padding:20px 23px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.modal-head h2{font-size:1.05rem;margin:0}.modal-head button{border:0;background:transparent;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:22px}.form-grid .full{grid-column:1/-1}.form-grid small,.upload-box small{font-weight:400;color:var(--muted);font-size:.64rem}.form-grid select{padding:0 12px}.form-grid input[type=color]{padding:4px}.check-row{display:flex!important;gap:20px!important}.check-row label{display:flex;align-items:center;gap:8px}.check-row input{width:16px;height:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:5px}.appearance-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-panel{overflow:hidden}.form-stack{display:grid;gap:15px;padding:3px 23px 24px}.color-input{display:flex;align-items:center;gap:10px}.color-input input{width:60px;padding:4px}.color-input span{font-size:.75rem;color:var(--muted)}.upload-box{display:grid;grid-template-columns:110px 1fr;gap:17px;align-items:center;margin:0 22px;padding:20px 0;border-top:1px solid #f0f0f4}.upload-box:first-of-type{border-top:0}.upload-box img,.placeholder-logo{width:100px;height:80px;object-fit:contain;border-radius:14px;background:#f7f7fa;border:1px dashed #d8d8e2}.placeholder-logo{display:grid;place-items:center;font-size:1.5rem;font-weight:700;color:var(--brand)}.upload-box.small img,.upload-box.small .placeholder-logo{width:64px;height:64px}.upload-box input{font-size:.7rem}.sticky-save{grid-column:1/-1;position:sticky;bottom:15px;display:flex;align-items:center;justify-content:space-between;padding:14px 17px;background:#191923;color:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(20,20,35,.25)}.sticky-save span{font-size:.72rem;color:#bdbdc8}
@media(max-width:1100px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.quick-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-panel>p,.quick-panel>h2{grid-column:1/-1}.quick-panel>a{border:1px solid var(--line);border-radius:12px;padding:12px}.category-form{grid-template-columns:1fr 1fr}.category-form .btn{grid-column:2}}
@media(max-width:800px){.topbar{height:76px;padding:0 20px}.brand small,.admin-link span{display:none}.admin-link{padding:9px}.portal-shell{padding:32px 20px 55px}.welcome-row{align-items:flex-start}.summary{display:none}.toolbar{display:block}.search{min-width:0;width:100%;margin-bottom:12px}.filters{margin:0 -20px;padding:0 20px}.app-grid{grid-template-columns:1fr}.app-card{min-height:128px}.sidebar{transform:translateX(-100%);transition:.25s ease}.sidebar.open{transform:none}.sidebar-close{display:block}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20;display:none}.sidebar-overlay.open{display:block}.admin-main{margin-left:0}.menu-button{display:block}.admin-top{height:78px;padding:0 18px}.admin-user span{display:none}.admin-content{padding:22px 18px 50px}.appearance-grid{grid-template-columns:1fr}.quick-panel{grid-template-columns:1fr}.quick-panel>p,.quick-panel>h2{grid-column:auto}.category-form{grid-template-columns:1fr}.category-form .btn{grid-column:auto}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.page-actions{align-items:flex-start;gap:15px}.page-actions p{max-width:330px}.sticky-save{flex-direction:column;align-items:stretch;gap:10px}.sticky-save span{text-align:center}}
@media(max-width:520px){.welcome-row h1{font-size:2rem}.app-card{grid-template-columns:52px 1fr auto;padding:17px 15px;gap:12px}.app-icon{width:52px;height:52px}.app-title{display:block}.app-title h3{margin-bottom:5px}.status{margin-bottom:7px}.login-card{padding:28px 22px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:125px;padding:16px}.stat-card strong{font-size:1.65rem}.admin-top h1{font-size:1.1rem}.admin-kicker{display:none}.page-actions{display:block}.page-actions .btn{width:100%;margin-top:14px}.upload-box{grid-template-columns:74px 1fr;margin:0 16px}.upload-box img,.placeholder-logo{width:68px;height:60px}.check-row{display:grid!important;gap:10px!important}footer{padding:20px}}

/* Icon-first application launcher */
.launcher-body{background:#f3f5f9;min-height:100vh}.launcher-body:before{content:'';position:fixed;inset:0 0 auto;height:330px;pointer-events:none;background:linear-gradient(135deg,#171722 0%,#25243a 62%,color-mix(in srgb,var(--brand) 72%,#171722) 100%);z-index:-1}.launcher-topbar{max-width:1500px;color:#fff}.launcher-topbar .brand strong{color:#fff}.launcher-topbar .brand small{color:#b8b8c6}.launcher-topbar .admin-link{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);backdrop-filter:blur(10px)}.launcher-topbar .admin-link b{background:rgba(255,255,255,.12);color:#fff}.launcher-shell{max-width:1400px;margin:0 auto;padding:44px 48px 76px}.launcher-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;color:#fff;margin:0 0 32px}.launcher-heading .eyebrow{color:#bfb7ff}.launcher-heading h1{font-size:clamp(2rem,4vw,3.15rem);line-height:1.1;letter-spacing:-.045em;margin:0 0 8px}.launcher-heading p:last-child{margin:0;color:#b9bac8;font-size:.87rem}.launcher-search{width:330px;height:50px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px)}.launcher-search>span{font-size:1.4rem;color:#d4d4dd}.launcher-search input{flex:1;min-width:0;border:0;outline:0;color:#fff;background:transparent}.launcher-search input::placeholder{color:#bfc0ca}.launcher-search kbd{padding:2px 7px;color:#d5d5dd;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:rgba(255,255,255,.08);font-size:.68rem}.launcher-filters{display:flex;align-items:center;gap:6px;overflow:auto;scrollbar-width:none;margin-bottom:17px}.launcher-filters .filter{color:#d1d1db;border:1px solid transparent;background:transparent}.launcher-filters .filter:hover{background:rgba(255,255,255,.08)}.launcher-filters .filter.active{color:#171722;background:#fff}.launcher-filters .filter span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;border-radius:6px;background:#ededf2;color:#6a6b78;font-size:.65rem}.launcher-panel{min-height:390px;padding:30px 28px 34px;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.7);border-radius:25px;box-shadow:0 28px 80px rgba(18,17,34,.18)}.launcher-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:31px 20px}.launcher-app{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:18px;padding:10px 7px 12px;transition:transform .18s ease,background .18s ease}.launcher-app:hover{transform:translateY(-4px);background:#f6f6fa}.launcher-app:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 28%,transparent);outline-offset:3px}.launcher-app[hidden]{display:none}.launcher-icon{position:relative;width:82px;height:82px;display:grid;place-items:center;margin-bottom:12px;border:1px solid color-mix(in srgb,var(--accent) 13%,#e7e7ed);border-radius:23px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 8%,#fff),color-mix(in srgb,var(--accent) 19%,#fff));box-shadow:0 12px 25px color-mix(in srgb,var(--accent) 14%,transparent),inset 0 1px rgba(255,255,255,.85);color:var(--accent);transition:transform .18s ease,box-shadow .18s ease}.launcher-app:hover .launcher-icon{transform:scale(1.055);box-shadow:0 16px 30px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 1px rgba(255,255,255,.9)}.launcher-icon img{width:100%;height:100%;object-fit:contain;border-radius:22px}.launcher-icon b{font-size:1.25rem;letter-spacing:-.03em}.launcher-status{position:absolute;right:-2px;bottom:3px;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:#a9a9b3;box-shadow:0 2px 5px rgba(0,0,0,.12)}.launcher-status.online{background:#20b887}.launcher-status.maintenance{background:#f2ab2f}.launcher-status.offline{background:#e06666}.launcher-app>strong{width:100%;font-size:.8rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.launcher-app>small{width:100%;margin-top:3px;color:#9899a7;font-size:.62rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.launcher-empty{min-height:280px;display:grid;place-items:center;align-content:center;text-align:center}.launcher-empty>span{font-size:2.2rem;color:#b1b2bd}.launcher-empty strong,.launcher-empty small{display:block}.launcher-empty small{color:var(--muted);margin-top:4px}.launcher-body footer{background:#f3f5f9}
@media(max-width:1200px){.launcher-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1000px){.launcher-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 15px}.launcher-icon{width:76px;height:76px;border-radius:21px}.launcher-icon img{border-radius:20px}}
@media(max-width:800px){.launcher-body:before{height:315px}.launcher-topbar{padding:0 22px}.launcher-shell{padding:30px 20px 58px}.launcher-heading{display:block;margin-bottom:24px}.launcher-heading h1{font-size:2.1rem}.launcher-search{width:100%;margin-top:22px}.launcher-filters{margin:0 -20px 15px;padding:0 20px}.launcher-panel{padding:27px 17px 31px;border-radius:22px}.launcher-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 10px}}
@media(max-width:560px){.launcher-body:before{height:295px}.launcher-shell{padding-top:22px}.launcher-heading h1{font-size:1.8rem}.launcher-heading p:last-child{font-size:.78rem}.launcher-search{height:46px;margin-top:18px}.launcher-panel{margin:0 -5px;padding:23px 10px 28px;border-radius:20px}.launcher-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 6px}.launcher-app{padding:7px 3px 9px}.launcher-icon{width:68px;height:68px;margin-bottom:9px;border-radius:19px}.launcher-icon img{border-radius:18px}.launcher-icon b{font-size:1.05rem}.launcher-app>strong{font-size:.72rem}.launcher-app>small{font-size:.57rem}.launcher-status{width:14px;height:14px}.launcher-topbar .brand strong{font-size:.88rem}}
@media(max-width:360px){.launcher-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.launcher-icon{width:62px;height:62px}.launcher-app>small{display:none}}

/* Admin controls */
.login-brand>img{width:42px;height:42px;object-fit:contain;border-radius:11px}.brand.compact>img{width:40px;height:40px;object-fit:contain;border-radius:11px}
.visibility-toggle{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:#8d8e9b;font-size:.68rem}.visibility-toggle i{position:relative;width:34px;height:19px;border-radius:10px;background:#d7d8e0;transition:.18s}.visibility-toggle i:after{content:'';position:absolute;width:13px;height:13px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.18s}.visibility-toggle.on{color:#167c5c}.visibility-toggle.on i{background:#26b989}.visibility-toggle.on i:after{transform:translateX(15px)}.remove-image{display:flex!important;align-items:center;gap:7px;margin-top:4px;color:#b54848;font-size:.68rem;font-weight:500}.remove-image input{width:15px!important;height:15px!important;margin:0}.cancel-link{display:inline-flex;align-items:center;justify-content:center}.upload-ready{margin-bottom:17px}.alert code{padding:2px 5px;border-radius:5px;background:rgba(0,0,0,.06);font-size:.72rem}
