*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-secondary: #64748b;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--color-tag-bg: #fff3cd;--color-tag-border: #ffc107;--header-height: 60px;--sidebar-width: 320px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-base: 14px;--line-height-base: 1.5}html,body{height:100%;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);color:#1f2937;background-color:#f8fafc}#app{height:100%;display:flex;flex-direction:column}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.25rem;color:var(--color-secondary)}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.header-left,.header-center,.header-right{display:flex;align-items:center;gap:.75rem}.logo{font-size:1.25rem;font-weight:600;color:var(--color-primary);margin:0}.mode-toggle{display:flex;background:#f1f5f9;border-radius:8px;padding:4px}.mode-btn{padding:.5rem 1rem;border:none;background:transparent;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--color-secondary);cursor:pointer;transition:all .2s}.mode-btn:disabled{opacity:.5;cursor:not-allowed}.mode-btn:not(:disabled):hover{color:var(--color-primary)}.mode-btn.active{background:#fff;color:var(--color-primary);box-shadow:0 1px 2px #0000001a}.app-main{flex:1;display:flex;overflow:hidden;height:calc(100vh - var(--header-height))}.preview-section{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f1f5f9;padding:1.5rem}.preview-container{flex:1;border-radius:8px;overflow:auto;position:relative}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2rem;color:var(--color-secondary)}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h2{font-size:1.5rem;font-weight:600;color:#374151;margin-bottom:.5rem}.empty-state p{max-width:400px;margin-bottom:1.5rem}.empty-state-actions{display:flex;gap:.75rem}.document-preview{display:flex;justify-content:center;padding:2rem;min-height:100%}.document-content{box-shadow:0 1px 6px #0000001f,0 4px 16px #0000000f}.sidebar{width:var(--sidebar-width);background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column}.sidebar-content{flex:1;overflow-y:auto;padding:1.5rem}.sidebar-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);margin-bottom:1rem}.sidebar-actions{padding:1rem 1.5rem;border-top:1px solid #e2e8f0}.no-tags-message{font-size:.875rem;color:var(--color-secondary);text-align:center;padding:2rem 1rem}.instruction-list{padding-left:1.5rem;font-size:.875rem;color:#4b5563}.instruction-list li{margin-bottom:.75rem}.generation-success-overlay{position:absolute;top:0;left:0;right:0;bottom:0;height:100%;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:100}.success-message{text-align:center;padding:2rem}.success-icon{width:64px;height:64px;background:var(--color-success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1.5rem}.success-message h2{font-size:1.5rem;margin-bottom:.5rem}.success-message p{color:var(--color-secondary);margin-bottom:1.5rem}.zoom-controls{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:4px;box-shadow:0 2px 8px #0000001a;z-index:50;-webkit-user-select:none;user-select:none}.zoom-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;font-size:1.125rem;font-weight:500;color:#374151;cursor:pointer;transition:background-color .15s}.zoom-btn:hover:not(:disabled){background:#f1f5f9}.zoom-btn:active:not(:disabled){background:#e2e8f0}.zoom-btn:disabled{opacity:.35;cursor:not-allowed}.zoom-btn-reset{width:auto;padding:0 10px;font-size:.75rem;margin-left:2px;border-left:1px solid #e2e8f0;border-radius:0 6px 6px 0}.zoom-level{font-size:.8rem;font-weight:600;color:#374151;min-width:44px;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--color-primary-hover)}.btn-secondary{background:#f1f5f9;color:#374151}.btn-secondary:not(:disabled):hover{background:#e2e8f0}.btn-success{background:var(--color-success);color:#fff}.btn-success:not(:disabled):hover{background:#16a34a}.btn-block{width:100%}.btn-icon{font-size:1rem}[data-mode=EMPTY] .header-center,[data-mode=EMPTY] .mode-toggle{opacity:.5}.error-toast-container{position:fixed;top:calc(var(--header-height) + 1rem);left:50%;transform:translate(-50%);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.error-toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:500px}.error-icon{font-size:1.25rem;flex-shrink:0}.error-message{font-size:.875rem;color:#991b1b;flex:1}.error-close{width:24px;height:24px;border:none;background:transparent;color:#991b1b;font-size:1.25rem;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.error-close:hover{background:#991b1b1a}.drag-over{background:#eff6ff!important;border:2px dashed var(--color-primary)!important}.drag-over:after{content:"Drop file here";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.25rem;font-weight:600;color:var(--color-primary);pointer-events:none}.preview-container{position:relative}.upload-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem}.upload-loading .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.upload-loading p{color:var(--color-secondary);font-size:.875rem}.import-notification{position:fixed;top:calc(var(--header-height) + 1rem);left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;box-shadow:0 4px 12px #0000001a;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.import-notification.visible{opacity:1;visibility:visible}.import-notification-icon{color:#059669;font-size:1.125rem}.import-notification-text{font-size:.875rem;color:#065f46;font-weight:500}@keyframes highlight-flash{0%,to{background-color:var(--color-tag-bg)}25%{background-color:#fde047}75%{background-color:#fde047}}.doc-sdt.tagged.highlight-flash{animation:highlight-flash 1s ease-in-out}.document-content{font-family:Calibri,Arial,sans-serif;font-size:11pt;line-height:1.15;color:#000;background:#fff;min-height:100%;box-sizing:border-box}.doc-paragraph{margin:0;padding:0;min-height:1em}.doc-paragraph.doc-empty{min-height:1em}.doc-text{white-space:pre-wrap;cursor:text}.doc-tab{display:inline-block;width:.5in}.doc-paragraph br{display:block;content:""}.doc-table{border-collapse:collapse;margin:.5em 0;width:100%}.doc-table td{border:1px solid #000;padding:.1in;vertical-align:top}.doc-sdt.tagged{background-color:var(--color-tag-bg);border-bottom:2px solid var(--color-tag-border);border-radius:2px;padding:0 2px;cursor:pointer;transition:background-color .2s}.doc-sdt.tagged:hover{background-color:#ffe69c}.doc-sdt.tagged .sdt-label{color:#6b7280;font-style:italic;white-space:nowrap}.doc-sdt.tagged.value-updated .sdt-content{animation:value-flash .3s ease-out}@keyframes value-flash{0%{background-color:#bbf7d0}to{background-color:transparent}}.doc-image{display:inline-block;max-width:100%;vertical-align:bottom}.doc-image-placeholder{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;max-width:100%;background-color:#f3f4f6;border:2px dashed #d1d5db;border-radius:4px;box-sizing:border-box;vertical-align:bottom}.doc-image-placeholder-icon:before{content:"";display:block;width:32px;height:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}.doc-image-placeholder-text{color:#6b7280;font-size:11px;text-align:center;line-height:1.4;padding:0 12px}.doc-image-placeholder-sub{color:#9ca3af;font-size:10px}.doc-text::selection{background-color:#2563eb4d}.render-error{padding:2rem;color:var(--color-error);text-align:center}.document-preview .upload-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.selection-disabled{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.selection-disabled .doc-text{cursor:default}.temp-highlight{background-color:#2563eb33;border-radius:2px}[data-mode=EDIT] .document-preview{cursor:text}[data-mode=FILL] .document-preview{cursor:default}.tag-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0003;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.tag-popup-overlay.visible{opacity:1;visibility:visible}.tag-popup{position:fixed;width:320px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #0003;overflow:hidden;transform:translateY(10px);opacity:0;transition:transform .2s,opacity .2s}.tag-popup-overlay.visible .tag-popup{transform:translateY(0);opacity:1}.tag-popup-header{padding:1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.tag-popup-label{display:block;font-size:.75rem;font-weight:500;color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.tag-popup-selected-text{display:block;font-size:.9375rem;font-weight:500;color:#1f2937;word-break:break-word;max-height:3em;overflow:hidden}.tag-popup-body{padding:1rem}.tag-popup-input-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.tag-popup-input{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.tag-popup-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.tag-popup-input::placeholder{color:#9ca3af}.tag-popup-suggestions{margin-top:.5rem;border:1px solid #e2e8f0;border-radius:6px;max-height:120px;overflow-y:auto}.tag-popup-suggestions.hidden{display:none}.suggestion-item{padding:.5rem .75rem;font-size:.875rem;cursor:pointer;transition:background-color .15s}.suggestion-item:hover,.suggestion-item.active{background-color:#f1f5f9}.suggestion-item:not(:last-child){border-bottom:1px solid #e2e8f0}.tag-popup-error{margin-top:.5rem;padding:.5rem;background:#fef2f2;border-radius:4px;font-size:.8125rem;color:#991b1b}.tag-popup-error.hidden{display:none}.tag-popup-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;background:#f8fafc;border-top:1px solid #e2e8f0}.tag-list{display:flex;flex-direction:column;gap:.5rem}.no-tags-message{font-size:.875rem;color:var(--color-secondary);text-align:center;padding:2rem 1rem;line-height:1.5}.tag-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;cursor:pointer;transition:all .2s}.tag-item:hover{background:#f1f5f9;border-color:#cbd5e1}.tag-item--filled{border-left:3px solid var(--color-success)}.tag-item-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.tag-item-label{font-weight:500;color:#1f2937;font-size:.9375rem}.tag-item-count{font-size:.75rem;font-weight:500;color:#fff;background:var(--color-primary);padding:.125rem .5rem;border-radius:10px;min-width:20px;text-align:center}.tag-item-actions{display:flex;justify-content:flex-end;gap:.25rem;opacity:0;transition:opacity .2s}.tag-item:hover .tag-item-actions{opacity:1}.tag-item-btn{width:28px;height:28px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:.875rem;display:flex;align-items:center;justify-content:center;transition:background-color .15s}.tag-item-btn:hover{background:#e2e8f0}.tag-item-btn svg{width:16px;height:16px;pointer-events:none}.tag-item-edit:hover{background:#dbeafe;color:#2563eb}.tag-item-delete:hover{background:#fee2e2;color:#dc2626}.tag-item-inline-edit{position:relative;flex:1;min-width:0}.tag-item-inline-input{width:100%;padding:.25rem .5rem;font-size:.9375rem;font-weight:500;border:1px solid #93c5fd;border-radius:4px;outline:none;background:#fff;color:#1f2937;box-sizing:border-box}.tag-item-inline-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.tag-item-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:2px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;max-height:150px;overflow-y:auto;z-index:10}.tag-item-suggestion{padding:.375rem .5rem;font-size:.8125rem;color:#374151;cursor:pointer;transition:background-color .1s}.tag-item-suggestion:hover{background:#eff6ff;color:#1d4ed8}.tag-item.selected{border-color:var(--color-primary);background:#eff6ff}@keyframes tag-highlight-pulse{0%,to{background-color:var(--color-tag-bg)}50%{background-color:#fde047}}.doc-sdt.tagged.highlight-pulse{animation:tag-highlight-pulse .5s ease-in-out 3}.fill-form{display:flex;flex-direction:column;gap:1rem}.fill-form-header{margin-bottom:.5rem}.fill-form-header h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#333}.fill-form-instruction{margin:0;font-size:.875rem;color:#666}.fill-form-fields{display:flex;flex-direction:column;gap:.625rem}.field-group{display:flex;flex-direction:column;gap:.375rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;transition:border-color .15s,box-shadow .15s}.field-group:hover{border-color:#cbd5e1;box-shadow:0 1px 3px #0000000f}.field-group:focus-within{border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.field-group.field-filled{border-left:3px solid var(--color-success, #22c55e)}.field-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.field-label{display:flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:500;color:#333;min-width:0}.label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.required-indicator{color:#dc3545;font-weight:700;flex-shrink:0}.field-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.occurrence-badge{background:#e9ecef;color:#495057;font-size:.7rem;padding:.125rem .5rem;border-radius:10px;font-weight:500;white-space:nowrap}.field-locate-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;opacity:0;transition:opacity .15s,background-color .15s,color .15s}.field-group:hover .field-locate-btn{opacity:1}.field-locate-btn:hover{background:#e0f2fe;color:var(--color-primary, #2563eb)}.field-locate-btn:active{background:#bfdbfe}.field-input{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;font-family:inherit;transition:border-color .15s,box-shadow .15s;background-color:#fff}.field-input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb26}.field-input.invalid{border-color:#dc3545}.field-input.invalid:focus{box-shadow:0 0 0 3px #dc354540}.field-input::placeholder{color:#adb5bd;font-style:italic}#btn-generate{margin-top:1rem;padding:.75rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:not-allowed;transition:background .15s,opacity .15s}#btn-generate:disabled{opacity:.65}#btn-generate.ready{background:var(--color-success, #22c55e);cursor:pointer}#btn-generate.ready:hover{background:#16a34a}#btn-generate.ready:active{background:#15803d}.document-preview.fill-mode .doc-sdt.tagged{background-color:#fff3cd;transition:background-color .3s}@keyframes valueFlash{0%{background-color:#d4edda}to{background-color:#fff3cd}}.doc-sdt.tagged.value-updated{animation:valueFlash .3s ease-out}body.mode-fill .document-preview,body.mode-fill .doc-sdt.tagged{cursor:default}.field-input.invalid+.field-error{display:block}.field-error{display:none;font-size:.75rem;color:#dc3545;margin-top:.25rem}.field-input:focus-visible{outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}.field-locate-btn:focus-visible{opacity:1;outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}.fill-form-view{transition:opacity .2s ease-in-out}.fill-form-view.hidden{opacity:0;pointer-events:none}.generation-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:1000}.generation-overlay.visible{opacity:1;visibility:visible}.overlay-content{background:#fff;padding:2.5rem 2rem 2rem;border-radius:16px;text-align:center;max-width:400px;width:calc(100% - 2rem);box-shadow:0 8px 32px #0000002e;animation:overlayCardIn .35s ease-out}@keyframes overlayCardIn{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.success-icon,.error-icon{margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center}.overlay-icon-svg{animation:iconScaleIn .4s ease-out .1s both}@keyframes iconScaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.icon-circle{stroke-dasharray:190;stroke-dashoffset:190;animation:drawCircle .5s ease-out .15s forwards}@keyframes drawCircle{to{stroke-dashoffset:0}}.icon-check{stroke-dasharray:40;stroke-dashoffset:40;animation:drawCheck .35s ease-out .5s forwards}@keyframes drawCheck{to{stroke-dashoffset:0}}.icon-x{stroke-dasharray:30;stroke-dashoffset:30;animation:drawX .3s ease-out .5s forwards}@keyframes drawX{to{stroke-dashoffset:0}}.overlay-content h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#1a1a1a}.overlay-content .overlay-subtitle{color:#666;margin:0 0 1.5rem;font-size:.875rem}.overlay-content .error-message{color:#dc3545;font-size:.875rem;margin:0 0 1.5rem}.success-actions{display:flex;gap:.75rem;justify-content:center}.error-actions{display:flex;flex-direction:column;gap:.5rem}.generation-overlay .btn{padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:background .15s ease,transform .1s ease,box-shadow .15s ease}.generation-overlay .btn:active{transform:scale(.97)}.generation-overlay .btn:focus-visible{outline:none;box-shadow:0 0 0 2px #2563eb66}.generation-overlay .btn-primary{background:var(--color-primary, #2563eb);color:#fff}.generation-overlay .btn-primary:hover{background:var(--color-primary-hover, #1d4ed8)}.generation-overlay .btn-secondary{background:#f3f4f6;color:#374151}.generation-overlay .btn-secondary:hover{background:#e5e7eb}.generation-overlay .btn-link{background:transparent;color:var(--color-primary, #2563eb);padding:.5rem}.generation-overlay .btn-link:hover{text-decoration:underline}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:.5rem}.spinner.spinner-dark{border-color:#0003;border-top-color:var(--color-primary, #2563eb)}.spinner.spinner-large{width:32px;height:32px;border-width:3px}#btn-generate{display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:140px}#btn-generate:disabled{opacity:.6;cursor:not-allowed}#btn-generate.ready{background:#28a745}#btn-generate.ready:hover{background:#218838}body.mode-generated .preview-container{pointer-events:none}body.mode-generated #document-preview{opacity:.8}body.mode-generated .sidebar-section{opacity:.6}.progress-bar{width:100%;height:4px;background:#e9ecef;border-radius:2px;overflow:hidden;margin-top:1rem}.progress-bar-fill{height:100%;background:var(--color-primary, #2563eb);width:0%;transition:width .3s ease}.progress-bar-fill.indeterminate{width:30%;animation:indeterminate 1.5s infinite linear}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.service-unavailable-banner{background:#fff3cd;border:1px solid #ffc107;color:#856404;padding:.75rem 1rem;border-radius:4px;font-size:.875rem;margin-bottom:1rem;display:none}.service-unavailable-banner.visible{display:flex;align-items:center;gap:.5rem}.service-unavailable-banner .banner-icon{font-size:1.25rem}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:1001}.loading-overlay.visible{opacity:1;visibility:visible}.loading-container{text-align:center;padding:2rem}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:48px;height:48px;border:4px solid #e9ecef;border-top-color:var(--color-primary, #2563eb);border-radius:50%;animation:spin .8s linear infinite}.spinner-small{width:24px;height:24px;border-width:3px}.spinner-large{width:64px;height:64px;border-width:5px}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{width:200px;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary, #2563eb);transition:width .2s ease}.progress-text{font-size:.875rem;color:#666;font-variant-numeric:tabular-nums}.loading-message{margin:0;font-size:1rem;color:#333}.cancel-btn{margin-top:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:.875rem;color:#666;transition:background .15s ease,border-color .15s ease}.cancel-btn:hover{background:#f8f9fa;border-color:#adb5bd}.cancel-btn:focus{outline:none;box-shadow:0 0 0 2px #2563eb33;border-color:var(--color-primary, #2563eb)}.upload-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.upload-loading .spinner{width:40px;height:40px}.upload-loading p{margin:0;color:#666;font-size:.9375rem}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.btn-loading.btn-secondary:after,.btn-loading.btn-outline:after{border-color:#0003;border-top-color:#333}.skeleton{background:linear-gradient(90deg,#e9ecef 25%,#f1f3f4,#e9ecef 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-text:last-child{width:80%}.skeleton-heading{height:1.5em;width:60%;margin-bottom:.75em}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-pulse{animation:pulse 1.5s ease-in-out infinite}@supports (backdrop-filter: blur(4px)){.loading-overlay{background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.notification-container{position:fixed;bottom:1rem;left:1rem;display:flex;flex-direction:column-reverse;gap:.5rem;z-index:1002;max-width:400px;pointer-events:none}.notification{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;transform:translate(-120%);opacity:0;transition:transform .3s ease,opacity .3s ease;pointer-events:auto}.notification.visible{transform:translate(0);opacity:1}.notification-info{border-left:4px solid #17a2b8}.notification-info .notification-icon{color:#17a2b8}.notification-success{border-left:4px solid #28a745}.notification-success .notification-icon{color:#28a745}.notification-warning{border-left:4px solid #ffc107}.notification-warning .notification-icon{color:#d39e00}.notification-error{border-left:4px solid #dc3545}.notification-error .notification-icon{color:#dc3545}.notification-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.notification-icon svg{display:block}.notification-content{flex:1;min-width:0}.notification-message{margin:0;font-size:.875rem;color:#333;line-height:1.4;word-wrap:break-word}.notification-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.notification-action{padding:.375rem .75rem;background:#f8f9fa;border:1px solid #ced4da;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease}.notification-action:hover{background:#e9ecef;border-color:#adb5bd}.notification-action:focus{outline:none;box-shadow:0 0 0 2px #2563eb33;border-color:var(--color-primary, #2563eb)}.notification-close{flex-shrink:0;padding:.375rem;background:transparent;border:none;cursor:pointer;color:#adb5bd;border-radius:4px;transition:color .15s ease,background .15s ease;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.notification-close:hover{color:#495057;background:#0000000f}.notification-close:focus{outline:none;color:#495057}.notification-close svg{pointer-events:none}.error-toast-container{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:1002;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.error-toast-container.visible{opacity:1;visibility:visible}.error-toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:#dc3545;color:#fff;border-radius:8px;box-shadow:0 4px 12px #0003;font-size:.875rem}.error-toast .error-icon{font-size:1.125rem}.error-toast .error-message{flex:1}.error-toast .error-close{background:transparent;border:none;color:#fff;font-size:1.25rem;cursor:pointer;padding:0;line-height:1;opacity:.8;transition:opacity .15s ease}.error-toast .error-close:hover{opacity:1}@media (max-width: 480px){.notification-container{left:.5rem;right:.5rem;bottom:.5rem;max-width:none}.notification{padding:.875rem}.error-toast-container{left:.5rem;right:.5rem;transform:none}.error-toast{padding:.75rem 1rem}}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .2s ease}.confirm-dialog-backdrop.visible{opacity:1}.confirm-dialog{background:#fff;border-radius:12px;padding:1.5rem;max-width:380px;width:calc(100% - 2rem);box-shadow:0 8px 32px #0000002e;transform:scale(.92);opacity:0;transition:transform .2s ease,opacity .2s ease}.confirm-dialog-backdrop.visible .confirm-dialog{transform:scale(1);opacity:1}.confirm-dialog-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#1a1a1a}.confirm-dialog-message{margin:0 0 1.25rem;font-size:.875rem;color:#555;line-height:1.5}.confirm-dialog-actions{display:flex;gap:.5rem;justify-content:flex-end}.confirm-dialog-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}.confirm-dialog-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #2563eb66}.confirm-dialog-btn:active{transform:scale(.97)}.confirm-dialog-cancel{background:#f3f4f6;color:#374151}.confirm-dialog-cancel:hover{background:#e5e7eb}.confirm-dialog-confirm{background:var(--color-primary, #2563eb);color:#fff}.confirm-dialog-confirm:hover{background:var(--color-primary-hover, #1d4ed8)}.confirm-dialog--danger .confirm-dialog-confirm{background:#dc3545}.confirm-dialog--danger .confirm-dialog-confirm:hover{background:#c82333}.confirm-dialog--danger .confirm-dialog-confirm:focus-visible{box-shadow:0 0 0 2px #dc354566}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-links{position:absolute;top:0;left:0;z-index:10000}.skip-link{position:absolute;top:-100px;left:0;padding:.75rem 1rem;background-color:var(--color-primary);color:#fff;text-decoration:none;font-weight:600;border-radius:0 0 4px;transition:top .2s ease}.skip-link:focus{top:0;outline:none}*:focus{outline:2px solid var(--color-primary);outline-offset:2px}body.using-mouse *:focus{outline:none}body.using-mouse button:focus,body.using-mouse a:focus,body.using-mouse input:focus,body.using-mouse select:focus,body.using-mouse textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast: high){.tagged{border:2px solid #000!important;background-color:#ff0!important}.notification,button,input,select,textarea{border:2px solid currentColor}.mode-btn.active{border:3px solid currentColor}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.notification,.tag-popup{transition:none}.highlight-pulse{animation:none}}@media (prefers-color-scheme: dark){:root{--color-bg: #1a1a2e;--color-surface: #16213e;--color-text: #e1e1e6;--color-text-secondary: #a8a8b3;--color-border: #2d3748}}[aria-modal=true]{box-shadow:0 0 0 4px #2563eb4d}.tag-entry{cursor:pointer}.tag-entry:focus{background-color:#2563eb1a}.tag-entry[aria-selected=true]{background-color:#2563eb26}.fill-field-group label{display:block;margin-bottom:.25rem;font-weight:500}.fill-field-group input:invalid{border-color:var(--color-error)}.fill-field-group input:invalid:focus{outline-color:var(--color-error)}.error-message{color:var(--color-error);font-size:.875rem;margin-top:.25rem}.error-message[role=alert]{font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}button:disabled:hover{transform:none}[aria-busy=true]:after{content:" Loading...";position:absolute;left:-9999px}.progress-bar{background-color:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background-color:var(--color-primary);height:100%;transition:width .3s ease}@media (prefers-reduced-motion: reduce){.progress-bar-fill{transition:none}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:.5rem;background-color:#1f2937;color:#fff;font-size:.75rem;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:1000}[data-tooltip]:hover:after,[data-tooltip]:focus:after{opacity:1;visibility:visible}@media (prefers-reduced-motion: reduce){[data-tooltip]:after{transition:none}}[role=button]{cursor:pointer}[role=button]:focus{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:#2563eb4d;color:inherit}@media (pointer: coarse){button,[role=button],input,select,a{min-height:44px;min-width:44px}}.status-indicator{display:inline-flex;align-items:center;gap:.5rem}.status-indicator:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background-color:currentColor}.status-indicator.status-success:before{background-color:var(--color-success)}.status-indicator.status-error:before{background-color:var(--color-error)}.status-indicator.status-warning:before{background-color:var(--color-warning)}#live-announcements,#live-announcements-assertive{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
