:root{--bg: #f4f7fb;--panel: #ffffff;--sidebar: #0f172a;--sidebar-text: #e2e8f0;--muted: #64748b;--text: #0f172a;--border: #e2e8f0;--accent: #2563eb;--accent-soft: #dbeafe;--danger: #dc2626;--success: #16a34a;--shadow: 0 10px 30px rgba(15, 23, 42, .08);--radius: 14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:var(--bg);color:var(--text)}button,input{font:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.btn-primary,.btn-secondary,.btn-ghost{border:none;border-radius:10px;cursor:pointer;font-weight:600;padding:.65rem 1rem}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--accent-soft);color:var(--accent)}.btn-ghost{background:transparent;color:inherit;padding:.35rem .5rem}.wide{width:100%}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-hero{background:linear-gradient(145deg,#0f172a,#1e3a8a 55%,#2563eb);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:3rem;gap:1rem}.auth-hero img{border-radius:16px;box-shadow:var(--shadow)}.auth-hero h1{font-size:2.4rem;letter-spacing:-.03em}.auth-hero p{max-width:28rem;opacity:.9;line-height:1.5}.auth-card{display:flex;flex-direction:column;justify-content:center;padding:2.5rem;max-width:440px;width:100%;margin:0 auto}.auth-card h2{font-size:1.6rem;margin-bottom:.25rem}.auth-card label{font-size:.85rem;color:var(--muted);margin:.4rem 0 .3rem}.auth-card input{width:100%;border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;margin-bottom:.5rem;background:#fff}.auth-footer{margin-top:1rem;color:var(--muted);font-size:.9rem}.error{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;padding:.65rem .8rem;border-radius:10px;margin:.5rem 0;font-size:.9rem}.muted{color:var(--muted)}.drive-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.brand{display:flex;gap:.75rem;align-items:center}.brand img{border-radius:10px}.brand strong{display:block;font-size:1.05rem}.brand span{color:#94a3b8;font-size:.8rem}.new-btn{width:100%}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.nav{text-align:left;background:transparent;color:#cbd5e1;border:none;border-radius:10px;padding:.7rem .85rem;cursor:pointer;font-weight:500}.nav:hover,.nav.active{background:#2563eb40;color:#fff}.storage-card{margin-top:auto;background:#ffffff0f;border-radius:12px;padding:.9rem}.storage-label{font-size:.8rem;color:#94a3b8;margin-bottom:.4rem}.storage-bar{height:8px;background:#ffffff1a;border-radius:999px;overflow:hidden}.storage-fill{height:100%;background:linear-gradient(90deg,#60a5fa,#2563eb)}.storage-meta{font-size:.78rem;color:#94a3b8;margin-top:.45rem}.user-card{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700}.user-name{font-size:.9rem;font-weight:600}.user-email{font-size:.75rem;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.main{padding:1.25rem 1.5rem 2rem}.topbar{display:flex;gap:1rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.search{display:flex;gap:.5rem;flex:1;min-width:240px}.search input{flex:1;border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem;background:#fff}.top-actions{display:flex;gap:.5rem}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;margin-bottom:1rem}.crumb{background:transparent;border:none;color:var(--accent);cursor:pointer;font-weight:600;padding:.15rem .25rem}.sep{color:var(--muted);margin:0 .15rem}.banner{display:flex;justify-content:space-between;align-items:center;padding:.7rem .9rem;border-radius:10px;margin-bottom:1rem}.error-banner{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.9rem}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);cursor:default;transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:.35rem;min-height:170px}.tile:hover{border-color:#93c5fd;transform:translateY(-1px)}.tile.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tile-icon{font-size:1.8rem}.tile-name{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-meta{color:var(--muted);font-size:.8rem}.tile-actions{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto}.tile-actions button{border:none;background:#f1f5f9;color:#334155;border-radius:8px;padding:.3rem .5rem;font-size:.75rem;cursor:pointer;font-weight:600}.tile-actions button:hover{background:var(--accent-soft);color:var(--accent)}.tile-actions button.danger:hover{background:#fee2e2;color:var(--danger)}.empty{background:#fff;border:1px dashed var(--border);border-radius:16px;padding:3rem 1.5rem;text-align:center;display:grid;place-items:center;gap:.6rem}.empty-icon{font-size:2.5rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:50;padding:1rem}.modal{width:min(420px,100%);background:#fff;border-radius:16px;padding:1.25rem;box-shadow:var(--shadow);display:grid;gap:.75rem}.modal input{width:100%;border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:.75rem 1.1rem;border-radius:999px;box-shadow:var(--shadow);z-index:60;font-size:.9rem}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-hero{min-height:220px;padding:2rem}.drive-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10}}
