:root{--background-default: hsl(0 0% 99.2%);--background-alternative: hsl(0 0% 97.5%);--background-surface-100: hsl(0 0% 100%);--background-surface-200: hsl(0 0% 98%);--background-surface-300: hsl(0 0% 96%);--background-overlay: hsl(0 0% 100%);--background-overlay-hover: hsl(0 0% 97%);--background-control: hsl(0 0% 100%);--background-selection: hsla(151, 56%, 53%, .12);--background-inverted: hsl(0 0% 9%);--foreground-default: hsl(0 0% 9%);--foreground-light: hsl(0 0% 32%);--foreground-lighter: hsl(0 0% 45%);--foreground-muted: hsl(0 0% 60%);--foreground-inverted: hsl(0 0% 96%);--border-muted: hsl(0 0% 95%);--border-default: hsl(0 0% 91%);--border-strong: hsl(0 0% 85%);--border-control: hsl(0 0% 88%);--border-overlay: hsl(0 0% 90%);--brand-200: hsl(151 81% 95%);--brand-300: hsl(151 65% 85%);--brand-400: hsl(151 55% 70%);--brand-500: hsl(151 56% 53%);--brand-600: hsl(151 56% 47%);--brand-700: hsl(151 56% 38%);--brand-subtle: hsla(151, 56%, 53%, .1);--brand-link: hsl(151 56% 40%);--destructive-200: hsl(0 100% 97%);--destructive-500: hsl(0 72% 51%);--destructive-600: hsl(0 72% 45%);--destructive-subtle: hsla(0, 72%, 51%, .08);--destructive-border: hsl(0 80% 80%);--warning-200: hsl(48 100% 96%);--warning-500: hsl(38 92% 50%);--warning-text: hsl(33 100% 30%);--warning-border: hsl(45 90% 75%);--success-500: hsl(142 71% 45%);--success-text: hsl(142 60% 35%);--shadow-sm: 0 1px 2px hsla(0, 0%, 0%, .04), 0 1px 3px hsla(0, 0%, 0%, .06);--shadow-md: 0 2px 6px hsla(0, 0%, 0%, .05), 0 4px 12px hsla(0, 0%, 0%, .08);--shadow-lg: 0 8px 24px hsla(0, 0%, 0%, .1), 0 4px 12px hsla(0, 0%, 0%, .06);--shadow-overlay: 0 12px 40px hsla(0, 0%, 0%, .16), 0 4px 12px hsla(0, 0%, 0%, .08);--ring-brand: 0 0 0 3px hsla(151, 56%, 53%, .2);--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.6;--tracking-tight: -.011em;--tracking-normal: 0;--tracking-wide: .05em;--tracking-widest: .08em;--space-1: 4px;--space-1-5: 6px;--space-2: 8px;--space-2-5: 10px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--sidebar-w: 240px;--header-h: 48px;--detail-panel-w: 320px;--bg: var(--background-default);--surface: var(--background-surface-100);--border: var(--border-default);--border-light: var(--border-muted);--text-primary: var(--foreground-default);--text-secondary: var(--foreground-light);--text-muted: var(--foreground-muted);--accent: var(--brand-500);--accent-hover: var(--brand-600);--accent-subtle: var(--brand-subtle);--row-hover: var(--background-surface-200);--row-selected: var(--background-surface-300);--danger: var(--destructive-500);--danger-subtle: var(--destructive-subtle);--shadow-modal: var(--shadow-overlay);--radius: var(--radius-md)}[data-theme=dark]{--background-default: hsl(0 0% 8%);--background-alternative: hsl(0 0% 6%);--background-surface-100: hsl(0 0% 11%);--background-surface-200: hsl(0 0% 14%);--background-surface-300: hsl(0 0% 17%);--background-overlay: hsl(0 0% 13%);--background-overlay-hover: hsl(0 0% 16%);--background-control: hsl(0 0% 12%);--background-selection: hsla(151, 56%, 53%, .2);--background-inverted: hsl(0 0% 96%);--foreground-default: hsl(0 0% 96%);--foreground-light: hsl(0 0% 75%);--foreground-lighter: hsl(0 0% 62%);--foreground-muted: hsl(0 0% 50%);--foreground-inverted: hsl(0 0% 9%);--border-muted: hsl(0 0% 16%);--border-default: hsl(0 0% 22%);--border-strong: hsl(0 0% 30%);--border-control: hsl(0 0% 22%);--border-overlay: hsl(0 0% 26%);--brand-200: hsl(151 30% 18%);--brand-300: hsl(151 40% 28%);--brand-400: hsl(151 48% 42%);--brand-500: hsl(151 56% 53%);--brand-600: hsl(151 60% 62%);--brand-700: hsl(151 60% 70%);--brand-subtle: hsla(151, 56%, 53%, .14);--brand-link: hsl(151 60% 72%);--destructive-200: hsl(0 30% 18%);--destructive-500: hsl(0 65% 60%);--destructive-600: hsl(0 70% 70%);--destructive-subtle: hsla(0, 65%, 60%, .14);--destructive-border: hsl(0 40% 35%);--warning-200: hsl(38 30% 16%);--warning-500: hsl(38 80% 60%);--warning-text: hsl(38 80% 72%);--warning-border: hsl(38 40% 30%);--success-500: hsl(142 65% 55%);--success-text: hsl(142 60% 65%);--shadow-sm: 0 1px 2px hsla(0, 0%, 0%, .3), 0 1px 3px hsla(0, 0%, 0%, .35);--shadow-md: 0 2px 6px hsla(0, 0%, 0%, .35), 0 4px 12px hsla(0, 0%, 0%, .45);--shadow-lg: 0 8px 24px hsla(0, 0%, 0%, .45), 0 4px 12px hsla(0, 0%, 0%, .35);--shadow-overlay: 0 12px 40px hsla(0, 0%, 0%, .55), 0 4px 12px hsla(0, 0%, 0%, .35);--ring-brand: 0 0 0 3px hsla(151, 56%, 53%, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--foreground-default);background:var(--background-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .15s ease,color .15s ease}a{color:var(--foreground-default);text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:var(--text-base);color:inherit}input,textarea,select{font-family:inherit;font-size:var(--text-base);color:var(--foreground-default)}::selection{background:var(--background-selection)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-secondary);font-size:13px;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-control);background:var(--background-surface-100);color:var(--foreground-default);font-weight:500;font-size:var(--text-base);transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s;white-space:nowrap;line-height:var(--leading-tight)}.btn:hover:not(:disabled){background:var(--background-surface-200);border-color:var(--border-strong)}.btn:focus-visible{outline:none;box-shadow:var(--ring-brand)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand-500);color:#fff;border-color:var(--brand-500)}.btn-primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.btn-danger{background:transparent;color:var(--destructive-500);border-color:transparent}.btn-danger:hover:not(:disabled){background:var(--destructive-subtle);border-color:transparent}.btn-ghost{background:transparent;border-color:transparent;color:var(--foreground-light)}.btn-ghost:hover:not(:disabled){background:var(--background-surface-200);color:var(--foreground-default);border-color:transparent}.btn-icon{width:28px;height:28px;padding:0;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--foreground-light);display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s,color .12s}.btn-icon:hover:not(:disabled){background:var(--background-surface-200);color:var(--foreground-default)}.btn-icon:focus-visible{outline:none;box-shadow:var(--ring-brand)}.btn-sm{padding:var(--space-1) var(--space-2-5);font-size:var(--text-sm)}.btn-full{width:100%}.form-group{display:flex;flex-direction:column;gap:var(--space-1-5);margin-bottom:var(--space-4)}.form-group label{font-weight:500;color:var(--foreground-default);font-size:var(--text-base)}.text-input{padding:var(--space-2) var(--space-2-5);border:1px solid var(--border-control);border-radius:var(--radius-md);width:100%;color:var(--foreground-default);background:var(--background-control);transition:border-color .12s,box-shadow .12s;font-size:var(--text-base)}.text-input:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--ring-brand)}.text-input:disabled{background:var(--background-surface-200);color:var(--foreground-muted)}.text-input::placeholder{color:var(--foreground-muted)}.textarea-mono{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:var(--text-sm);resize:vertical}.form-error{padding:var(--space-2-5) var(--space-3);background:var(--destructive-subtle);border:1px solid var(--destructive-border);border-radius:var(--radius-md);color:var(--destructive-500);font-size:var(--text-sm);margin-bottom:var(--space-3)}.form-success{padding:var(--space-2-5) var(--space-3);background:var(--brand-subtle);border:1px solid var(--brand-300);border-radius:var(--radius-md);color:var(--success-text);font-size:var(--text-sm);margin-bottom:var(--space-3)}.config-banner{padding:var(--space-2-5) var(--space-3-5, 14px);background:var(--warning-200);border:1px solid var(--warning-border);border-radius:var(--radius-lg);color:var(--warning-text);font-size:var(--text-sm);margin-bottom:var(--space-4)}.config-banner a{color:var(--warning-text);font-weight:600;text-decoration:underline}.warning-banner{padding:var(--space-2-5) var(--space-3);background:var(--destructive-subtle);border:1px solid var(--destructive-border);border-radius:var(--radius-md);color:var(--destructive-500);font-size:var(--text-sm);margin-bottom:var(--space-4);font-weight:500}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--background-default)}.auth-card{width:100%;max-width:440px}.auth-title{font-size:var(--text-lg);font-weight:600;color:var(--foreground-default);margin-bottom:var(--space-1);letter-spacing:var(--tracking-tight)}.auth-subtitle{font-size:var(--text-base);color:var(--foreground-light);margin-bottom:var(--space-5)}.auth-form{margin-top:var(--space-4)}.auth-config-note{font-size:var(--text-sm);color:var(--foreground-light);margin-bottom:var(--space-2-5)}.auth-footer{margin-top:var(--space-5);text-align:center;font-size:var(--text-sm);color:var(--foreground-light)}.card{background:var(--background-surface-100);border-radius:var(--radius-xl);border:1px solid var(--border-default);padding:var(--space-6);box-shadow:var(--shadow-sm)}.settings-card{max-width:520px}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1-5)}.settings-hint{font-size:var(--text-sm);color:var(--foreground-light);margin-bottom:var(--space-5);line-height:var(--leading-relaxed)}.settings-actions{display:flex;gap:var(--space-2)}.back-link{font-size:var(--text-sm);color:var(--foreground-light);display:inline-flex;align-items:center;gap:var(--space-1);transition:color .12s}.back-link:hover{color:var(--foreground-default)}.segmented{display:flex;gap:2px;padding:2px;background:var(--background-surface-200);border:1px solid var(--border-default);border-radius:var(--radius-md)}.segmented-option{flex:1;padding:var(--space-1-5) var(--space-2-5);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--foreground-light);font-size:var(--text-base);font-weight:500;transition:background-color .12s,color .12s,border-color .12s}.segmented-option:hover:not(.segmented-option--active){color:var(--foreground-default)}.segmented-option:focus-visible{outline:none;box-shadow:var(--ring-brand)}.segmented-option--active{background:var(--background-surface-100);border-color:var(--border-strong);color:var(--foreground-default);box-shadow:var(--shadow-sm)}.app-shell{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--background-default)}.app-header{height:var(--header-h);background:var(--background-surface-100);border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4) 0 0;flex-shrink:0;z-index:20}.app-header-left{display:flex;align-items:center;gap:var(--space-2);height:100%;padding-left:var(--space-4)}.app-header-brand{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--brand-500);color:#fff;flex-shrink:0}.app-header-title{font-size:var(--text-base);font-weight:600;color:var(--foreground-default);letter-spacing:var(--tracking-tight)}.app-header-right{display:flex;align-items:center;gap:var(--space-1)}.app-body{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--background-alternative);border-right:1px solid var(--border-default);display:flex;flex-direction:column;overflow:hidden}.sidebar-section-label{font-size:var(--text-xs);font-weight:600;color:var(--foreground-muted);letter-spacing:var(--tracking-widest);text-transform:uppercase;padding:var(--space-4) var(--space-3) var(--space-1-5);display:flex;align-items:center;justify-content:space-between}.sidebar-list{flex:1;overflow-y:auto;padding:0 var(--space-1-5) var(--space-3)}.sidebar-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);color:var(--foreground-light);border:none;background:transparent;width:100%;text-align:left;transition:background-color .1s,color .1s;position:relative}.sidebar-item:hover{background:var(--background-surface-200);color:var(--foreground-default)}.sidebar-item--active{background:var(--background-surface-300);color:var(--foreground-default);font-weight:500}.sidebar-item--active:before{content:"";position:absolute;left:-2px;top:6px;bottom:6px;width:2px;background:var(--brand-500);border-radius:var(--radius-full)}.sidebar-item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-error{font-size:var(--text-xs);color:var(--destructive-500);padding:var(--space-1) var(--space-3) var(--space-2)}.sidebar-empty{font-size:var(--text-xs);color:var(--foreground-muted);padding:var(--space-1) var(--space-3)}.sidebar-item-remove{border:none;background:transparent;color:var(--foreground-muted);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0;opacity:0;transition:opacity .1s,background-color .1s,color .1s}.sidebar-item:hover .sidebar-item-remove,.sidebar-item-remove:focus-visible{opacity:1}.sidebar-item-remove:hover{background:var(--background-surface-300);color:var(--foreground-default)}.sidebar-add-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;margin-top:var(--space-1);padding:var(--space-1-5) var(--space-2);border:1px dashed var(--border-default);border-radius:var(--radius-md);background:transparent;color:var(--foreground-muted);font-size:var(--text-sm);cursor:pointer;transition:background-color .1s,color .1s,border-color .1s}.sidebar-add-btn:hover{background:var(--background-surface-200);color:var(--foreground-default);border-color:var(--border-strong)}.sidebar-add-form{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-1);padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--background-surface-100)}.sidebar-add-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.sidebar-hint{font-size:var(--text-xs);color:var(--foreground-muted);padding:var(--space-2) var(--space-3) 0;line-height:1.5}.app-main{flex:1;overflow:auto;display:flex;flex-direction:column}.fm-page{flex:1;display:flex;flex-direction:column;overflow:hidden}.fm-header{padding:var(--space-4) var(--space-5) 0;flex-shrink:0}.fm-content{flex:1;overflow:auto;padding:var(--space-2-5) var(--space-5) var(--space-5);position:relative}.fm-toolbar{display:flex;gap:var(--space-1-5);margin-bottom:var(--space-3);align-items:center}.fm-toolbar-spacer{flex:1}.fm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--brand-subtle);border:2px dashed var(--brand-500);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);color:var(--brand-link);font-weight:600;pointer-events:none;z-index:5}.drop-target td{background:var(--brand-subtle)!important;outline:2px dashed var(--brand-500);outline-offset:-2px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;font-size:var(--text-base);color:var(--foreground-light);margin-bottom:var(--space-3);gap:0}.breadcrumb-link{color:var(--foreground-light);text-decoration:none;transition:color .12s;padding:2px var(--space-1);border-radius:var(--radius-sm)}.breadcrumb-link:hover{color:var(--foreground-default);background:var(--background-surface-200)}.breadcrumb-sep{color:var(--foreground-muted);display:inline-flex;align-items:center;margin:0 var(--space-1)}.breadcrumb-current{font-weight:600;color:var(--foreground-default);padding:2px var(--space-1)}.breadcrumb-segment{display:inline-flex;align-items:center}.file-list{background:var(--background-surface-100);border-radius:var(--radius-lg);border:1px solid var(--border-default);overflow:hidden;box-shadow:var(--shadow-sm)}.file-list-status{padding:var(--space-8);text-align:center;color:var(--foreground-light);font-size:var(--text-base);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.file-list-empty{padding:var(--space-10) var(--space-8);text-align:center;color:var(--foreground-light);font-size:var(--text-base);display:flex;flex-direction:column;align-items:center;gap:var(--space-2-5)}.file-list-empty-icon{color:var(--foreground-muted);opacity:.6}.file-list-empty-text{font-size:var(--text-base);color:var(--foreground-light)}.file-list-error{padding:var(--space-2-5) var(--space-4);background:var(--destructive-subtle);border-bottom:1px solid var(--destructive-border);color:var(--destructive-500);font-size:var(--text-sm)}.file-table{width:100%;border-collapse:collapse}.file-table th{padding:var(--space-2-5) var(--space-3);text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--foreground-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide);background:var(--background-surface-100);border-bottom:1px solid var(--border-muted);white-space:nowrap}.file-table th:first-child{padding-left:var(--space-4);width:40px}.file-table td{padding:var(--space-2-5) var(--space-3);font-size:var(--text-base);color:var(--foreground-default);border-bottom:1px solid var(--border-muted);vertical-align:middle}.file-table td:first-child{padding-left:var(--space-4);width:40px}.file-table tr:last-child td{border-bottom:none}.file-table tbody tr{transition:background-color .08s}.file-table tbody tr:hover td{background:var(--background-surface-200)}.row-actions{display:flex;gap:2px;justify-content:flex-end;opacity:0;transition:opacity .12s}.file-table tbody tr:hover .row-actions,.file-table tbody .row-selected .row-actions{opacity:1}.row-selected td{background:var(--brand-subtle)!important}.file-table tbody tr.row-selected{box-shadow:inset 2px 0 0 var(--brand-500)}.folder-row{cursor:pointer}.file-name-cell{display:flex;align-items:center;gap:var(--space-2);min-width:0}.file-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:450}.file-name-icon{color:var(--foreground-muted);flex-shrink:0}.file-name-icon--folder{color:var(--foreground-light)}input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand-500);cursor:pointer;border-radius:3px}.dropzone-wrapper{margin-bottom:var(--space-4)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-5);text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--space-1-5);color:var(--foreground-light);font-size:var(--text-base);transition:border-color .15s,background-color .15s,color .15s;background:var(--background-surface-100)}.dropzone:hover{background:var(--background-surface-200);border-color:var(--foreground-muted)}.dropzone.drag-over{border-style:dashed;border-color:var(--brand-500);background:var(--brand-subtle);color:var(--brand-link)}.dropzone-icon{color:var(--foreground-muted);margin-bottom:2px}.dropzone.drag-over .dropzone-icon{color:var(--brand-500)}.dropzone-hint{font-size:var(--text-xs);color:var(--foreground-muted)}.dropzone.drag-over .dropzone-hint{color:var(--brand-link)}.upload-status-list{margin-top:var(--space-2);font-size:var(--text-sm);display:flex;flex-direction:column;gap:3px}.upload-overall{font-weight:600;color:var(--foreground-light);margin-bottom:2px;font-size:var(--text-sm)}.upload-status-item{display:flex;flex-direction:column;gap:var(--space-1-5);padding:var(--space-2) var(--space-2-5);background:var(--background-surface-200);border-radius:var(--radius-md);border:1px solid var(--border-muted)}.upload-status-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2-5)}.upload-status-name{color:var(--foreground-default);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.upload-status-pct{color:var(--brand-link);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:38px;text-align:right}.upload-status-done{color:var(--success-text);font-weight:600}.upload-status-error{color:var(--destructive-500);font-size:var(--text-xs);max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status-canceled{color:var(--foreground-muted);font-weight:500;font-size:var(--text-sm)}.upload-cancel-btn{background:transparent;border:none;color:var(--foreground-muted);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0;transition:background-color .1s,color .1s}.upload-cancel-btn:hover{background:var(--background-surface-300);color:var(--foreground-default)}.upload-status-bar{width:100%;height:4px;background:var(--border-muted);border-radius:var(--radius-full);overflow:hidden}.upload-status-bar-fill{height:100%;background:var(--brand-500);border-radius:var(--radius-full);transition:width .2s ease-out;width:0}.upload-status-item.state-done .upload-status-bar-fill{background:var(--success-500)}.upload-status-item.state-error .upload-status-bar-fill{background:var(--destructive-500)}.upload-status-item.state-canceled .upload-status-bar-fill{background:var(--foreground-muted);opacity:.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-4);animation:modalFadeIn .12s ease}.modal-card{background:var(--background-overlay);border:1px solid var(--border-overlay);border-radius:var(--radius-xl);box-shadow:var(--shadow-overlay);width:100%;max-width:420px;overflow:hidden;animation:modalSlideIn .18s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5) var(--space-3);border-bottom:1px solid var(--border-muted)}.modal-title{font-size:var(--text-md);font-weight:600;color:var(--foreground-default);letter-spacing:var(--tracking-tight)}.modal-body{padding:var(--space-5)}.modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--border-muted);background:var(--background-surface-200)}.detail-panel-overlay{position:fixed;top:var(--header-h);right:0;bottom:0;width:var(--detail-panel-w);background:var(--background-alternative);border-left:1px solid var(--border-default);z-index:30;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden;animation:panelSlideIn .18s ease}@keyframes panelSlideIn{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-muted);flex-shrink:0;background:var(--background-surface-100)}.detail-panel-heading{font-size:var(--text-base);font-weight:600;color:var(--foreground-default);letter-spacing:var(--tracking-tight)}.detail-panel-body{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.detail-panel-icon{color:var(--foreground-muted);display:flex;align-items:center;justify-content:center;margin:var(--space-2) 0 var(--space-1)}.detail-panel-name{font-size:var(--text-base);font-weight:600;color:var(--foreground-default);text-align:center;word-break:break-all;margin-bottom:var(--space-1-5)}.detail-row{display:flex;flex-direction:row;gap:var(--space-2-5);align-items:flex-start}.detail-row label{min-width:64px;color:var(--foreground-muted);font-size:var(--text-xs);flex-shrink:0;padding-top:1px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wide)}.detail-row .value{flex:1;color:var(--foreground-light);font-size:var(--text-sm);word-break:break-all}.detail-divider{height:1px;background:var(--border-muted);margin:var(--space-1) 0}.detail-toast{margin-top:var(--space-1-5);padding:var(--space-1-5) var(--space-2-5);background:var(--brand-subtle);color:var(--success-text);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-align:center;animation:fadeOut 2s forwards}.bulk-action-bar{position:fixed;bottom:var(--space-4);left:calc(var(--sidebar-w) + var(--space-5));right:var(--space-5);background:var(--background-inverted);border:1px solid hsla(0,0%,100%,.08);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xl);display:flex;align-items:center;gap:var(--space-2);z-index:50;box-shadow:var(--shadow-lg);flex-wrap:wrap}.bulk-action-bar .count{font-weight:600;color:var(--brand-500);font-size:var(--text-base);margin-right:var(--space-1-5)}.bulk-action-bar .btn{background:transparent;border-color:#ffffff1f;color:#ffffffe6;font-size:var(--text-sm)}.bulk-action-bar .btn:hover:not(:disabled){background:#ffffff14;border-color:#ffffff2e}.bulk-action-bar .btn-danger{background:transparent;color:#f07575;border-color:transparent}.bulk-action-bar .btn-danger:hover:not(:disabled){background:#dc28282e;border-color:transparent}.bulk-action-bar .btn-ghost{background:transparent;color:#fff9;border-color:transparent}.bulk-action-bar .btn-ghost:hover:not(:disabled){background:#ffffff14;color:#ffffffe6}.bulk-action-bar .progress-text{font-size:var(--text-sm);color:#fff9}.folder-tree{max-height:320px;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-1);background:var(--background-surface-100)}.folder-tree-node{display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--foreground-default);cursor:pointer;border-bottom:1px solid var(--border-muted);transition:background-color .1s;position:relative}.folder-tree-node:last-child{border-bottom:none}.folder-tree-node:hover{background:var(--background-surface-200)}.folder-tree-node.selected{background:var(--brand-subtle);color:var(--brand-link);font-weight:500}.folder-tree-node.selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--brand-500)}.folder-tree-node-label{display:flex;align-items:center;gap:var(--space-1-5)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border-default);border-top-color:var(--brand-500);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.fm-toast{position:fixed;top:var(--space-4);right:var(--space-4);background:var(--background-inverted);color:var(--foreground-inverted);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3-5, 14px);font-size:var(--text-base);box-shadow:var(--shadow-lg);z-index:200;animation:toastFadeIn .2s ease,toastFadeOut .4s ease 2.6s forwards}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes fadeOut{0%{opacity:1}70%{opacity:1}to{opacity:0}}.bucket-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--foreground-muted);padding:var(--space-10)}.bucket-placeholder-icon{opacity:.4}.bucket-placeholder-text{font-size:var(--text-md);color:var(--foreground-light);font-weight:500}.bucket-placeholder-hint{font-size:var(--text-sm);color:var(--foreground-muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:2px solid var(--background-default)}::-webkit-scrollbar-thumb:hover{background:var(--foreground-muted)}@media (max-width: 768px){.sidebar{display:none}.bulk-action-bar{left:var(--space-3);right:var(--space-3);bottom:var(--space-3)}.detail-panel-overlay{width:100%;top:0}.file-list{overflow-x:auto}}
