*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f5f5f5;color:#333;line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.header{background-color:#1a365d;color:#fff;padding:1rem 2rem;text-align:center}.header h1{font-size:1.5rem;font-weight:600}.header p{font-size:.875rem;opacity:.9}.main{flex:1;padding:2rem;display:grid;gap:1.5rem;max-width:800px;margin:0 auto;width:100%}.footer{background-color:#2d3748;color:#a0aec0;padding:1rem 2rem;text-align:center;font-size:.75rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a365d,#2d3748);padding:1rem}.login-card{background:#fff;border-radius:12px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 10px 40px #0003}.login-header{text-align:center;margin-bottom:2rem}.login-logo{width:48px;height:48px;margin:0 auto 1rem;color:#1a365d}.logo-icon{width:100%;height:100%}.login-title{font-size:1.5rem;font-weight:700;color:#1a365d;margin-bottom:.25rem}.login-subtitle{font-size:.875rem;color:#718096}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.875rem;font-weight:500;color:#4a5568}.form-input{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:#1a365d;box-shadow:0 0 0 3px #1a365d1a}.form-input-error{border-color:#e53e3e}.form-input-error:focus{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.form-error{font-size:.75rem;color:#e53e3e;margin-top:.25rem}.login-button{padding:.875rem 1.5rem;background-color:#1a365d;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s}.login-button:hover:not(:disabled){background-color:#2c5282}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{background-color:#a0aec0;cursor:not-allowed}.logout-button{padding:.625rem 1.25rem;background-color:#e53e3e;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.logout-button:hover{background-color:#c53030}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.header-content>div{text-align:left}.input-description{color:#718096;font-size:.875rem;margin-bottom:1.25rem}.error-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fff5f5;border:1px solid #fed7d7;border-radius:6px;color:#c53030;font-size:.875rem}.error-icon{flex-shrink:0}.progress-container{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ebf8ff;border:1px solid #bee3f8;border-radius:6px}@keyframes spin{to{transform:rotate(360deg)}}.success-message{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#f0fff4;border:1px solid #9ae6b4;border-radius:6px}.success-icon{flex-shrink:0;width:24px;height:24px;background:#38a169;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem}.success-details strong{display:block;color:#22543d;margin-bottom:.25rem}.success-details p{font-size:.875rem;color:#2f855a;margin:.25rem 0}.button-group{display:flex;gap:.75rem}.download-button{padding:.75rem 1.5rem;background-color:#1a365d;color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .2s}.download-button:hover:not(:disabled){background-color:#2c5282}.download-button:disabled{background-color:#a0aec0;cursor:not-allowed}.reset-button{padding:.75rem 1.5rem;background-color:#4a5568;color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .2s}.reset-button:hover{background-color:#2d3748}.supported-formats{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.supported-formats h4{font-size:.875rem;color:#4a5568;margin-bottom:.75rem}.supported-formats ul{list-style:none;padding:0;margin:0}.supported-formats li{font-size:.8125rem;color:#718096;padding:.375rem 0}.supported-formats code{background:#edf2f7;padding:.125rem .375rem;border-radius:4px;font-family:monospace;font-size:.75rem}.file-dropzone-container{padding:1rem 0}.file-dropzone-container h3{font-size:1rem;color:#1a365d;margin-bottom:.5rem}.file-dropzone{border:2px dashed #e2e8f0;border-radius:12px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s;background:#f7fafc}.file-dropzone:hover{border-color:#a0aec0;background:#edf2f7}.file-dropzone.drag-over{border-color:#3182ce;border-style:solid;background:#ebf8ff}.file-dropzone.has-error{border-color:#e53e3e}.dropzone-content{pointer-events:none}.browse-files-button{pointer-events:auto;background:#3182ce;color:#fff;border:none;padding:.625rem 1.25rem;border-radius:6px;font-size:.9375rem;font-weight:500;cursor:pointer;margin:.75rem 0;transition:background-color .2s,transform .1s}.browse-files-button:hover{background:#2b6cb0}.browse-files-button:active{transform:scale(.98)}.browse-files-button:focus{outline:2px solid #63b3ed;outline-offset:2px}.dropzone-icon{font-size:3rem;display:block;margin-bottom:1rem}.dropzone-text{font-size:1.125rem;color:#1a365d;font-weight:500;margin-bottom:.5rem}.dropzone-limit{font-size:.75rem;color:#a0aec0}.upload-progress-container{padding:1.5rem;background:#ebf8ff;border:1px solid #bee3f8;border-radius:8px}.upload-progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.upload-filename{font-weight:500;color:#1a365d;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}.upload-size{font-size:.875rem;color:#718096}.progress-bar-container{width:100%;height:8px;background:#bee3f8;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-bar{height:100%;background:linear-gradient(90deg,#3182ce,#2b6cb0);border-radius:4px;transition:width .3s ease-out}.progress-percentage{text-align:center;font-size:.875rem;font-weight:600;color:#2b6cb0}.file-key{font-family:monospace;font-size:.75rem;color:#4a5568;background:#e2e8f0;padding:.25rem .5rem;border-radius:4px;word-break:break-all}.orders-list{display:flex;flex-direction:column;gap:1rem}.order-card{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem;transition:border-color .2s,box-shadow .2s}.order-card:hover{border-color:#cbd5e0;box-shadow:0 2px 4px #0000000d}.order-number{font-size:1rem;font-weight:600;color:#1a365d;margin:0}.modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e2e8f0;background:#f7fafc}.modal-header h3{margin:0;font-size:1.125rem;color:#1a365d}.close-button{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#718096;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-button:hover{color:#1a365d}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-body .loading{text-align:center;padding:2rem;color:#718096}.modal-body .error{text-align:center;padding:2rem;color:#c53030}.protocol-number{font-weight:600;font-family:Consolas,Monaco,monospace;color:#1a365d}.header-nav{display:flex;align-items:center;gap:.75rem}@media(max-width:768px){.modal-content{max-height:90vh}}.admin-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.admin-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.9375rem;font-weight:500;color:#718096;cursor:pointer;transition:color .2s,border-color .2s}.admin-tab:hover{color:#4a5568}.admin-tab--active{color:#2b6cb0;border-bottom-color:#2b6cb0}.spreadsheet-info{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.spreadsheet-info-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.spreadsheet-info-header .spreadsheet-icon{font-size:1.25rem}.spreadsheet-info-header h4{flex:1;font-size:.875rem;color:#2d3748;margin:0}.spreadsheet-info-header .replace-button{padding:.25rem .5rem;background:#edf2f7;color:#4a5568;border:1px solid #cbd5e0;border-radius:4px;font-size:.75rem;cursor:pointer}.spreadsheet-info-header .replace-button:hover{background:#e2e8f0}.spreadsheet-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.spreadsheet-info-grid .info-item{display:flex;flex-direction:column;gap:.125rem}.spreadsheet-info-grid .info-label{font-size:.6875rem;color:#718096;text-transform:uppercase;letter-spacing:.05em}.spreadsheet-info-grid .info-value{font-size:.875rem;color:#2d3748;font-weight:500}.spreadsheet-info-grid .info-value.file-name{font-family:monospace;font-size:.8125rem;word-break:break-all}.spreadsheet-info-grid .info-value.highlight{color:#2b6cb0;font-weight:600}.spreadsheet-info-status{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.spreadsheet-info-status .status-badge{padding:.125rem .375rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase}.spreadsheet-info-status .status-badge.active{background:#c6f6d5;color:#22543d}.spreadsheet-info-status .status-text{font-size:.75rem;color:#718096}.loading-state{display:flex;align-items:center;gap:.5rem;padding:1rem;color:#718096;font-size:.875rem}.loading-state .spinner{animation:spin 1s linear infinite}.admin-main-new{max-width:100%;padding:1rem;background:#f0f4f8}.admin-container-new{background:transparent;min-height:calc(100vh - 180px)}.admin-three-columns{display:grid;grid-template-columns:280px 1fr 300px;gap:1rem;min-height:calc(100vh - 220px)}.admin-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;overflow:hidden}.admin-panel__header{padding:1rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;background:#f8fafc}.admin-panel__header h2{font-size:1rem;font-weight:600;color:#1a365d;margin:0}.admin-panel__actions{display:flex;align-items:center;gap:.5rem}.admin-panel__content{flex:1;overflow-y:auto;padding:1rem}.admin-panel--upload{background:linear-gradient(135deg,#f0fff4,#fff)}.admin-panel--upload .admin-panel__header{background:linear-gradient(135deg,#c6f6d5,#f0fff4);border-bottom-color:#9ae6b4}.upload-section{margin-bottom:1.5rem}.upload-label{display:block;font-size:.75rem;font-weight:600;color:#4a5568;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.upload-process-btn{width:100%;padding:.75rem;background:#48bb78;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.upload-process-btn:hover:not(:disabled){background:#38a169}.upload-process-btn:disabled{opacity:.5;cursor:not-allowed}.admin-panel--orders{background:#fff}.orders-list{display:flex;flex-direction:column;gap:.75rem}.order-card{border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;cursor:pointer;transition:all .2s;background:#fff}.order-card:hover{border-color:#4299e1;box-shadow:0 2px 4px #4299e11a}.order-card--selected{border-color:#4299e1;background:#ebf8ff}.order-card__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.order-card__header input[type=checkbox]{width:16px;height:16px;cursor:pointer}.order-number{font-weight:600;color:#1a365d;flex:1}.order-card__body{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.order-stats{display:flex;gap:.5rem}.order-stats .stat{color:#718096}.order-stats .stat.valid{color:#38a169}.order-stats .stat.invalid{color:#e53e3e}.order-date{color:#a0aec0;font-size:.7rem}.admin-panel--queue{background:linear-gradient(135deg,#ebf8ff,#fff)}.admin-panel--queue .admin-panel__header{background:linear-gradient(135deg,#bee3f8,#ebf8ff);border-bottom-color:#90cdf4}.queue-count{background:#2b6cb0;color:#fff;padding:.25rem .625rem;border-radius:12px;font-size:.875rem;font-weight:600}.queue-list{display:flex;flex-direction:column;gap:.5rem}.queue-item{display:flex;align-items:center;gap:.5rem;padding:.625rem;border-radius:6px;background:#fff;border:1px solid #e2e8f0;font-size:.8rem}.queue-item--processing{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#f6ad55}.queue-item__position{font-weight:600;color:#718096;min-width:24px}.queue-item__order{flex:1;font-weight:500;color:#1a365d}.queue-item__count{color:#718096;font-size:.7rem}.queue-item__status{display:flex;align-items:center;gap:.25rem;color:#dd6b20;font-weight:600;font-size:.7rem}.processing-indicator{animation:pulse 1s ease-in-out infinite}.add-queue-btn{padding:.375rem .75rem;background:#4299e1;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.add-queue-btn:hover:not(:disabled){background:#3182ce}.add-queue-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-btn-small{padding:.375rem;background:transparent;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.refresh-btn-small:hover{background:#f7fafc;border-color:#cbd5e0}.status-badge--pending{background:#f7fafc;color:#718096}.status-badge--queued{background:#ebf8ff;color:#2b6cb0}.status-badge--processing{background:#fffbeb;color:#dd6b20}.status-badge--completed{background:#f0fff4;color:#38a169}.status-badge--created{background:#ebf8ff;color:#3182ce}.status-badge--processed{background:#e6fffa;color:#319795}.status-badge--automation{background:#faf5ff;color:#805ad5}.status-badge--geosweb,.status-badge--failed{background:#fff5f5;color:#e53e3e}.status-badge--accepted{background:#dcfce7;color:#166534}.status-badge--rejected{background:#fee2e2;color:#991b1b}.protocol-review-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem 1rem;margin-bottom:.75rem;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #f59e0b;border-radius:8px}.protocol-review-bar__label{font-size:.8125rem;font-weight:600;color:#92400e;white-space:nowrap}.protocol-review-bar__actions{display:flex;gap:.625rem}.protocol-review-btn{padding:.4375rem 1.25rem;font-size:.8125rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.protocol-review-btn:disabled{opacity:.55;cursor:not-allowed}.protocol-review-btn--accept{background:#16a34a;color:#fff;box-shadow:0 1px 2px #16a34a40}.protocol-review-btn--accept:hover:not(:disabled){background:#15803d;box-shadow:0 2px 4px #16a34a4d}.protocol-review-btn--reject{background:#dc2626;color:#fff;box-shadow:0 1px 2px #dc262640}.protocol-review-btn--reject:hover:not(:disabled){background:#b91c1c;box-shadow:0 2px 4px #dc26264d}.protocol-review-btn--cancel{background:#e2e8f0;color:#475569}.protocol-review-btn--cancel:hover:not(:disabled){background:#cbd5e1}.protocol-review-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.025em;text-transform:uppercase}.protocol-review-badge--accepted{background:#dcfce7;color:#166534;border:1px solid #86efac}.protocol-review-badge--rejected{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.protocol-card-full__rejection-reason-btn{display:inline-flex;align-items:center;justify-content:center;background:#fee2e2;border:1px solid #fca5a5;border-radius:4px;cursor:pointer;font-size:.875rem;line-height:1;padding:.2rem .4rem;color:#991b1b;transition:background .15s,border-color .15s}.protocol-card-full__rejection-reason-btn:hover{background:#fecaca;border-color:#f87171}.protocol-card-full__rejection-details{background:#fff5f5;border:1px solid #fca5a5;border-left:3px solid #ef4444;border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.8125rem;color:#7f1d1d}.protocol-card-full__rejection-details strong{display:block;color:#991b1b;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem}.protocol-card-full__rejection-details p{margin:0;line-height:1.6;white-space:pre-wrap;color:#450a0a}.protocol-reject-form{padding:.875rem 1rem;margin-bottom:.75rem;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #f87171;border-radius:8px}.protocol-reject-form__label{display:block;font-size:.8125rem;font-weight:600;color:#991b1b;margin-bottom:.5rem}.protocol-reject-form__textarea{width:100%;padding:.625rem .75rem;border:1px solid #fca5a5;border-radius:6px;font-size:.8125rem;resize:vertical;margin-bottom:.625rem;font-family:inherit;background:#fff}.protocol-reject-form__textarea:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.protocol-reject-form__actions{display:flex;gap:.625rem}.protocol-reject-form__screenshot-row{display:flex;align-items:center;gap:.625rem;margin-top:.5rem}.protocol-reject-form__screenshot-btn{background:none;border:1px dashed #9ca3af;border-radius:4px;color:#6b7280;cursor:pointer;font-size:.8125rem;padding:.375rem .75rem;transition:border-color .15s,color .15s}.protocol-reject-form__screenshot-btn:hover:not(:disabled){border-color:#6b7280;color:#374151}.protocol-reject-form__screenshot-btn:disabled{opacity:.5;cursor:not-allowed}.protocol-reject-form__screenshot-status{font-size:.75rem;color:#6b7280}.protocol-reject-form__screenshot-status--ok{color:#16a34a}.protocol-reject-form__screenshot-status--err{color:#dc2626}.protocol-card-full__rejection-screenshot{margin-top:.5rem}.protocol-card-full__screenshot-loading{font-size:.8125rem;color:#6b7280;font-style:italic}.loading-state,.empty-state{text-align:center;padding:2rem 1rem;color:#718096}.empty-icon{font-size:2rem;display:block;margin-bottom:.5rem}.admin-message{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.admin-message--error{background:#fed7d7;color:#c53030}.admin-message--warning{background:#fffbeb;color:#744210;border:1px solid #f6ad55;align-items:flex-start}.admin-message button{background:transparent;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.7}.admin-message button:hover{opacity:1}.admin-database{background:#fff;border-radius:12px;padding:1.5rem;min-height:calc(100vh - 220px)}.timeline-filter-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.timeline-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:20px;font-size:.875rem;color:#4a5568;cursor:pointer;transition:all .15s ease}.timeline-tag:hover{background:#edf2f7;border-color:#cbd5e0}.timeline-tag--active{background:#4299e1;border-color:#4299e1;color:#fff}.timeline-tag--active:hover{background:#3182ce;border-color:#3182ce}.timeline-tag__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;background:#0000001a;border-radius:10px;font-size:.75rem;font-weight:600}.timeline-tag--active .timeline-tag__count{background:#ffffff40}.timeline-tag--disabled{opacity:.6;font-style:italic}.timeline-tag--disabled:not(.timeline-tag--active){background:#f0f0f0;border-color:#d0d0d0;color:#888}.timeline-tag--accepted.timeline-tag--active{background:#16a34a;border-color:#16a34a}.timeline-tag--accepted.timeline-tag--active:hover{background:#15803d;border-color:#15803d}.timeline-tag--rejected.timeline-tag--active{background:#dc2626;border-color:#dc2626}.timeline-tag--rejected.timeline-tag--active:hover{background:#b91c1c;border-color:#b91c1c}.timeline-tag--search-active{background:#fef3c7;color:#92400e;border-color:#f59e0b;font-size:.75rem;font-weight:600;cursor:default}.date-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;margin-bottom:1rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap}.date-filter-bar__label-row{width:100%;margin-bottom:4px}.date-filter-bar__range-label{font-size:.75rem;color:#64748b;font-style:italic}.date-filter-bar__inputs{display:flex;align-items:center;gap:.5rem}.date-filter-bar__label{font-size:.8125rem;font-weight:600;color:#475569}.date-filter-bar__date{padding:.375rem .625rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.8125rem;background:#fff}.date-filter-bar__apply{padding:.375rem .875rem;background:#4299e1;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:600;cursor:pointer}.date-filter-bar__apply:hover{background:#3182ce}.date-filter-bar__actions{display:flex;align-items:center;gap:1rem}.date-filter-bar__summary{display:flex;align-items:center;gap:.5rem}.date-filter-bar__poles{font-size:.9375rem;color:#1e293b;background:#dcfce7;padding:.375rem .875rem;border-radius:6px;border:1px solid #86efac}.date-filter-bar__poles strong{font-size:1.125rem;color:#166534}.date-filter-bar__report-btn{padding:.375rem 1rem;background:#1e293b;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:600;cursor:pointer}.date-filter-bar__report-btn:hover{background:#0f172a}.protocol-card-full__review-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.protocol-card-full__reviewer{font-size:.75rem;color:#64748b;font-style:italic;white-space:nowrap}.database-search{display:flex;gap:.75rem;align-items:center;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e2e8f0}.database-search__input{flex:1;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem}.database-search__input:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a}.database-search__btn{padding:.75rem 1.5rem;background:#4299e1;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.database-search__btn:hover{background:#3182ce}.database-search__auto{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#718096;white-space:nowrap}.database-search__sort{padding:.4rem .6rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.875rem;color:#4a5568;background:#fff;cursor:pointer;white-space:nowrap}.database-search__sort:hover{border-color:#cbd5e0}.database-search__total{font-size:.875rem;color:#718096;white-space:nowrap;margin-left:auto}.status-badge--small{font-size:.65rem;padding:.15rem .4rem}.database-pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;margin-top:.5rem;border-top:1px solid #e2e8f0;flex-wrap:wrap}.database-pagination__pages{display:flex;align-items:center;gap:4px}.database-pagination__arrow{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#edf2f7;color:#4a5568;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;transition:background .15s}.database-pagination__arrow:hover:not(:disabled){background:#e2e8f0}.database-pagination__arrow:disabled{opacity:.4;cursor:not-allowed}.database-pagination__page{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#edf2f7;color:#4a5568;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;padding:0 6px;transition:background .15s,color .15s}.database-pagination__page:hover{background:#e2e8f0}.database-pagination__page--active{background:#4299e1;color:#fff;border-color:#4299e1}.database-pagination__page--active:hover{background:#3182ce}.database-pagination__ellipsis{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#a0aec0;font-size:.875rem}.database-pagination__info{display:flex;align-items:center;gap:12px}.database-pagination__results{font-size:.8125rem;color:#718096;white-space:nowrap}.database-pagination__size{padding:4px 8px;font-size:.8125rem;color:#4a5568;background:#edf2f7;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer}.protocol-timeline{position:relative;padding-left:1.5rem}@media(max-width:1024px){.database-layout{grid-template-columns:1fr}.database-list{max-height:300px}.database-detail{max-height:none}}@media(max-width:1024px){.admin-three-columns{grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr}.admin-panel--upload{grid-column:1 / 2;grid-row:1 / 2}.admin-panel--queue{grid-column:2 / 3;grid-row:1 / 2}.admin-panel--orders{grid-column:1 / 3;grid-row:2 / 3}}@media(max-width:768px){.admin-three-columns{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.admin-panel--upload,.admin-panel--queue,.admin-panel--orders{grid-column:1 / 2}.admin-panel--upload{grid-row:1 / 2}.admin-panel--queue{grid-row:2 / 3}.admin-panel--orders{grid-row:3 / 4}.database-search{flex-direction:column;align-items:stretch}}.protocol-cards-container{width:100%}.protocol-cards{display:flex;flex-direction:column;gap:.75rem}.protocol-card-full{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem;transition:all .15s ease}.protocol-card-full:hover{border-color:#cbd5e0;box-shadow:0 2px 8px #0000000d}.protocol-card-full--error{border-color:#feb2b2;background:snow}.protocol-card-full--error:hover{border-color:#fc8181}.protocol-card-full__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.protocol-card-full__left{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:0}.protocol-card-full__right{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem;flex-shrink:0}.protocol-card-full__id{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.protocol-card-full__number{font-size:1rem;font-weight:600;color:#2d3748}.protocol-card-full__details{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.protocol-card-full__ocupante{font-size:.875rem;color:#718096;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.protocol-card-full__points{font-size:.8125rem;color:#4a5568;background:#edf2f7;padding:.125rem .5rem;border-radius:4px}.protocol-card-full__points strong{color:#2d3748}.protocol-card-full__points.points-match{background:#c6f6d5;color:#22543d}.protocol-card-full__points.points-match strong{color:#276749}.protocol-card-full__points.points-mismatch{background:#fed7d7;color:#9b2c2c}.protocol-card-full__points.points-mismatch strong{color:#c53030}.protocol-card-full__zip{font-size:.8125rem;color:#553c9a;background:#e9d8fd;padding:.125rem .5rem;border-radius:4px}.protocol-card-full__zip strong{color:#44337a}.protocol-card-full__geosweb-os{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem}.protocol-card-full__geosweb-label{font-size:.6875rem;color:#a0aec0;text-transform:uppercase;letter-spacing:.03em}.protocol-card-full__geosweb-number{font-size:.9375rem;font-weight:600;color:#2b6cb0;font-family:monospace}.protocol-card-full__error-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#fed7d7;border:1px solid #fc8181;border-radius:4px;font-size:.75rem;color:#c53030;cursor:pointer;transition:all .15s ease}.protocol-card-full__error-btn:hover{background:#feb2b2}.protocol-card-full__error-details{background:#fff5f5;border:1px solid #feb2b2;border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.8125rem}.error-details__code{color:#c53030;margin-bottom:.375rem}.error-details__code strong{color:#9b2c2c}.error-details__description{color:#2d3748;margin-bottom:.5rem;padding:.5rem;background:#fff5f5;border-radius:4px;line-height:1.5}.error-details__description strong{color:#c53030;display:block;margin-bottom:.25rem}.error-details__message{color:#742a2a;word-break:break-word;font-size:.8125rem;font-family:monospace;background:#faf5ff;padding:.375rem .5rem;border-radius:4px}.error-details__message strong{color:#553c9a}.error-details__retry-btn{margin-top:.75rem;padding:.375rem 1rem;background:#dd6b20;color:#fff;border:none;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .15s}.error-details__retry-btn:hover:not(:disabled){background:#c05621}.error-details__retry-btn:disabled{opacity:.6;cursor:not-allowed}.error-details__not-retryable{margin-top:.75rem;padding:.5rem .75rem;background:#fff5f5;border:1px solid #feb2b2;border-radius:4px;color:#9b2c2c;font-size:.8125rem;font-weight:500;line-height:1.4}.protocol-card-full__timeline{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:.25rem}.timeline-step{display:flex;flex-direction:column;align-items:center;position:relative;flex:1;min-width:100px}.timeline-step__dot{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #cbd5e0;z-index:1;flex-shrink:0}.timeline-step--done .timeline-step__dot{background:#48bb78;border-color:#48bb78}.timeline-step__content{display:flex;flex-direction:column;align-items:center;margin-top:.5rem;text-align:center}.timeline-step__label{font-size:.75rem;color:#718096;font-weight:500;white-space:nowrap}.timeline-step--done .timeline-step__label{color:#2d3748}.timeline-step__date{font-size:.6875rem;color:#a0aec0;margin-top:.125rem}.timeline-step--done .timeline-step__date{color:#718096}.timeline-step__line{position:absolute;top:5px;left:calc(50% + 6px);right:calc(-50% + 6px);height:2px;background:#e2e8f0}.timeline-step--done .timeline-step__line{background:#48bb78}.timeline-step--last .timeline-step__line,.timeline-step:last-child .timeline-step__line{display:none}@media(max-width:768px){.protocol-card-full__header{flex-direction:column;align-items:flex-start}.protocol-card-full__right{width:100%;margin-top:.5rem}.protocol-card-full__geosweb-os{flex-direction:row;align-items:center;gap:.5rem}.protocol-review-bar{flex-direction:column;align-items:stretch;gap:.5rem}.protocol-review-bar__actions{justify-content:stretch}.protocol-review-btn{flex:1;text-align:center}.protocol-card-full__timeline{flex-direction:column;align-items:flex-start;gap:.5rem;padding-left:.5rem}.timeline-step{flex-direction:row;align-items:center;min-width:auto;width:100%;gap:.75rem}.timeline-step__content{flex-direction:row;align-items:center;gap:.5rem;margin-top:0;text-align:left}.timeline-step__line{display:none}.timeline-step__label{min-width:80px}}@media(max-width:600px){.protocol-card-full{padding:.875rem 1rem}.protocol-card-full__number{font-size:.9375rem}.protocol-card-full__ocupante{max-width:200px}.protocol-card-full__geosweb-number{font-size:.8125rem}.timeline-step__label{font-size:.6875rem}.timeline-step__date{font-size:.625rem}.protocol-card-full__error-details{padding:.625rem .75rem;font-size:.75rem}}.queue-item__remove{flex-shrink:0;width:1.25rem;height:1.25rem;border:none;background:#e53e3e;color:#fff;border-radius:50%;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:auto;transition:background .2s}.queue-item__remove:hover{background:#c53030}.queue-item__remove:disabled{background:#a0aec0;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;background:#f7fafc;border-radius:12px 12px 0 0}.modal-header h3{font-size:1.25rem;font-weight:600;color:#1a365d}.modal-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#718096;padding:.25rem;line-height:1}.modal-close:hover{color:#e53e3e}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;gap:.75rem;justify-content:flex-end}.queue-modal__info{display:grid;gap:1rem}.queue-modal__field{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.queue-modal__field:last-child{border-bottom:none}.queue-modal__field label{font-weight:500;color:#4a5568}.queue-modal__count{font-size:1.5rem;font-weight:700;color:#2b6cb0}.queue-modal__note{margin-top:1rem;padding:1rem;background:#fffbeb;border-radius:8px;font-size:.875rem;color:#744210;border-left:4px solid #d69e2e}.btn{padding:.625rem 1.25rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn--danger{background:#e53e3e;color:#fff}.btn--danger:hover{background:#c53030}.btn--danger:disabled{background:#feb2b2;cursor:not-allowed}.btn--danger.btn--disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed;border:1px dashed #cbd5e0}.btn--danger.btn--disabled:hover{background:#e2e8f0}.btn--secondary{background:#e2e8f0;color:#4a5568}.btn--secondary:hover{background:#cbd5e0}.status-badge--queued{background:#bee3f8;color:#2b6cb0}.zip-detail-modal{max-width:700px}.modal-header__title{display:flex;align-items:center;gap:.75rem}.modal-header__title h3{margin:0}.zip-detail-summary{display:grid;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0;margin-bottom:1rem}.zip-detail-field{display:flex;justify-content:space-between;align-items:center}.zip-detail-field label{font-weight:500;color:#4a5568}.zip-detail-field span{color:#2d3748}.zip-detail-stats{display:flex;gap:1rem;flex-wrap:wrap;padding-top:.5rem}.zip-detail-stats .stat{font-size:.875rem;padding:.25rem .5rem;border-radius:4px}.zip-detail-stats .stat--success{background:#c6f6d5;color:#22543d}.zip-detail-stats .stat--error{background:#fed7d7;color:#c53030}.zip-detail-stats .stat--pending{background:#fefcbf;color:#744210}.zip-detail-skipped{background:#fffbeb;border:1px solid #f59e0b;border-radius:.5rem;padding:.75rem;margin-bottom:1rem}.zip-detail-skipped__header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#92400e;margin-bottom:.5rem;font-size:.875rem}.zip-detail-skipped__list{display:grid;gap:.375rem}.zip-detail-skipped__item{display:flex;gap:.75rem;font-size:.8125rem;padding:.25rem 0;border-bottom:1px solid #fde68a}.zip-detail-skipped__item:last-child{border-bottom:none}.zip-detail-skipped__protocol{font-weight:600;color:#92400e;white-space:nowrap}.zip-detail-skipped__errors{color:#78350f}.zip-detail-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.zip-detail-tab{padding:.5rem 1rem;border:none;background:none;cursor:pointer;font-size:.875rem;font-weight:500;color:#718096;border-radius:4px 4px 0 0;transition:all .2s}.zip-detail-tab:hover{background:#edf2f7;color:#4a5568}.zip-detail-tab--active{background:#ebf8ff;color:#2b6cb0;border-bottom:2px solid #2b6cb0;margin-bottom:-2px}.zip-detail-protocols{max-height:350px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.zip-protocol-item{padding:.75rem;border:1px solid #e2e8f0;border-radius:6px;background:#f7fafc}.zip-protocol-item--error{border-color:#fed7d7;background:#fff5f5}.zip-protocol-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.zip-protocol-number{font-family:monospace;font-size:.875rem;font-weight:600;color:#2d3748}.zip-protocol-ocupante{font-size:.8125rem;color:#718096;text-align:right;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zip-protocol-error{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #fed7d7}.zip-protocol-error-reason{font-size:.8125rem;color:#c53030;margin-bottom:.25rem}.zip-protocol-error-description{font-size:.75rem;color:#718096;display:block;line-height:1.4}.zip-detail-protocols .empty-state{padding:2rem;text-align:center;color:#718096}.user-email{color:#a0aec0;font-size:.875rem;padding:.5rem .75rem;background:#ffffff1a;border-radius:4px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-protocol-dialog{max-width:480px}.delete-warning{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;background:#fffbeb;border:1px solid #f6ad55;border-radius:8px;margin-bottom:1rem;font-size:.9375rem;color:#744210}.delete-warning .warning-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#dd6b20;color:#fff;font-weight:700;font-size:.875rem;flex-shrink:0}.protocol-info-card{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.875rem 1rem;margin-bottom:1rem}.protocol-info-card .protocol-number{font-size:1.0625rem;font-weight:700;color:#1a365d;margin-bottom:.25rem}.protocol-info-card .protocol-ocupante{font-size:.875rem;color:#718096}.delete-consequences{padding:.875rem 1rem;background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;margin-bottom:1rem;font-size:.875rem;color:#742a2a}.delete-consequences p{margin-bottom:.5rem}.delete-consequences ul{margin:0;padding-left:1.25rem}.delete-consequences ul li{margin-bottom:.25rem;line-height:1.5}.delete-header{background:linear-gradient(135deg,#fff5f5,#f7fafc);border-bottom-color:#fed7d7}.modal-footer .cancel-button{padding:.625rem 1.25rem;background:#e2e8f0;color:#4a5568;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.modal-footer .cancel-button:hover:not(:disabled){background:#cbd5e0}.modal-footer .cancel-button:disabled{opacity:.5;cursor:not-allowed}.modal-footer .delete-button{padding:.625rem 1.25rem;background:#e53e3e;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.modal-footer .delete-button:hover:not(:disabled){background:#c53030}.modal-footer .delete-button:disabled{opacity:.5;cursor:not-allowed}.sync-preview-dialog{max-width:600px}.sync-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffe0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-radius:0 0 12px 12px;z-index:10}.sync-preview-dialog .modal-body{position:relative}.sync-loading-overlay p{font-size:.9375rem;color:#2b6cb0;font-weight:500}.sync-loading-spinner{width:40px;height:40px;border:4px solid #bee3f8;border-top-color:#2b6cb0;border-radius:50%;animation:spin .8s linear infinite}.expiry-timer{padding:.25rem .75rem;background:#fefcbf;border:1px solid #f6e05e;border-radius:12px;font-size:.8125rem;font-weight:700;color:#744210;letter-spacing:.03em;font-variant-numeric:tabular-nums}.preview-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.875rem;font-weight:700;flex-shrink:0}.preview-section.adding .preview-icon{background:#c6f6d5;color:#22543d}.preview-section.removing .preview-icon{background:#fed7d7;color:#c53030}.preview-section.orphaning .preview-icon{background:#fefcbf;color:#744210}.preview-section.preserving .preview-icon{background:#e9d8fd;color:#553c9a}.protocol-card-full__delete-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:6px;color:#a0aec0;font-size:.875rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.protocol-card-full__delete-btn:hover{background:#fff5f5;color:#e53e3e;border-color:#fed7d7}.protocol-card-full__delete-btn:disabled{opacity:.4;cursor:not-allowed}.protocol-card-full__orphan-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;background:#fef3c7;border:1px solid #f6ad55;border-radius:9999px;font-size:.6875rem;font-weight:700;color:#92400e;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}@media(max-width:768px){.protocol-card-full__right{align-items:flex-end;align-self:flex-end;width:auto}}.preview-section{border-radius:8px;padding:.75rem 1rem;margin-bottom:.5rem;cursor:pointer;transition:background .15s,box-shadow .15s;position:relative}.preview-section:hover{box-shadow:0 2px 6px #00000014}.preview-section.adding{background:#f0fff4;border:1px solid #9ae6b4}.preview-section.adding:hover{background:#e6ffed}.preview-section.removing{background:#fff5f5;border:1px solid #fed7d7}.preview-section.removing:hover{background:#ffecec}.preview-section.orphaning{background:#fffbeb;border:1px solid #f6e05e}.preview-section.orphaning:hover{background:#fefce0}.preview-section.preserving{background:#faf5ff;border:1px solid #d6bcfa}.preview-section.preserving:hover{background:#f5eeff}.preview-row{display:flex;align-items:center;gap:.75rem}.preview-label{flex:1;font-size:.9375rem;font-weight:600;color:#2d3748}.preview-count{font-size:1rem;font-weight:700;color:#2d3748}.preview-section .preview-row:after{content:"›";font-size:1.125rem;font-weight:700;color:#a0aec0;transition:transform .2s;display:inline-block;margin-left:.25rem;transform:rotate(90deg)}.preview-section:has(.preview-protocols) .preview-row:after{transform:rotate(-90deg)}.preview-protocols{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem;padding-top:.625rem;border-top:1px solid rgba(0,0,0,.06)}.protocol-tag{display:inline-flex;padding:.2rem .6rem;background:#fff;border:1px solid #cbd5e0;border-radius:4px;font-size:.75rem;font-family:monospace;color:#2d3748}.preview-note{font-size:.8125rem;color:#718096;margin-top:.375rem;line-height:1.5}.no-changes{padding:.875rem 1rem;background:#f0fff4;border:1px solid #9ae6b4;border-radius:8px;color:#22543d;font-size:.9375rem}.sync-preview-dialog .spreadsheet-info{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1.25rem;flex-wrap:wrap}.spreadsheet-old,.spreadsheet-new{flex:1;font-size:.875rem;color:#4a5568;min-width:0}.spreadsheet-arrow{font-size:1.25rem;color:#a0aec0;flex-shrink:0}.no-spreadsheet{color:#a0aec0;font-style:italic}.preview-summary h4{font-size:.875rem;color:#4a5568;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.zip-detail-tabs{padding-bottom:0}.zip-detail-tab--active{margin-bottom:-2px;background:#fff}.protocol-review-btn:disabled{opacity:.5;cursor:not-allowed}.date-filter-bar__report-btn:disabled{opacity:.5;cursor:not-allowed}.database-search__btn:disabled{opacity:.5;cursor:not-allowed}.order-date,.database-placeholder .hint,.timeline-step__date{color:#718096}.timeline-tag--disabled:not(.timeline-tag--active){color:#4a5568;background:#edf2f7;border-color:#cbd5e0;opacity:1;font-style:italic}.timeline-tag:focus-visible{outline:2px solid #4299e1;outline-offset:2px}.admin-tab:focus-visible{outline:2px solid #4299e1;outline-offset:2px}.zip-detail-tab:focus-visible{outline:2px solid #4299e1;outline-offset:2px}.lifecycle-badge--pending{background-color:#6b7280;color:#fff}.lifecycle-badge--validated{background-color:#3b82f6;color:#fff}.lifecycle-badge--queued{background-color:#8b5cf6;color:#fff}.lifecycle-badge--processing{background-color:#f59e0b;color:#fff}.lifecycle-badge--completed{background-color:#10b981;color:#fff}.lifecycle-badge--in-review{background-color:#ec4899;color:#fff}.lifecycle-badge--accepted{background-color:#059669;color:#fff}.lifecycle-badge--rejected{background-color:#ef4444;color:#fff}.lifecycle-badge--failed{background-color:#dc2626;color:#fff}.protocol-card-full__review-lock{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:#fdf2f8;border:1px solid #f9a8d4;border-radius:6px;font-size:.75rem;color:#9d174d}.protocol-card-full__review-lock-user{font-weight:600}.protocol-card-full__review-lock-time{color:#be185d;font-size:.6875rem}.protocol-review-btn--start-review{background:#7c3aed;color:#fff;box-shadow:0 1px 2px #7c3aed40}.protocol-review-btn--start-review:hover:not(:disabled){background:#6d28d9;box-shadow:0 2px 4px #7c3aed4d}.protocol-review-btn--geosweb{background:#0891b2;color:#fff}.protocol-review-btn--geosweb:hover:not(:disabled){background:#0e7490;box-shadow:0 2px 4px #0891b24d}.protocol-review-btn--cancel-review{background:#6b7280;color:#fff}.protocol-review-btn--cancel-review:hover:not(:disabled){background:#4b5563}.protocol-review-bar--in-review{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-color:#ec4899}.protocol-review-bar--in-review .protocol-review-bar__label{color:#9d174d}.protocol-review-locked{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;margin-bottom:.75rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;font-size:.8125rem;color:#6b7280}.protocol-review-locked__user{font-weight:600;color:#374151}.protocol-card-full__retry-count{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#fef3c7;border:1px solid #fbbf24;border-radius:4px;font-size:.6875rem;font-weight:600;color:#92400e}.protocol-detail-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.protocol-detail-modal{background:#fff;border-radius:10px;box-shadow:0 8px 32px #0000002e;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.protocol-detail-modal__header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:1}.protocol-detail-modal__title{font-size:15px;font-weight:600;color:#111827;margin:0}.protocol-detail-modal__close{background:none;border:none;cursor:pointer;color:#6b7280;font-size:20px;line-height:1;padding:4px 8px;border-radius:4px;transition:background .15s,color .15s}.protocol-detail-modal__close:hover{background:#f3f4f6;color:#111827}.protocol-detail-modal__body{padding:20px;display:flex;flex-direction:column;gap:24px}.protocol-detail-modal__timeline{display:flex;flex-direction:column;gap:0}.protocol-detail-modal__stage{display:flex;gap:14px;position:relative}.protocol-detail-modal__stage:not(:last-child):after{content:"";position:absolute;left:9px;top:22px;bottom:-10px;width:2px;background:#e5e7eb}.protocol-detail-modal__stage--done:after{background:#22c55e!important}.protocol-detail-modal__stage-dot{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;background:#f9fafb;flex-shrink:0;margin-top:2px;position:relative;z-index:1}.protocol-detail-modal__stage--done .protocol-detail-modal__stage-dot{background:#22c55e;border-color:#22c55e}.protocol-detail-modal__stage--current .protocol-detail-modal__stage-dot{background:#3b82f6;border-color:#3b82f6}.protocol-detail-modal__stage--error .protocol-detail-modal__stage-dot{background:#ef4444;border-color:#ef4444}.protocol-detail-modal__stage-info{display:flex;flex-direction:column;padding-bottom:18px;flex:1}.protocol-detail-modal__stage-name{font-size:13px;font-weight:600;color:#374151;margin-bottom:2px}.protocol-detail-modal__stage--done .protocol-detail-modal__stage-name,.protocol-detail-modal__stage--current .protocol-detail-modal__stage-name{color:#111827}.protocol-detail-modal__stage-date{font-size:12px;color:#9ca3af}.protocol-detail-modal__stage--done .protocol-detail-modal__stage-date{color:#6b7280}.protocol-detail-modal__meta{display:flex;flex-direction:column;gap:8px;background:#f9fafb;border-radius:8px;padding:14px 16px;border:1px solid #e5e7eb}.protocol-detail-modal__meta-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:13px}.protocol-detail-modal__meta-label{color:#6b7280;font-weight:500;flex-shrink:0}.protocol-detail-modal__meta-value{color:#111827;font-weight:500;text-align:right;word-break:break-all}.protocol-detail-modal__meta-value--match{color:#22c55e}.protocol-detail-modal__meta-value--mismatch{color:#ef4444}.protocol-detail-modal__error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 14px}.protocol-detail-modal__error-code{font-size:12px;font-weight:700;color:#dc2626;margin-bottom:4px}.protocol-detail-modal__error-message{font-size:12px;color:#b91c1c;line-height:1.5}.protocol-detail-modal__rejection{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:12px 14px}.protocol-detail-modal__rejection-label{font-size:12px;font-weight:700;color:#c2410c;margin-bottom:4px}.protocol-detail-modal__rejection-reason{font-size:12px;color:#9a3412;line-height:1.5}.protocol-card-full__detail-btn{font-size:11px;padding:3px 10px;border-radius:4px;border:1px solid #d1d5db;background:#f9fafb;color:#374151;cursor:pointer;font-weight:500;transition:background .15s,border-color .15s;white-space:nowrap}.protocol-card-full__detail-btn:hover{background:#e5e7eb;border-color:#9ca3af}.protocol-queue-btn{background:#22c55e;color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.protocol-queue-btn:hover:not(:disabled){background:#16a34a}.protocol-queue-btn:disabled{background:#d1d5db;cursor:not-allowed}.msd{position:relative;display:inline-flex;align-items:center}.msd__trigger{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1.5px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:.78rem;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s;white-space:nowrap}.msd__trigger:hover{border-color:#2563eb;color:#1d4ed8}.msd__trigger--active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.msd__icon{width:13px;height:13px;flex-shrink:0}.msd__label{line-height:1}.msd__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#2563eb;color:#fff;border-radius:10px;font-size:.7rem;font-weight:600;line-height:1}.msd__arrow{width:10px;height:6px;flex-shrink:0;transition:transform .15s}.msd__arrow--open{transform:rotate(180deg)}.msd__dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:210px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;overflow:hidden}.msd__search-wrap{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #f3f4f6}.msd__search-icon{width:13px;height:13px;color:#9ca3af;flex-shrink:0}.msd__search{flex:1;border:none;outline:none;font-size:.8rem;color:#374151;background:transparent}.msd__search::placeholder{color:#9ca3af}.msd__search-clear{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1rem;line-height:1;padding:0}.msd__search-clear:hover{color:#374151}.msd__options{max-height:220px;overflow-y:auto;padding:4px 0}.msd__option{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;transition:background .1s}.msd__option:hover{background:#f9fafb}.msd__checkbox{width:15px;height:15px;accent-color:#2563eb;cursor:pointer;flex-shrink:0}.msd__option-label{font-size:.82rem;color:#374151;line-height:1.3}.msd__empty{padding:10px 12px;font-size:.8rem;color:#9ca3af;text-align:center}.msd__badge--empty{background:#ef4444}.msd__footer{border-top:1px solid #f3f4f6;padding:6px 10px;display:flex;gap:8px}.msd__action{background:none;border:none;font-size:.75rem;color:#2563eb;cursor:pointer;padding:0}.msd__action:hover{text-decoration:underline}.msd__action--danger{color:#dc2626}.celebration-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .8s ease}.celebration-fade-out{opacity:0}.celebration-card{background:#fff;border-radius:16px;padding:2.5rem 3rem;text-align:center;box-shadow:0 12px 48px #00000040;max-width:420px;width:90%;animation:celebration-pop .4s ease-out}@keyframes celebration-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.celebration-check{width:56px;height:56px;margin:0 auto 1rem;background:#16a34a;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;line-height:1}.celebration-headline{font-size:1.5rem;font-weight:700;color:#15803d;margin-bottom:.5rem}.celebration-sub{font-size:1rem;color:#333;margin-bottom:.25rem}.celebration-detail{font-size:.875rem;color:#6b7280}
