:root{
  --bg:#0b0d12;--panel:#12151d;--panel2:#171b25;--line:#252a37;
  --text:#f7f8fb;--muted:#9199aa;--accent:#7c3aed;--accent2:#9f67ff;
  --danger:#ef4444;--green:#22c55e;
}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}.container{max-width:1380px;margin:auto;padding:34px}
.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:38px;position:sticky;top:0;background:rgba(11,13,18,.9);backdrop-filter:blur(16px);z-index:20}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:linear-gradient(135deg,var(--accent),#4f46e5);font-weight:900;font-size:20px}.brand strong,.brand small{display:block}.brand small{font-size:10px;color:var(--muted);letter-spacing:.13em;text-transform:uppercase}
nav{display:flex;gap:7px}nav a{padding:9px 13px;border-radius:9px;color:var(--muted)}nav a:hover{background:var(--panel2);color:var(--text)}.account{margin-left:auto;display:flex;align-items:center;gap:9px}.role-dot{width:9px;height:9px;border-radius:50%}
.hero{display:flex;justify-content:space-between;gap:30px;align-items:end;margin:24px 0 42px}.hero h1{font-size:42px;line-height:1;margin:7px 0 12px;letter-spacing:-.04em}.hero p{color:var(--muted);margin:0}.eyebrow{font-size:11px;letter-spacing:.19em;color:var(--accent2);font-weight:800}.back{display:block;color:var(--muted);margin-bottom:17px}
.btn{border:1px solid var(--line);border-radius:10px;padding:10px 15px;background:var(--panel2);color:#fff;cursor:pointer;font-weight:700}.btn:hover{filter:brightness(1.12)}.btn.primary{background:var(--accent);border-color:var(--accent)}.btn.danger{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.35);color:#ff8585}.btn.ghost{background:transparent}.btn.small{font-size:12px;padding:7px 10px}
.section{margin:35px 0}.section-title{display:flex;align-items:center;gap:11px;margin-bottom:17px}.section-title h2{margin:0;font-size:19px}.section-title span{color:var(--muted);background:var(--panel2);padding:2px 8px;border-radius:999px;font-size:12px}
.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}.folder-card{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:15px;transition:.16s}.folder-card:hover{border-color:#3c4252;transform:translateY(-1px)}.folder-link{display:flex;align-items:center;gap:13px;min-width:0}.folder-icon{font-size:25px;color:var(--accent2)}.folder-link strong,.folder-link small{display:block}.folder-link small{color:var(--muted);margin-top:2px}
.badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-radius:99px;padding:4px 7px}.badge.public{background:rgba(34,197,94,.12);color:#75e49c}.badge.private{background:rgba(239,68,68,.12);color:#f99393}.badge.overlay{position:absolute;top:9px;right:9px;backdrop-filter:blur(10px)}
.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.image-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.image-preview{aspect-ratio:16/11;background:#090a0e;display:block;position:relative;overflow:hidden}.image-preview img{width:100%;height:100%;object-fit:contain;display:block}.image-meta{padding:12px}.image-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-meta small{display:block;color:var(--muted);margin:3px 0 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-actions{display:flex;gap:7px}
.upload-zone{border:1px dashed #3a4050;border-radius:17px;min-height:260px;display:grid;place-items:center;text-align:center;align-content:center;padding:32px;background:radial-gradient(circle at center,rgba(124,58,237,.07),transparent 65%);transition:.15s}.upload-zone input{display:none}.upload-zone.drag{border-color:var(--accent2);background:rgba(124,58,237,.1)}.upload-zone.uploading{opacity:.55;pointer-events:none}.upload-icon{font-size:45px;color:var(--accent2)}.upload-zone h3{margin:5px 0}.upload-zone p{color:var(--muted);margin:0 0 20px}
.empty{border:1px dashed var(--line);border-radius:14px;padding:35px;color:var(--muted);text-align:center}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.67);display:none;align-items:center;justify-content:center;padding:22px;z-index:100}.modal.open{display:flex}.modal-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;color:var(--muted);font-size:27px;cursor:pointer}
.stack{display:grid;gap:15px;margin-top:20px}.stack label{display:grid;gap:7px;color:#cfd3dd;font-weight:650}input,select{width:100%;background:#0d1016;border:1px solid var(--line);border-radius:10px;color:#fff;padding:11px 12px;outline:none}input:focus,select:focus{border-color:var(--accent)}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 30%,rgba(124,58,237,.14),transparent 36%),var(--bg)}.auth-card{width:min(430px,100%);border:1px solid var(--line);background:rgba(18,21,29,.92);padding:31px;border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.35)}.auth-brand{margin-bottom:35px}.auth-card h1{margin:0 0 8px;font-size:27px}.muted{color:var(--muted)}.alert{margin-top:17px;padding:11px 13px;border-radius:10px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:#ffa1a1}
.table-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.role-pill{display:inline-flex;align-items:center;gap:7px}.role-pill i,.role-title i{width:9px;height:9px;border-radius:50%;display:inline-block}
.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:17px}.role-card{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:19px}.role-title{display:flex;align-items:center;gap:9px;margin-bottom:15px}.role-title h3{margin:0}.permission-line{display:flex;gap:11px;border-top:1px solid var(--line);padding:12px 0;align-items:flex-start}.permission-line input{width:16px;margin-top:3px}.permission-line span strong,.permission-line span small{display:block}.permission-line span small{color:var(--muted);font-weight:400}.permissionForm .btn{margin-top:10px}
.toast{position:fixed;right:22px;bottom:22px;background:#202533;border:1px solid #343b4d;border-radius:11px;padding:12px 15px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1;transform:none}.toast.error{border-color:rgba(239,68,68,.5);color:#ff9d9d}
@media(max-width:760px){.topbar{padding:0 17px;gap:10px}.topbar nav{display:none}.container{padding:20px}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:34px}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-grid{grid-template-columns:1fr}.account>span:not(.role-dot){display:none}}
