.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:var(--toolbar-h) minmax(0,1fr) 28px;grid-template-areas:"toolbar toolbar" "sidebar main" "status status";height:100%}.shell.no-sidebar{grid-template-columns:0 minmax(0,1fr)}.toolbar{grid-area:toolbar;display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--bg-layer);-webkit-backdrop-filter:blur(28px) saturate(1.4);backdrop-filter:blur(28px) saturate(1.4);border-bottom:1px solid var(--stroke-default);min-width:0;position:relative;z-index:20}.icon-btn{display:grid;place-items:center;width:34px;height:32px;flex:none;border:0;border-radius:var(--radius-s);background:transparent;color:var(--text-primary);font-size:16px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.icon-btn:hover:not(:disabled){background:var(--fill-hover)}.icon-btn:active:not(:disabled){background:var(--fill-press)}.icon-btn:disabled{color:var(--text-disabled);cursor:default}.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border:1px solid var(--stroke-default);border-radius:var(--radius-s);background:var(--bg-card);color:var(--text-primary);font:inherit;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out)}.btn:hover:not(:disabled){background:var(--fill-hover)}.btn:active:not(:disabled){background:var(--fill-press)}.btn:disabled{color:var(--text-disabled);cursor:default}.btn.accent{background:var(--accent);border-color:transparent;color:var(--accent-text);font-weight:600}.btn.accent:hover:not(:disabled){background:var(--accent-hover)}.btn.danger{color:var(--danger)}.crumbs{flex:1;display:flex;align-items:center;gap:1px;min-width:0;height:32px;padding:0 4px;border:1px solid var(--stroke-default);border-radius:var(--radius-s);background:var(--bg-card);overflow:hidden}.crumb{flex:none;max-width:220px;padding:4px 7px;border:0;border-radius:3px;background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb:hover{background:var(--fill-hover)}.crumb.last{font-weight:600}.crumb-sep{flex:none;color:var(--text-secondary);font-size:11px;pointer-events:none}.crumbs input{flex:1;min-width:0;border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;outline:none;padding:0 6px}.search-box{flex:0 1 260px;display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--stroke-default);border-radius:var(--radius-s);background:var(--bg-card);color:var(--text-secondary)}.search-box:focus-within{border-color:var(--accent);box-shadow:inset 0 -1px 0 var(--accent)}.search-box input{flex:1;min-width:0;border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;outline:none}.sidebar{grid-area:sidebar;overflow-y:auto;overflow-x:hidden;padding:8px 6px 12px;background:var(--bg-layer);-webkit-backdrop-filter:blur(28px) saturate(1.4);backdrop-filter:blur(28px) saturate(1.4);border-right:1px solid var(--stroke-default);display:flex;flex-direction:column;gap:2px}.side-heading{padding:10px 10px 4px;color:var(--text-secondary);font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.side-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:var(--radius-s);background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;position:relative;min-width:0}.side-item:hover{background:var(--fill-hover)}.side-item.active{background:var(--fill-selected)}.side-item.active:before{content:"";position:absolute;left:0;top:20%;height:60%;width:3px;border-radius:2px;background:var(--accent)}.side-item.drop-target{background:var(--fill-selected-hover);outline:1px solid var(--accent)}.side-item .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.side-item .count{color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums}.tree-toggle{display:grid;place-items:center;width:16px;height:16px;flex:none;border:0;border-radius:3px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:9px;transition:transform var(--dur-fast) var(--ease-out)}.tree-toggle.open{transform:rotate(90deg)}.gauge{margin:10px 10px 0}.gauge-bar{height:6px;border-radius:3px;background:var(--fill-subtle);overflow:hidden;margin:6px 0 4px}.gauge-fill{height:100%;background:var(--accent);border-radius:3px}.gauge-fill.full{background:var(--danger)}.gauge-text{color:var(--text-secondary);font-size:11.5px}.main{grid-area:main;position:relative;overflow:auto;outline:none}.col-head{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:var(--cols);align-items:center;gap:10px;padding:0 12px 0 10px;height:30px;background:var(--bg-base);border-bottom:1px solid var(--stroke-default);color:var(--text-secondary);font-size:12px}.col-head button{display:flex;align-items:center;gap:4px;border:0;background:transparent;color:inherit;font:inherit;padding:4px 6px;border-radius:3px;cursor:pointer;text-align:left;overflow:hidden}.col-head button:hover{background:var(--fill-hover);color:var(--text-primary)}.col-head .sorted{color:var(--text-primary);font-weight:600}.col-head .num{justify-content:flex-end}.rows{padding:2px 6px 40px}.row{display:grid;grid-template-columns:var(--cols);align-items:center;gap:10px;height:var(--row-h);padding:0 6px 0 4px;border-radius:var(--radius-s);cursor:default;-webkit-user-select:none;user-select:none}.row:hover{background:var(--fill-hover)}.row.selected{background:var(--fill-selected)}.row.selected:hover{background:var(--fill-selected-hover)}.row.cut{opacity:.55}.row.drop-target{outline:1px solid var(--accent);background:var(--fill-selected-hover)}.row .name{display:flex;align-items:center;gap:9px;min-width:0}.row .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .num{text-align:right;color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.row .type{color:var(--text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:4px;padding:10px 10px 48px}.tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border-radius:var(--radius-m);cursor:default;-webkit-user-select:none;user-select:none;text-align:center}.tile:hover{background:var(--fill-hover)}.tile.selected{background:var(--fill-selected)}.tile.cut{opacity:.55}.tile.drop-target{outline:1px solid var(--accent)}.tile .label{font-size:12.5px;line-height:1.3;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.rename-input{font:inherit;font-size:13.5px;padding:2px 5px;border:1px solid var(--accent);border-radius:3px;background:var(--bg-card);color:var(--text-primary);outline:none;min-width:0;width:100%}.rubber{position:absolute;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:2px;pointer-events:none;z-index:3}.empty-state{display:grid;place-items:center;height:60%;color:var(--text-secondary);gap:6px;text-align:center;padding:24px}.statusbar{grid-area:status;display:flex;align-items:center;gap:16px;padding:0 12px;background:var(--bg-layer);border-top:1px solid var(--stroke-default);color:var(--text-secondary);font-size:12px}.statusbar .spacer{flex:1}.view-toggle{display:flex;gap:2px}.view-toggle button{width:26px;height:20px;display:grid;place-items:center;border:0;border-radius:3px;background:transparent;color:var(--text-secondary);cursor:pointer}.view-toggle button.on{background:var(--fill-selected);color:var(--accent)}.menu{position:fixed;z-index:60;min-width:200px;padding:4px;border:1px solid var(--stroke-default);border-radius:var(--radius-l);background:var(--bg-flyout);-webkit-backdrop-filter:blur(40px) saturate(1.5);backdrop-filter:blur(40px) saturate(1.5);box-shadow:var(--shadow-flyout)}.menu button{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px;border:0;border-radius:var(--radius-s);background:transparent;color:var(--text-primary);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}.menu button:hover:not(:disabled){background:var(--fill-hover)}.menu button:disabled{color:var(--text-disabled);cursor:default}.menu button.danger{color:var(--danger)}.menu .sep{height:1px;margin:4px 8px;background:var(--stroke-divider)}.menu .shortcut{margin-left:auto;color:var(--text-secondary);font-size:12px}.backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:20px;background:#00000059;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{width:min(440px,100%);padding:22px;border:1px solid var(--stroke-strong);border-radius:var(--radius-dialog);background:var(--bg-card);box-shadow:var(--shadow-dialog)}.dialog h2{margin:0 0 6px;font-size:19px;font-weight:600}.dialog p{margin:0 0 16px;color:var(--text-secondary);font-size:13.5px}.dialog label{display:block;margin-bottom:5px;font-size:12.5px;color:var(--text-secondary)}.dialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}input[type=text],input[type=password],input[type=date],textarea{width:100%;padding:7px 10px;border:1px solid var(--stroke-strong);border-radius:var(--radius-s);background:var(--bg-base);color:var(--text-primary);font:inherit;font-size:14px;outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:inset 0 -1px 0 var(--accent)}.toast{position:fixed;left:50%;bottom:42px;transform:translate(-50%);z-index:90;max-width:min(520px,90vw);padding:10px 16px;border:1px solid var(--stroke-default);border-radius:var(--radius-l);background:var(--bg-flyout);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:var(--shadow-flyout);font-size:13.5px}.toast.error{border-color:var(--danger);color:var(--danger)}.upload-panel{position:fixed;right:16px;bottom:40px;z-index:50;width:min(380px,calc(100vw - 32px));border:1px solid var(--stroke-default);border-radius:var(--radius-l);background:var(--bg-flyout);-webkit-backdrop-filter:blur(40px) saturate(1.5);backdrop-filter:blur(40px) saturate(1.5);box-shadow:var(--shadow-flyout);overflow:hidden}.upload-panel header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--stroke-divider);font-size:13.5px;font-weight:600}.upload-list{max-height:260px;overflow-y:auto;padding:6px}.upload-job{padding:7px 8px;border-radius:var(--radius-s)}.upload-job:hover{background:var(--fill-hover)}.upload-job .top{display:flex;align-items:center;gap:8px;font-size:13px}.upload-job .top .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-job .bar{height:3px;margin-top:6px;border-radius:2px;background:var(--fill-subtle);overflow:hidden}.upload-job .bar span{display:block;height:100%;background:var(--accent);transition:width .12s linear}.upload-job.error .top{color:var(--danger)}.upload-job small{color:var(--text-secondary);font-size:11.5px}.drop-overlay{position:absolute;inset:0;z-index:40;display:grid;place-items:center;gap:8px;border:2px dashed var(--accent);border-radius:var(--radius-l);margin:8px;background:color-mix(in srgb,var(--accent) 8%,transparent);pointer-events:none;font-size:15px;font-weight:600;color:var(--accent)}.preview-backdrop{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;background:#000000d1}.preview-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;color:#fff;background:#0006;font-size:13.5px}.preview-bar .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-bar button{height:30px;padding:0 11px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-s);background:#ffffff1a;color:#fff;font:inherit;font-size:13px;cursor:pointer}.preview-bar button:hover{background:#ffffff2e}.preview-bar button.on{background:var(--accent);border-color:transparent}.preview-body{flex:1;display:grid;place-items:center;min-height:0;padding:12px;position:relative}.preview-body img,.preview-body video{max-width:100%;max-height:100%;object-fit:contain}.preview-body iframe{width:100%;height:100%;border:0;border-radius:var(--radius-s);background:#fff}.preview-body textarea{width:100%;height:100%;resize:none;font-family:var(--font-mono);font-size:13px;line-height:1.5;border-radius:var(--radius-s)}.preview-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff24;color:#fff;font-size:18px;cursor:pointer}.preview-nav:hover{background:#ffffff3d}.preview-nav.prev{left:16px}.preview-nav.next{right:16px}.login-page{display:grid;place-items:center;height:100%;padding:20px}.login-card{width:min(380px,100%);padding:30px;border:1px solid var(--stroke-default);border-radius:var(--radius-dialog);background:var(--bg-card);box-shadow:var(--shadow-dialog)}.login-card h1{margin:0 0 4px;font-size:22px;font-weight:600;letter-spacing:-.02em}.login-card p{margin:0 0 22px;color:var(--text-secondary);font-size:13.5px}.login-card label{display:block;margin-bottom:5px;font-size:12.5px;color:var(--text-secondary)}.login-card .field{margin-bottom:14px}.login-card .error{margin:-4px 0 12px;color:var(--danger);font-size:13px}.login-card button{width:100%;height:34px;justify-content:center}.list-page{padding:20px 24px 60px;max-width:900px}.list-page h1{margin:0 0 4px;font-size:21px;font-weight:600;letter-spacing:-.02em}.list-page .sub{margin:0 0 18px;color:var(--text-secondary);font-size:13.5px}.card-list{border:1px solid var(--stroke-default);border-radius:var(--radius-l);overflow:hidden;background:var(--bg-card)}.card-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--stroke-divider)}.card-row:first-child{border-top:0}.card-row:hover{background:var(--fill-hover)}.card-row .grow{flex:1;min-width:0}.card-row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-row small{color:var(--text-secondary);font-size:12px}.link-chip{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{flex:none;padding:2px 8px;border-radius:999px;background:var(--fill-subtle);color:var(--text-secondary);font-size:11.5px;font-weight:600}.pill.warn{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.search-results{padding:6px}.result-path{color:var(--text-secondary);font-size:12px}mark{background:color-mix(in srgb,var(--accent) 30%,transparent);color:inherit;border-radius:2px}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"toolbar" "main" "status"}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:65;width:268px;transform:translate(-100%);transition:transform .18s var(--ease-out);box-shadow:var(--shadow-flyout);background:var(--bg-card)}.sidebar.open{transform:none}.sidebar-scrim{position:fixed;inset:0;z-index:64;background:#00000059}.search-box{flex:1 1 120px}.row .type,.col-head{display:none}.menu.sheet{left:0!important;right:0;top:auto!important;bottom:0;min-width:0;border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;padding:8px 8px 20px}.menu.sheet button{height:44px;font-size:15px}}:root{--font-ui: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Noto Sans", Roboto, sans-serif;--font-display: "Segoe UI Variable Display", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--font-mono: "Cascadia Mono", "Cascadia Code", ui-monospace, "SF Mono", Consolas, monospace;--radius-s: 4px;--radius-m: 7px;--radius-l: 8px;--radius-dialog: 12px;--row-h: 36px;--toolbar-h: 48px;--sidebar-w: 240px;--dur-fast: 90ms;--dur-normal: 160px;--ease-out: cubic-bezier(0, 0, 0, 1);--accent: #005fb8;--accent-hover: #005099;--accent-text: #ffffff;--bg-base: #f3f3f3;--bg-mica: linear-gradient(160deg, #f7f7f9 0%, #f1f2f4 40%, #eef0f3 100%);--bg-layer: rgba(255, 255, 255, .7);--bg-card: #ffffff;--bg-flyout: rgba(249, 249, 249, .9);--text-primary: #1b1b1b;--text-secondary: rgba(0, 0, 0, .6063);--text-disabled: rgba(0, 0, 0, .3614);--text-on-accent: #ffffff;--stroke-default: rgba(0, 0, 0, .0578);--stroke-strong: rgba(0, 0, 0, .1622);--stroke-divider: rgba(0, 0, 0, .0803);--fill-hover: rgba(0, 0, 0, .0373);--fill-press: rgba(0, 0, 0, .0241);--fill-selected: rgba(0, 95, 184, .0947);--fill-selected-hover: rgba(0, 95, 184, .1394);--fill-subtle: rgba(0, 0, 0, .0241);--shadow-flyout: 0 8px 16px rgba(0, 0, 0, .14), 0 0 1px rgba(0, 0, 0, .12);--shadow-dialog: 0 32px 64px rgba(0, 0, 0, .1876), 0 2px 21px rgba(0, 0, 0, .1474);--folder-front: #fbd062;--folder-back: #eab646;--danger: #c42b1c;--success: #0f7b0f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--accent: #60cdff;--accent-hover: #4cc2ff;--accent-text: #003354;--bg-base: #202020;--bg-mica: linear-gradient(160deg, #272729 0%, #202022 45%, #1c1c1e 100%);--bg-layer: rgba(58, 58, 58, .3);--bg-card: #2b2b2b;--bg-flyout: rgba(44, 44, 44, .94);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .786);--text-disabled: rgba(255, 255, 255, .3628);--text-on-accent: #000000;--stroke-default: rgba(255, 255, 255, .0698);--stroke-strong: rgba(255, 255, 255, .1581);--stroke-divider: rgba(255, 255, 255, .0837);--fill-hover: rgba(255, 255, 255, .0605);--fill-press: rgba(255, 255, 255, .0419);--fill-selected: rgba(96, 205, 255, .1);--fill-selected-hover: rgba(96, 205, 255, .15);--fill-subtle: rgba(255, 255, 255, .0419);--shadow-flyout: 0 8px 16px rgba(0, 0, 0, .26), 0 0 1px rgba(0, 0, 0, .4);--shadow-dialog: 0 32px 64px rgba(0, 0, 0, .37), 0 2px 21px rgba(0, 0, 0, .37);--danger: #ff99a4;--success: #6ccb5f}}:root[data-theme=dark]{--accent: #60cdff;--accent-hover: #4cc2ff;--accent-text: #003354;--bg-base: #202020;--bg-mica: linear-gradient(160deg, #272729 0%, #202022 45%, #1c1c1e 100%);--bg-layer: rgba(58, 58, 58, .3);--bg-card: #2b2b2b;--bg-flyout: rgba(44, 44, 44, .94);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .786);--text-disabled: rgba(255, 255, 255, .3628);--text-on-accent: #000000;--stroke-default: rgba(255, 255, 255, .0698);--stroke-strong: rgba(255, 255, 255, .1581);--stroke-divider: rgba(255, 255, 255, .0837);--fill-hover: rgba(255, 255, 255, .0605);--fill-press: rgba(255, 255, 255, .0419);--fill-selected: rgba(96, 205, 255, .1);--fill-selected-hover: rgba(96, 205, 255, .15);--fill-subtle: rgba(255, 255, 255, .0419);--shadow-flyout: 0 8px 16px rgba(0, 0, 0, .26), 0 0 1px rgba(0, 0, 0, .4);--shadow-dialog: 0 32px 64px rgba(0, 0, 0, .37), 0 2px 21px rgba(0, 0, 0, .37);--danger: #ff99a4;--success: #6ccb5f}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-ui);font-size:14px;line-height:20px;color:var(--text-primary);background:var(--bg-base);background-image:var(--bg-mica);background-attachment:fixed;-webkit-font-smoothing:antialiased;overscroll-behavior:none}:focus-visible{outline:2px solid var(--text-primary);outline-offset:1px;border-radius:var(--radius-s)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
