*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #0066cc;--color-primary-hover: #0052a3;--color-background: #ffffff;--color-surface: #f5f5f5;--color-text: #333333;--color-text-secondary: #666666;--color-border: #dddddd;--color-error: #d32f2f;--color-success: #388e3c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background-color:var(--color-background);color:var(--color-text)}button{font-family:inherit;cursor:pointer}#root{min-height:100vh;display:flex;flex-direction:column}.app-container{max-width:1200px;margin:0 auto;padding:0 1rem;min-height:100vh;display:flex;flex-direction:column;width:100%}body.dragging{overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;border-bottom:1px solid var(--color-border);gap:1rem}.app-nav{display:flex;gap:.25rem;background-color:var(--color-surface, #f5f5f5);padding:.25rem;border-radius:8px}.nav-tab{padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;border:none;background:none;color:var(--color-text-secondary, #666);cursor:pointer;border-radius:6px;transition:all .2s ease}.nav-tab:hover{color:var(--color-text, #333);background-color:#0000000d}.nav-tab-active{background-color:#fff;color:var(--color-primary, #1976d2);box-shadow:0 1px 3px #0000001a}.app-header-logo{display:flex;align-items:center;gap:.75rem}.app-header-logo h1{font-size:1.5rem;font-weight:600;color:var(--color-text)}.header-image{max-height:48px;max-width:280px;width:auto;height:auto;object-fit:contain;display:block}.app-header-actions{display:flex;align-items:center;gap:1rem}.admin-toggle-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border:1px solid var(--color-border, #ddd);border-radius:6px;background-color:var(--color-surface, #f5f5f5);color:var(--color-text, #333);cursor:pointer;transition:all .2s ease}.admin-toggle-btn:hover{background-color:var(--color-border, #eee)}.admin-toggle-btn-active{background-color:var(--color-primary, #1976d2);color:#fff;border-color:var(--color-primary, #1976d2)}.admin-toggle-btn-active:hover{filter:brightness(.9);background-color:var(--color-primary, #1976d2)}.app-main{flex:1;padding:2rem 0}.app-main-content{background-color:var(--color-surface);border-radius:8px;padding:2rem;min-height:400px}.loading-message{font-size:1.125rem;color:var(--color-text-secondary)}.admin-panel{width:100%}.admin-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid var(--color-border, #ddd)}.admin-tab{padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;border:none;background:none;color:var(--color-text-secondary, #666);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s ease}.admin-tab:hover{color:var(--color-text, #333)}.admin-tab-active{color:var(--color-primary, #1976d2);border-bottom-color:var(--color-primary, #1976d2)}.upload-section,.files-section,.content-section{width:100%}.content-section h2{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;color:var(--color-text, #333)}.upload-destination{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.upload-destination label{font-size:.875rem;font-weight:500;color:var(--color-text, #333)}.upload-destination input{padding:.75rem 1rem;border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:1rem;font-family:monospace;background-color:var(--color-surface, #fff);color:var(--color-text, #333);transition:border-color .2s ease,box-shadow .2s ease}.upload-destination input:focus{outline:none;border-color:var(--color-primary, #0078d4);box-shadow:0 0 0 3px #1976d226}.upload-destination input:disabled{background-color:var(--color-background, #f5f5f5);cursor:not-allowed}.upload-destination input::placeholder{color:var(--color-text-secondary, #999)}.validation-errors{margin-bottom:1.5rem;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:1rem}.validation-errors-header{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#92400e;margin-bottom:.75rem}.validation-errors-header svg{color:#f59e0b}.validation-error{padding:.4rem 0;color:#78350f;font-size:.9rem;border-bottom:1px solid #fcd34d}.validation-error:last-child{border-bottom:none;padding-bottom:0}.validation-warning{padding:.75rem 1rem;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;color:#856404;margin-bottom:1.5rem;font-size:.9rem}.readonly-notice{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background-color:#f0f0f0;border:1px solid #ccc;border-radius:6px;color:#555;margin-bottom:1.5rem;font-size:.9rem}.readonly-icon{font-size:1.1rem}.directory-picker-loading{padding:.75rem 1rem;background-color:var(--color-background, #f8f9fa);border:1px solid #dee2e6;border-radius:6px;color:#6c757d;font-size:.9rem}.upload-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:center}.upload-profile-info{font-size:.875rem;color:var(--color-text-secondary, #666);text-align:center}.upload-action-buttons{display:flex;gap:1rem;justify-content:center}.upload-button{padding:.75rem 2rem;background-color:var(--color-primary, #0078d4);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.upload-button:hover:not(:disabled){filter:brightness(.9)}.upload-button:disabled{opacity:.6;cursor:not-allowed}.upload-clear-button{padding:.75rem 2rem;background-color:#fff;color:var(--color-text, #333);border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s ease}.upload-clear-button:hover{background-color:var(--color-background, #fafafa)}.upload-result{margin-top:2rem;padding:1.5rem;border-radius:8px;border:1px solid var(--color-border, #ddd)}.upload-result-success{margin-bottom:1.5rem}.upload-result-success h3{color:#10b981;margin-bottom:1rem;font-size:1.1rem}.upload-result-errors h3{color:#ef4444;margin-bottom:1rem;font-size:1.1rem}.upload-result-list{list-style:none;padding:0;margin:0}.upload-result-list li{padding:.5rem 0;border-bottom:1px solid var(--color-border, #eee);font-size:.9rem}.upload-result-list li:last-child{border-bottom:none}.upload-result-errors .upload-result-list li{color:#c33}.optimization-progress{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #0ea5e9;border-radius:8px;margin-top:1rem;color:#0369a1}.optimization-spinner{width:24px;height:24px;border:3px solid #0ea5e9;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0;margin-top:2px}.optimization-message{display:flex;flex-direction:column;gap:.5rem}.optimization-title{font-weight:600;font-size:1rem}.optimization-count{font-weight:500}.optimization-info{font-size:.9rem;font-weight:400;color:#0c4a6e;margin:0;line-height:1.5}.optimization-link{background:none;border:none;color:#0369a1;font-weight:600;text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}.optimization-link:hover{color:#0284c7}.email-notify-toggle{margin-top:.5rem}.email-notify-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--color-text-secondary, #666);cursor:pointer}.email-notify-label input[type=checkbox]{width:14px;height:14px;cursor:pointer}.upload-result-complete{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#22c55e}.upload-result-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.upload-result-icon{width:32px;height:32px;background:#22c55e;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}.upload-result-header h3{color:#166534;margin:0;font-size:1.1rem}.optimization-summary{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.optimization-stat{display:flex;flex-direction:column;padding:.75rem 1rem;background:#fff;border-radius:6px;min-width:80px;text-align:center}.optimization-stat .stat-value{font-size:1.25rem;font-weight:600;color:var(--color-text, #333)}.optimization-stat .stat-label{font-size:.75rem;color:var(--color-text-secondary, #666);text-transform:uppercase;margin-top:.25rem}.optimization-stat.stat-highlight{background:#166534}.optimization-stat.stat-highlight .stat-value{color:#fff}.optimization-stat.stat-highlight .stat-label{color:#fffc}.optimization-files{margin-top:1rem}.optimization-files h4{margin:0;color:#166534;font-size:.95rem}.optimization-files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.optimization-table{width:100%;border-collapse:collapse;font-size:.875rem;background:#fff;border-radius:6px;overflow:hidden;table-layout:fixed}.optimization-table th,.optimization-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb;overflow:hidden;text-overflow:ellipsis}.optimization-table th{background:#f9fafb;font-weight:600;color:#374151}.optimization-table th:nth-child(1),.optimization-table td:nth-child(1){width:20%}.optimization-table th:nth-child(2),.optimization-table td:nth-child(2){width:40%}.optimization-table th:nth-child(3),.optimization-table td:nth-child(3){width:20%}.optimization-table .col-action{width:50px;text-align:center;padding:.5rem}.optimization-table tr:last-child td{border-bottom:none}.optimization-table .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.optimization-table .cdn-path{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.optimization-table .cdn-path a{color:#0369a1;text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis}.optimization-table .cdn-path a:hover{text-decoration:underline}.optimization-table .cdn-path code{display:block;overflow:hidden;text-overflow:ellipsis}.optimization-table .reduction{white-space:nowrap;text-align:right}.optimization-table .reduction-percent{color:#22c55e;font-weight:600}.optimization-table .optimization-skipped{color:#f59e0b;font-weight:600;font-size:.85em}.optimization-dir-row td{background:#f8fafc!important;padding:.4rem .75rem!important;font-size:.8rem;border-bottom:1px solid #e2e8f0}.optimization-dir-label{font-weight:600;color:var(--color-text-muted, #666)}.optimization-dir-count{margin-left:.5rem;color:#9ca3af;font-weight:400}.optimization-errors{margin-top:1rem;padding:1rem;background:#fef2f2;border-radius:6px}.optimization-errors h4{color:#dc2626;margin-bottom:.5rem}.optimization-errors ul{list-style:none;padding:0;margin:0}.optimization-errors li{padding:.25rem 0;color:#991b1b;font-size:.875rem}@media(max-width:768px){.app-header{flex-direction:column;gap:1rem;align-items:stretch}.app-nav{order:3;width:100%;justify-content:center}.nav-tab{flex:1;text-align:center}.app-header-actions{width:100%;justify-content:flex-end}.app-main-content{padding:1.5rem}.admin-tabs{flex-wrap:wrap}.admin-tab{flex:1;text-align:center;min-width:100px}}@media(max-width:480px){.app-container{padding:0 .75rem}.app-header-logo h1{font-size:1.25rem}.header-image{max-height:36px;max-width:200px}.app-main-content{padding:1rem}.admin-tab{padding:.625rem 1rem;font-size:.8rem}}.debug-panel{padding:1rem}.debug-panel h2{margin:0 0 .5rem;font-size:1.25rem}.debug-description{color:var(--color-text-secondary, #666);margin-bottom:1.5rem}.debug-controls{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;flex-wrap:wrap}.debug-controls .form-group{flex:1;min-width:200px}.debug-controls select{width:100%;padding:.5rem;border:1px solid var(--color-border, #ddd);border-radius:4px;font-size:1rem}.debug-members{background:var(--color-surface-secondary, #f5f5f5);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.debug-members h3{margin:0 0 1rem;font-size:1rem}.members-list{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}.member-item{display:flex;justify-content:space-between;padding:.5rem;border-bottom:1px solid var(--color-border, #ddd)}.member-item:last-child{border-bottom:none}.member-name{font-weight:500}.member-email{color:var(--color-text-secondary, #666);font-size:.875rem}.debug-result{background:var(--color-surface, #fff);border:1px solid var(--color-border, #ddd);border-radius:8px;padding:1rem}.debug-result h3{margin:0 0 1rem;font-size:1rem;color:var(--color-success, #28a745)}.debug-empty{color:var(--color-text-secondary, #666);font-style:italic}.debug-table{width:100%;border-collapse:collapse}.debug-table th,.debug-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border, #ddd)}.debug-table th{background:var(--color-surface-secondary, #f5f5f5);font-weight:600}.debug-table code{background:var(--color-surface-secondary, #f5f5f5);padding:.125rem .25rem;border-radius:2px;font-size:.875rem}.impersonation-banner{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:1rem;background:linear-gradient(135deg,#ff9800,#f57c00);border-radius:8px;color:#fff}.impersonation-icon{font-size:1.5rem}.impersonation-text{flex:1}.btn-small{padding:.375rem .75rem;font-size:.875rem}.member-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid var(--color-border, #ddd)}.member-info{display:flex;flex-direction:column;gap:.25rem}.impersonation-indicator{position:fixed;top:0;left:0;right:0;padding:.5rem 1rem;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;text-align:center;font-weight:500;z-index:1000;display:flex;justify-content:center;align-items:center;gap:1rem}.impersonation-indicator button{background:#fff;color:#f57c00;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-weight:500}.impersonation-indicator button:hover{background:#f5f5f5}body.impersonating .app-container{padding-top:3rem}.auth-error-banner{position:fixed;top:0;left:0;right:0;padding:.75rem 1rem;background:linear-gradient(135deg,#d32f2f,#c62828);color:#fff;text-align:center;font-weight:500;z-index:1001;display:flex;justify-content:center;align-items:center;gap:1rem}.auth-error-banner button{background:#fff;color:#d32f2f;border:none;padding:.35rem 1rem;border-radius:4px;cursor:pointer;font-weight:500}.auth-error-banner button:hover{background:#f5f5f5}.debug-group-actions{display:flex;gap:1rem;margin-bottom:.5rem}.btn-link{background:none;border:none;color:var(--color-primary, #1976d2);cursor:pointer;padding:0;font-size:.875rem;text-decoration:underline}.btn-link:hover{color:var(--color-primary-dark, #1565c0)}.btn-link:disabled{color:var(--color-text-secondary, #999);cursor:not-allowed}.debug-group-list{max-height:300px;overflow-y:auto;border:1px solid var(--color-border, #ddd);border-radius:6px;background:var(--color-surface, #fff);padding:.5rem}.debug-group-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:4px;transition:background-color .15s ease}.debug-group-item:hover{background-color:var(--color-surface-secondary, #f5f5f5)}.debug-group-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.debug-group-name{flex:1;font-size:.9rem}.debug-action-buttons{display:flex;gap:.75rem;margin-top:1rem}.btn-primary{padding:.5rem 1rem;background-color:var(--color-primary, #1976d2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s ease}.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn-secondary{padding:.5rem 1rem;background-color:var(--color-surface, #fff);color:var(--color-text, #333);border:1px solid var(--color-border, #ddd);border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-secondary, #f5f5f5)}.btn-danger{padding:.5rem 1rem;background-color:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s ease}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.app-footer{margin-top:auto;padding:1rem 0;border-top:1px solid var(--color-border, #e0e0e0);display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--color-text-secondary, #888)}.app-version{font-family:monospace;background:var(--color-surface, #f5f5f5);padding:.15rem .4rem;border-radius:4px}.cdn-copy-btn{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;background:none;border:1px solid var(--color-border, #ddd);border-radius:4px;cursor:pointer;color:var(--color-text-muted, #666);transition:all .2s ease}.cdn-copy-btn:hover{background-color:var(--color-background, #f5f5f5);color:var(--color-primary, #0066cc);border-color:var(--color-primary, #0066cc)}.cdn-copy-btn svg{display:block}.cdn-copy-all-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;background:none;border:1px solid var(--color-border, #ddd);border-radius:4px;cursor:pointer;color:var(--color-text-muted, #666);font-size:.8rem;transition:all .2s ease}.cdn-copy-all-btn:hover{background-color:var(--color-background, #f5f5f5);color:var(--color-primary, #0066cc);border-color:var(--color-primary, #0066cc)}.cdn-copy-all-btn svg{display:block;flex-shrink:0}@media(max-width:480px){.optimization-table{table-layout:auto}.optimization-table th:nth-child(1),.optimization-table td:nth-child(1){width:auto}.optimization-table th:nth-child(2),.optimization-table td:nth-child(2){width:auto}.optimization-table th:nth-child(3),.optimization-table td:nth-child(3){display:none}.optimization-table .col-action{width:40px}.optimization-table th,.optimization-table td{padding:.5rem;font-size:.8rem}}.login-container{display:flex;align-items:center;justify-content:center;min-height:400px;padding:2rem}.login-content{text-align:center;max-width:400px}.login-content h2{margin-bottom:1rem;color:var(--color-text, #333)}.login-info{margin-bottom:2rem;color:var(--color-text-muted, #666);font-size:.95rem}.login-button{background-color:var(--color-primary, #0078d4);color:#fff;border:none;padding:.75rem 2rem;font-size:1rem;font-weight:500;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.login-button:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary, #0078d4) 85%,black)}.login-button:disabled{background-color:color-mix(in srgb,var(--color-primary, #0078d4) 50%,white);cursor:not-allowed}.protected-route-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:2rem;color:var(--color-text-muted, #666)}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border, #ddd);border-top-color:#0078d4;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.protected-route-loading p{font-size:.95rem}.user-profile{position:relative}.user-profile-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:1px solid var(--color-border, #ddd);border-radius:20px;cursor:pointer;transition:background-color .2s ease}.user-profile-button:hover{background-color:var(--color-background-hover, #f5f5f5)}.user-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background-color:#0078d4;display:flex;align-items:center;justify-content:center}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-initials{color:#fff;font-size:.875rem;font-weight:600}.user-name{font-size:.95rem;color:var(--color-text, #333);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-icon{color:var(--color-text-muted, #666)}.user-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:1px solid var(--color-border, #ddd);border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:240px;z-index:1000}.user-dropdown-info{padding:1rem}.user-dropdown-name{font-weight:600;color:var(--color-text, #333);margin-bottom:.25rem}.user-dropdown-email{font-size:.875rem;color:var(--color-text-muted, #666);word-break:break-all}.user-dropdown-divider{margin:0;border:none;border-top:1px solid var(--color-border, #ddd)}.user-dropdown-item{width:100%;padding:.75rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;font-size:.95rem;color:var(--color-text, #333);transition:background-color .2s ease}.user-dropdown-item:hover{background-color:var(--color-background-hover, #f5f5f5)}.user-dropdown-item:last-of-type{border-radius:0 0 8px 8px}.dropdown-item-icon{margin-right:.5rem;font-size:1rem}.user-dropdown-item-logout{color:var(--color-danger, #dc3545)}.user-dropdown-item-logout:hover{background-color:#dc35451a}.directory-tree{padding:.25rem 0;-webkit-user-select:none;user-select:none}.tree-header{padding:.5rem .75rem .375rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #888)}.tree-node{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;cursor:pointer;font-size:.8125rem;color:var(--color-text, #333);border-radius:3px;margin:0 .25rem;transition:background-color .1s ease}.tree-node:hover{background-color:#edf4fc}.tree-node-selected{background-color:#dbeafe;font-weight:600}.tree-node-selected:hover{background-color:#dbeafe}.tree-node-disabled{opacity:.5;cursor:not-allowed}.tree-chevron-btn{background:none;border:none;padding:0;margin:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:var(--color-text-secondary, #888)}.tree-chevron{font-size:.5rem;display:inline-block;transition:transform .15s ease;line-height:1}.tree-chevron-open{transform:rotate(90deg)}.tree-chevron-spacer{width:16px;flex-shrink:0}.tree-spinner{display:inline-block;width:10px;height:10px;border:1.5px solid var(--color-border, #ddd);border-top-color:#0078d4;border-radius:50%;animation:tree-spin .6s linear infinite}@keyframes tree-spin{to{transform:rotate(360deg)}}.tree-node-icon{font-size:.875rem;flex-shrink:0;line-height:1}.tree-node-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.preview-modal{position:relative;display:flex;flex-direction:column;max-width:90vw;max-height:90vh;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 25px 50px #00000040}.preview-close{position:absolute;top:.5rem;right:.5rem;z-index:10;background:#00000080;color:#fff;border:none;width:2rem;height:2rem;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.preview-close:hover{background:#000000b3}.preview-content{flex:1;min-height:200px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f0f0f0}.preview-image{max-width:100%;max-height:70vh;object-fit:contain}.preview-iframe{width:80vw;max-width:900px;height:70vh;border:none}.preview-video{max-width:100%;max-height:70vh}.preview-audio-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem}.preview-audio-icon{font-size:3rem;opacity:.5}.preview-audio{width:400px;max-width:100%}.preview-unsupported{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem;color:#666}.preview-unsupported-icon{font-size:3rem;opacity:.5}.preview-open-link{color:#0078d4;text-decoration:none;font-weight:500}.preview-open-link:hover{text-decoration:underline}.preview-footer{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-top:1px solid #e0e0e0}.preview-nav-btn{background:none;border:1px solid #ddd;width:2.5rem;height:2.5rem;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#333;flex-shrink:0;line-height:1}.preview-nav-btn:hover:not(:disabled){background:#f0f0f0;border-color:#ccc}.preview-nav-btn:disabled{opacity:.3;cursor:not-allowed}.preview-info{flex:1;text-align:center;min-width:0}.preview-filename{display:block;font-weight:600;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-meta{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;color:#666;margin-top:.125rem}.preview-ext{background:#e5e7eb;padding:.0625rem .375rem;border-radius:3px;font-size:.6875rem;font-weight:500}.preview-actions{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:.375rem}.preview-action-btn{background:none;border:none;color:#0078d4;cursor:pointer;font-size:.75rem;text-decoration:none;padding:.125rem .25rem;border-radius:3px}.preview-action-btn:hover{text-decoration:underline;background:#0078d414}@media(max-width:600px){.preview-overlay{padding:0}.preview-modal{max-width:100vw;max-height:100vh;border-radius:0}.preview-iframe{width:100vw}}.file-browser{width:100%}.file-browser-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--color-text-secondary, #666)}.file-browser-spinner{width:32px;height:32px;border:3px solid var(--color-border, #e0e0e0);border-top-color:#0078d4;border-radius:50%;animation:spin .8s linear infinite}.file-browser-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem;text-align:center;color:var(--color-text-secondary, #666)}.file-browser-empty-icon{font-size:3rem;opacity:.5}.file-browser-empty-hint{font-size:.875rem;max-width:300px}.file-browser-location{margin-bottom:1rem;padding:.75rem 1rem;background-color:var(--color-surface, #f8f9fa);border:1px solid var(--color-border, #e0e0e0);border-radius:6px}.location-heading{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.location-icon{font-size:1.25rem;flex-shrink:0}.location-dirname{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text, #24292f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.125rem;font-size:.75rem;color:var(--color-text-secondary, #666);padding-left:1.75rem}.breadcrumb-separator{margin:0 .125rem;color:var(--color-text-secondary, #aaa)}.breadcrumb-link{background:none;border:none;padding:.125rem .25rem;color:#0078d4;cursor:pointer;border-radius:3px;font-size:inherit}.breadcrumb-link:hover{background-color:#0078d41a;text-decoration:underline}.breadcrumb-current{font-weight:600;color:var(--color-text, #555);padding:.125rem .25rem}.upload-toast{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1d4ed8;font-size:.8125rem;margin-bottom:1rem}.upload-toast button{background:none;border:none;color:#1d4ed8;cursor:pointer;font-size:.8125rem;font-weight:600;white-space:nowrap;padding:.25rem .5rem;border-radius:4px}.upload-toast button:hover{background-color:#1d4ed81a;text-decoration:underline}.file-browser-panes{display:flex;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;overflow:hidden;height:60vh;min-height:400px;max-height:800px}.file-browser-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--color-border, #e0e0e0);overflow-y:auto;overflow-x:hidden;background-color:#f9fafb}.file-browser-main{flex:1;min-width:0;overflow-y:auto;padding:.5rem .75rem;position:relative}.upload-status-bar{position:relative;padding:.375rem .75rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:4px;margin-bottom:.5rem;font-size:.75rem;color:#0369a1;overflow:hidden}.upload-status-progress{position:absolute;left:0;top:0;bottom:0;background:#0ea5e926;transition:width .3s ease}.upload-status-text{position:relative;z-index:1}.drop-overlay{position:absolute;inset:0;background:#0078d414;border:2px dashed #0078d4;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:#0078d4;font-weight:500;z-index:10;pointer-events:none}.file-browser-readonly-notice{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:#fffbeb;border:1px solid #fde68a;border-radius:4px;font-size:.8125rem;color:#92400e;margin-bottom:.5rem}.file-browser-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.toolbar-search{display:flex;align-items:center;gap:.5rem;flex:1;max-width:450px}.search-input-wrapper{position:relative;flex:1}.search-input-wrapper input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.875rem;background-color:var(--color-surface, #fff)}.search-input-wrapper input:focus{outline:none;border-color:#0078d4;box-shadow:0 0 0 3px #0078d426}.search-clear-btn{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.125rem;color:var(--color-text-secondary, #999);cursor:pointer;padding:0 .25rem;line-height:1}.search-clear-btn:hover{color:var(--color-text, #333)}.search-scope-toggle{display:flex;gap:0;border:1px solid var(--color-border, #ddd);border-radius:4px;overflow:hidden;flex-shrink:0}.scope-btn{padding:.375rem .625rem;background:var(--color-surface, #fff);border:none;border-right:1px solid var(--color-border, #ddd);font-size:.75rem;color:var(--color-text-secondary, #666);cursor:pointer;white-space:nowrap}.scope-btn:last-child{border-right:none}.scope-btn:hover{background-color:#f0f0f0}.scope-btn-active{background-color:#0078d4;color:#fff}.scope-btn-active:hover{background-color:#106ebe}.toolbar-actions{display:flex;gap:.5rem}.toolbar-button{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.toolbar-button-create{background-color:#0078d4;color:#fff;border:none}.toolbar-button-create:hover{background-color:#106ebe}.toolbar-button-create:disabled{background-color:#ccc;cursor:not-allowed}.toolbar-button-delete{background-color:#dc2626;color:#fff;border:none}.toolbar-button-delete:hover{background-color:#b91c1c}.toolbar-button-delete:disabled{background-color:#ccc;cursor:not-allowed}.toolbar-button-cancel{background-color:transparent;border:1px solid var(--color-border, #ddd);color:var(--color-text, #333)}.toolbar-button-cancel:hover{background-color:var(--color-background, #fafafa)}.toolbar-button-cancel:disabled{opacity:.4;cursor:not-allowed}.file-browser-error{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:#fff5f5;border:1px solid #fecaca;border-radius:6px;color:#dc2626;margin-bottom:.5rem}.file-browser-error .error-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:#dc2626;color:#fff;border-radius:50%;font-size:.75rem;font-weight:700;flex-shrink:0}.file-browser-error button{margin-left:auto;background:none;border:none;font-size:1.25rem;color:#dc2626;cursor:pointer;padding:0 .25rem}.search-result-info{padding:.375rem .5rem;font-size:.75rem;color:var(--color-text-secondary, #666);margin-bottom:.375rem}.file-browser-no-results{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--color-text-secondary, #666);font-size:.875rem}.explorer-table{width:100%;border-collapse:collapse;border:1px solid var(--color-border, #dce0e4);border-radius:6px;overflow:hidden;font-size:.8125rem;background-color:var(--color-surface, #fff);table-layout:fixed}.explorer-table-dirs{margin-bottom:.75rem}.explorer-header th{padding:.375rem .75rem;text-align:left;font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #777);background-color:#f6f8fa;border-bottom:1px solid var(--color-border, #dce0e4);white-space:nowrap;overflow:hidden}.explorer-row{cursor:default;transition:background-color .1s ease}.explorer-row-dir{cursor:pointer}.explorer-row-alt{background-color:#f9fafb}.explorer-row:hover{background-color:#edf4fc}.explorer-row-selected{background-color:#dbeafe!important}.explorer-row-disabled{opacity:.5;cursor:not-allowed}.explorer-row td{padding:.4375rem .75rem;border-bottom:1px solid #eef0f2;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-table tbody tr:last-child td{border-bottom:none}.explorer-col-check{width:2rem;text-align:center;padding-left:.5rem!important;padding-right:0!important}.explorer-col-check input[type=checkbox]{width:14px;height:14px;cursor:pointer;vertical-align:middle}.explorer-col-icon{width:2rem;text-align:center;font-size:.9375rem;padding-left:.5rem!important;padding-right:0!important}.explorer-col-icon .file-icon{font-size:.9375rem}.explorer-col-name{text-align:left;font-weight:500;color:var(--color-text, #24292f);overflow:hidden;text-overflow:ellipsis}.explorer-col-profile{width:10rem;text-align:right;font-size:.75rem;color:var(--color-text-secondary, #888);padding-right:.5rem!important}.explorer-col-type{width:5rem;text-align:left;font-size:.75rem;color:var(--color-text-secondary, #666)}.explorer-type-muted{font-style:italic;color:var(--color-text-secondary, #999)}.explorer-col-path{width:10rem;text-align:left;font-size:.75rem;color:var(--color-text-secondary, #666);overflow:hidden;text-overflow:ellipsis}.explorer-col-size{width:5.5rem;text-align:right;font-family:SF Mono,Menlo,Monaco,Consolas,monospace;font-size:.75rem;color:var(--color-text-secondary, #666)}.explorer-col-date{width:6.5rem;text-align:left;font-size:.75rem;color:var(--color-text-secondary, #666)}.explorer-col-arrow{width:1.5rem;text-align:center;color:var(--color-text-secondary, #bbb);font-size:1rem;font-weight:300}.explorer-col-actions{width:7rem;text-align:right;padding-right:.5rem!important;white-space:nowrap}.explorer-action-btn{padding:.1875rem .5rem;background-color:transparent;border:1px solid transparent;border-radius:3px;font-size:.6875rem;color:var(--color-text-secondary, #888);cursor:pointer;text-decoration:none;transition:all .12s ease;display:inline-block}.explorer-action-btn:hover{background-color:#0078d414;color:#0078d4}.explorer-delete-btn{padding:.1875rem;background:none;border:none;cursor:pointer;color:var(--color-text-secondary, #ccc);transition:color .12s ease;display:inline-flex;align-items:center;vertical-align:middle}.explorer-delete-btn:hover{color:#dc2626}.explorer-delete-btn:disabled{opacity:.35;cursor:not-allowed}.explorer-dir-arrow{display:inline-block;margin-left:.25rem;color:var(--color-text-secondary, #bbb);font-size:1rem;font-weight:300;vertical-align:middle}.explorer-filename{display:block;font-weight:500}.explorer-filepath{display:block;font-size:.6875rem;color:var(--color-text-secondary, #999);overflow:hidden;text-overflow:ellipsis}.file-browser-empty-dir{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem;text-align:center;color:var(--color-text-secondary, #666);border:2px dashed var(--color-border, #e0e0e0);border-radius:8px}.file-browser-empty-dir .empty-icon{font-size:2.5rem;opacity:.5}.file-browser-empty-dir .empty-hint{font-size:.75rem;color:var(--color-text-secondary, #aaa)}.new-folder-form{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.75rem 1rem;background-color:var(--color-surface, #f8f9fa);border:1px solid var(--color-border, #e0e0e0);border-radius:6px}.new-folder-form input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.875rem;background-color:var(--color-surface, #fff)}.new-folder-form input:focus{outline:none;border-color:#0078d4;box-shadow:0 0 0 3px #0078d426}.sidebar-toggle{display:none;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border, #ddd);border-radius:4px;width:2rem;height:2rem;font-size:1.125rem;color:var(--color-text, #333);cursor:pointer;flex-shrink:0}.sidebar-toggle:hover{background-color:#f0f0f0}.sidebar-close,.sidebar-backdrop{display:none}@media(min-width:768px)and (max-width:1023px){.file-browser-sidebar{width:48px;flex-shrink:0;position:relative;overflow:visible}.file-browser-sidebar .directory-tree{position:absolute;left:0;top:0;bottom:0;width:48px;overflow:hidden;background:#f9fafb;border-right:1px solid var(--color-border, #e0e0e0);transition:width .2s ease,box-shadow .2s ease}.file-browser-sidebar:hover .directory-tree{width:240px;z-index:5;box-shadow:2px 0 8px #00000026}.file-browser-sidebar .tree-node-name,.file-browser-sidebar .tree-header,.file-browser-sidebar .tree-chevron-btn{opacity:0;transition:opacity .15s ease;pointer-events:none}.file-browser-sidebar:hover .tree-node-name,.file-browser-sidebar:hover .tree-header,.file-browser-sidebar:hover .tree-chevron-btn{opacity:1;pointer-events:auto}}@media(max-width:767px){.sidebar-toggle{display:inline-flex}.file-browser-sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:100;transform:translate(-100%);transition:transform .25s ease;border-right:1px solid var(--color-border, #e0e0e0);background:#f9fafb;box-shadow:none}.file-browser-sidebar.sidebar-open{transform:translate(0);box-shadow:4px 0 16px #0003}.sidebar-close{display:flex;align-items:center;justify-content:center;position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.25rem;color:var(--color-text-secondary, #666);cursor:pointer;width:2rem;height:2rem;border-radius:50%;z-index:1}.sidebar-close:hover{background-color:#00000014;color:var(--color-text, #333)}.sidebar-backdrop-visible{display:block;position:fixed;inset:0;background:#0006;z-index:99}.file-browser-main{padding:.5rem}.file-browser-panes{height:auto;max-height:none}}@media(max-width:600px){.file-browser-toolbar{flex-direction:column;align-items:stretch}.toolbar-search{max-width:none}.toolbar-actions{justify-content:flex-end}.explorer-col-profile,.explorer-col-type,.explorer-col-path,.explorer-col-date{display:none}.explorer-col-size{width:4.5rem}.explorer-col-actions{width:4rem}}.confirm-delete-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100}.confirm-delete-dialog{background-color:var(--color-surface, #fff);border-radius:8px;padding:1.5rem;min-width:360px;max-width:90vw;box-shadow:0 10px 25px #0003}.confirm-delete-title{margin:0 0 1rem;font-size:1.125rem;color:var(--color-text, #333)}.confirm-delete-warning{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:.75rem;margin-bottom:1rem;line-height:1.5}.confirm-delete-warning-icon{font-size:1.125rem;flex-shrink:0;margin-top:.05rem}.confirm-delete-label{display:block;font-size:.875rem;color:var(--color-text, #333);margin-bottom:.5rem}.confirm-delete-input{width:100%;padding:.6rem .75rem;border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.9rem;margin-bottom:1.25rem;box-sizing:border-box}.confirm-delete-input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc262626}.confirm-delete-actions{display:flex;justify-content:flex-end;gap:.75rem}.confirm-delete-btn{padding:.5rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.confirm-delete-btn-cancel{background-color:transparent;border:1px solid var(--color-border, #ddd);color:var(--color-text, #333)}.confirm-delete-btn-cancel:hover{background-color:var(--color-background, #fafafa)}.confirm-delete-btn-delete{background-color:#dc2626;border:none;color:#fff}.confirm-delete-btn-delete:hover:not(:disabled){background-color:#b91c1c}.confirm-delete-btn-delete:disabled{background-color:#ccc;cursor:not-allowed}.directory-manager{width:100%;min-height:400px}.directory-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border, #ddd)}.directory-manager-header h2{font-size:1.5rem;font-weight:600;color:var(--color-text, #333);margin:0}.directory-manager-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:var(--color-text-secondary, #666)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border, #ddd);border-top-color:var(--color-primary, #0078d4);border-radius:50%;animation:spin 1s linear infinite}.directory-manager-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:var(--color-error, #d32f2f);text-align:center}.error-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#fee;border:2px solid var(--color-error, #d32f2f);border-radius:50%;font-weight:700;font-size:1.25rem}.directory-manager-content{display:flex;gap:1.5rem}.directory-tree{flex:1;min-width:0;border:1px solid var(--color-border, #ddd);border-radius:8px;background-color:var(--color-background, #fff);overflow:hidden}.directory-tree-empty{padding:3rem 2rem;text-align:center;color:var(--color-text-secondary, #666)}.directory-tree-empty p{margin:.5rem 0}.directory-node{border-bottom:1px solid var(--color-border, #eee)}.directory-node:last-child{border-bottom:none}.directory-row{display:flex;align-items:center;padding:.75rem 1rem;cursor:pointer;transition:background-color .15s ease}.directory-row:hover{background-color:var(--color-surface, #f5f5f5)}.directory-row-selected{background-color:#0078d414;border-left:3px solid var(--color-primary, #0078d4)}.directory-row-main{display:flex;align-items:center;gap:.75rem;width:100%}.directory-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary, #666);font-size:.75rem;cursor:pointer;flex-shrink:0}.directory-toggle:disabled{cursor:default;color:var(--color-border, #ddd)}.directory-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.directory-name{font-weight:500;color:var(--color-text, #333);display:flex;align-items:center;gap:.5rem}.directory-root-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;background-color:var(--color-primary, #0078d4);color:#fff;padding:.125rem .375rem;border-radius:3px}.directory-readonly-badge{font-size:.75rem;cursor:default}.directory-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.75rem;color:var(--color-text-secondary, #666)}.directory-permission,.directory-profile{display:flex;align-items:center;gap:.25rem}.directory-permission.inherited,.directory-profile.inherited{opacity:.7;font-style:italic}.directory-permission.explicit,.directory-profile.explicit{font-weight:500}.meta-icon{font-size:.75rem}.meta-value{white-space:nowrap}.directory-add-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border, #ddd);border-radius:4px;color:var(--color-text-secondary, #666);font-size:1rem;cursor:pointer;opacity:0;transition:opacity .15s ease,background-color .15s ease;flex-shrink:0}.directory-row:hover .directory-add-btn{opacity:1}.directory-add-btn:hover{background-color:var(--color-surface, #f5f5f5);border-color:var(--color-primary, #0078d4);color:var(--color-primary, #0078d4)}.directory-children{position:relative}.directory-children:before{content:"";position:absolute;left:2rem;top:0;bottom:0;width:1px;background-color:var(--color-border, #ddd)}.edit-panel{width:320px;flex-shrink:0;border:1px solid var(--color-border, #ddd);border-radius:8px;background-color:var(--color-background, #fff);display:flex;flex-direction:column}.edit-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--color-border, #ddd)}.edit-panel-header h3{font-size:1rem;font-weight:600;color:var(--color-text, #333);margin:0}.panel-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:1.25rem;color:var(--color-text-secondary, #666);cursor:pointer;border-radius:4px}.panel-close:hover{background-color:var(--color-surface, #f5f5f5)}.edit-panel-content{padding:1rem;flex:1;overflow-y:auto}.edit-panel-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border, #ddd)}.delete-hint{font-size:.75rem;color:var(--color-text-secondary, #666);text-align:center;font-style:italic}.dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background-color:var(--color-background, #fff);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border, #ddd)}.dialog-header h3{font-size:1.125rem;font-weight:600;color:var(--color-text, #333);margin:0}.dialog-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary, #666);cursor:pointer;border-radius:4px}.dialog-close:hover{background-color:var(--color-surface, #f5f5f5)}.dialog form{padding:1.5rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border, #ddd)}.parent-path-info{padding:.75rem 1.5rem;background-color:var(--color-surface, #f5f5f5);font-size:.875rem;color:var(--color-text-secondary, #666)}.parent-path-info code{font-family:monospace;background-color:var(--color-background, #fff);padding:.125rem .375rem;border-radius:3px;border:1px solid var(--color-border, #ddd)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text, #333);margin-bottom:.375rem}.form-group input,.form-group select{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.875rem;background-color:var(--color-background, #fff);color:var(--color-text, #333);transition:border-color .15s ease,box-shadow .15s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary, #0078d4);box-shadow:0 0 0 3px #0078d426}.form-group input:disabled,.form-group select:disabled{background-color:var(--color-surface, #f5f5f5);cursor:not-allowed}.form-group input::placeholder{color:var(--color-text-secondary, #999)}.form-hint{display:block;font-size:.75rem;color:var(--color-text-secondary, #666);margin-top:.375rem}.form-static{padding:.625rem .75rem;background-color:var(--color-surface, #f5f5f5);border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.875rem;color:var(--color-text-secondary, #666);font-family:monospace}.form-static.inherited{display:flex;align-items:center;gap:.5rem}.inherited-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;background-color:var(--color-text-secondary, #666);color:#fff;padding:.125rem .375rem;border-radius:3px;font-family:sans-serif}.form-error{padding:.75rem 1rem;background-color:#fee;border:1px solid #fcc;border-radius:6px;color:var(--color-error, #c33);font-size:.875rem;margin-bottom:1rem}.btn-primary{padding:.625rem 1.25rem;background-color:var(--color-primary, #0078d4);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover, #106ebe)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:.625rem 1.25rem;background-color:var(--color-background, #fff);color:var(--color-text, #333);border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface, #f5f5f5)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{padding:.625rem 1.25rem;background-color:var(--color-error, #d32f2f);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.btn-danger:hover:not(:disabled){background-color:#b71c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.directory-manager-content{flex-direction:column}.edit-panel{width:100%;position:fixed;bottom:0;left:0;right:0;max-height:60vh;border-radius:12px 12px 0 0;box-shadow:0 -4px 16px #0000001a}.directory-meta{flex-direction:column;gap:.25rem}.directory-add-btn{opacity:1}}.header-actions{display:flex;gap:.75rem}.settings-panel{background:var(--color-surface, #fff);border:1px solid var(--color-border, #ddd);border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.settings-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-surface-secondary, #f5f5f5);border-bottom:1px solid var(--color-border, #ddd)}.settings-panel-header h3{margin:0;font-size:1rem;font-weight:600}.settings-panel-content{padding:1rem}.settings-actions{margin-top:1rem}.settings-info{margin-top:1rem;padding:1rem;background:var(--color-surface-secondary, #f5f5f5);border-radius:4px;font-size:.875rem}.group-list{margin:.5rem 0 0;padding-left:1.5rem;max-height:200px;overflow-y:auto}.group-list li{margin:.25rem 0;color:var(--color-text-secondary, #666)}.pattern-warning{padding:1rem;margin-bottom:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.875rem}.form-warning{padding:.75rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.875rem}.form-loading{padding:.75rem;background:var(--color-surface-secondary, #f5f5f5);border-radius:4px;color:var(--color-text-secondary, #666);font-size:.875rem}.bucket-group{border-bottom:2px solid var(--color-border, #ddd)}.bucket-group:last-child{border-bottom:none}.bucket-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--color-surface-secondary, #f0f2f5);cursor:default}.bucket-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary, #666);font-size:.75rem;cursor:pointer;flex-shrink:0}.bucket-info{flex:1;min-width:0;display:flex;align-items:baseline;gap:.5rem}.bucket-name{font-weight:600;font-size:.95rem;color:var(--color-text, #333)}.bucket-gcs-name{font-size:.8rem;color:var(--color-text-secondary, #888);font-family:monospace}.bucket-actions{display:flex;gap:.25rem;flex-shrink:0}.bucket-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:4px;color:var(--color-text-secondary, #666);font-size:.85rem;cursor:pointer;transition:all .15s ease}.bucket-action-btn:hover{background:var(--color-background, #fff);border-color:var(--color-border, #ddd);color:var(--color-primary, #0078d4)}.bucket-action-delete:hover{color:var(--color-error, #d32f2f);border-color:var(--color-error, #d32f2f)}.bucket-directories{padding-left:0}.bucket-empty{padding:.75rem 1rem .75rem 3rem;color:var(--color-text-secondary, #999);font-size:.85rem;font-style:italic}.branding-settings{max-width:600px}.branding-settings h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--color-text)}.branding-loading{padding:2rem;text-align:center;color:var(--color-text-secondary)}.branding-error{padding:.75rem 1rem;background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;margin-bottom:1.5rem}.branding-success{padding:.75rem 1rem;background-color:#dcfce7;border:1px solid #bbf7d0;border-radius:6px;color:#15803d;margin-bottom:1.5rem}.branding-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.branding-section:last-of-type{border-bottom:none}.branding-section h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.branding-help{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:1rem}.branding-help-inline{font-size:.8rem;color:var(--color-text-secondary, #999);margin-top:.25rem;display:block}.branding-image-preview{margin-bottom:1rem;padding:1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;text-align:center}.branding-image-preview img{max-width:100%;max-height:150px;object-fit:contain;border-radius:4px}.branding-image-actions{display:flex;gap:.75rem;flex-wrap:wrap}.branding-favicon-preview{margin-bottom:1rem;padding:1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;align-items:center;gap:1rem}.branding-favicon-preview img{width:32px;height:32px;object-fit:contain;background-color:#fff;border:1px solid var(--color-border);border-radius:4px;padding:4px}.branding-favicon-url{font-size:.75rem;color:var(--color-text-secondary);word-break:break-all;flex:1}.branding-colors{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.branding-color-field{display:flex;flex-direction:column;gap:.5rem}.branding-color-field label{font-size:.875rem;font-weight:500;color:var(--color-text)}.branding-color-input{display:flex;gap:.5rem;align-items:center}.branding-color-input input[type=color]{width:40px;height:36px;padding:0;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;background:none}.branding-color-input input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.branding-color-input input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.branding-color-input input[type=text]{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:4px;font-family:monospace;font-size:.875rem;color:var(--color-text);background-color:var(--color-background);text-transform:uppercase}.branding-color-input input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #1976d21a}.branding-color-input input[type=text]:disabled,.branding-color-input input[type=color]:disabled{opacity:.6;cursor:not-allowed}.branding-preview-toggle{margin-top:1rem}.branding-preview-toggle label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text);cursor:pointer}.branding-preview-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.branding-actions{display:flex;gap:.75rem;margin-top:1.5rem}.branding-button{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:all .2s ease}.branding-button:disabled{opacity:.6;cursor:not-allowed}.branding-button-primary{background-color:var(--color-primary, #1976d2);color:#fff}.branding-button-primary:hover:not(:disabled){filter:brightness(.9)}.branding-button-secondary{background-color:var(--color-surface, #f5f5f5);color:var(--color-text);border:1px solid var(--color-border)}.branding-button-secondary:hover:not(:disabled){background-color:var(--color-border)}.branding-button-danger{background-color:#ef4444;color:#fff}.branding-button-danger:hover:not(:disabled){background-color:#dc2626}.branding-email-fields{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.branding-email-field{display:flex;flex-direction:column;gap:.375rem}.branding-email-field label{font-size:.875rem;font-weight:500;color:var(--color-text)}.branding-email-field input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;color:var(--color-text);background-color:var(--color-background)}.branding-email-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #1976d21a}.branding-email-field input:disabled{opacity:.6;cursor:not-allowed}.branding-email-status{font-size:.75rem;font-weight:500;margin-top:.125rem}.branding-email-status-ok{color:#16a34a}.branding-email-status-missing{color:#dc2626}@media(max-width:480px){.branding-colors{grid-template-columns:1fr}.branding-actions{flex-direction:column}.branding-button{width:100%;justify-content:center}.branding-image-actions{flex-direction:column}.branding-image-actions .branding-button{width:100%}}.profile-manager{padding:1rem}.profile-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.profile-manager-header h2{margin:0;font-size:1.25rem;font-weight:600}.profile-manager-loading,.profile-manager-error{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:var(--color-text-secondary, #666)}.profile-manager-error{background:#fff3f3;border-radius:8px;color:#c53030}.profile-list{display:grid;gap:1rem}.profile-list-empty{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary, #666)}.profile-list-empty p{margin:.5rem 0}.profile-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;transition:box-shadow .2s}.profile-card:hover{box-shadow:0 2px 8px #00000014}.profile-card-default{border-color:var(--color-primary, #1976d2);border-width:2px}.profile-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.profile-card-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.profile-card-title h3{margin:0;font-size:1rem;font-weight:600}.profile-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;font-weight:500;text-transform:uppercase}.profile-badge-default{background:var(--color-primary, #1976d2);color:#fff}.profile-badge-html{background:#805ad5;color:#fff}.profile-card-actions{display:flex;gap:.25rem}.btn-icon{background:transparent;border:none;padding:.4rem;cursor:pointer;border-radius:4px;font-size:1rem;color:var(--color-text-secondary, #666);transition:background-color .2s,color .2s}.btn-icon:hover{background:#f0f0f0;color:var(--color-text, #333)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon-danger:hover{background:#fee;color:#c53030}.profile-card-details{display:flex;flex-wrap:wrap;gap:1rem}.profile-detail{display:flex;gap:.25rem;font-size:.875rem}.detail-label{color:var(--color-text-secondary, #666)}.detail-value{font-weight:500}.profile-dialog{max-width:500px;width:90vw}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:500px){.form-row{grid-template-columns:1fr}}.slider-group{display:flex;align-items:center;gap:.75rem}.slider-group input[type=range]{flex:1;height:6px;border-radius:3px;-webkit-appearance:none;background:#e2e8f0}.slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--color-primary, #1976d2);border-radius:50%;cursor:pointer}.slider-value{min-width:40px;text-align:right;font-weight:500;font-size:.875rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.resolution-inputs{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-left:1.75rem}.resolution-inputs input{width:80px;padding:.4rem .5rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.875rem}.resolution-inputs span{color:var(--color-text-secondary, #666);font-size:.875rem}.form-group-highlight{background:#f8f4ff;border:1px solid #d6bcfa;border-radius:8px;padding:1rem;margin-top:.5rem}.form-group-highlight .checkbox-label{margin-bottom:.5rem}.form-group-highlight .form-hint{display:block;padding-left:1.75rem;font-size:.8rem;color:#6b46c1}.form-fieldset{border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin:.5rem 0}.form-fieldset legend{font-weight:600;font-size:.9rem;padding:0 .5rem;color:var(--color-text, #333)}.profile-api-warnings{background:#fffbeb;border:1px solid #fbbf24;border-radius:6px;padding:.75rem 1rem;font-size:.8rem;color:#92400e}.profile-api-warnings strong{display:block;margin-bottom:.35rem;font-size:.85rem}.profile-api-warnings ul{margin:0;padding-left:1.25rem}.profile-api-warnings li{margin-bottom:.15rem}.optimizer-settings{padding:1rem 0}.optimizer-settings h2{margin:0 0 .25rem;font-size:1.25rem}.optimizer-subtitle{color:var(--color-text-secondary, #666);font-size:.875rem;margin:0 0 1.5rem}.optimizer-loading{padding:2rem;text-align:center;color:var(--color-text-secondary, #666)}.optimizer-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:6px;padding:.75rem;margin-bottom:1rem;font-size:.875rem}.optimizer-cards{display:flex;flex-direction:column;gap:1rem}.optimizer-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1.25rem;transition:box-shadow .2s}.optimizer-card:hover{box-shadow:0 2px 8px #0000000f}.optimizer-card-active{border-color:var(--color-primary, #1976d2);border-width:2px;background:#f0f7ff}.optimizer-card-disabled{opacity:.7}.optimizer-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.optimizer-card-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.optimizer-card-title h3{margin:0;font-size:1rem}.optimizer-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:12px;font-weight:500}.optimizer-badge-active{background:var(--color-primary, #1976d2);color:#fff}.optimizer-badge-configured{background:#dcfce7;color:#166534}.optimizer-badge-missing{background:#f1f5f9;color:#64748b}.optimizer-select-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid var(--color-primary, #1976d2);background:transparent;color:var(--color-primary, #1976d2);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.optimizer-select-btn:hover:not(:disabled){background:var(--color-primary, #1976d2);color:#fff}.optimizer-select-btn:disabled{opacity:.5;cursor:not-allowed}.optimizer-card-description{color:var(--color-text-secondary, #666);font-size:.85rem;margin:0 0 .75rem}.optimizer-card-features{display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1.5rem;font-size:.8rem;margin-bottom:.5rem}.optimizer-feature{display:flex;gap:.35rem}.optimizer-feature-label{color:var(--color-text-secondary, #666)}.optimizer-feature-value{font-weight:500}.optimizer-feature-no{color:#9ca3af}.optimizer-card-hint{font-size:.75rem;color:#9ca3af;margin-top:.5rem;font-family:monospace}.optimizer-card-quota{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.optimizer-quota-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.optimizer-quota-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary, #666)}.optimizer-quota-values{font-size:.75rem;color:var(--color-text-secondary, #666);font-variant-numeric:tabular-nums}.optimizer-quota-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.optimizer-quota-fill{height:100%;background:var(--color-primary, #1976d2);border-radius:3px;transition:width .3s ease}.optimizer-quota-fill-warn{background:#f59e0b}.optimizer-quota-fill-critical{background:#ef4444}.optimizer-card-actions{display:flex;gap:.5rem;align-items:center}.optimizer-edit-btn{padding:.4rem .75rem;border-radius:6px;border:1px solid #cbd5e1;background:transparent;color:var(--color-text-secondary, #666);font-size:.8rem;cursor:pointer;transition:all .2s}.optimizer-edit-btn:hover{border-color:var(--color-primary, #1976d2);color:var(--color-primary, #1976d2)}.optimizer-edit-form{border-top:1px solid #e2e8f0;padding-top:.75rem;margin-top:.25rem}.optimizer-edit-section{margin-bottom:.75rem}.optimizer-edit-label{display:block;font-size:.8rem;font-weight:600;color:var(--color-text-secondary, #666);margin-bottom:.4rem}.optimizer-format-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem .75rem}.optimizer-format-checkbox{display:flex;align-items:center;gap:.35rem;font-size:.8rem;cursor:pointer}.optimizer-format-checkbox input{margin:0;cursor:pointer}.optimizer-capability-toggles{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1rem}.optimizer-capability-toggle{display:flex;align-items:center;gap:.35rem;font-size:.8rem;cursor:pointer}.optimizer-capability-toggle input{margin:0;cursor:pointer}.optimizer-edit-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.optimizer-save-btn{padding:.4rem 1rem;border-radius:6px;border:none;background:var(--color-primary, #1976d2);color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .2s}.optimizer-save-btn:hover:not(:disabled){opacity:.9}.optimizer-save-btn:disabled{opacity:.5;cursor:not-allowed}.optimizer-cancel-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid #cbd5e1;background:transparent;color:var(--color-text-secondary, #666);font-size:.8rem;cursor:pointer;transition:all .2s}.optimizer-cancel-btn:hover:not(:disabled){border-color:#94a3b8}.optimizer-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.maintenance-panel{padding:1rem}.maintenance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.maintenance-header h2{margin:0;font-size:1.25rem;color:var(--color-text, #333)}.maintenance-refresh-btn{padding:.5rem 1rem;background:var(--color-surface, #f5f5f5);border:1px solid var(--color-border, #ddd);border-radius:6px;cursor:pointer;font-size:.875rem;transition:background-color .2s}.maintenance-refresh-btn:hover:not(:disabled){background:var(--color-surface-secondary, #eee)}.maintenance-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.maintenance-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;margin-bottom:1rem}.maintenance-stats{margin-bottom:2rem}.maintenance-stats h3{font-size:1rem;color:var(--color-text-secondary, #666);margin:1.5rem 0 .75rem;font-weight:500}.maintenance-stats h3:first-child{margin-top:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.stats-grid-small{grid-template-columns:repeat(4,1fr)}@media(max-width:768px){.stats-grid-small{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--color-surface, #f8f9fa);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.25rem}.stat-name{font-size:.75rem;color:var(--color-text-secondary, #666);text-transform:lowercase}.stat-value{font-size:1.25rem;font-weight:600;color:var(--color-text, #333);font-family:monospace}.stat-pending{border-left:3px solid #f59e0b}.stat-processing{border-left:3px solid #3b82f6}.stat-completed{border-left:3px solid #10b981}.stat-failed{border-left:3px solid #ef4444}.maintenance-warnings{margin-top:1.5rem;padding:1rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px}.maintenance-warnings h3{margin:0 0 .75rem;color:#92400e}.warning-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;color:#92400e}.warning-icon{font-size:1.1rem}.warning-details{margin-top:.5rem;font-size:.875rem}.warning-details summary{cursor:pointer;color:#b45309;font-weight:500}.warning-details ul{margin:.5rem 0 0 1rem;padding:0;list-style:disc}.warning-details li{margin:.25rem 0;color:#78350f}.warning-details code{background:#0000000d;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.maintenance-cleanup{border-top:1px solid var(--color-border, #e0e0e0);padding-top:1.5rem}.maintenance-cleanup h3{font-size:1rem;color:var(--color-text, #333);margin:0 0 .5rem}.cleanup-description{color:var(--color-text-secondary, #666);font-size:.875rem;margin-bottom:1rem}.cleanup-form{display:flex;flex-direction:column;gap:1rem}.cleanup-option{padding:1rem;background:var(--color-surface, #f8f9fa);border:1px solid var(--color-border, #e0e0e0);border-radius:8px}.cleanup-option>label{display:flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}.cleanup-option>label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.cleanup-option-details{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border, #e0e0e0);display:flex;flex-wrap:wrap;gap:1rem}.cleanup-option-details label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-secondary, #666)}.cleanup-option-details input[type=number]{width:70px;padding:.35rem .5rem;border:1px solid var(--color-border, #ddd);border-radius:4px;font-size:.875rem}.cleanup-option-details select{padding:.35rem .5rem;border:1px solid var(--color-border, #ddd);border-radius:4px;font-size:.875rem;background:#fff}.cleanup-actions{margin-top:.5rem}.cleanup-preview-btn{padding:.6rem 1.25rem;background:var(--color-primary, #1976d2);color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.cleanup-preview-btn:hover:not(:disabled){filter:brightness(.9)}.cleanup-preview-btn:disabled{opacity:.6;cursor:not-allowed}.cleanup-preview{margin-top:1.5rem;padding:1rem;background:#fefce8;border:1px solid #fde047;border-radius:8px}.cleanup-preview h4{margin:0 0 .75rem;color:#854d0e;font-size:.95rem}.cleanup-preview ul{margin:0 0 1rem;padding-left:1.25rem}.cleanup-preview li{margin:.35rem 0;color:#713f12}.cleanup-preview ul ul{margin:.25rem 0 0;font-size:.85rem}.cleanup-preview code{background:#0000000d;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.cleanup-execute-btn{padding:.6rem 1.25rem;background:#dc2626;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.cleanup-execute-btn:hover:not(:disabled){background:#b91c1c}.cleanup-execute-btn:disabled{opacity:.6;cursor:not-allowed}.cleanup-result{margin-top:1.5rem;padding:1rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px}.cleanup-result h4{margin:0 0 .75rem;color:#166534;font-size:.95rem}.cleanup-result ul{margin:0;padding-left:1.25rem}.cleanup-result li{margin:.35rem 0;color:#15803d}.retention-table{width:100%;border-collapse:collapse;margin:.75rem 0 1rem;font-size:.875rem}.retention-table th,.retention-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--color-border, #e0e0e0)}.retention-table th{font-weight:500;color:var(--color-text-secondary, #666);font-size:.8rem}.retention-table code{background:#0000000d;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.activity-log{width:100%}.activity-log-toolbar{position:relative;margin-bottom:1rem}.activity-search{width:100%;padding:.6rem 2.5rem .6rem .75rem;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:.875rem;background:#fff;transition:border-color .2s}.activity-search:focus{outline:none;border-color:var(--color-primary, #1976d2);box-shadow:0 0 0 2px #1976d21a}.activity-search::placeholder{color:#9ca3af}.activity-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.25rem;color:#9ca3af;cursor:pointer;padding:.25rem;line-height:1}.activity-search-clear:hover{color:#374151}.activity-log-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.activity-log-spinner{width:40px;height:40px;border:4px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #1976d2);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.activity-log-loading p{color:var(--color-text-secondary, #666);font-size:.9rem}.activity-log-error{padding:1rem 1.5rem;background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33}.activity-log-error p{margin:0}.activity-log-empty{padding:3rem;text-align:center;color:var(--color-text-secondary, #666);font-size:.95rem}.activity-log-empty p{margin:0}.activity-log-table-container{width:100%;overflow-x:auto;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;background-color:#fff}.activity-log-table{width:100%;border-collapse:collapse;font-size:.85rem}.activity-log-table thead{background-color:var(--color-primary, #1976d2);color:#fff}.activity-log-table th{padding:.6rem 1rem;text-align:left;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.activity-log-table td{padding:.6rem 1rem;border-bottom:1px solid var(--color-border, #e0e0e0);vertical-align:middle}.activity-log-table tbody tr:last-child td{border-bottom:none}.activity-log-table tbody tr:nth-child(2n){background-color:var(--color-background, #f9f9f9)}.activity-log-table tbody tr:hover{background-color:var(--color-surface, #f5f5f5)}.activity-timestamp{font-variant-numeric:tabular-nums;font-size:.8rem;white-space:nowrap;color:var(--color-text-secondary, #666)}.action-badge{display:inline-block;padding:.15rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600;white-space:nowrap;flex-shrink:0}.action-badge-upload{background:#dbeafe;color:#1e40af}.action-badge-optimize{background:#dcfce7;color:#166534}.action-badge-delete{background:#fee2e2;color:#991b1b}.activity-file-cell{display:flex;flex-direction:column;gap:.2rem}.activity-file-row{display:flex;align-items:center;gap:.5rem}.activity-filename{font-weight:500;color:var(--color-text, #333)}.activity-file-path{font-family:Courier New,Courier,monospace;font-size:.75rem;color:var(--color-text-secondary, #888);padding-left:.1rem}.activity-cdn-link{color:var(--color-primary, #1976d2);text-decoration:none;font-weight:500}.activity-cdn-link:hover{text-decoration:underline}.activity-opt-cell{display:flex;flex-direction:column;gap:.15rem}.opt-badge{display:inline-block;padding:.1rem .45rem;border-radius:10px;font-size:.75rem;font-weight:600;white-space:nowrap;width:fit-content}.opt-badge-good{background:#dcfce7;color:#166534}.opt-badge-neutral{background:#f1f5f9;color:#475569}.activity-opt-sizes{font-size:.7rem;color:var(--color-text-secondary, #888);white-space:nowrap}.activity-opt-na{font-size:.8rem;color:var(--color-text-secondary, #999)}.activity-log-footer{margin-top:.75rem;padding:.5rem 0;text-align:center;color:var(--color-text-secondary, #666);font-size:.8rem}.activity-log-footer p{margin:0}@media(max-width:768px){.activity-log-table{font-size:.75rem}.activity-log-table th,.activity-log-table td{padding:.4rem .5rem}.activity-log-table th{font-size:.7rem}.activity-file-path,.activity-opt-sizes{font-size:.65rem}}@media(max-width:480px){.activity-log-table-container{border-radius:4px}.activity-log-table th,.activity-log-table td{padding:.3rem .4rem}}
