:root{--ink:#211922;--muted:#62625b;--sand:#e5e5e0;--warm:#f6f6f3;--red:#e60023;--white:#fff;--line:#e8e8e3;--focus:#435ee5}*{box-sizing:border-box}body{margin:0;background:var(--white);color:var(--ink);font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 30% 20%,#fff0ee 0,transparent 36%),radial-gradient(circle at 70% 80%,#f2efe6 0,transparent 38%),var(--warm)}.auth-card{width:min(430px,100%);padding:40px;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 80px rgba(33,25,34,.08)}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:var(--red);color:#fff;font-size:25px;font-weight:800}.brand-mark.small{width:38px;height:38px;border-radius:13px;font-size:18px}.eyebrow{margin:22px 0 6px;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.16em}.auth-card h1,.topbar h1{margin:0;letter-spacing:-.04em}.auth-card h1{font-size:38px}.muted{color:var(--muted);line-height:1.5}.auth-card form{display:grid;gap:10px;margin-top:24px}.auth-card label{font-size:13px;font-weight:700}.auth-card input{width:100%;padding:14px 16px;border:1px solid #91918c;border-radius:16px;outline:none}.auth-card input:focus{border-color:var(--focus);box-shadow:0 0 0 3px #435ee526}.auth-card small{color:var(--muted)}button,.upload-button{border:0;cursor:pointer;font-weight:750}.primary,.upload-button{padding:13px 18px;border-radius:16px;background:var(--red);color:#fff}.primary{margin-top:8px}.form-error{min-height:20px;color:#9e0a0a;font-size:13px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;padding:28px 18px;display:flex;flex-direction:column;background:var(--warm);border-right:1px solid var(--line)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.sidebar-brand div{display:grid}.sidebar-brand strong{font-size:18px}.sidebar-brand small{color:var(--muted)}#folder-list{display:grid;gap:5px}.folder-button{width:100%;display:flex;align-items:center;gap:11px;text-align:left;padding:12px 13px;border-radius:14px;background:transparent;color:var(--muted)}.folder-button:hover{background:var(--sand);color:var(--ink)}.folder-button.active{background:var(--ink);color:#fff}.folder-dot{width:10px;height:10px;border:2px solid currentColor;border-radius:50%}.storage-note{margin-top:auto;padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line);display:grid;gap:5px}.storage-note strong{font-size:13px}.storage-note span{color:var(--muted);font-size:11px;line-height:1.45}main{margin-left:270px;padding:34px 42px 70px;max-width:1800px}.topbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.topbar .eyebrow{margin:0 0 5px}.topbar h1{font-size:34px}.upload-button{display:inline-flex;align-items:center}.upload-zone{display:flex;justify-content:center;align-items:center;gap:16px;min-height:132px;padding:24px;border:2px dashed #c8c8c1;border-radius:24px;background:var(--warm);cursor:pointer;transition:.15s ease}.upload-zone:hover,.upload-zone.drag{border-color:var(--red);background:#fff4f3;transform:translateY(-1px)}.upload-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--sand);font-size:22px}.upload-zone div:last-child{display:grid;gap:4px}.upload-zone span{font-size:12px;color:var(--muted)}.upload-status{margin-top:14px;padding:17px;border-radius:18px;background:var(--ink);color:#fff}.status-row{display:flex;justify-content:space-between;font-size:13px}.progress{height:7px;margin:12px 0 0;background:#ffffff2b;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#ff526d;transition:width .2s}.secondary{margin-top:12px;padding:9px 12px;border-radius:12px;background:var(--sand);color:var(--ink)}.content-head{display:flex;justify-content:space-between;align-items:center;margin:30px 0 14px}.content-head p{margin:0;color:var(--muted);font-size:13px}.ghost{padding:8px 12px;border-radius:12px;background:transparent;color:var(--muted)}.ghost:hover{background:var(--sand);color:var(--ink)}.gallery-grid{columns:5 220px;column-gap:14px}.asset-card{position:relative;break-inside:avoid;margin:0 0 14px;border-radius:20px;overflow:hidden;background:var(--warm)}.asset-card img{display:block;width:100%;min-height:100px;object-fit:cover;cursor:zoom-in;background:var(--sand)}.card-body{padding:11px 12px 13px}.card-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:750}.card-meta{margin:3px 0 9px;color:var(--muted);font-size:11px}.card-actions{display:grid;grid-template-columns:1fr auto auto;gap:6px}.card-actions select{min-width:0;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px}.icon-action{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--sand);color:var(--ink);text-decoration:none}.icon-action.danger:hover{background:#ffd9dd;color:#9e0a0a}.empty-state{text-align:center;padding:80px 20px;color:var(--muted)}.empty-state div{font-size:40px;color:var(--red)}.empty-state h2{margin-bottom:4px;color:var(--ink)}.empty-state p{margin-top:0}dialog{max-width:min(92vw,1200px);max-height:92vh;padding:0;border:0;border-radius:20px;background:#111;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#171217d9;backdrop-filter:blur(8px)}dialog img{display:block;max-width:90vw;max-height:90vh}.dialog-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--ink);font-size:25px}@media(max-width:850px){.sidebar{position:static;width:auto;padding:14px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar-brand,.storage-note{display:none}#folder-list{display:flex;width:max-content}.folder-button{width:auto;white-space:nowrap}main{margin:0;padding:24px 16px 50px}.topbar{align-items:center}.topbar h1{font-size:28px}.gallery-grid{columns:2 150px}.upload-zone{min-height:110px}.upload-zone span{display:none}}@media(max-width:480px){.upload-button{padding:10px 12px}.gallery-grid{column-gap:10px}.asset-card{margin-bottom:10px}.card-actions{grid-template-columns:1fr auto}.card-actions .danger{grid-column:2}.topbar .eyebrow{display:none}}
