:root{--bg:#f8fafd;--surface:#fff;--surface-2:#f0f4f9;--surface-3:#e9eef6;--hover:#44474614;--press:#4447461f;--text:#1f1f1f;--text-2:#444746;--text-3:#5f6368;--outline:#747775;--outline-2:#c4c7c5;--divider:#e0e3e7;--primary:#0b57d0;--primary-hover:#0842a0;--on-primary:#fff;--selected:#c2e7ff;--selected-text:#001d35;--tonal:#d3e3fd;--danger:#b3261e;--danger-surface:#fce8e6;--danger-text:#a50e0e;--success:#188038;--success-surface:#c4eed0;--success-text:#0d652d;--positive-surface:#e6f4ea;--positive-text:#137333;--neutral-hover:#e1e5ea;--tonal-text:#041e49;--shadow-1:0 1px 2px #0000004d, 0 1px 3px 1px #00000026;--shadow-2:0 1px 2px #0000004d, 0 2px 6px 2px #00000026;--shadow-3:0 4px 8px 3px #00000026, 0 1px 3px #0000004d;--font:"Google Sans", "Google Sans Text", Roboto, "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#131314;--surface:#1e1f20;--surface-2:#252628;--surface-3:#303134;--hover:#e8eaed14;--press:#e8eaed24;--text:#e3e3e3;--text-2:#c4c7c5;--text-3:#9aa0a6;--outline:#8e918f;--outline-2:#5f6368;--divider:#3c4043;--primary:#a8c7fa;--primary-hover:#d3e3fd;--on-primary:#062e6f;--selected:#004a77;--selected-text:#c2e7ff;--tonal:#004a77;--danger:#f2b8b5;--danger-surface:#4a2421;--danger-text:#f2b8b5;--success:#81c995;--success-surface:#173a29;--success-text:#81c995;--positive-surface:#173a29;--positive-text:#81c995;--neutral-hover:#3c4043;--tonal-text:#d3e3fd;--shadow-1:0 1px 2px #00000080, 0 1px 3px 1px #0000004d;--shadow-2:0 1px 2px #00000080, 0 2px 6px 2px #0000004d;--shadow-3:0 4px 8px 3px #0000004d, 0 1px 3px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.38}a{color:var(--primary);text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:400}.muted{color:var(--text-3)}.small{font-size:12px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.center-pad{place-items:center;padding:48px;display:grid}.center-pad.full{height:100%}[hidden]{display:none!important}.btn{letter-spacing:.1px;white-space:nowrap;border-radius:20px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 24px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s;display:inline-flex}.btn.filled{background:var(--primary);color:var(--on-primary)}.btn.filled:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-1)}.btn.text{color:var(--primary);padding:0 12px}.btn.text:hover:not(:disabled){background:#0b57d014}.btn.outlined{border:1px solid var(--outline);color:var(--primary);padding:0 16px 0 14px}.btn.outlined:hover{background:#0b57d014}.btn.tonal{background:var(--tonal);color:var(--tonal-text)}.btn.tonal:hover{box-shadow:var(--shadow-1)}.btn.danger{background:var(--danger);color:#fff}.link-btn{color:var(--primary);font-weight:500}.icon-btn{color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;transition:background .1s;display:inline-grid;position:relative}.icon-btn:hover:not(:disabled){background:var(--hover)}.icon-btn:active:not(:disabled){background:var(--press)}.icon-btn.active{background:var(--selected);color:var(--selected-text)}.icon-btn.small{width:32px;height:32px}.icon-btn.on-dark{color:#fff}.icon-btn.on-dark:hover{background:#ffffff1f}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;pointer-events:none;z-index:100;background:#3c4043;border-radius:4px;padding:4px 8px;font-size:12px;line-height:16px;animation:.15s .5s both tip-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}@keyframes tip-in{0%{opacity:0}to{opacity:.92}}.avatar{color:#fff;object-fit:cover;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;place-items:center;font-weight:500;display:inline-grid}.app{grid-template:"top top"64px"side main"1fr/256px 1fr;height:100%;display:grid}.app.anonymous{grid-template-columns:0 1fr}.topbar{grid-area:top;align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex;position:relative}.brand{width:238px;color:var(--text-2);flex-shrink:0;align-items:center;gap:8px;padding-left:4px;font-size:22px;display:flex}.brand:hover{text-decoration:none}.admin-tag{background:var(--surface-3);vertical-align:middle;border-radius:6px;margin-left:4px;padding:2px 8px;font-size:14px}.search-spacer{flex:1}.topbar-actions{align-items:center;gap:4px;margin-left:auto;padding-right:8px;display:flex}.theme-toggle-floating{z-index:1;position:absolute;top:16px;right:16px}.avatar-btn{border-radius:50%;padding:4px;display:grid}.avatar-btn:hover{background:var(--hover)}.search{background:var(--surface-3);border-radius:24px;flex:1;align-items:center;max-width:720px;height:48px;padding:0 4px;transition:background .15s,box-shadow .15s;display:flex;position:relative}.search.focused{background:var(--surface);box-shadow:var(--shadow-1)}.search.with-results{border-radius:24px 24px 0 0}.search .icon-btn{width:40px;height:40px}.search input{background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;padding:0 8px;font-size:16px}.search-results{background:var(--surface);box-shadow:var(--shadow-1);z-index:50;clip-path:inset(0 -10px -10px);border-top:1px solid var(--divider);border-radius:0 0 24px 24px;padding:8px 0 12px;position:absolute;top:100%;left:0;right:0}.search-result{text-align:left;align-items:center;gap:16px;width:100%;padding:8px 20px;display:flex}.search-result:hover{background:var(--hover)}.search-result-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.search-result-owner{color:var(--text-3);font-size:12px}.search-result.all{color:var(--text-2)}.account-card{background:var(--surface-3);width:400px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-3);z-index:60;border-radius:28px;flex-direction:column;align-items:center;gap:12px;padding:16px 16px 24px;display:flex;position:absolute;top:60px;right:12px}.account-email{color:var(--text-2);padding:4px 40px 8px;font-size:14px;font-weight:500}.account-close{width:40px;height:40px;position:absolute;top:8px;right:8px}.account-hi{font-size:22px}.account-storage{color:var(--text-2);background:var(--surface);border-radius:20px;align-items:center;gap:8px;padding:8px 16px;display:flex}.account-signout{margin-top:8px}.sidebar{flex-direction:column;grid-area:side;padding:8px 16px 16px 8px;display:flex;overflow-y:auto}.app.anonymous .sidebar{display:none}.new-btn{background:var(--surface);height:56px;box-shadow:var(--shadow-1);color:var(--text);border-radius:16px;align-self:flex-start;align-items:center;gap:12px;margin:0 0 16px 8px;padding:0 20px 0 16px;font-size:14px;font-weight:500;transition:box-shadow .15s,background .15s;display:inline-flex}.new-btn:hover{box-shadow:var(--shadow-2);background:var(--surface-3)}.nav{flex-direction:column;display:flex}.nav-item{height:32px;color:var(--text);border-radius:16px;align-items:center;gap:12px;margin-right:0;padding:0 12px 0 16px;font-size:14px;text-decoration:none;display:flex}.nav-item:hover{background:var(--hover);text-decoration:none}.nav-item.active{background:var(--selected);color:var(--selected-text);font-weight:600}.nav-item.dropping{background:var(--tonal);outline:2px solid var(--primary)}.nav-item svg{color:var(--text-2)}.nav-item.active svg{color:var(--selected-text)}.nav-admin{border-top:1px solid var(--divider);margin-top:16px;padding-top:8px}.storage{color:var(--text-2);padding:4px 16px 0 52px;font-size:12px;text-decoration:none;display:block}.storage:hover{text-decoration:none}.storage span{margin-top:6px;display:block}.storage-bar{background:var(--divider);border-radius:2px;height:4px;display:block;overflow:hidden}.storage-bar.wide{border-radius:4px;max-width:560px;height:8px;margin:12px 0}.storage-fill{background:var(--primary);border-radius:inherit;height:100%;display:block}.storage-fill.full{background:#d93025}.main{grid-area:main;min-width:0;min-height:0;padding:0 16px 16px 0}.app.anonymous .main{padding-left:16px}.drive-view{height:100%}.content-card{background:var(--surface);border-radius:16px;height:100%;min-height:0;display:flex;overflow:hidden}.content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.content-head{align-items:center;gap:8px;min-height:64px;padding:8px 16px 0 24px;display:flex}.view-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:4px 0;font-size:24px;line-height:32px;overflow:hidden}.head-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.segmented{border:1px solid var(--outline);border-radius:16px;height:32px;display:inline-flex;overflow:hidden}.segmented button{color:var(--text-2);align-items:center;gap:4px;padding:0 12px;display:inline-flex}.segmented button+button{border-left:1px solid var(--outline)}.segmented button.on{background:var(--selected);color:var(--selected-text)}.segmented button:not(.on):hover{background:var(--hover)}.crumbs{flex:1;align-items:center;min-width:0;display:flex;overflow:hidden}.crumb-wrap{align-items:center;min-width:0;display:inline-flex}.crumb-sep{color:var(--text-2);flex-shrink:0}.crumb{color:var(--text-2);white-space:nowrap;border-radius:20px;align-items:center;gap:4px;min-width:0;padding:4px 12px;font-size:24px;line-height:32px;display:inline-flex}.crumb:hover{background:var(--hover)}.crumb.last{color:var(--text);padding-right:8px}.crumb.drop-target{background:var(--tonal);outline:2px solid var(--primary)}.crumb-text{text-overflow:ellipsis;max-width:320px;overflow:hidden}.toolbar{align-items:center;min-height:48px;padding:4px 16px 8px 24px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--outline);border-radius:8px;align-items:center;height:32px;display:inline-flex;overflow:hidden}.chip-main{height:100%;color:var(--text-2);align-items:center;gap:8px;padding:0 8px 0 16px;font-weight:500;display:inline-flex}.chip-main:hover,.chip-clear:hover{background:var(--hover)}.chip.active{background:var(--selected);border-color:var(--selected)}.chip.active .chip-main{color:var(--selected-text);padding-left:8px}.chip-clear{width:32px;height:100%;color:var(--selected-text);place-items:center;display:grid}.selection-bar{background:var(--surface-2);border-radius:24px;flex:1;align-items:center;gap:4px;height:40px;padding:0 8px 0 4px;display:flex}.selection-count{color:var(--text);min-width:80px;margin:0 12px 0 4px;font-weight:500}.trash-banner{background:var(--surface-2);color:var(--text-2);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:0 16px 8px 24px;padding:4px 4px 4px 16px;display:flex}.storage-summary{padding:0 24px 16px}.storage-big{font-size:28px}.storage-big span{color:var(--text-2);font-size:16px}.scroll{flex:1;min-height:0;padding:0 16px 24px;overflow:auto}.list{min-width:640px}.list-head,.list-row{grid-template-columns:minmax(200px,1fr) 180px 160px 110px 176px;align-items:center;display:grid}.list-head{background:var(--surface);z-index:2;border-bottom:1px solid var(--divider);height:48px;position:sticky;top:0}.col-head{height:32px;color:var(--text);border-radius:16px;justify-self:start;align-items:center;gap:4px;padding:0 8px;font-weight:500;display:inline-flex}.col-head:hover{background:var(--hover)}.list-head .c-name{padding-left:8px}.list-row{border-bottom:1px solid var(--divider);cursor:default;-webkit-user-select:none;user-select:none;height:48px;color:var(--text-2);border-radius:0}.list-row:hover{background:var(--hover)}.list-row.selected{background:var(--selected);color:var(--selected-text);border-bottom-color:#0000;border-radius:8px}.list-row.drop-target{background:var(--tonal);outline:2px solid var(--primary);outline-offset:-2px;border-radius:8px}.list-row>span{align-items:center;gap:12px;min-width:0;padding:0 8px;display:flex}.list-row .c-name{color:var(--text);padding-left:16px;font-weight:500}.name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.name-badge{color:var(--text-3)}.owner-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.c-actions{justify-content:flex-end;gap:0!important}.quick-actions{visibility:hidden;display:inline-flex}.list-row:hover .quick-actions,.list-row.selected .quick-actions{visibility:visible}.list-row .icon-btn{color:var(--text-2)}.grid-wrap{padding:0 8px}.grid-section{color:var(--text);margin:8px 0 12px 8px;font-size:14px;font-weight:500}.grid{gap:16px;margin-bottom:24px;display:grid}.grid.folders,.grid.files{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.folder-card{background:var(--surface-2);-webkit-user-select:none;user-select:none;cursor:default;border-radius:12px;align-items:center;gap:12px;height:48px;padding:0 4px 0 16px;font-weight:500;display:flex}.folder-card:hover{background:var(--neutral-hover)}.folder-card.selected{background:var(--selected);color:var(--selected-text)}.folder-card.drop-target{background:var(--tonal);outline:2px solid var(--primary)}.folder-card .name-text{flex:1}.file-card{background:var(--surface-2);-webkit-user-select:none;user-select:none;cursor:default;border-radius:12px;flex-direction:column;height:240px;padding:0 4px;display:flex}.file-card:hover{background:var(--neutral-hover)}.file-card.selected{background:var(--selected)}.file-card-head{align-items:center;gap:12px;height:48px;padding:0 0 0 12px;font-weight:500;display:flex}.file-card-head .name-text{flex:1}.thumb{background:var(--surface);border-radius:8px;flex:1;place-items:center;min-height:0;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb-icon{place-items:center;display:grid}.file-card-foot{height:44px;color:var(--text-2);align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex}.drop-overlay{border:2px solid var(--primary);pointer-events:none;z-index:20;background:#0b57d00f;border-radius:16px;justify-content:center;align-items:flex-end;padding-bottom:32px;display:flex;position:absolute;inset:0}.drop-hint{background:var(--primary);color:#fff;box-shadow:var(--shadow-2);border-radius:24px;align-items:center;gap:12px;padding:12px 24px;display:flex}.drag-ghost{background:var(--primary);color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;max-width:280px;padding:8px 16px;font-weight:500;position:fixed;top:-100px;left:0;overflow:hidden}.empty{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;padding:64px 24px;display:flex}.empty-art{background:var(--surface-2);border-radius:50%;place-items:center;width:160px;height:160px;margin-bottom:24px;display:grid}.empty h2{color:var(--text);margin-bottom:8px;font-size:22px}.empty p{max-width:420px;margin:0;line-height:20px}.details{border-left:1px solid var(--divider);flex-direction:column;flex-shrink:0;width:360px;min-height:0;display:flex}.details-head{align-items:center;gap:12px;min-height:64px;padding:12px 8px 12px 24px;display:flex}.details-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:18px;overflow:hidden}.details-body{padding:0 24px 24px;overflow-y:auto}.details-empty{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;padding:48px 24px;display:flex}.details-preview{background:var(--surface-2);border-radius:12px;place-items:center;height:180px;margin-bottom:16px;display:grid;overflow:hidden}.details-preview img{object-fit:contain;width:100%;height:100%}.details-section{border-top:1px solid var(--divider);padding:16px 0}.details-section:first-of-type{border-top:0}.details-section h4{margin-bottom:12px;font-size:16px;font-weight:500}.access-avatars{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;display:flex}.access-public{background:var(--positive-surface);color:var(--positive-text);border-radius:12px;padding:4px 8px;font-size:12px}.details-list{gap:4px;margin:0;display:grid}.details-list dt{color:var(--text-3);margin-top:8px;font-size:12px}.details-list dd{color:var(--text);word-break:break-word;margin:0}.location-chip{border:1px solid var(--outline-2);color:var(--text);border-radius:8px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.location-chip:hover{background:var(--hover);text-decoration:none}.text-field{border:1px solid var(--outline);background:var(--surface);border-radius:4px;outline:0;width:100%;height:48px;padding:0 16px;font-size:16px}.text-field:focus{border:2px solid var(--primary);padding:0 15px}textarea.text-field{resize:vertical;height:auto;padding:12px 16px;font-size:14px}textarea.text-field:focus{padding:11px 15px}.menu{z-index:1000;background:var(--surface-2);box-shadow:var(--shadow-2);border-radius:4px;max-height:calc(100vh - 16px);padding:8px 0;animation:.12s ease-out pop;position:fixed;overflow-y:auto}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.menu-item{text-align:left;width:100%;height:36px;color:var(--text);align-items:center;gap:12px;padding:0 16px 0 12px;display:flex}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-icon{width:24px;color:var(--text-2);place-items:center;display:grid}.menu-item.danger .menu-icon{color:var(--danger)}.menu-label{white-space:nowrap;flex:1}.menu-hint{color:var(--text-3);font-size:12px}.menu-divider{background:var(--divider);height:1px;margin:8px 0}.scrim{z-index:500;background:#0006;place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.dialog{background:var(--surface-2);max-width:100%;max-height:calc(100vh - 32px);box-shadow:var(--shadow-3);border-radius:28px;flex-direction:column;padding:24px;animation:.15s ease-out pop;display:flex}.dialog-title{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;margin-bottom:16px;font-size:24px;line-height:32px;overflow:hidden}.dialog-body{min-height:0;overflow-y:auto}.dialog-text{color:var(--text-2);margin:0;line-height:20px}.dialog-actions{flex-shrink:0;justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.dialog-actions.spread{justify-content:space-between}.dialog-actions.inline{margin-top:24px}.share-dialog{background:var(--surface)}.share-add-row{align-items:flex-start;gap:8px;display:flex}.chip-input{border:1px solid var(--outline);cursor:text;border-radius:4px;flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-height:56px;padding:8px 12px;display:flex;position:relative}.chip-input:focus-within{border:2px solid var(--primary);padding:7px 11px}.chip-input input{background:0 0;border:0;outline:0;flex:1;min-width:160px;height:32px;font-size:16px}.person-chip{border:1px solid var(--outline-2);border-radius:16px;align-items:center;gap:6px;padding:2px 4px 2px 2px;font-size:14px;display:inline-flex}.person-chip button{border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.person-chip button:hover{background:var(--hover)}.suggestions{background:var(--surface);box-shadow:var(--shadow-2);z-index:10;border-radius:4px;padding:8px 0;position:absolute;top:calc(100% + 2px);left:-1px;right:-1px}.suggestion{text-align:left;align-items:center;gap:12px;width:100%;padding:8px 16px;display:flex}.suggestion:hover{background:var(--hover)}.suggestion>span{flex-direction:column;display:flex}.share-section{margin:24px 0 8px;font-size:16px;font-weight:500}.people-list{flex-direction:column;max-height:260px;margin:0 -8px;display:flex;overflow-y:auto}.person-row{border-radius:8px;align-items:center;gap:12px;padding:8px;display:flex}.person-row:hover{background:var(--hover)}.person-text{flex-direction:column;flex:1;min-width:0;display:flex}.person-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-email{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.role-select{color:var(--text-2);border-radius:4px;align-items:center;gap:4px;padding:6px 8px 6px 12px;font-weight:500;display:inline-flex}.role-select:hover:not(:disabled){background:var(--hover)}.role-select.bordered{border:1px solid var(--outline);border-radius:4px;height:56px;padding:0 12px 0 16px}.role-select.strong{color:var(--text);padding-left:4px}.role-static{color:var(--text-3);padding:0 12px}.general-access{align-items:center;gap:12px;padding:8px 0;display:flex}.access-icon{background:var(--surface-3);width:36px;height:36px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.access-icon.public{background:var(--success-surface);color:var(--success-text)}.access-text{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.access-text .strong{font-weight:500}.access-sub{color:var(--text-3);padding-left:4px;font-size:12px}.move-dialog{background:var(--surface)}.tabs{border-bottom:1px solid var(--divider);margin:0 -24px;padding:0 24px;display:flex}.tab{color:var(--text-2);border-bottom:3px solid #0000;padding:12px 16px;font-weight:500}.tab:hover{background:var(--hover)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab.semi{color:var(--primary)}.move-header{align-items:center;gap:4px;min-height:48px;padding-top:8px;display:flex}.move-crumb{flex:1;padding-left:4px;font-size:16px;font-weight:500}.move-list{border:1px solid var(--divider);border-radius:8px;height:300px;overflow-y:auto}.move-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;height:44px;padding:0 4px 0 16px;display:flex}.move-row:hover{background:var(--hover)}.move-row.selected{background:var(--selected)}.move-row.disabled{opacity:.45;cursor:default}.move-row.disabled:hover{background:0 0}.move-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.move-empty{text-align:center;color:var(--text-3);padding:32px}.move-dest{color:var(--text-2);align-items:center;gap:4px;padding-top:12px;display:flex}.snackbar{z-index:900;color:#f2f2f2;min-height:48px;box-shadow:var(--shadow-2);background:#303030;border-radius:4px;align-items:center;gap:8px;max-width:min(560px,100vw - 48px);padding:6px 8px 6px 16px;animation:.2s ease-out slide-up;display:flex;position:fixed;bottom:24px;left:24px}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}}.snackbar span{flex:1;padding-right:8px}.snackbar-action{color:#a8c7fa;border-radius:4px;padding:8px 12px;font-weight:500}.snackbar-action:hover{background:#a8c7fa1f}.snackbar-close{color:#f2f2f2;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.snackbar-close:hover{background:#ffffff1f}.upload-panel{background:var(--surface);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-3);z-index:800;border-radius:16px 16px 0 0;position:fixed;bottom:0;right:24px;overflow:hidden}.upload-header{background:var(--surface-2);align-items:center;height:56px;padding:4px 4px 4px 20px;font-size:16px;font-weight:500;display:flex}.upload-header span{flex:1}.upload-summary{background:var(--surface-3);color:var(--text-2);justify-content:space-between;padding:10px 20px;font-size:13px;display:flex}.upload-list{max-height:280px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.upload-row{align-items:center;gap:12px;height:48px;padding:0 16px 0 20px;display:flex}.upload-row:hover{background:var(--hover)}.upload-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.upload-name.muted{color:var(--text-3);text-decoration:line-through}.upload-status{color:var(--text-3);font-size:12px}.progress-ring-btn{border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:relative}.progress-ring-btn .progress-cancel{display:none;position:absolute}.progress-ring-btn:hover .progress-ring{display:none}.progress-ring-btn:hover .progress-cancel{display:block}.preview{z-index:400;color:#fff;background:#000000e0;flex-direction:column;animation:.15s fade;display:flex;position:fixed;inset:0}.preview-bar{background:linear-gradient(#0009,#0000);flex-shrink:0;align-items:center;gap:12px;height:64px;padding:0 12px;display:flex}.preview-name{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.preview-spacer{flex:1}.preview-stage{flex:1;place-items:center;min-height:0;padding:0 80px 24px;display:grid}.preview-media{object-fit:contain;background:#000;max-width:100%;max-height:100%;box-shadow:0 8px 40px #00000080}.preview-doc{background:#fff;border:0;border-radius:4px;width:min(1000px,100%);height:100%}.preview-text{color:#1f1f1f;white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:4px;width:min(1000px,100%);max-height:100%;margin:0;padding:32px 40px;font:13px/1.6 JetBrains Mono,Consolas,SF Mono,Menlo,monospace;overflow:auto}.preview-audio{flex-direction:column;align-items:center;gap:24px;display:flex}.preview-nav{background:#0006;position:absolute;top:50%;transform:translateY(-50%)}.preview-nav.prev{left:16px}.preview-nav.next{right:16px}.no-preview{background:#3c4043;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:40px 64px;display:flex}.no-preview p{margin:8px 0 0;font-size:18px}.no-preview .muted{color:#bdc1c6;margin-bottom:16px}.file-page{background:#202124;height:100%}.spinner{border:3px solid var(--tonal);border-top-color:var(--primary);border-radius:50%;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.switch{border:2px solid var(--outline);background:var(--surface-3);border-radius:16px;flex-shrink:0;width:52px;height:32px;transition:background .15s;position:relative}.switch-thumb{background:var(--outline);border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:6px;left:6px}.switch.on{background:var(--primary);border-color:var(--primary)}.switch.on .switch-thumb{background:#fff;width:24px;height:24px;top:2px;left:22px}.login-page{background:var(--surface-2);place-items:center;min-height:100%;padding:24px;display:grid}.login-card{background:var(--surface);border-radius:28px;flex-direction:column;align-items:flex-start;gap:8px;width:448px;max-width:100%;padding:40px 40px 36px;display:flex}.login-card h1{margin-top:16px;font-size:36px;line-height:44px}.login-sub{color:var(--text-2);margin:0 0 24px;font-size:16px}.login-btn{border-radius:24px;align-self:stretch;height:48px}.login-error{color:var(--danger-text);background:var(--danger-surface);border-radius:12px;align-self:stretch;align-items:flex-start;gap:8px;margin-bottom:16px;padding:12px 16px;display:flex}.login-note{color:var(--text-2);margin:0 0 16px}.dev-login{flex-direction:column;align-self:stretch;gap:12px;margin-top:16px;display:flex}.dev-divider{color:var(--text-3);align-items:center;gap:12px;font-size:12px;display:flex}.dev-divider:before,.dev-divider:after{content:"";background:var(--divider);flex:1;height:1px}.field-error{color:var(--danger);font-size:12px}.field-hint{color:var(--text-3);font-size:12px;line-height:16px}.admin-card{display:block;overflow-y:auto}.admin-page{max-width:1200px;padding:16px 24px 32px}.admin-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.admin-page>.view-title{margin-bottom:16px}.filter-box{background:var(--surface-3);width:280px;height:40px;color:var(--text-2);border-radius:20px;align-items:center;gap:8px;padding:0 16px;display:flex}.filter-box input{background:0 0;border:0;outline:0;flex:1;min-width:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px;display:grid}.stat-tile{background:var(--surface-2);border-radius:16px;flex-direction:column;gap:4px;padding:20px;display:flex}.stat-label{color:var(--text-2);font-weight:500}.stat-value{color:var(--text);font-size:32px;line-height:40px}.stat-sub{color:var(--text-3);font-size:12px}.admin-columns{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;margin-bottom:16px;display:grid}.panel{border:1px solid var(--divider);border-radius:16px;min-width:0;padding:20px}.panel h2{margin-bottom:16px;font-size:16px;font-weight:500}.settings-form .panel{max-width:720px;margin-bottom:16px}.hbars{flex-direction:column;gap:10px;display:flex}.hbar-row{grid-template-columns:110px 1fr 72px;align-items:center;gap:12px;display:grid}.hbar-label{color:var(--text-2)}.hbar-track{height:12px}.hbar-fill{background:var(--primary);border-radius:0 4px 4px 0;height:100%;display:block}.hbar-row:hover .hbar-fill{background:var(--primary-hover)}.hbar-value{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.vchart{position:relative}.vchart .axis{stroke:var(--divider);stroke-width:1px}.vchart .vbar{fill:var(--primary)}.vchart .vbar.hover{fill:var(--primary-hover)}.vchart .tick{fill:var(--text-3);font-size:10px}.chart-tip{color:#fff;pointer-events:none;white-space:nowrap;background:#303030;border-radius:8px;flex-direction:column;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:0;transform:translate(-50%,-8px)}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text);border-bottom:1px solid var(--divider);white-space:nowrap;padding:12px 8px;font-weight:500}.table td{border-bottom:1px solid var(--divider);color:var(--text-2);vertical-align:middle;padding:8px}.table tr:last-child td{border-bottom:0}.table.compact td{padding:6px 4px}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tbody tr:hover{background:var(--hover)}.disabled-row{opacity:.6}.user-cell{align-items:center;gap:12px;min-width:220px;display:flex}.cell-stack{flex-direction:column;min-width:0;max-width:340px;display:flex}.usage-cell{flex-direction:column;gap:6px;min-width:180px;display:flex}.badge{border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.badge.blue{background:var(--tonal);color:var(--tonal-text)}.badge.green{background:var(--success-surface);color:var(--success-text)}.badge.red{background:var(--danger-surface);color:var(--danger-text)}.field{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.field:last-child{margin-bottom:0}.field-label{color:var(--text);font-weight:500}.toggle-field{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}.toggle-field>div{flex-direction:column;gap:4px;display:flex}.form-actions{justify-content:flex-start;display:flex}@media (width<=1100px){.list-head,.list-row{grid-template-columns:minmax(200px,1fr) 140px 120px 90px 48px}.quick-actions{display:none}.details{width:300px}}@media (width<=800px){.app{grid-template-columns:0 1fr}.sidebar{display:none}.main{padding-left:8px;padding-right:8px}.brand span{display:none}.brand{width:auto}.details{display:none}.list{min-width:0}.list-head,.list-row{grid-template-columns:1fr 90px 48px}.c-owner,.c-size{display:none!important}.preview-stage{padding:0 8px 8px}}
