:root{--bevy-primary: #2874c4;--bevy-primary-hover: #1e5ea8;--bevy-primary-light: #e3f2fd;--bevy-purple: #7b1fa2;--bevy-blue: #1976d2;--bevy-aqua: #00838f}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;color:#1a1a1a;background:#f5f5f5}.app{min-height:100vh;padding:2rem 1.5rem}.app-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:80px;max-height:150px;padding:1rem 1.5rem;margin:-2rem -1.5rem 2rem;background:linear-gradient(135deg,var(--bevy-purple) 0%,var(--bevy-blue) 50%,var(--bevy-aqua) 100%);box-shadow:0 4px 24px #1976d259,inset 0 1px #fff3;overflow:visible}.app-header-logo{position:absolute;left:-20px;top:-1rem;width:150px;height:calc(100% + 2rem);object-fit:cover;object-position:left center;opacity:.08;filter:invert(1) brightness(1.2);pointer-events:none;z-index:0}.app-header-title-wrap{position:relative;display:flex;align-items:baseline;gap:.6rem;flex-shrink:0;z-index:1;transform:translateY(-5px)}.app-header-logo-inline{height:clamp(2rem,5.5vw,2.9rem);width:auto;flex-shrink:0;filter:brightness(0) invert(1);vertical-align:baseline;transform:translateY(.28em)}.app-header-title{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:#f1f5f9;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.25)}.app-header-customer{position:relative;display:flex;flex-direction:column;align-items:flex-end;text-align:right;min-width:0;z-index:10}.app-header-customer-title-wrap{position:relative;display:flex;flex-direction:column;align-items:flex-end}.app-header-workspace-title{font-size:1rem;font-weight:600;color:#f1f5f9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px;text-shadow:0 1px 2px rgba(0,0,0,.25);background:none;border:none;padding:0;cursor:default;font-family:inherit}.app-header-workspace-title{display:inline-flex;align-items:center;gap:.35rem}.app-header-workspace-title-clickable{cursor:pointer}.app-header-workspace-title-clickable:hover{color:#e2e8f0}.app-header-workspace-arrow{display:inline-flex;align-items:center;opacity:.5;transition:transform .15s,opacity .15s}.app-header-workspace-title-clickable:hover .app-header-workspace-arrow,.app-header-workspace-arrow-open{opacity:1}.app-header-workspace-arrow-open{transform:rotate(180deg)}.app-header-customer-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;padding:.5rem 0;list-style:none;background:linear-gradient(180deg,var(--bevy-purple) 0%,var(--bevy-blue) 100%);border:1px solid rgba(255,255,255,.25);border-radius:8px;box-shadow:0 8px 24px #00000080;min-width:200px;max-width:300px;max-height:280px;overflow-y:auto;z-index:1000}.app-header-customer-option{display:block;width:100%;padding:.5rem 1rem;font-size:.95rem;font-weight:500;color:#e2e8f0;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s}.app-header-customer-option:hover{background:#ffffff1f;color:#f1f5f9}.app-header-customer-option-current{background:#fff3;color:#fff;font-weight:600}.app-header-workspace-link{font-size:.85rem;color:#fffffff2;text-decoration:none;font-weight:500;margin-top:.2rem;text-shadow:0 1px 2px rgba(0,0,0,.2);transition:color .15s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.app-header-workspace-link:hover{color:#fff;text-decoration:underline}.app-header p{margin:0;font-size:.95rem;color:#555}.app-main{width:100%;max-width:100%}.loading-message{text-align:center;color:#666;padding:2rem}.password-prompt,.workspace-setup{max-width:420px;margin:0 auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.password-prompt h2,.workspace-setup h2{margin:0 0 .5rem;font-size:1.25rem}.password-prompt-hint,.workspace-setup-hint,.workspace-setup-ready{margin:0 0 1rem;color:#555;font-size:.95rem}.password-prompt form,.workspace-setup form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.password-fields{display:flex;flex-direction:column;gap:.75rem}.password-input{padding:.5rem .75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:6px}.password-input:focus{outline:none;border-color:var(--bevy-primary);box-shadow:0 0 0 2px #2874c440}.password-submit{padding:.5rem 1rem;font-size:1rem;font-weight:500;color:#fff;background:var(--bevy-primary);border:none;border-radius:6px;cursor:pointer;transition:background .2s}.password-submit:hover:not(:disabled){background:var(--bevy-primary-hover)}.password-submit:disabled{opacity:.7;cursor:not-allowed}.password-error{margin:0;color:#b91c1c;font-size:.9rem}.workspace-setup.admin-dashboard{max-width:none;width:100%}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-header h2{margin:0}.admin-create-btn{padding:.5rem 1rem;font-size:1rem;font-weight:500;color:#fff;background:var(--bevy-primary);border:none;border-radius:6px;cursor:pointer;font-family:inherit}.admin-create-btn:hover{background:var(--bevy-primary-hover)}.admin-created-banner{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;background:#dcfce7;border:1px solid #86efac;border-radius:6px;font-size:.95rem}.admin-created-banner a{color:#166534;font-weight:500}.admin-dismiss-btn{margin-left:auto;padding:.25rem .5rem;font-size:.9rem;color:#166534;background:none;border:none;cursor:pointer;font-family:inherit}.admin-dismiss-btn:hover{text-decoration:underline}.admin-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 2px #0000000d}.admin-table{width:100%;border-collapse:collapse;font-size:.95rem}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;vertical-align:middle;border-bottom:1px solid #e5e7eb;line-height:1.35}.admin-table th{font-weight:600;color:#374151;background:#f9fafb}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#f9fafb}.admin-table-url-cell{display:flex;align-items:center;gap:.35rem}.admin-table-url-icon{flex-shrink:0;color:#6b7280;display:flex;align-items:center;padding:.15rem;border-radius:4px;transition:color .15s,background .15s}.admin-table-url-icon:hover{color:var(--bevy-primary);background:var(--bevy-primary-light)}.admin-table-url{color:#6b7280;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;max-width:200px;min-width:0;line-height:1.25}.admin-completion-cell{display:flex;align-items:center;gap:.5rem;min-width:120px}.admin-progress-bar{flex:1;min-width:60px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.admin-progress-fill{height:100%;background:var(--bevy-primary);border-radius:4px;transition:width .2s ease}.admin-completion-pct{font-size:.9rem;color:#6b7280;flex-shrink:0;min-width:2.5rem}.admin-table-actions{white-space:nowrap;text-align:right;display:flex;justify-content:flex-end;gap:.5rem}.admin-table-actions .admin-btn{margin-right:0}.admin-table-title-link{color:var(--bevy-primary);text-decoration:none;font-weight:600}.admin-table-title-link:hover{text-decoration:underline}.admin-table th:last-child{text-align:right}.admin-btn{padding:.35rem .75rem;font-size:.9rem;font-weight:500;border-radius:6px;cursor:pointer;font-family:inherit;margin-right:.5rem}.admin-edit-btn{color:var(--bevy-primary);background:none;border:1px solid var(--bevy-primary)}.admin-edit-btn:hover{background:var(--bevy-primary-light)}.admin-delete-btn{color:#b91c1c;background:none;border:1px solid #b91c1c}.admin-delete-btn:hover{background:#fef2f2}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.admin-modal{background:#fff;border-radius:8px;box-shadow:0 20px 50px #0003;max-width:480px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.admin-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.admin-modal-header h3{margin:0;font-size:1.25rem}.admin-modal-close{padding:.25rem;background:none;border:none;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center}.admin-modal-close:hover{color:#111827}.admin-modal-body{padding:1.25rem;overflow-y:auto}.admin-edit-form{margin-top:0}.admin-cancel-margin{margin-top:1rem}.admin-reupload-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.admin-reupload-title{margin:0 0 .35rem;font-size:1rem;font-weight:600}.admin-reupload-hint{margin:0 0 1rem;font-size:.9rem;color:#6b7280}.admin-reupload-loading{margin:.75rem 0 0;font-size:.9rem;color:#6b7280}.admin-edit-actions{display:flex;gap:.5rem;margin-top:.75rem}.admin-cancel-btn{padding:.5rem 1rem;font-size:1rem;color:#6b7280;background:none;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-family:inherit}.admin-cancel-btn:hover{background:#f9fafb;border-color:#9ca3af}.upload-zone{border:2px dashed #ccc;border-radius:8px;padding:3rem 2rem;text-align:center;background:#fff;transition:border-color .2s,background .2s}.upload-zone:hover,.upload-zone:focus-within{border-color:#666;background:#fafafa}.upload-zone p{margin:0 0 1rem;color:#555}.upload-button{display:inline-block;padding:.5rem 1.25rem;font-size:1rem;font-weight:500;color:#fff;background:var(--bevy-primary);border:none;border-radius:6px;cursor:pointer;transition:background .2s}.upload-button:hover{background:var(--bevy-primary-hover)}.error-message{margin-top:1rem;padding:1rem;background:#fef2f2;color:#b91c1c;border-radius:6px;font-size:.9rem}.tree-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.tree-toolbar-left{display:flex;gap:.5rem}.tree-toolbar-progress{display:flex;align-items:center;gap:.5rem;min-width:120px}.tree-progress-bar{flex:1;min-width:60px;max-width:120px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.tree-progress-fill{height:100%;background:var(--bevy-primary);border-radius:4px;transition:width .2s ease}.tree-progress-pct{font-size:.9rem;color:#6b7280;flex-shrink:0;min-width:2.5rem}.tree-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #00000014}.tree-expand-btn,.tree-collapse-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.875rem;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:background .2s,border-color .2s}.tree-toolbar-icon{flex-shrink:0}.tree-expand-btn:hover,.tree-collapse-btn:hover{background:#f5f5f5;border-color:#9ca3af}.tree-view-wrapper{overflow-x:auto;overflow-y:visible}.tree-view-scroll-content{min-width:max-content;display:flex;flex-direction:column}.tree-view-header{display:grid;grid-template-columns:minmax(500px,1fr) 130px 330px 360px 360px 360px;gap:1rem;min-width:max-content;padding:.5rem;font-size:.8rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid #e5e7eb}.tree-view-col{min-width:0}.tree-view-col.source-col{position:sticky;left:0;z-index:2;background:#fff;padding-right:1rem;box-shadow:1rem 0 #fff}.tree-view-col.source-col:after{content:"";position:absolute;top:0;left:calc(100% + 1rem);bottom:0;width:48px;background:linear-gradient(to right,#fff,transparent);pointer-events:none;opacity:0;transition:opacity .2s}.tree-view-wrapper.is-scrolled .tree-view-col.source-col:after{opacity:1}.tree-view{list-style:none;margin:0;padding:0;min-width:max-content}.tree-node{margin:0;padding:0}.tree-node-row{display:grid;grid-template-columns:minmax(500px,1fr) 130px 330px 360px 360px 360px;gap:1rem;align-items:center;padding:.25rem .5rem;min-height:2.25rem}.tree-node-row:hover{background:#f5f5f5;border-radius:4px}.tree-node.has-children .tree-node-source{cursor:pointer}.tree-node-source{position:sticky;left:0;z-index:1;display:flex;align-items:center;gap:.5rem;min-width:0;overflow:visible;background:#fff;box-shadow:1rem 0 #fff;margin:-.25rem 0;padding:.25rem 0}.tree-node-source:after{content:"";position:absolute;top:0;left:calc(100% + 1rem);bottom:0;width:48px;background:linear-gradient(to right,#fff,transparent);pointer-events:none;opacity:0;transition:opacity .2s}.tree-view-wrapper.is-scrolled .tree-node-source:after{opacity:1}.tree-node-row:hover .tree-node-source{background:#f5f5f5;box-shadow:1rem 0 #f5f5f5}.tree-node-row:hover .tree-node-source:after{background:linear-gradient(to right,#f5f5f5,transparent)}.tree-node-toggle{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;background:none;border:none;cursor:pointer;color:#666;flex-shrink:0}.tree-node-toggle:hover{color:#1a1a1a}.chevron{display:inline-block;font-size:.85rem;transition:transform .2s}.chevron.expanded{transform:rotate(90deg)}.chevron-placeholder{display:inline-block;width:.85rem;height:1rem}.tree-node-content{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;overflow:visible}.tree-node-title-wrap{flex:1;min-width:0}.tree-node-title-inner{min-width:0;overflow:hidden}.tree-node-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node-title:not(a){color:inherit}a.tree-node-title{color:var(--bevy-primary);text-decoration:none}a.tree-node-title:hover{text-decoration:underline}.tree-node-type-icon,.tree-node-hidden-icon{flex-shrink:0;display:inline-flex;align-items:center;cursor:help}.tree-node-type-icon{color:#6b7280}.tree-node-hidden-icon{color:#9ca3af}.tooltip-trigger{display:inline-flex;align-items:center}.tooltip-popup{padding:.35rem .6rem;font-size:.75rem;font-weight:500;color:#fff;background:linear-gradient(135deg,var(--bevy-purple) 0%,var(--bevy-blue) 100%);border-radius:4px;white-space:nowrap;max-width:min(90vw,400px);overflow:hidden;text-overflow:ellipsis;pointer-events:none}.tree-node-action select{width:100%;padding:.35rem .5rem;font-size:.875rem;border-radius:4px;cursor:pointer;font-weight:500}.tree-node-action select.action-empty{background:#fff;border:1px solid #d1d5db;color:#6b7280}.tree-node-action select.action-keep{background:#dcfce7;border:1px solid #86efac;color:#166534}.tree-node-action select.action-remove{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.tree-node-action select.action-roll-up{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.tree-node-action select.action-move-to-chapter{background:#fef9c3;border:1px solid #fde047;color:#854d0e}.tree-node-action select:focus{outline:none;box-shadow:0 0 0 2px #2874c459}.tree-node-readonly{display:block;width:100%;padding:.35rem .5rem;font-size:.875rem;background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb;border-radius:4px;cursor:default}.tree-node-readonly.action-keep{background:#dcfce7;border-color:#86efac;color:#166534}.tree-node-readonly.tree-node-empty{color:#9ca3af;font-style:italic}.tree-node-destination input{width:100%;padding:.35rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:4px}.tree-node-destination input:focus{outline:none;border-color:var(--bevy-primary)}.tree-node-destination input::placeholder{color:#9ca3af}.tree-node-destination input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.tree-node-customer-comments input,.tree-node-bevy-comments input,.tree-node-bevy-link input{width:100%;padding:.35rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:4px}.tree-node-customer-comments input:focus,.tree-node-bevy-comments input:focus,.tree-node-bevy-link input:focus{outline:none;border-color:var(--bevy-primary)}.tree-node-customer-comments input::placeholder,.tree-node-bevy-comments input::placeholder,.tree-node-bevy-link input::placeholder{color:#9ca3af}.tree-children{list-style:none;margin:0;padding:0}.tree-empty{margin:0;padding:1rem;color:#666;text-align:center}.require-customer{max-width:420px;margin:0 auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.require-customer h2{margin:0 0 .5rem;font-size:1.25rem}.require-customer-hint{margin:0 0 1rem;color:#555;font-size:.95rem}.require-customer form{display:flex;flex-direction:column;gap:.75rem}.require-customer p{margin:0;color:#555;font-size:.95rem}.workspace-not-found{max-width:420px;margin:0 auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.workspace-not-found p{margin:0;color:#555;font-size:.95rem}
