*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1f2328;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}.app{max-width:1100px;margin:0 auto;padding:2rem 1rem}.auth-panel{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.75rem 1rem;display:flex}.auth-email{color:#57606a;font-size:.9rem}.auth-btn{cursor:pointer;border:none;border-radius:4px;padding:.4rem .9rem;font-size:.875rem;text-decoration:none;display:inline-block}.auth-btn--signin{color:#fff;background:#3b82d4}.auth-btn--signin:hover{background:#2f6dbf}.auth-btn--signout{color:#1f2328;background:#e5e7eb}.auth-btn--signout:hover{background:#d0d3d8}.selection-summary{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.selection-summary__clear,.drive-search button,.load-more-btn{color:#1f2328;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.45rem .9rem}.drive-browser{flex-direction:column;gap:1rem;display:flex}.breadcrumbs{flex-wrap:wrap;gap:.5rem;display:flex}.breadcrumb{color:#1f2328;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:999px;padding:.4rem .75rem}.drive-search{align-items:center;gap:.75rem;display:flex}.drive-search input{border:1px solid #d0d7de;border-radius:6px;flex:1;min-width:0;padding:.55rem .75rem}.drive-search__clear{background:#f7f8fa}.drive-table{border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;overflow:hidden}.drive-table th,.drive-table td{text-align:left;border-bottom:1px solid #e5e7eb;padding:.75rem}.drive-table thead{background:#f7f8fa}.drive-table tbody tr:hover{background:#f7fbff}.drive-table__empty{text-align:center;color:#57606a}.export-badge{color:#245ea8;background:#eef4ff;border-radius:999px;padding:.2rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.drive-browser__error{color:#b42318}.drive-browser__status{color:#57606a}.load-more-btn{align-self:flex-start}.aws-config-panel{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.aws-config-panel--success{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.aws-config-title{margin:0 0 1rem;font-size:1rem;font-weight:600}.aws-config-form{flex-direction:column;gap:.75rem;max-width:420px;display:flex}.aws-config-label{color:#1f2328;flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:500;display:flex}.aws-config-input{background:#fff;border:1px solid #d0d7de;border-radius:5px;padding:.5rem .75rem;font-size:.875rem}.aws-config-input:focus{outline-offset:1px;border-color:#0000;outline:2px solid #3b82d4}.aws-config-btn{color:#fff;cursor:pointer;background:#3b82d4;border:none;border-radius:5px;align-self:flex-start;margin-top:.25rem;padding:.45rem 1rem;font-size:.875rem}.aws-config-btn:hover:not(:disabled){background:#2f6dbf}.aws-config-btn:disabled{opacity:.6;cursor:not-allowed}.aws-config-error{color:#b42318;margin:0;font-size:.875rem}.aws-config-success{color:#1a7f37;font-size:.9rem;font-weight:500}.aws-config-arn{color:#57606a;word-break:break-all;font-size:.8rem}.start-transfer-wrap{margin-bottom:1rem}.start-transfer-btn{color:#fff;cursor:pointer;background:#3b82d4;border:none;border-radius:5px;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600}.start-transfer-btn:hover:not(:disabled){background:#2f6dbf}.start-transfer-btn:disabled{opacity:.5;cursor:not-allowed}.start-transfer-error{color:#b42318;margin:.5rem 0 0;font-size:.875rem}.transfer-panel{flex-direction:column;gap:1rem;display:flex}.transfer-panel__title{margin:0;font-size:1.1rem;font-weight:600}.transfer-panel__empty{color:#57606a;font-size:.9rem}.transfer-summary{flex-wrap:wrap;gap:.75rem;display:flex}.transfer-chip{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;align-items:center;min-width:72px;padding:.6rem 1.1rem;display:flex}.transfer-chip__num{color:#1f2328;font-size:1.4rem;font-weight:700;line-height:1.2}.transfer-chip__label{color:#57606a;font-size:.75rem}.transfer-chip--done .transfer-chip__num{color:#1a7f37}.transfer-chip--progress .transfer-chip__num{color:#3b82d4}.transfer-chip--failed .transfer-chip__num{color:#b42318}.status-badge{text-transform:capitalize;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.status-badge--queued{color:#57606a;background:#e5e7eb}.status-badge--transferring{color:#1d4ed8;background:#dbeafe}.status-badge--done{color:#15803d;background:#dcfce7}.status-badge--failed{color:#b42318;background:#fee2e2}.progress-track{vertical-align:middle;background:#e5e7eb;border-radius:999px;width:120px;height:8px;display:inline-block;overflow:hidden}.progress-bar{background:#3b82d4;border-radius:999px;height:100%;transition:width .3s}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.progress-bar--indeterminate{width:35%;animation:1.4s linear infinite progress-slide}.progress-pct{color:#57606a;vertical-align:middle;margin-left:.4rem;font-size:.8rem}.retry-btn{color:#1f2328;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.3rem .7rem;font-size:.8rem}.retry-btn:hover{background:#f7f8fa}.transfer-table__error{color:#b42318;word-break:break-word;max-width:200px;font-size:.8rem;display:inline-block}.transfer-complete-banner{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0;border-radius:6px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600}.transfer-table{border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.transfer-table th,.transfer-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:.65rem .75rem}.transfer-table thead{background:#f7f8fa}.transfer-table tbody tr:last-child td{border-bottom:none}.transfer-table tbody tr:hover{background:#f7fbff}.transfer-table__name{max-width:280px}.transfer-table__path{color:#57606a;text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:.75rem;display:block;overflow:hidden}.transfer-table__size{white-space:nowrap;color:#57606a}.transfer-table__progress{white-space:nowrap}.bucket-selector{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:1.5rem;padding:1rem 1.25rem}.bucket-selector__header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.bucket-selector__title{margin:0;font-size:1rem;font-weight:600}.bucket-create-toggle{color:#1f2328;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:5px;padding:.3rem .8rem;font-size:.8rem;font-weight:500}.bucket-create-toggle:hover{color:#3b82d4;background:#f0f6ff;border-color:#3b82d4}.bucket-create-form{flex-direction:column;gap:.75rem;max-width:440px;margin-bottom:.75rem;display:flex}.bucket-create-label{color:#1f2328;flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:500;display:flex}.bucket-create-input{background:#fff;border:1px solid #d0d7de;border-radius:5px;padding:.5rem .75rem;font-size:.875rem}.bucket-create-input:focus{outline-offset:1px;border-color:#0000;outline:2px solid #3b82d4}.bucket-create-hint{color:#57606a;font-size:.78rem;font-weight:400}.bucket-create-info{color:#57606a;background:#eef4ff;border-left:3px solid #3b82d4;border-radius:4px;padding:.4rem .75rem;font-size:.82rem}.bucket-create-warning{color:#92400e;margin:0;font-size:.82rem}.bucket-create-actions{gap:.6rem;display:flex}.bucket-selector__status,.bucket-selector__error{margin:0;font-size:.875rem}.bucket-selector__error{color:#b42318}.bucket-selector__row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.bucket-selector__select{background:#fff;border:1px solid #d0d7de;border-radius:5px;min-width:220px;padding:.45rem .75rem;font-size:.875rem}.bucket-selector__actions{gap:.6rem;display:flex}.bucket-action-btn{cursor:pointer;border:1px solid #0000;border-radius:5px;padding:.45rem 1rem;font-size:.875rem;font-weight:500}.bucket-action-btn--upload{color:#fff;background:#3b82d4;border-color:#3b82d4}.bucket-action-btn--upload:hover{background:#2f6dbf}.bucket-action-btn--browse{color:#1f2328;background:#fff;border-color:#d0d7de}.bucket-action-btn--browse:hover{background:#f7f8fa}.s3-browser{flex-direction:column;gap:1rem;display:flex}.s3-browser__status{color:#57606a;font-size:.9rem}.s3-browser__error{color:#b42318;font-size:.875rem}.s3-browser__up-row{color:#57606a;font-style:italic}.s3-file-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.s3-download-btn{color:#1f2328;white-space:nowrap;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.25rem .6rem;font-size:.8rem;text-decoration:none;display:inline-block}.s3-download-btn:hover{color:#3b82d4;background:#f7f8fa;border-color:#3b82d4}.s3-delete-btn{color:#57606a;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.25rem .6rem;font-size:.8rem;display:inline-block}.s3-delete-btn:hover{color:#b42318;background:#fff5f5;border-color:#b42318}.s3-delete-confirm{background:#fff5f5;border:1px solid #fca5a5;border-radius:4px;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.25rem .5rem;display:inline-flex}.s3-delete-confirm__msg{color:#b42318;white-space:nowrap;font-size:.8rem;font-weight:500}.s3-delete-confirm__yes{color:#fff;cursor:pointer;white-space:nowrap;background:#b42318;border:1px solid #b42318;border-radius:3px;padding:.2rem .55rem;font-size:.78rem}.s3-delete-confirm__yes:hover:not(:disabled){background:#922015}.s3-delete-confirm__yes:disabled{opacity:.6;cursor:not-allowed}.s3-delete-confirm__no{color:#1f2328;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d0d7de;border-radius:3px;padding:.2rem .55rem;font-size:.78rem}.s3-delete-confirm__no:hover:not(:disabled){background:#f7f8fa}.s3-delete-confirm__error{color:#b42318;font-size:.78rem}.drive-table__row--folder:hover{background:#f0f6ff}.back-btn{cursor:pointer;color:#1f2328;background:#fff;border:1px solid #d0d7de;border-radius:5px;margin-top:1rem;padding:.4rem .9rem;font-size:.875rem;display:inline-block}.back-btn:hover{background:#f7f8fa}.app-prompt{color:#57606a;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;font-size:.9rem}.vault-viewer{flex-direction:column;gap:1rem;display:flex}.vault-viewer__title{margin:0;font-size:1.1rem;font-weight:600}.vault-viewer__error{color:#b42318;margin:0;font-size:.875rem}.vault-viewer__empty{color:#57606a;font-size:.875rem}.vault-selector{align-items:center;gap:.75rem;display:flex}.vault-selector__label{color:#1f2328;white-space:nowrap;font-size:.875rem;font-weight:500}.vault-selector__select{background:#fff;border:1px solid #d0d7de;border-radius:5px;min-width:220px;padding:.45rem .75rem;font-size:.875rem}.vault-meta{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;flex-wrap:wrap;gap:1.5rem;padding:.6rem 1rem;font-size:.875rem;display:flex}.vault-meta__item{color:#57606a}.vault-meta__label{color:#1f2328;font-weight:600}.vault-inventory-controls{flex-direction:column;gap:.75rem;display:flex}.vault-btn{cursor:pointer;border:1px solid #0000;border-radius:5px;align-self:flex-start;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.vault-btn--primary{color:#fff;background:#3b82d4;border-color:#3b82d4}.vault-btn--primary:hover:not(:disabled){background:#2f6dbf}.vault-btn--primary:disabled{opacity:.6;cursor:not-allowed}.vault-btn--ghost{color:#1f2328;background:#fff;border-color:#d0d7de}.vault-btn--ghost:hover{background:#f7f8fa}.vault-pending-notice{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;flex-wrap:wrap;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;font-size:.875rem;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.vault-pending-spinner{border:2px solid #fde68a;border-top-color:#92400e;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:2px;animation:.8s linear infinite spin;display:inline-block}.vault-inventory-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.vault-inventory-date{color:#57606a;font-size:.875rem}.vault-search{align-items:center;gap:1rem;display:flex}.vault-search__input{border:1px solid #d0d7de;border-radius:6px;flex:1;max-width:400px;padding:.5rem .75rem;font-size:.875rem}.vault-search__count{color:#57606a;white-space:nowrap;font-size:.8rem}.vault-table-wrap{overflow-x:auto}.vault-table{border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.vault-table th,.vault-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:.65rem .75rem}.vault-table thead{background:#f7f8fa}.vault-table tbody tr:last-child td{border-bottom:none}.vault-table tbody tr:hover{background:#f7fbff}.vault-th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.vault-th--sortable:hover{background:#eef1f5}.vault-table__name{max-width:320px}.vault-table__path{color:#57606a;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;display:block;overflow:hidden}.vault-table__unnamed{color:#57606a;font-style:italic}.vault-table__size,.vault-table__date{white-space:nowrap;color:#57606a}.vault-table__id{color:#57606a;white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-family:monospace;font-size:.8rem;overflow:hidden}.source-picker{margin-bottom:1rem}.source-picker__label{color:#57606a;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem;font-size:.8rem;font-weight:600}.source-picker__options{flex-wrap:wrap;gap:.6rem;display:flex}.source-option{cursor:pointer;text-align:left;background:#fff;border:1px solid #d0d7de;border-radius:6px;flex-direction:column;align-items:flex-start;min-width:180px;padding:.55rem 1rem;transition:border-color .12s,background .12s;display:flex}.source-option:hover{background:#f0f6ff;border-color:#3b82d4}.source-option--active{background:#eef4ff;border-color:#3b82d4}.source-option__name{color:#1f2328;font-size:.875rem;font-weight:600}.source-option--active .source-option__name{color:#3b82d4}.source-option__desc{color:#57606a;margin-top:.15rem;font-size:.78rem}.local-picker{flex-direction:column;gap:1rem;display:flex}.local-picker__toolbar{align-items:center;gap:.75rem;display:flex}.local-picker__add-btn{color:#1f2328;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:5px;padding:.45rem 1rem;font-size:.875rem;font-weight:500}.local-picker__add-btn:hover{color:#3b82d4;background:#f0f6ff;border-color:#3b82d4}.local-picker__empty{color:#57606a;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;font-size:.875rem}.local-picker__mime{color:#57606a;font-size:.78rem}.local-picker__remove-btn{color:#57606a;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.2rem .5rem;font-size:.78rem}.local-picker__remove-btn:hover{color:#b42318;background:#fee2e2;border-color:#b42318}
