:root{--bg: #f5f8fb;--bg-accent: #eaf6fe;--surface: #ffffff;--border: #e4e9f0;--border-strong: #d3dbe6;--text: #16202c;--muted: #67748a;--muted-soft: #9aa6b8;--primary: #03acfc;--primary-dark: #0089d6;--primary-darker: #006cab;--primary-soft: #e5f6ff;--accent: #f42142;--accent-dark: #d21036;--danger: #e0364f;--radius: 14px;--radius-sm: 9px;--shadow-sm: 0 1px 2px rgba(16, 32, 48, .06);--shadow: 0 12px 30px rgba(11, 61, 97, .1);--shadow-lg: 0 24px 60px rgba(11, 61, 97, .16);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius-sm);padding:9px 16px;font-weight:600;transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(3,172,252,.35);outline-offset:2px}input{font:inherit;padding:11px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;background:#fff;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #03acfc29}a{color:var(--primary-dark)}.centered{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--bg-accent),transparent 60%),var(--bg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px 34px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.card-logo{display:block;height:62px;width:auto;margin:0 auto 6px}.card h1{margin:18px 0 6px;font-size:22px;text-align:center;letter-spacing:-.01em}.card .subtitle{text-align:center;color:var(--muted);font-size:14px;margin:0 0 24px}.brand{font-weight:800;letter-spacing:.06em;color:var(--primary);text-transform:uppercase}.card form label{display:block;margin-bottom:16px;font-size:13px;font-weight:600;color:var(--muted)}.card form label input{margin-top:7px;font-weight:400}.card button[type=submit]{width:100%;background:var(--primary);color:#fff;padding:12px;margin-top:8px;font-size:15px;box-shadow:0 8px 18px #03acfc47}.card button[type=submit]:hover{background:var(--primary-dark)}.card button[type=submit]:disabled{background:var(--muted-soft);box-shadow:none;cursor:not-allowed}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 26px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:20}.topbar-logo{height:34px;width:auto;display:block}.topbar-right{display:flex;align-items:center;gap:14px}.user-chip{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);display:grid;place-items:center;font-weight:700;font-size:13px;text-transform:uppercase}.content{max-width:1040px;width:100%;margin:0 auto;padding:26px 24px 60px;flex:1}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:15px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 14px;box-shadow:var(--shadow-sm)}.breadcrumb .home-btn{display:inline-flex;align-items:center;gap:6px}.breadcrumb .sep{color:var(--muted-soft);margin:0 2px}.actions{display:flex;gap:10px}.primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px #03acfc3d}.primary:hover{background:var(--primary-dark)}.secondary{background:#fff;color:var(--primary-dark);border:1px solid var(--border-strong)}.secondary:hover{background:var(--primary-soft);border-color:var(--primary)}.ghost{background:transparent;color:var(--muted);border:1px solid var(--border-strong)}.ghost:hover{background:#f1f4f8;color:var(--text)}.link{background:none;color:var(--primary-dark);padding:4px 6px;font-weight:600}.link:hover{text-decoration:underline}.danger-link{background:none;color:var(--danger);padding:4px 6px;font-weight:600}.danger-link:hover{background:#e0364f14;text-decoration:none}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:26px;text-align:center;color:var(--muted);background:var(--surface);margin-bottom:18px;transition:all .15s ease;font-size:14px}.dropzone .dz-icon{font-size:26px;display:block;margin-bottom:6px;opacity:.8}.dropzone strong{color:var(--primary-dark)}.dropzone.dragging{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-darker);transform:scale(1.005)}.uploads{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.upload-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;box-shadow:var(--shadow-sm)}.upload-name{flex:1;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{position:relative;width:170px;height:20px;background:#eef2f8;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-dark));transition:width .2s ease}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--text)}.listing{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.list-head{display:grid;grid-template-columns:1fr 110px 170px 210px;gap:12px;padding:12px 18px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-soft);background:#fafcfe;border-bottom:1px solid var(--border)}.list-head .col-actions{justify-content:flex-end}.row{display:grid;grid-template-columns:1fr 110px 170px 210px;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border);transition:background .12s ease}.row:last-child{border-bottom:none}.row:hover{background:#f7fbfe}.name-btn{display:flex;align-items:center;gap:11px;background:none;padding:0;text-align:left;color:var(--text);text-decoration:none;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .name-btn:hover{color:var(--primary-dark)}.folder-row .name-btn{font-weight:600}.icon{font-size:19px;flex-shrink:0}.col-size,.col-date{font-size:13px;color:var(--muted)}.col-actions{display:flex;gap:6px;justify-content:flex-end}.empty{padding:46px 28px;text-align:center}.empty .empty-icon{font-size:40px;display:block;margin-bottom:10px;opacity:.55}.muted{color:var(--muted);font-size:14px}.error{color:var(--danger);font-size:14px}.card .error{background:#e0364f14;border:1px solid rgba(224,54,79,.25);border-radius:var(--radius-sm);padding:9px 12px;margin:4px 0 12px}.loading-wrap{display:flex;align-items:center;gap:10px;color:var(--muted);padding:20px 2px}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}code{background:#eef2f8;padding:2px 6px;border-radius:5px;font-size:13px;font-family:Cascadia Code,Consolas,monospace}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:11px 20px;border-radius:999px;font-size:14px;font-weight:500;box-shadow:var(--shadow);animation:toast-in .2s ease;z-index:50}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 680px){.topbar{padding:10px 16px}.content{padding:18px 14px 48px}.user-chip .user-email,.list-head{display:none}.row{grid-template-columns:1fr auto}.col-size,.col-date{display:none}.toolbar{align-items:stretch}.actions{width:100%}.actions button{flex:1}}
