*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:#050707;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;color:#fff;min-height:100vh;background-image:radial-gradient(ellipse at 20% 20%,rgba(0,255,204,.09),transparent 38%),radial-gradient(ellipse at 85% 10%,rgba(0,140,255,.08),transparent 34%),linear-gradient(180deg,#070b0d,#030404 70%);overflow-x:hidden}.glass{background:rgba(10,16,19,.62);backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);border:1px solid rgba(0,255,204,.08);box-shadow:0 18px 70px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.04)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-container{width:100%;max-width:440px}.auth-box{padding:38px 34px;border-radius:26px}.auth-pop{animation:authIn .55s cubic-bezier(.22,1,.36,1)}@keyframes authIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.auth-header{text-align:center;margin-bottom:28px}.auth-header h1{color:#00ffcc;font-size:32px;text-shadow:0 0 40px rgba(0,255,204,.18)}.auth-header p,.hint{color:#8b9a9b;font-size:13px;line-height:1.6}.auth-form .input-group{margin-bottom:14px}.input-group label{display:block;color:#a8b6b7;font-size:12px;margin-bottom:6px}.input-group input,.input-group select{width:100%;padding:12px 14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);border-radius:13px;color:#fff;font-size:13px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.input-group input:focus,.input-group select:focus{border-color:rgba(0,255,204,.45);box-shadow:0 0 0 4px rgba(0,255,204,.05);background:rgba(255,255,255,.06)}select option{background:#071010;color:#fff}.auth-footer{text-align:center;margin-top:20px;color:#6e7a7b;font-size:13px}.auth-footer a,.muted-link{color:#00ffcc;text-decoration:none}.btn-primary,.btn-secondary,.btn-danger,.icon-btn{border:none;border-radius:13px;cursor:pointer;font-weight:700;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease;white-space:nowrap}.btn-primary{padding:12px 22px;background:linear-gradient(135deg,#00ffcc,#67ffe7);color:#001413;box-shadow:0 12px 28px rgba(0,255,204,.1)}.btn-secondary{padding:11px 18px;background:rgba(255,255,255,.055);color:#fff;border:1px solid rgba(255,255,255,.08)}.btn-danger{padding:11px 18px;background:rgba(255,68,68,.9);color:#fff}.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover,.icon-btn:hover{transform:translateY(-1px)}.btn-primary:hover{box-shadow:0 16px 40px rgba(0,255,204,.18)}.btn-full{width:100%}.icon-btn{width:36px;height:36px;background:rgba(255,255,255,.055);color:#d9ffff;border:1px solid rgba(255,255,255,.08)}.inline-download{display:inline-flex;align-items:center;gap:8px;text-decoration:none;margin-top:14px}.error{color:#ff6a6a;text-align:center;margin-top:10px;font-size:13px;display:none}.result{margin-top:12px;padding:14px;border-radius:14px;display:none}.result.success{display:block;background:rgba(0,255,136,.06);border:1px solid rgba(0,255,136,.25)}.result.error{display:block;background:rgba(255,68,68,.06);border:1px solid rgba(255,68,68,.25)}.app{display:flex;min-height:100vh}.sidebar{width:250px;padding:24px 16px;display:flex;flex-direction:column;border-right:1px solid rgba(0,255,204,.06);flex-shrink:0;background:rgba(7,11,13,.7);position:sticky;top:0;height:100vh}.sidebar-brand h2{color:#00ffcc;font-size:20px;text-shadow:0 0 28px rgba(0,255,204,.14)}.brand-sub{color:#5e6b6c;font-size:11px;margin:4px 0 22px}.user-profile{display:flex;align-items:center;gap:13px;padding:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.045);border-radius:18px;margin-bottom:18px}.avatar-container{position:relative;flex-shrink:0}.avatar-img,.profile-avatar{display:block;aspect-ratio:1/1;object-fit:cover;object-position:center;background:radial-gradient(circle at 50% 36%,rgba(0,255,204,.12),rgba(0,0,0,.28) 70%);overflow:hidden;flex-shrink:0}.avatar-img{width:48px;height:48px;min-width:48px;min-height:48px;max-width:48px;max-height:48px;border-radius:50%;border:2px solid #00ffcc}.profile-avatar{width:82px;height:82px;min-width:82px;min-height:82px;max-width:82px;max-height:82px;border-radius:50%;border:3px solid #00ffcc}.avatar-loading{opacity:.58}.avatar-ready{opacity:1}.status-dot{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:50%;border:2px solid #071010}.status-dot.online{background:#00ff88;box-shadow:0 0 18px rgba(0,255,136,.42)}.status-dot.offline{background:#ff4444}.user-info h3{font-size:14px;line-height:1.2}.user-info p{font-size:11px;color:#8b9a9b;margin-top:3px}.sidebar-nav{position:relative;display:flex;flex-direction:column;gap:5px;flex:1}.nav-pill{position:absolute;left:0;right:0;height:42px;border-radius:14px;background:rgba(0,255,204,.08);border:1px solid rgba(0,255,204,.13);box-shadow:0 8px 28px rgba(0,255,204,.04);transform:translateY(0);opacity:0;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .16s ease,height .2s ease;pointer-events:none}.nav-item{position:relative;z-index:1;display:flex;align-items:center;gap:12px;min-height:42px;padding:0 14px;border-radius:14px;color:#aab8b9;text-decoration:none;transition:color .18s ease,transform .18s ease}.nav-item:hover{color:#fff;transform:translateX(2px)}.nav-item.active{color:#00ffcc}.nav-icon{width:20px;text-align:center}.sidebar-footer{border-top:1px solid rgba(255,255,255,.04);padding-top:16px}.logout-btn{width:100%;padding:11px;background:transparent;border:1px solid rgba(255,68,68,.22);color:#ff6666;border-radius:13px;font-weight:700;cursor:pointer}.logout-btn:hover{background:rgba(255,68,68,.08)}.main-content{flex:1;min-width:0;padding:28px 34px;position:relative;overflow-y:auto}.tab{display:none;opacity:0;transform:translateX(12px);filter:blur(1px)}.tab.active{display:block;animation:tabIn .28s cubic-bezier(.22,1,.36,1) forwards}@keyframes tabIn{from{opacity:0;transform:translateX(12px);filter:blur(1px)}to{opacity:1;transform:translateX(0);filter:none}}.tab-header{margin-bottom:24px}.tab-header h1{font-size:27px;font-weight:700}.tab-header h1 i{color:#00ffcc;margin-right:10px}.tab-header p{color:#8b9a9b;margin-top:5px}.dashboard-grid,.studio-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(340px,1.1fr);gap:18px;margin-bottom:20px}.card,.profile-card{padding:22px;border-radius:20px;margin-bottom:20px;border:1px solid rgba(255,255,255,.045)}.card h2{font-size:17px}.card h2 i{color:#00ffcc;margin-right:8px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.profile-header{display:flex;align-items:center;gap:20px}.profile-info h2{font-size:22px}.profile-info p{color:#8b9a9b;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800}.badge-success{background:rgba(0,255,136,.1);color:#00ff88;border:1px solid rgba(0,255,136,.18)}.badge-danger{background:rgba(255,68,68,.12);color:#ff7474;border:1px solid rgba(255,68,68,.2)}.badge-warning{background:rgba(255,170,0,.1);color:#ffc04c;border:1px solid rgba(255,170,0,.18)}.badge-muted{background:rgba(255,255,255,.06);color:#b8c6c7;border:1px solid rgba(255,255,255,.08)}.license-key-box{display:flex;align-items:center;gap:10px;padding:12px 13px;border:1px solid rgba(0,255,204,.1);background:rgba(0,0,0,.18);border-radius:14px;margin-bottom:14px;color:#00ffcc;font-family:Consolas,monospace;font-weight:800;word-break:break-all}.license-key-box span{flex:1}.license-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-label{display:block;color:#728181;font-size:11px;margin-bottom:3px}.license-meta-grid strong{font-size:13px;color:#edfefe}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{padding:18px;border-radius:18px;text-align:center}.stat-number{font-size:25px;font-weight:900;color:#00ffcc;text-shadow:0 0 28px rgba(0,255,204,.08);overflow:hidden;text-overflow:ellipsis}.stat-label{color:#8b9a9b;font-size:12px;margin-top:5px}.form-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.form-row .input-group{flex:1;min-width:160px}.auth-action-grid{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) auto auto;align-items:end}.small-status{margin-top:9px;color:#8b9a9b;font-size:12px}.studio-status{display:flex;align-items:center;gap:14px;padding:15px;border-radius:15px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05);margin-bottom:16px}.studio-status p{color:#8b9a9b;font-size:12px;margin-top:3px}.status-light{width:14px;height:14px;border-radius:50%;display:block;flex-shrink:0}.status-light.red{background:#ff4444;box-shadow:0 0 18px rgba(255,68,68,.45)}.status-light.green{background:#00ff88;box-shadow:0 0 18px rgba(0,255,136,.45)}.session-box label{display:block;color:#a8b6b7;font-size:12px;margin-bottom:6px}.session-copy-row{display:flex;gap:10px}.session-copy-row input{flex:1;padding:13px 14px;border-radius:14px;border:1px solid rgba(0,255,204,.12);background:rgba(0,0,0,.2);color:#00ffcc;font-family:Consolas,monospace;font-weight:900;letter-spacing:1px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.compact-row{margin-top:12px}.plugin-steps{margin-top:14px;color:#91a1a2;font-size:12px;line-height:1.7}.circle-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:14px}.circle-stat{display:flex;align-items:center;gap:12px;padding:14px;border-radius:17px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05)}.circle-dot{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#001413;background:conic-gradient(from 90deg,#00ffcc,var(--accent,#00ffcc));box-shadow:0 0 26px rgba(0,255,204,.12)}.circle-stat strong{display:block;font-size:18px}.circle-stat span{color:#8b9a9b;font-size:12px}.table-wrap{width:100%;overflow:auto;border-radius:14px;border:1px solid rgba(255,255,255,.045)}table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}th{color:#00ffcc;text-align:left;padding:12px 10px;background:rgba(0,255,204,.035);border-bottom:1px solid rgba(255,255,255,.05);position:sticky;top:0;z-index:1}td{padding:10px;border-bottom:1px solid rgba(255,255,255,.035);color:#d5e0e1;vertical-align:middle}tr:hover td{background:rgba(255,255,255,.025)}.empty-cell,.empty-state{text-align:center;color:#778585;padding:22px}.asset-type-pill{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(0,255,204,.08);color:#00ffcc}.mapping-input{width:150px!important;padding:9px 10px!important;border-radius:10px!important}.replace-control-grid{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1.4fr) auto auto;align-items:end}.large-table table{min-width:920px}.system-list{color:#9cadae;line-height:1.9;font-size:13px}@media(max-width:980px){.app{flex-direction:column}.sidebar{position:relative;width:100%;height:auto}.main-content{padding:22px 16px}.dashboard-grid,.studio-layout,.stats-grid{grid-template-columns:1fr}.auth-action-grid,.replace-control-grid{grid-template-columns:1fr}.auth-btn{width:100%}.session-copy-row{flex-direction:column}.profile-header{align-items:flex-start}}@media(max-width:520px){.auth-box{padding:30px 22px}.profile-header{flex-direction:column}.button-row .btn-primary,.button-row .btn-secondary{width:100%}.stat-number{font-size:20px}}

/* ========================================================== */
/* V12 FIX - STUDIO SCAN SETTING UI CLEAN DARK */
/* ========================================================== */
.studio-scan-settings {
    margin-top: 16px;
    padding: 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(0, 255, 204, 0.08);
}

.setting-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.setting-title-row label,
.studio-scan-settings label {
    color: #efffff;
    font-size: 14px;
    font-weight: 800;
}

.compact-save {
    min-height: 34px;
    padding: 9px 14px;
}

#studioScanModeSelect {
    display: none;
}

.studio-scan-settings select,
select {
    appearance: none;
    -webkit-appearance: none;
    background-color: rgba(8, 18, 20, 0.98) !important;
    background-image: linear-gradient(135deg, rgba(0, 255, 204, 0.06), rgba(255, 255, 255, 0.025));
    color: #ffffff !important;
    border: 1px solid rgba(0, 255, 204, 0.18) !important;
    border-radius: 14px !important;
    outline: none !important;
}

.studio-scan-settings select option,
select option {
    background: #071011 !important;
    color: #ffffff !important;
}

.scan-mode-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 8px;
}

.scan-mode-option {
    min-height: 74px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 4px;
    padding: 12px 13px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.065);
    background: rgba(255, 255, 255, 0.035);
    color: #d9ffff;
    cursor: pointer;
    text-align: left;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.scan-mode-option i {
    color: #00ffcc;
    font-size: 15px;
}

.scan-mode-option span {
    font-weight: 900;
    font-size: 13px;
}

.scan-mode-option small {
    color: #7f9293;
    font-size: 11px;
}

.scan-mode-option:hover {
    transform: translateY(-1px);
    border-color: rgba(0, 255, 204, 0.22);
    background: rgba(0, 255, 204, 0.055);
}

.scan-mode-option.active {
    border-color: rgba(0, 255, 204, 0.45);
    background: linear-gradient(135deg, rgba(0, 255, 204, 0.16), rgba(0, 255, 204, 0.055));
    box-shadow: 0 14px 34px rgba(0, 255, 204, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.scan-mode-option.active small {
    color: #b6ffef;
}

.scan-mode-option.wide {
    grid-column: span 2;
}

@media(max-width: 760px) {
    .setting-title-row {
        align-items: stretch;
        flex-direction: column;
    }

    .compact-save {
        width: 100%;
    }

    .scan-mode-option.wide {
        grid-column: span 1;
    }
}

/* ========================================================== */
/* V14 - CLEAN SPOOF FLOW + THEME CONFIG + COMPACT PLUGIN */
/* ========================================================== */
:root {
    --accent: #00ffcc;
    --accent-rgb: 0,255,204;
    --bg0: #030909;
    --bg1: #071111;
    --panel: rgba(11, 18, 20, 0.78);
    --panel-soft: rgba(255,255,255,0.035);
    --text: #f3ffff;
    --muted: #93a4a5;
}
body[data-theme="light"] {
    --bg0: #edf7f6;
    --bg1: #dcefed;
    --panel: rgba(255,255,255,0.78);
    --panel-soft: rgba(0,0,0,0.035);
    --text: #061514;
    --muted: #496160;
    color: var(--text);
    background: radial-gradient(ellipse at 30% 20%, rgba(var(--accent-rgb),.18), transparent 42%), linear-gradient(135deg, var(--bg0), var(--bg1));
}
body[data-theme="midnight"] { --bg0:#020511; --bg1:#070d1f; --panel:rgba(8,13,28,.78); }
body[data-theme="cyber"] { --bg0:#020706; --bg1:#041c18; }
body[data-accent="mint"] { --accent:#00ffcc; --accent-rgb:0,255,204; }
body[data-accent="blue"] { --accent:#4da3ff; --accent-rgb:77,163,255; }
body[data-accent="purple"] { --accent:#a970ff; --accent-rgb:169,112,255; }
body[data-accent="orange"] { --accent:#ffb44d; --accent-rgb:255,180,77; }
body[data-accent="pink"] { --accent:#ff67c7; --accent-rgb:255,103,199; }
body[data-theme="light"] .glass,
body[data-theme="light"] .card,
body[data-theme="light"] .profile-card {
    background: var(--panel);
    border-color: rgba(0,0,0,.08);
    box-shadow: 0 12px 34px rgba(20,40,40,.12);
}
body[data-theme="light"] input,
body[data-theme="light"] select,
body[data-theme="light"] .session-copy-row input {
    background: rgba(255,255,255,.9) !important;
    color: #071514 !important;
    border-color: rgba(0,0,0,.12) !important;
}
body[data-theme="light"] .sidebar { background: rgba(255,255,255,.75); }
body[data-theme="light"] .hint,
body[data-theme="light"] .small-status,
body[data-theme="light"] .stat-label,
body[data-theme="light"] .mini-label { color: var(--muted); }
.title-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.mini-download-btn {
    display:inline-flex; align-items:center; gap:7px;
    padding:8px 11px; border-radius:12px; text-decoration:none;
    color:#001412; background:var(--accent); font-size:12px; font-weight:900;
    box-shadow:0 8px 22px rgba(var(--accent-rgb),.14);
}
.compact-plugin-card { min-height:unset; }
.plugin-steps.compact { margin-top:8px; font-size:12px; line-height:1.55; }
.v14-replace-grid { grid-template-columns:minmax(220px,360px) auto !important; justify-content:start; }
.v14-opencloud-grid { grid-template-columns: minmax(145px,.55fr) minmax(180px,.75fr) minmax(180px,.75fr) minmax(210px,.8fr) auto; align-items:end; }
.toggle-line {
    min-height:42px; display:flex; align-items:center; gap:9px;
    padding:10px 12px; border-radius:13px;
    border:1px solid rgba(var(--accent-rgb),.12); background:rgba(255,255,255,.035);
    color:var(--text); font-size:13px; font-weight:700;
}
.toggle-line input { width:auto !important; accent-color:var(--accent); }
.upload-progress-grid {
    display:grid; grid-template-columns:repeat(4,minmax(110px,1fr)); gap:12px; margin:14px 0 10px;
}
.upload-progress-card {
    padding:13px 14px; border-radius:16px; background:rgba(255,255,255,.035);
    border:1px solid rgba(var(--accent-rgb),.08); text-align:center;
}
.upload-progress-card span { display:block; color:var(--muted); font-size:12px; margin-bottom:5px; }
.upload-progress-card strong { color:var(--accent); font-size:22px; font-weight:900; }
.muted-line { color:var(--muted); }
.muted-line code, .hint code { color:var(--accent); background:rgba(0,0,0,.22); padding:2px 6px; border-radius:7px; }
.new-id-auto {
    display:inline-flex; min-width:120px; align-items:center; justify-content:center;
    padding:7px 10px; border-radius:999px; font-weight:900; font-family:Consolas,monospace;
    color:var(--accent); background:rgba(var(--accent-rgb),.07); border:1px solid rgba(var(--accent-rgb),.12);
}
.new-id-empty { color:#8a9899; background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.06); }
.status-ready { color:#00ff88; font-weight:800; }
.status-failed { color:#ff7777; font-weight:800; }
.status-waiting { color:#a7b6b7; }
.config-grid { display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)) minmax(220px,1fr) auto; align-items:end; }
select, input { border-color: rgba(var(--accent-rgb),.13) !important; }
.btn-primary { background: var(--accent) !important; color:#001412 !important; }
.nav-item.active, .tab-header h1 i, .card h2 i, .stat-number, th, .asset-type-pill { color: var(--accent) !important; }
.nav-pill { background: rgba(var(--accent-rgb),.10) !important; border-color: rgba(var(--accent-rgb),.14) !important; }
@media(max-width:1100px){
    .v14-opencloud-grid,.config-grid{grid-template-columns:1fr !important;}
    .v14-replace-grid{grid-template-columns:1fr !important;}
    .upload-progress-grid{grid-template-columns:repeat(2,1fr);}
    .mini-download-btn{width:fit-content;}
}
@media(max-width:560px){.upload-progress-grid{grid-template-columns:1fr;}}
.studio-connect-card { grid-column: 1 / -1; }

/* V15: clearer upload/download row detail */
.muted-tiny {
    margin-top: 3px;
    color: var(--muted, #8ca5a5);
    font-size: 11px;
    opacity: .8;
    font-weight: 500;
}
.row-error {
    margin-top: 5px;
    color: #ffb25b;
    font-size: 11px;
    line-height: 1.25;
    max-width: 360px;
    white-space: normal;
}
.status-ready {
    color: #00ffcc;
    font-weight: 800;
}
.status-failed {
    color: #ff7373;
    font-weight: 800;
}
.status-waiting {
    color: var(--muted, #aabcbc);
    font-weight: 700;
}

/* ========================================================== */
/* V17 ROBLOX STUDIO EXPLORER TREE */
/* ========================================================== */
.studio-explorer-card {
    overflow: hidden;
}

.studio-explorer-tree {
    max-height: 380px;
    overflow: auto;
    border: 1px solid rgba(0, 255, 204, 0.08);
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.16);
    padding: 10px;
}

.tree-line {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 6px 10px 6px calc(10px + var(--tree-pad));
    border-radius: 10px;
    color: var(--text-main, #e8eeee);
    border: 1px solid transparent;
}

.tree-line:hover {
    background: rgba(0, 255, 204, 0.06);
    border-color: rgba(0, 255, 204, 0.08);
}

.tree-twist {
    width: 14px;
    color: var(--accent, #00ffcc);
    opacity: .9;
    font-size: 11px;
}

.tree-line i {
    width: 18px;
    color: var(--accent, #00ffcc);
    opacity: .9;
    text-align: center;
}

.tree-name {
    font-weight: 800;
    white-space: nowrap;
}

.tree-class {
    color: var(--text-muted, #91a0a0);
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(255,255,255,.045);
}

.tree-assets {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-left: auto;
    justify-content: flex-end;
}

.tree-asset-badge,
.tree-asset-more {
    font-size: 10px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(0, 255, 204, .10);
    color: var(--accent, #00ffcc);
    border: 1px solid rgba(0,255,204,.10);
    font-weight: 800;
}

@media (max-width: 760px) {
    .tree-assets { display: none; }
    .tree-class { display: none; }
}

/* ========================================================== */
/* V18 - COLLAPSIBLE EXPLORER + ZIP LINK */
/* ========================================================== */
.tree-line {
    width: 100%;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: default;
}

.tree-folder {
    cursor: pointer;
}

.tree-folder:active {
    transform: translateX(1px);
}

.inline-link {
    color: var(--accent, #00ffcc);
    font-weight: 900;
    text-decoration: none;
    margin-left: 8px;
}

.inline-link:hover {
    text-decoration: underline;
}

/* ==========================================================
   V21 ADMIN PANEL HARD FIX
   Fix: semua page muncul bareng + input/select putih/default
   ========================================================== */
body.admin-body {
    overflow-x: hidden;
    background: radial-gradient(ellipse at 18% 12%, rgba(0,255,204,.09), transparent 34%), linear-gradient(180deg,#060a0c,#020404 72%);
}
.admin-app { min-height: 100vh; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; }
.admin-main { min-width: 0; }
.admin-topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 22px;
    border-radius:20px;
    margin-bottom:22px;
}
.admin-topbar h1 { font-size:26px; margin:0; color:#fff; }
.admin-topbar p { margin-top:4px; color:#8fa2a3; font-size:13px; }
.admin-user-pill {
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:10px 13px;
    border-radius:999px;
    background:rgba(0,255,204,.08);
    border:1px solid rgba(0,255,204,.12);
    color:#00ffcc;
    font-weight:800;
    white-space:nowrap;
}
.page { display:none !important; opacity:0; transform:translate3d(8px,0,0); }
.page.active { display:block !important; opacity:1; transform:none; }
.page.page-enter { animation:adminPageIn .22s ease-out both; }
@keyframes adminPageIn {
    from { opacity:0; transform:translate3d(10px,0,0); filter:blur(1px); }
    to { opacity:1; transform:none; filter:none; }
}
.admin-card-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:14px;
}
.admin-actions-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.table-wrap { width:100%; overflow:auto; border-radius:14px; }
.empty-cell { text-align:center; color:#8fa2a3; padding:22px !important; }
.admin-mini-input,
.admin-package-form input,
.admin-package-form select,
.generate-card input,
.generate-card select,
.admin-body input,
.admin-body select,
.admin-body textarea {
    width:100%;
    min-height:42px;
    padding:11px 13px;
    border-radius:13px;
    border:1px solid rgba(0,255,204,.12) !important;
    background:rgba(255,255,255,.045) !important;
    color:#eefafa !important;
    outline:none;
    font:inherit;
    font-size:13px;
    box-shadow:none !important;
    appearance:none;
    -webkit-appearance:none;
}
.admin-body select {
    background-image:linear-gradient(45deg, transparent 50%, #00ffcc 50%), linear-gradient(135deg, #00ffcc 50%, transparent 50%) !important;
    background-position:calc(100% - 18px) 18px, calc(100% - 12px) 18px !important;
    background-size:6px 6px, 6px 6px !important;
    background-repeat:no-repeat !important;
    padding-right:34px !important;
}
.admin-body select option { background:#071011; color:#fff; }
.admin-body input:focus,
.admin-body select:focus,
.admin-body textarea:focus {
    border-color:rgba(0,255,204,.45) !important;
    box-shadow:0 0 0 4px rgba(0,255,204,.055) !important;
    background:rgba(255,255,255,.065) !important;
}
.admin-package-form,
.generate-row {
    display:grid;
    grid-template-columns:repeat(5,minmax(130px,1fr)) auto;
    gap:12px;
    align-items:end;
    margin-bottom:16px;
}
.generate-row { grid-template-columns:minmax(180px,260px) 1fr 1fr auto; }
.admin-package-form .input-group,
.generate-row .input-group { min-width:0; }
.package-active-field { min-width:130px; }
.admin-status-line,
.generate-result {
    min-height:22px;
    color:#00ffcc;
    font-size:13px;
    margin:10px 0 14px;
}
.admin-toast {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:1000;
    min-width:220px;
    max-width:360px;
    padding:13px 15px;
    border-radius:16px;
    background:rgba(8,16,18,.92);
    border:1px solid rgba(0,255,204,.15);
    color:#fff;
    box-shadow:0 18px 60px rgba(0,0,0,.45);
    opacity:0;
    transform:translateY(12px);
    pointer-events:none;
    transition:.18s ease;
}
.admin-toast.show { opacity:1; transform:none; }
.admin-toast.error { border-color:rgba(255,90,90,.28); color:#ff9a9a; }
.settings-list { display:grid; gap:10px; }
.settings-list > div {
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border-radius:14px;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.055);
}
.settings-list span { color:#8fa2a3; font-size:13px; }
@media(max-width:1050px){
    .admin-package-form,.generate-row{grid-template-columns:1fr 1fr;}
    .admin-package-form .btn-primary,.generate-row .btn-primary{grid-column:1/-1;}
}
@media(max-width:700px){
    .admin-topbar{align-items:flex-start;flex-direction:column;}
    .admin-package-form,.generate-row{grid-template-columns:1fr;}
    .admin-sidebar{position:relative;height:auto;}
    .admin-app{flex-direction:column;}
}

/* ========================================================== */
/* V22 ADMIN EMAIL + ROUTE FIX */
/* ========================================================== */
.generate-row .admin-send-email {
    min-height: 44px;
    align-self: end;
    margin: 0;
    padding: 11px 14px;
    border-radius: 14px;
    border: 1px solid rgba(0,255,204,.12);
    background: rgba(255,255,255,.045);
    color: #eafffb;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    white-space: nowrap;
}
.generate-row .admin-send-email input {
    width: auto !important;
    accent-color: #00ffcc;
}
.admin-error-text {
    margin-top: 8px;
    color: #ffbd5b;
    font-size: 12px;
    line-height: 1.45;
}
.admin-body .result.success,
.admin-body .result.error {
    display: block !important;
}
