:root{--bg:#0b0d12;--panel:#11141b;--panel2:#171b24;--soft:#1d222d;--line:#252b38;--text:#f5f7fb;--muted:#8f98aa;--accent:#7c6cff;--accent2:#9a8cff;--danger:#ff6b7b;--success:#45d1a0;--shadow:0 18px 50px rgba(0,0,0,.34)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 85% -10%,rgba(124,108,255,.16),transparent 28%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input{font:inherit}button{color:inherit}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:rgba(11,13,18,.88);backdrop-filter:blur(18px);z-index:20}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--text);font-weight:780;font-size:19px;padding:0 8px 24px}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,var(--accent),#4c8dff);box-shadow:0 14px 35px rgba(124,108,255,.28);font-size:25px;font-weight:850}.brand-mark.small{width:34px;height:34px;border-radius:11px;font-size:16px}.nav{display:grid;gap:6px}.nav a,.album-link{display:flex;align-items:center;gap:11px;color:#aab1c0;text-decoration:none;padding:11px 12px;border-radius:12px;font-size:14px}.nav a:hover,.nav a.active,.album-link:hover,.album-link.active{background:var(--soft);color:#fff}.side-section{margin-top:28px;min-height:0;overflow:auto}.side-title{display:flex;justify-content:space-between;align-items:center;padding:0 9px 8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.11em;font-weight:750}.side-title button{border:0;background:transparent;cursor:pointer;font-size:19px}.album-link{justify-content:space-between}.album-link em{font-style:normal;font-size:11px;color:var(--muted)}.storage-card{margin-top:auto;background:linear-gradient(145deg,#171b24,#12161e);padding:14px;border:1px solid var(--line);border-radius:16px}.storage-card>div:first-child{display:flex;justify-content:space-between;font-size:12px}.storage-card strong{font-size:12px}.meter{height:6px;background:#242a36;border-radius:999px;margin:11px 0 8px;overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#4ca6ff);border-radius:inherit}.storage-card small{color:var(--muted);font-size:10px}.profile{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);padding:14px 6px 0;margin-top:12px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#212737}.profile>span:last-child{display:grid}.profile strong{font-size:12px}.profile small{color:var(--muted);font-size:11px}.main{padding:30px 34px 70px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:end;gap:24px}.eyebrow{color:var(--muted);margin:0 0 5px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:750}.topbar h1{font-size:30px;margin:0;letter-spacing:-.035em}.top-actions{display:flex;gap:9px;align-items:center}.search{height:42px;width:min(34vw,330px);display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:0 13px}.search input{width:100%;border:0;outline:0;background:transparent;color:#fff;font-size:13px}.search input::placeholder{color:#697285}.btn{border:1px solid var(--line);background:var(--panel2);height:42px;border-radius:13px;padding:0 16px;font-weight:700;font-size:13px;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--accent),#5d7dff);border-color:transparent;box-shadow:0 9px 24px rgba(124,108,255,.22)}.btn.ghost{background:var(--panel)}.icon-btn{width:42px;padding:0}.full{width:100%}.summary-row{display:grid;grid-template-columns:150px 150px minmax(260px,1fr);gap:12px;margin:28px 0 34px}.summary-card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(24,28,38,.94),rgba(16,19,26,.94));border-radius:17px;padding:15px 17px;min-height:92px;display:flex;flex-direction:column;justify-content:space-between}.summary-card span,.summary-card small{color:var(--muted);font-size:11px}.summary-card strong{font-size:21px}.summary-card.wide{background:linear-gradient(135deg,rgba(124,108,255,.16),rgba(23,27,36,.95))}.summary-card.wide strong{font-size:15px}.gallery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.gallery-head h2{margin:0;font-size:15px}.gallery-head p{font-size:11px;margin:4px 0 0}.muted{color:var(--muted)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.media-grid.dense{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px}.media-card{position:relative;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:17px;overflow:hidden;cursor:pointer;transition:.18s ease}.media-card:hover{transform:translateY(-2px);border-color:#394052;box-shadow:0 15px 40px rgba(0,0,0,.2)}.media-preview{aspect-ratio:1/1;background:#0e1117;overflow:hidden}.media-preview img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.media-card:hover img{transform:scale(1.025)}.video-thumb{height:100%;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#293149,#10131a)}.video-thumb span{font-size:30px}.video-thumb small{position:absolute;top:12px;left:12px;color:#adb5c5;font-size:9px;letter-spacing:.12em}.fav{position:absolute;right:11px;top:11px;width:31px;height:31px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(10,12,16,.54);backdrop-filter:blur(9px);z-index:2;cursor:pointer;opacity:.86}.fav.on{color:#ff7182}.media-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px}.media-meta>div{display:grid;min-width:0}.media-meta strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-meta small{color:var(--muted);font-size:9px;margin-top:3px}.more{border:0;background:transparent;color:#8e97a8;cursor:pointer;font-size:15px}.card-menu{display:none;position:absolute;right:10px;bottom:48px;z-index:8;min-width:170px;background:#171b23;border:1px solid #2b3240;border-radius:12px;padding:6px;box-shadow:var(--shadow)}.card-menu.show{display:grid}.card-menu button{border:0;background:transparent;color:#d7dce5;text-align:left;padding:8px 9px;border-radius:8px;font-size:11px;cursor:pointer}.card-menu button:hover{background:#222834}.card-menu .danger{color:#ff8794}.submenu-label{color:#697285;padding:8px 9px 3px;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.empty{border:1px dashed #303747;border-radius:22px;min-height:330px;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;background:rgba(17,20,27,.55)}.empty>div{font-size:35px;color:var(--accent2)}.empty h3{margin:12px 0 5px}.empty p{color:var(--muted);font-size:12px;margin:0 0 18px}.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(3,5,8,.72);backdrop-filter:blur(8px);padding:20px;z-index:100}.modal.show{display:flex}.modal-card{width:min(560px,100%);background:#12161e;border:1px solid #2a3140;border-radius:22px;padding:21px;box-shadow:var(--shadow)}.modal-card.compact{width:min(400px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.modal-head h3{margin:0;font-size:19px}.modal-close,.viewer-close{width:34px;height:34px;border-radius:50%;border:1px solid #303746;background:#1b202a;cursor:pointer;font-size:18px}.dropzone{border:1px dashed #3a4356;background:#0f1218;border-radius:17px;min-height:210px;display:grid;place-items:center;align-content:center;cursor:pointer;transition:.2s}.dropzone.drag{border-color:var(--accent);background:rgba(124,108,255,.08)}.dropzone input{display:none}.drop-icon{font-size:28px;color:var(--accent2)}.dropzone strong{font-size:14px;margin:8px 0 4px}.dropzone small{color:var(--muted);font-size:10px;text-align:center}.file-list{max-height:140px;overflow:auto;display:grid;gap:5px;margin:10px 0}.file-list div{display:flex;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:9px;background:#171b23;font-size:10px}.file-list span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-list small{color:var(--muted)}.progress{height:5px;border-radius:999px;background:#222936;margin-top:12px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.form-status{min-height:15px;color:var(--muted);font-size:10px}.viewer{width:min(1200px,96vw);height:min(860px,94vh);position:relative;display:flex;flex-direction:column}.viewer-close{position:absolute;right:8px;top:8px;z-index:3;background:rgba(16,19,26,.7)}.viewer-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}.viewer-caption{height:56px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.viewer-caption a{color:#bcb5ff;text-decoration:none}.stack{display:grid;gap:13px}.stack label{display:grid;gap:6px;color:#cbd1dd;font-size:11px}.stack input{height:44px;border:1px solid var(--line);border-radius:12px;background:#0f1218;color:#fff;padding:0 13px;outline:0}.stack input:focus{border-color:var(--accent)}.auth-body{display:grid;place-items:center;min-height:100vh;padding:24px}.auth-shell{width:min(430px,100%)}.auth-card{background:rgba(17,20,27,.9);border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:var(--shadow)}.auth-card .brand-mark{margin-bottom:22px}.auth-card h1{font-size:27px;letter-spacing:-.03em;margin:0 0 7px}.auth-card>p{font-size:12px;margin:0 0 24px}.alert{padding:10px 12px;border-radius:10px;font-size:11px;margin-bottom:13px}.alert.error{background:rgba(255,107,123,.1);color:#ff95a0;border:1px solid rgba(255,107,123,.2)}.alert.success{background:rgba(69,209,160,.1);color:#7fe7c1;border:1px solid rgba(69,209,160,.2)}.hint{margin:18px 0 0!important;color:var(--muted);font-size:10px!important;line-height:1.6}.mobile-nav{display:none}.modal-open{overflow:hidden}
@media(max-width:900px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.sidebar{padding:18px 12px}.brand span:last-child,.nav span,.side-section,.storage-card,.profile>span:last-child{display:none}.brand{justify-content:center;padding-bottom:20px}.nav a{justify-content:center;font-size:20px}.profile{justify-content:center}.main{padding:24px 22px 70px}.topbar{align-items:start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.search{order:3;width:100%}.summary-row{grid-template-columns:repeat(2,1fr)}.summary-card.wide{grid-column:1/-1}}
@media(max-width:640px){.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 92px}.topbar{display:block}.topbar h1{font-size:25px}.top-actions{display:grid;grid-template-columns:1fr 42px;margin-top:17px}.search{order:0;grid-column:1/-1;width:100%;margin-bottom:2px}.top-actions #uploadBtn{display:none}.summary-row{margin:20px 0 25px;grid-template-columns:1fr 1fr}.summary-card{min-height:79px;padding:13px}.summary-card.wide{display:none}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.media-grid.dense{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.media-card{border-radius:12px}.media-meta{padding:8px 9px}.media-meta strong{font-size:10px}.media-meta small{font-size:8px}.fav{width:28px;height:28px;right:7px;top:7px}.mobile-nav{display:flex;position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));height:64px;z-index:50;align-items:center;justify-content:space-around;background:rgba(19,23,31,.92);border:1px solid #2b3240;border-radius:20px;backdrop-filter:blur(18px);box-shadow:0 16px 45px rgba(0,0,0,.4)}.mobile-nav a,.mobile-nav button{width:56px;display:grid;place-items:center;gap:2px;border:0;background:transparent;color:#aab2c0;text-decoration:none;font-size:16px}.mobile-nav small{font-size:8px}.mobile-nav button{height:44px;border-radius:14px;background:linear-gradient(135deg,var(--accent),#5d7dff);color:#fff;font-size:25px}.modal{align-items:flex-end;padding:8px}.modal-card{border-radius:22px 22px 12px 12px}.upload-modal{max-height:92vh;overflow:auto}.viewer{height:94vh}.viewer-caption{padding:0 6px}.viewer-caption strong{max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-card{padding:25px 20px;border-radius:22px}}
