:root{color-scheme:light;--surface-base: #f4f6fa;--surface-raised: #ffffff;--surface-header: #e9edf5;--surface-inset: #f7f9fc;--surface-inset-hover: #e4ecf8;--surface-hover: #eef2f9;--surface-accent: #d8e6fb;--surface-accent-hover: #c2d8f7;--surface-accent-active: #adc9f2;--surface-accent-translucent: rgba(226, 238, 254, .95);--text-strong: #0b1020;--text-primary: #1c2333;--text-secondary: #4a5468;--text-muted: #6b7486;--text-faint: #58616f;--border: #d3d9e4;--border-subtle: #e8ecf3;--border-strong: #b9c2d1;--accent: #1b6fd6;--accent-strong: #1558ab;--accent-hover: #1558ab;--accent-active: #14508f;--accent-contrast: #ffffff;--accent-soft-surface: rgba(27, 111, 214, .08);--accent-soft-border: rgba(27, 111, 214, .25);--selected-surface: #cfe0fa;--selected-text: #0b1020;--marked-text: #7d5100;--warning-text: #7a5200;--warning-surface: #fff6da;--warning-border: #e3cd8e;--warning-soft-surface: rgba(255, 193, 7, .14);--warning-soft-border: rgba(180, 130, 0, .35);--danger-text: #c0231f;--danger-banner-text: #8f1f1f;--danger-surface: #fdeaea;--danger-border: #f0b9b9;--danger-soft-surface: rgba(201, 35, 31, .1);--danger-soft-border: rgba(201, 35, 31, .3);--danger-solid: #dc3545;--danger-solid-hover: #c82333;--danger-solid-strong: #8b0000;--danger-on-solid: #ffffff;--success: #1a7f37;--btn-secondary-surface: #e2e7f0;--btn-secondary-hover: #d2dae7;--btn-secondary-text: #1c2333;--overlay: rgba(15, 23, 42, .45);--shadow-dialog: 0 8px 28px rgba(15, 23, 42, .18);--track: #d3d9e4;--card-surface: rgba(255, 255, 255, .7);--card-border: rgba(27, 111, 214, .22);--card-border-hover: rgba(27, 111, 214, .45);--login-gradient-from: #e8eefb;--login-gradient-to: #f7f9fc;--beta-surface: #fff4e3;--beta-border: #e08600;--beta-text: #7a4b00;--brand-google: #4285f4;--brand-google-hover: #3574e3;--brand-microsoft: #0078d4;--brand-microsoft-hover: #006cbe;--brand-contrast: #ffffff}:root[data-theme=dark]{color-scheme:dark;--surface-base: #0a0a1a;--surface-raised: #1a1a2e;--surface-header: #16213e;--surface-inset: #16213e;--surface-inset-hover: #1a2844;--surface-hover: #16213e;--surface-accent: #0f3460;--surface-accent-hover: #1a4a7a;--surface-accent-active: #0a2a4a;--surface-accent-translucent: rgba(15, 52, 96, .92);--text-strong: #ffffff;--text-primary: #e0e0e0;--text-secondary: #aaaaaa;--text-muted: #888888;--text-faint: #666666;--border: #333333;--border-subtle: #222222;--border-strong: #444444;--accent: #4a9eff;--accent-strong: #4a9eff;--accent-hover: #6ab0ff;--accent-active: #3a8eef;--accent-contrast: #ffffff;--accent-soft-surface: rgba(74, 158, 255, .08);--accent-soft-border: rgba(74, 158, 255, .25);--selected-surface: #0f3460;--selected-text: #ffffff;--marked-text: #ffcc00;--warning-text: #ffcc00;--warning-surface: #3a2f00;--warning-border: #5a4a00;--warning-soft-surface: rgba(255, 204, 0, .1);--warning-soft-border: rgba(255, 204, 0, .3);--danger-text: #ff6b6b;--danger-banner-text: #ff9b9b;--danger-surface: #3a1414;--danger-border: #6b2020;--danger-soft-surface: rgba(255, 107, 107, .1);--danger-soft-border: rgba(255, 107, 107, .3);--danger-solid: #dc3545;--danger-solid-hover: #c82333;--danger-solid-strong: #8b0000;--danger-on-solid: #ffffff;--success: #28a745;--btn-secondary-surface: #333333;--btn-secondary-hover: #444444;--btn-secondary-text: #ffffff;--overlay: rgba(0, 0, 0, .7);--shadow-dialog: 0 4px 20px rgba(0, 0, 0, .5);--track: #333333;--card-surface: rgba(22, 33, 62, .5);--card-border: rgba(74, 158, 255, .2);--card-border-hover: rgba(74, 158, 255, .5);--login-gradient-from: #16213e;--login-gradient-to: #0a0a1a;--beta-surface: #3d2b1f;--beta-border: #ff9800;--beta-text: #ffcc80}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--surface-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;width:100%;overflow:hidden}.panel{display:flex;flex-direction:column;flex:1;border:2px solid var(--border);background-color:var(--surface-raised);overflow:hidden;min-height:0}.panel.active{border-color:var(--accent)}.panel:focus{outline:none}.path-bar{display:flex;align-items:center;padding:8px 12px;background-color:var(--surface-header);border-bottom:1px solid var(--border);overflow-x:auto;white-space:nowrap}.path-segment{display:inline-flex;align-items:center}.path-button{background:none;border:none;color:var(--accent);cursor:pointer;padding:2px 4px;font-size:14px}.path-button:hover{text-decoration:underline}.path-separator{color:var(--text-faint);margin:0 4px}.path-bar.search-bar{gap:8px}.search-mode-label{color:var(--warning-text);font-weight:700;flex-shrink:0}.search-mode-query{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-exit{margin-left:auto;flex-shrink:0}.view-mode-note{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.path-views{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding-left:8px;flex-shrink:0}.path-view{border:1px solid var(--accent-soft-border);border-radius:3px;background-color:var(--accent-soft-surface);font-size:12px}.path-view-unavailable{color:var(--text-muted);border-color:var(--border);background-color:var(--surface-inset)}.path-account{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:12px}.search-truncated{padding:6px 12px;background-color:var(--warning-surface);border-bottom:1px solid var(--warning-border);color:var(--warning-text);font-size:12px}.filter-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--surface-header);border-bottom:1px solid var(--border)}.filter-label{color:var(--accent);font-size:13px;font-weight:700;flex-shrink:0}.filter-input{flex:1;min-width:0;background-color:var(--surface-inset);border:1px solid var(--border);color:var(--text-primary);padding:4px 8px;font-size:13px;font-family:inherit}.filter-input:focus{outline:none;border-color:var(--accent)}.filter-count{color:var(--text-muted);font-size:12px;flex-shrink:0}.filter-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;flex-shrink:0}.filter-clear:hover{color:var(--text-strong)}.file-list{display:flex;flex-direction:column;flex:1;overflow:hidden}.file-list-header{display:flex;align-items:center;padding:8px 12px;background-color:var(--surface-header);color:var(--accent);border-bottom:1px solid var(--border);font-weight:700;font-size:13px}.header-cell{cursor:pointer;-webkit-user-select:none;user-select:none}.header-cell:hover{color:var(--accent)}.file-list-body{flex:1;overflow-y:auto;overflow-x:hidden}.file-item{display:flex;align-items:center;padding:6px 12px;cursor:pointer;border-bottom:1px solid var(--border-subtle);font-size:14px;height:33px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.file-item:hover{background-color:var(--surface-hover)}.file-item.selected{background-color:var(--selected-surface);color:var(--selected-text)}.file-item.marked{color:var(--marked-text)}.file-item.selected.marked{background-color:var(--selected-surface);color:var(--marked-text)}.file-item.parent-item{color:var(--text-muted)}.file-item.parent-item:hover{color:var(--text-strong)}.file-icon{width:30px;flex-shrink:0;text-align:center}.file-name{flex:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}.file-location{width:130px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--text-muted)}.file-size{width:80px;flex-shrink:0;text-align:right;padding-right:15px;color:var(--text-secondary)}.file-date{width:140px;flex-shrink:0;color:var(--text-muted)}.file-type{width:120px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-faint)}.loading,.error,.empty-message{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:14px}.error{color:var(--danger-text)}.operation-error{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--danger-surface);border-bottom:1px solid var(--danger-border);color:var(--danger-banner-text);font-size:12px}.operation-error-text{flex:1;min-width:0}.operation-error-dismiss{background:none;border:none;color:var(--danger-banner-text);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;flex-shrink:0}.operation-error-dismiss:hover{color:var(--text-strong)}.panel-reauth{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--warning-surface);border-bottom:1px solid var(--warning-border);color:var(--warning-text);font-size:12px}.panel-reauth-text{flex:1;min-width:0}.panel-reauth-button{flex-shrink:0;padding:3px 10px;border:1px solid var(--warning-border);border-radius:3px;background-color:var(--surface-raised);color:var(--warning-text);font-size:12px;cursor:pointer}.panel-reauth-button:hover{background-color:var(--surface-hover)}.panel-connect{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.panel-connect-title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.panel-connect-hint{margin:0;max-width:320px;font-size:13px;line-height:1.5;color:var(--text-secondary)}.panel-connect-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.file-list-container{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.refresh-indicator{position:absolute;top:6px;right:14px;z-index:2;padding:2px 8px;border-radius:10px;background-color:var(--surface-accent-translucent);border:1px solid var(--accent);color:var(--accent);font-size:11px;pointer-events:none}.toolbar{display:flex;justify-content:center;gap:4px;padding:8px 12px;background-color:var(--surface-header);border-top:1px solid var(--border)}.toolbar-button{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background-color:var(--surface-accent);border:1px solid var(--border);border-radius:4px;color:var(--text-strong);cursor:pointer;min-width:70px;transition:background-color .2s}.toolbar-button:hover{background-color:var(--surface-accent-hover)}.toolbar-button:active{background-color:var(--surface-accent-active)}.toolbar-button.delete:hover{background-color:var(--danger-solid-strong);color:var(--danger-on-solid)}.toolbar-button.delete:hover .shortcut{color:inherit}.toolbar-button .shortcut{font-size:12px;color:var(--accent-strong);margin-bottom:2px}.toolbar-button .label{font-size:13px}.toolbar-button.theme-toggle{min-width:58px;padding:8px 10px}.toolbar-button.theme-toggle .shortcut{font-size:14px;line-height:1;margin-bottom:3px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background-color:var(--surface-accent);border-top:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.status-left{flex:1}.status-center{flex:2;text-align:center}.status-center .hint{color:var(--text-faint)}.status-right{flex:1;text-align:right}.panel-indicator{color:var(--accent-strong)}.dialog-overlay{position:fixed;inset:0;background-color:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background-color:var(--surface-raised);border:1px solid var(--border);border-radius:8px;min-width:400px;max-width:90vw;box-shadow:var(--shadow-dialog)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.dialog-header h3{margin:0;font-size:16px;color:var(--text-strong)}.dialog-close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0;line-height:1}.dialog-close:hover{color:var(--text-strong)}.dialog-content{padding:20px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;color:var(--text-secondary);font-size:14px}.form-group input{width:100%;padding:10px 12px;background-color:var(--surface-inset);border:1px solid var(--border);border-radius:4px;color:var(--text-strong);font-size:14px;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--accent)}.dialog-hint{margin:8px 0 0;color:var(--text-muted);font-size:12px}.dialog-hint code{padding:1px 4px;border:1px solid var(--border-subtle);border-radius:3px;background:var(--surface-accent);font-family:Consolas,Monaco,monospace;font-size:inherit}.dialog-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.btn{padding:10px 20px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background-color:var(--accent-active)}.btn-secondary{background-color:var(--btn-secondary-surface);color:var(--btn-secondary-text)}.btn-secondary:hover{background-color:var(--btn-secondary-hover)}.btn-danger{background-color:var(--danger-solid);color:var(--danger-on-solid)}.btn-danger:hover{background-color:var(--danger-solid-hover)}.confirm-message{color:var(--text-secondary);margin:0;line-height:1.5}.dialog-warning{color:var(--warning-text);background-color:var(--warning-soft-surface);border:1px solid var(--warning-soft-border);padding:8px 12px;border-radius:4px;margin-top:12px;font-size:13px}.dialog-error{color:var(--danger-text);background-color:var(--danger-soft-surface);border:1px solid var(--danger-soft-border);padding:8px 12px;border-radius:4px;margin-top:12px;font-size:13px}.drop-zone{border:2px dashed var(--border-strong);border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s ease;background-color:var(--surface-inset);margin-bottom:16px}.drop-zone:hover:not(.disabled){border-color:var(--accent);background-color:var(--surface-inset-hover)}.drop-zone.drag-active{border-color:var(--accent);background-color:var(--surface-inset-hover);border-style:solid}.drop-zone.disabled{cursor:not-allowed;opacity:.6}.drop-zone-content{pointer-events:none}.drop-zone-icon{font-size:48px;display:block;margin-bottom:12px}.drop-zone p{margin:4px 0;color:var(--text-secondary)}.drop-zone-hint{font-size:12px;color:var(--text-muted)!important}.selected-files{margin-bottom:16px}.selected-files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:var(--text-secondary);font-size:14px}.total-size{color:var(--text-muted)}.dialog-file-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:4px;background-color:var(--surface-inset)}.dialog-file-item{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);gap:8px}.dialog-file-item:last-child{border-bottom:none}.dialog-file-name{flex:1;color:var(--text-strong);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialog-file-size{color:var(--text-muted);font-size:12px;min-width:70px;text-align:right}.remove-file{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.remove-file:hover{color:var(--danger-solid)}.progress-bar{width:80px;height:6px;background-color:var(--track);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background-color:var(--accent);transition:width .2s ease}.upload-done{color:var(--success);font-size:14px;min-width:20px;text-align:center}.progress-bar-block{width:100%;height:8px;margin:12px 0 8px}.copy-current-item{margin:0;color:var(--text-muted);font-size:12px}.copy-current-detail{margin:2px 0 0;color:var(--text-muted);font-size:11px;opacity:.8}.dialog kbd{display:inline-block;padding:1px 6px;background-color:var(--surface-inset);border:1px solid var(--border);border-bottom-color:var(--border-subtle);border-radius:4px;color:var(--text-strong);font-family:inherit;font-size:12px;line-height:1.5;white-space:nowrap}.help-columns{display:flex;align-items:flex-start;gap:32px}.help-column{display:flex;flex-direction:column;gap:18px}.help-group h4{margin:0 0 8px;color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.help-list{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:12px;row-gap:6px;margin:0}.help-row{display:contents}.help-list dt{white-space:nowrap}.help-list dd{margin:0;color:var(--text-secondary);font-size:13px}.help-key-separator{margin:0 4px;color:var(--text-muted);font-size:12px}.help-notes{margin:20px 0 0;padding:10px 12px 10px 28px;background-color:var(--accent-soft-surface);border:1px solid var(--accent-soft-border);border-radius:4px;color:var(--text-secondary);font-size:12px;line-height:1.6}.help-notes li+li{margin-top:2px}.dialog-viewer{width:90vw;height:90vh;display:flex;flex-direction:column}.dialog-viewer .dialog-content{display:flex;flex-direction:column;flex:1;min-height:0}.viewer-meta{display:flex;gap:16px;margin-bottom:12px;color:var(--text-muted);font-size:12px}.viewer-stage{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:auto;background-color:var(--surface-inset);border:1px solid var(--border);border-radius:4px}.viewer-image{max-width:100%;max-height:100%;width:auto;height:auto}.viewer-pdf{width:100%;height:100%;align-self:stretch;border:none}.viewer-text{width:100%;height:100%;align-self:stretch;margin:0;padding:16px;overflow:auto;color:var(--text-primary);font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.5;text-align:left;white-space:pre-wrap;word-break:break-word}.viewer-fallback{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:var(--text-secondary);font-size:14px;text-align:center}.viewer-fallback p{margin:0;max-width:520px;line-height:1.6}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--surface-base);color:var(--text-primary)}.app{display:flex;flex-direction:column;height:100vh;width:100%}.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background-color:var(--surface-header);border-bottom:1px solid var(--border)}.app-header h1{font-size:18px;font-weight:600;color:var(--accent)}.user-info{display:flex;align-items:center;gap:12px}.logout-button{padding:6px 12px;background-color:var(--btn-secondary-surface);border:none;border-radius:4px;color:var(--btn-secondary-text);font-size:13px;cursor:pointer}.logout-button:hover{background-color:var(--btn-secondary-hover)}.panels-container{display:flex;flex:1;min-height:0;overflow:hidden}.login-button{padding:10px 20px;border:none;border-radius:8px;color:var(--brand-contrast);font-size:14px;cursor:pointer;transition:background-color .2s;min-width:150px}.login-button.google{background-color:var(--brand-google)}.login-button.google:hover{background-color:var(--brand-google-hover)}.login-button.onedrive{background-color:var(--brand-microsoft)}.login-button.onedrive:hover{background-color:var(--brand-microsoft-hover)}.login-button:disabled{opacity:.5;cursor:not-allowed}.setup-message{max-width:600px;margin:100px auto;padding:40px;background-color:var(--surface-raised);border-radius:8px;border:1px solid var(--border)}.setup-message h2{color:var(--accent);margin-bottom:20px}.setup-message p{color:var(--text-secondary);margin:12px 0;line-height:1.6}.setup-message ol{color:var(--text-secondary);margin:20px 0;padding-left:24px}.setup-message li{margin:8px 0}.setup-message code{background-color:var(--surface-accent);padding:2px 6px;border-radius:4px;font-family:monospace}.setup-message pre{background-color:var(--surface-accent);padding:16px;border-radius:4px;overflow-x:auto;font-family:monospace;font-size:14px;color:var(--accent)}.features-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;max-width:1000px;width:100%;margin:40px auto;padding:0 20px 60px}.feature-card{background:var(--card-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:12px;padding:24px;transition:transform .3s ease,border-color .3s ease}.feature-card:hover{transform:translateY(-5px);border-color:var(--card-border-hover)}.feature-card h2{font-size:1.25rem;color:var(--accent);margin-bottom:12px}.feature-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}@media(max-width:768px){.features-section{grid-template-columns:1fr}}
