.App{min-height:100vh}.field-error,.field-error input,.field-error select,.field-error textarea{border-color:#dc2626!important;box-shadow:0 0 0 1px #dc2626!important}.field-error input:focus,.field-error select:focus,.field-error textarea:focus,.field-error:focus{outline-color:#dc2626}body{background:#0f172a;color:#e2e8f0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Helvetica Neue,sans-serif;margin:0}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#94a3b840;background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b873;background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-corner{background:#0000}*{scrollbar-color:#94a3b84d #0000;scrollbar-width:thin}.page-title{margin:1.25rem 1.5rem 1rem}.page-title-inline{color:#e2e8f0;font-size:1.5rem;font-weight:700;margin:0}.data-table{background:#1e293b;border-collapse:collapse;border-radius:10px;overflow:hidden;width:100%}.data-table td,.data-table th{border-bottom:1px solid #334155;font-size:.875rem;padding:.75rem 1rem;text-align:left}.data-table th{background:#0f172a;color:#94a3b8;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:#334155}.data-table td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.data-table .action-link{background:none;border:none;color:#60a5fa;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;margin:0;padding:0;text-decoration:none}.data-table .action-link:hover{text-decoration:underline}.data-table .action-link.danger{color:#f87171}.data-table .action-link.warning{color:#fbbf24}.data-table .action-link.success{color:#34d399}.data-table .action-link:disabled{cursor:not-allowed;opacity:.4;text-decoration:none}.data-table .col-center{text-align:center}.data-table .col-center input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;height:18px;vertical-align:middle;width:18px}.data-table .col-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.data-table .col-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap}.data-table td.col-mono{color:#cbd5e1}.data-table .col-date{white-space:nowrap}.data-table td.col-date{color:#cbd5e1}.data-table .col-nowrap{white-space:nowrap}.data-table .col-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table .col-icon{font-size:0;text-align:center}.data-table .col-icon>*{font-size:1rem}.data-table .actions-cell,.data-table .col-actions{text-align:left;white-space:nowrap}.data-table .actions-cell>*+*,.data-table .col-actions>*+*{border-left:1px solid #64748b;margin-left:.55rem;padding-left:.55rem}.data-table .action-button{background:#0000;border:1px solid #475569;border-radius:4px;color:#cbd5e1;cursor:pointer;display:inline-block;font-family:inherit;font-size:.75rem;padding:.35rem .7rem;text-decoration:none;white-space:nowrap}.data-table .action-button:hover:not(:disabled){background:#334155;color:#e2e8f0}.data-table .action-button:disabled{cursor:not-allowed;opacity:.4}.data-table .action-button.danger{border-color:#7f1d1d;color:#fca5a5}.data-table .action-button.danger:hover:not(:disabled){background:#7f1d1d;color:#fee2e2}.data-table .link-icon{cursor:help;display:inline-block;font-size:1.5rem;line-height:1;-webkit-user-select:none;user-select:none}.data-table .link-icon.linked{opacity:1}.data-table .link-icon.unlinked{cursor:default;opacity:.35}.cell-empty{display:inline-block;font-size:1.5rem;line-height:1;opacity:.35;-webkit-user-select:none;user-select:none}.data-table .link-icon.link-icon-circle{background:#94a3b8;border-radius:50%;box-shadow:0 1px 2px #0000004d;font-size:1.1rem;height:1.6rem;line-height:1;width:1.6rem}.btn,.data-table .link-icon.link-icon-circle{align-items:center;display:inline-flex;justify-content:center}.btn{border:1px solid #0000;border-radius:6px;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;gap:.375rem;padding:.5rem 1rem;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#1e293b;border-color:#475569;color:#cbd5e1}.btn-secondary:hover:not(:disabled){background:#334155}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-link{background:#0000;color:#60a5fa;font-weight:500;padding:.25rem .5rem}.btn-link:hover:not(:disabled){text-decoration:underline}.dropdown{display:inline-block;position:relative}.dropdown-trigger{align-items:center;background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;cursor:pointer;display:inline-flex;font-size:.85rem;gap:.5rem;min-width:140px;padding:.375rem .625rem;text-align:left}.dropdown-trigger:hover{border-color:#64748b}.dropdown.open .dropdown-trigger{border-color:#3b82f6}.dropdown-trigger-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-caret{color:#94a3b8;font-size:1rem;line-height:1}.dropdown-menu{background:#0f172a;border:1px solid #475569;border-radius:6px;box-shadow:0 8px 16px #0006;left:0;list-style:none;margin:0;max-height:320px;min-width:100%;overflow-y:auto;padding:.25rem;position:absolute;top:calc(100% + .25rem);z-index:50}.dropdown-item{align-items:center;border-radius:4px;color:#cbd5e1;cursor:pointer;display:flex;font-size:.85rem;gap:.25rem;padding:.45rem .625rem;-webkit-user-select:none;user-select:none;white-space:nowrap}.dropdown-item:hover{background:#1e3a8a;color:#fff}.dropdown-item.active{color:#e2e8f0;font-weight:600}.dropdown-check{align-items:center;color:#60a5fa;display:inline-flex;flex-shrink:0;font-size:.8rem;font-weight:700;justify-content:center;width:12px}.dropdown-label{flex:1 1}.dropdown-label.muted{color:#64748b;font-style:italic}.notification{align-items:center;border:1px solid;border-radius:6px;display:flex;font-size:.875rem;gap:.6rem;line-height:1.3;margin-bottom:1rem;overflow:hidden;padding:.75rem 1rem;position:relative}.notification-icon{flex:0 0 auto;font-size:1rem;line-height:1}.notification-message{flex:1 1 auto;min-width:0;word-break:break-word}.notification>button.notification-close{background:none;border:none;border-radius:0;box-shadow:none;color:inherit;cursor:pointer;flex:0 0 auto;font-size:1.1rem;font-weight:400;height:auto;line-height:1;margin:0;opacity:.8;padding:0;transition:opacity .12s;width:auto}.notification>button.notification-close:hover:not(:disabled){background:none;opacity:1}.notification-progress{animation:notification-progress-shrink linear forwards;height:3px;left:0;position:absolute;top:0;transform-origin:left center;width:100%}@keyframes notification-progress-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.notification-error{background:#7f1d1d;border-color:#b91c1c;color:#fee2e2}.notification-error .notification-progress{background:#fca5a5}.notification-warning{background:#854d0e;border-color:#ca8a04;color:#fef3c7}.notification-warning .notification-progress{background:#fde68a}.notification-info{background:#1e3a8a;border-color:#3b82f6;color:#dbeafe}.notification-info .notification-progress{background:#93c5fd}.notification-success{background:#14532d;border-color:#22c55e;color:#dcfce7}.notification-success .notification-progress{background:#86efac}.filter-bar{margin-bottom:1rem}.filter-bar,.filter-bar-main{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem}.filter-bar-sort{align-items:flex-end;display:flex;gap:.5rem;margin-left:auto}.filter-field{display:flex;flex-direction:column;gap:.3rem;min-width:140px}.filter-field-label{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.filter-field-control{display:flex}.feedback-modal-backdrop{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.feedback-modal{background:#1e293b;border:1px solid #334155;border-radius:12px;color:#e2e8f0;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);overflow-y:auto;width:min(560px,calc(100vw - 2rem))}.feedback-modal-header{align-items:center;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:1rem 1.25rem}.feedback-modal-header h2{font-size:1.1rem;margin:0}.feedback-modal-close{background:#0000;border:none;color:#94a3b8;cursor:pointer;font-size:1.5rem;line-height:1;padding:0 .25rem}.feedback-modal-close:hover{color:#e2e8f0}.feedback-modal-body{display:flex;flex-direction:column;gap:.9rem;padding:1rem 1.25rem}.feedback-field{display:flex;flex-direction:column;gap:.35rem}.feedback-field-label{color:#cbd5e1;font-size:.8rem;font-weight:600}.feedback-field input,.feedback-field select,.feedback-field textarea{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-family:inherit;font-size:.9rem;padding:.5rem .65rem}.feedback-field textarea{min-height:80px;resize:vertical}.feedback-field input[type=file]{padding:.35rem}.feedback-file-list{display:flex;flex-direction:column;gap:.25rem;list-style:none;margin:.35rem 0 0;padding:0}.feedback-file-list li{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:4px;display:flex;font-size:.8rem;gap:.5rem;padding:.35rem .5rem}.feedback-file-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback-file-size{font-feature-settings:"tnum";color:#94a3b8;font-variant-numeric:tabular-nums}.feedback-file-remove{background:#0000;border:none;color:#fca5a5;cursor:pointer;font-size:1rem;line-height:1;padding:0 .25rem}.feedback-meta{background:#0f172a;border-radius:6px;color:#94a3b8;display:flex;flex-direction:column;font-size:.75rem;gap:.2rem;padding:.5rem .65rem;word-break:break-all}.feedback-meta-label{color:#cbd5e1;font-weight:600;margin-right:.25rem}.feedback-error{background:#7f1d1d;border:1px solid #b91c1c;border-radius:6px;color:#fee2e2}.feedback-error,.feedback-success{font-size:.85rem;padding:.5rem .7rem}.feedback-success{background:#14532d;border:1px solid #166534;border-radius:6px;color:#dcfce7}.feedback-modal-footer{border-top:1px solid #334155;display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1.25rem 1rem}.feedback-btn{border:1px solid #334155;border-radius:6px;cursor:pointer;font-family:inherit;font-size:.9rem;padding:.5rem 1rem}.feedback-btn-secondary{background:#0f172a;color:#cbd5e1}.feedback-btn-secondary:hover{background:#1e293b}.feedback-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.feedback-btn-primary:hover:not(:disabled){background:#1d4ed8}.feedback-btn:disabled{cursor:not-allowed;opacity:.55}.feedback-row{display:flex;gap:.75rem}.feedback-field-half{flex:1 1}.feedback-trigger-wrap{align-items:center;display:inline-flex;position:relative}.feedback-trigger{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:50%;color:#94a3b8;cursor:pointer;display:inline-flex;font-size:1.15rem;font-weight:700;height:2.25rem;justify-content:center;line-height:1;transition:color .15s,background .15s,border-color .15s;width:2.25rem}.feedback-trigger:hover{background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.feedback-trigger-compact{font-size:.95rem;height:2rem;width:2rem}.feedback-success-bubble{animation:feedback-success-pop .22s ease-out,feedback-success-fade .4s ease-in 4.1s forwards;background:#065f46;border:1px solid #10b981;border-radius:10px;box-shadow:0 8px 24px #00000073;color:#d1fae5;cursor:pointer;font-size:.85rem;line-height:1.3;padding:.55rem .85rem;position:absolute;right:0;top:calc(100% + 10px);white-space:nowrap;z-index:1000}.feedback-success-bubble-title{color:#fff;font-size:.9rem;font-weight:700;margin-bottom:.1rem}.feedback-success-bubble-body{color:#d1fae5}.feedback-success-bubble code{background:#ffffff1f;border-radius:3px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.78rem;margin:0 .2rem;padding:0 .3rem}.feedback-success-bubble:after,.feedback-success-bubble:before{border-style:solid;content:"";height:0;position:absolute;right:14px;width:0}.feedback-success-bubble:before{border-color:#0000 #0000 #10b981;border-width:0 9px 9px;top:-9px}.feedback-success-bubble:after{border-color:#0000 #0000 #065f46;border-width:0 8px 8px;top:-7px}@keyframes feedback-success-pop{0%{opacity:0;transform:translateY(-6px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes feedback-success-fade{to{opacity:0;transform:translateY(-6px) scale(.97)}}.user-menu{position:relative}.user-avatar{align-items:center;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:700;height:36px;justify-content:center;transition:transform .1s,box-shadow .15s;width:36px}.user-avatar:hover{box-shadow:0 0 0 3px #3b82f640}.user-avatar:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.user-avatar.large{font-size:1.5rem;height:56px;width:56px}.user-menu-dropdown{animation:menuSlide .12s ease-out;background:#1e293b;border:1px solid #334155;border-radius:10px;box-shadow:0 8px 24px #0006;min-width:240px;padding:.5rem;position:absolute;right:0;top:calc(100% + .5rem);z-index:100}@keyframes menuSlide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{align-items:center;border-bottom:1px solid #334155;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem;padding:.75rem .5rem 1rem}.user-menu-email{color:#e2e8f0;font-size:.875rem;text-align:center;word-break:break-all}.user-menu-roles{color:#94a3b8;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.user-menu-item{align-items:center;background:#0000;border:none;border-radius:6px;color:#cbd5e1;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.625rem .75rem;text-align:left;width:100%}.user-menu-item:hover{background:#334155;color:#e2e8f0}.user-menu-logout{border-radius:0 0 6px 6px;border-top:1px solid #334155;color:#fca5a5;margin-top:.25rem;padding-top:.625rem}.user-menu-logout:hover{background:#7f1d1d;color:#fee2e2}.navbar{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;gap:1.5rem;padding:.625rem 1.5rem}.navbar-brand{flex-shrink:0}.navbar-logo{color:#e2e8f0;font-size:1.1rem;font-weight:700;letter-spacing:.02em;text-decoration:none}.navbar-logo:hover{color:#60a5fa}.navbar-items{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:.25rem}.navbar-link{border-radius:6px;color:#94a3b8;font-size:.875rem;font-weight:500;padding:.5rem .875rem;position:relative;text-decoration:none;transition:color .15s,background .15s}.navbar-link:hover{background:#0f172a;color:#e2e8f0}.navbar-link.active{background:#1e3a8a;color:#fff}.navbar-right{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.navbar-help{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:50%;color:#94a3b8;display:inline-flex;font-size:1.15rem;font-weight:700;height:2.25rem;justify-content:center;text-decoration:none;transition:color .15s,background .15s,border-color .15s;width:2.25rem}.navbar-help:hover{background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.page-layout{background:#0f172a;color:#e2e8f0;min-height:100vh}.page-content{margin:0 auto;max-width:1100px;padding:1.5rem}.page-content.wide{max-width:1280px}.page-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.page-title{color:#e2e8f0;font-size:1.5rem;font-weight:700;margin:0}.page-actions{align-items:center;display:flex;gap:.75rem}.sort-control-dir{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#cbd5e1;cursor:pointer;font-family:inherit;font-size:.95rem;line-height:1;padding:.375rem .75rem;transition:background .15s,color .15s,border-color .15s}.sort-control-dir:hover{background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.fb-empty{color:#94a3b8;font-style:italic}.fb-table .fb-code{font-feature-settings:"tnum";color:#e2e8f0;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.fb-table .fb-reporter{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-table .fb-date{color:#cbd5e1;white-space:nowrap}.fb-priority,.fb-status{border-radius:9999px;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:.2rem .55rem;text-transform:uppercase}.fb-status-open{background:#1e40af;color:#dbeafe}.fb-status-in_progress{background:#92400e;color:#fef3c7}.fb-status-resolved{background:#14532d;color:#dcfce7}.fb-status-wont_fix{background:#334155;color:#cbd5e1}.fb-status-duplicate{background:#4a044e;color:#f5d0fe}.fb-priority-low{background:#334155;color:#cbd5e1}.fb-priority-medium{background:#1e3a8a;color:#dbeafe}.fb-priority-high{background:#9a3412;color:#fed7aa}.fb-priority-critical{background:#7f1d1d;color:#fee2e2}.fb-detail-modal{background:#1e293b;border:1px solid #334155;border-radius:12px;color:#e2e8f0;max-height:calc(100vh - 2rem);overflow-y:auto;width:min(760px,calc(100vw - 2rem))}.fb-detail-body,.fb-detail-modal{display:flex;flex-direction:column}.fb-detail-body{gap:1rem;padding:1rem 1.25rem}.fb-detail-meta{grid-gap:.35rem 1rem;background:#0f172a;border-radius:6px;color:#cbd5e1;display:grid;font-size:.85rem;gap:.35rem 1rem;grid-template-columns:1fr 1fr;padding:.6rem .75rem}.fb-detail-meta span{color:#94a3b8;font-weight:600;margin-right:.35rem}.fb-detail-ua,.fb-detail-url{grid-column:1/-1;word-break:break-all}.fb-detail-ua{font-size:.75rem}.fb-detail-admin-form h3,.fb-detail-attachments h3,.fb-detail-description h3{color:#94a3b8;font-size:.8rem;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.fb-detail-description p{font-size:.9rem;line-height:1.5;margin:0;white-space:pre-wrap}.fb-attachments-grid{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.fb-attachment{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#cbd5e1;display:flex;flex-direction:column;font-size:.7rem;gap:.25rem;padding:.35rem;text-decoration:none}.fb-attachment:hover{border-color:#60a5fa}.fb-attachment img{background:#020617;border-radius:4px;height:110px;object-fit:cover;width:100%}.fb-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-admin-row{display:flex;gap:1rem;margin-bottom:.5rem}.fb-admin-row label{color:#cbd5e1;display:flex;flex:1 1;flex-direction:column;font-size:.8rem;gap:.25rem}.fb-admin-row select{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-family:inherit;padding:.45rem .55rem}.fb-admin-notes{color:#cbd5e1;display:flex;flex-direction:column;font-size:.8rem;gap:.25rem}.fb-admin-notes textarea{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-family:inherit;font-size:.85rem;padding:.5rem .65rem;resize:vertical}.fb-type{border-radius:9999px;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:.2rem .55rem;text-transform:uppercase}.fb-type-bug{background:#7f1d1d;color:#fee2e2}.fb-type-suggestion{background:#1e40af;color:#dbeafe}.fb-type-question{background:#4a044e;color:#f5d0fe}.dashboard-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.dashboard-content{margin:0 auto;max-width:1200px;padding:1.5rem}.dashboard-title{color:#e2e8f0;font-size:1.5rem;margin:0 0 1.25rem}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;margin-left:auto;margin-right:auto;max-width:1200px}.dashboard-header h1{display:inline-block;font-size:1.5rem;margin:0}.dashboard-header .subtitle{color:#94a3b8;font-size:.95rem;margin-left:.75rem}.dashboard-header .header-right{align-items:center;display:flex;font-size:.85rem;gap:.75rem}.dashboard-header .back-link{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#60a5fa;font-size:.875rem;padding:.5rem .75rem;text-decoration:none}.dashboard-header .back-link:hover{background:#334155}.dashboard-header .user-info{color:#cbd5e1}.dashboard-header .user-role{color:#94a3b8;font-size:.75rem}.dashboard-header .logout-button{background:#1e293b;border:1px solid #475569;border-radius:6px;color:#cbd5e1;cursor:pointer;font-size:.85rem;padding:.375rem .75rem}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0 auto;max-width:1200px}.dashboard-card{background:#1e293b;border:1px solid #334155;border-radius:12px;color:inherit;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;text-decoration:none;transition:transform .15s,border-color .15s,background .15s}.dashboard-card:hover{background:#1e3a8a;border-color:#3b82f6;transform:translateY(-2px)}.dashboard-card.card-secondary{background:#0f172a}.dashboard-card.card-secondary:hover{background:#1e293b}.card-icon{font-size:2rem;line-height:1}.card-title{color:#e2e8f0;font-size:1.15rem;font-weight:700}.card-desc{color:#94a3b8;font-size:.85rem;line-height:1.4}.card-feedback-breakdown{display:flex;flex-direction:column;gap:.15rem}.card-feedback-breakdown strong{font-feature-settings:"tnum";color:#e2e8f0;display:inline-block;font-variant-numeric:tabular-nums;margin-right:.35rem;min-width:1.25ch;text-align:right}.empty-state{color:#94a3b8;padding:3rem 1.5rem;text-align:center}.empty-state-title{color:#cbd5e1;font-size:1rem;margin:0 0 .5rem}.empty-state-desc{font-size:.875rem;margin:0}.empty-state-action{margin-top:1rem}.progress-section{background:#1e293b;border:1px solid #334155;border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.25rem}.progress-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.75rem}.progress-header h3{color:#e2e8f0;font-size:.95rem;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.progress-fraction{font-feature-settings:"tnum";color:#cbd5e1;font-size:.95rem;font-variant-numeric:tabular-nums}.progress-fraction strong{color:#e2e8f0;font-size:1.25rem;font-weight:700;margin-right:.25rem}.progress-fraction .progress-divider{color:#64748b;margin:0 .15rem}.progress-bar-wrap{padding-bottom:3rem;position:relative}.progress-bar{background:#0f172a;border:1px solid #334155;border-radius:999px;display:flex;height:22px;overflow:hidden;position:relative;width:100%}.progress-seg{height:100%;position:relative;transition:width .3s ease}.progress-endpoint{align-items:center;color:#e2e8f0;display:flex;flex-direction:column;gap:1px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:left .3s ease}.endpoint-approved,.progress-endpoint:only-child{top:24px}.endpoint-approved .progress-endpoint-arrow{color:#16a34a}.endpoint-in-progress{top:24px;z-index:1}.endpoint-in-progress .progress-endpoint-arrow{color:#ca8a04}.endpoint-approved{z-index:2}.endpoint-small .progress-endpoint-shaft{background:#a16207;height:18px;width:1.5px}.progress-endpoint-arrow{color:#94a3b8;font-size:.55rem;line-height:1}.progress-endpoint-pct{font-feature-settings:"tnum";font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:700}.seg-approved{background:#16a34a}.seg-in-progress{background:#eab30873}.seg-uploaded{background:#3b82f6}.progress-seg[data-tooltip]:hover:after{border-radius:6px;bottom:calc(100% + 8px);box-shadow:0 4px 12px #0000004d;color:#0f172a;content:attr(data-tooltip);font-size:.75rem;font-weight:600;left:50%;padding:.35rem .65rem;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:5}.seg-approved[data-tooltip]:hover:after{background:#bbf7d0;border:1px solid #16a34a;color:#14532d}.seg-in-progress[data-tooltip]:hover:after{background:#fef9c3;border:1px solid #eab308;color:#713f12}.seg-uploaded[data-tooltip]:hover:after{background:#dbeafe;border:1px solid #3b82f6;color:#1e3a8a}.progress-seg[data-tooltip]:hover:before{border:5px solid #0000;bottom:calc(100% + 3px);content:"";left:50%;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:5}.seg-approved[data-tooltip]:hover:before{border-top-color:#16a34a}.seg-in-progress[data-tooltip]:hover:before{border-top-color:#eab308}.seg-uploaded[data-tooltip]:hover:before{border-top-color:#3b82f6}.progress-legend{color:#94a3b8;display:flex;flex-wrap:wrap;font-size:.8rem;gap:1.25rem;list-style:none;margin:.75rem 0 0;padding:0}.progress-legend li{align-items:center;display:inline-flex;gap:.4rem}.progress-legend strong{font-feature-settings:"tnum";color:#e2e8f0;font-variant-numeric:tabular-nums;margin-left:.25rem}.progress-legend .legend-muted{color:#64748b}.legend-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.dot-approved{background:#16a34a}.dot-in-progress{background:#eab308}.dot-uploaded{background:#3b82f6}.progress-cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(4,1fr);margin-top:.5rem}@media (max-width:900px){.progress-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.progress-cards{grid-template-columns:1fr}}.progress-card{background:#0f172a;border:1px solid #334155;border-radius:6px;display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem}.progress-card .card-label{color:#64748b;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}.progress-card .card-value{font-feature-settings:"tnum";color:#e2e8f0;font-size:1.35rem;font-variant-numeric:tabular-nums;font-weight:700}.progress-card.card-blue{border-left:3px solid #3b82f6}.progress-card.card-blue .card-value{color:#bfdbfe}.progress-card.card-yellow{border-left:3px solid #eab308}.progress-card.card-yellow .card-value{color:#fde68a}.progress-card.card-green{border-left:3px solid #16a34a}.progress-card.card-green .card-value{color:#bbf7d0}.progress-card.card-red{border-left:3px solid #dc2626}.progress-card.card-red .card-value{color:#fecaca}.progress-section-title{color:#94a3b8;font-size:.8rem;font-weight:700;letter-spacing:.06em;margin:1.25rem 0 .5rem;text-transform:uppercase}.progress-divider-line{border:none;border-top:1px solid #334155;margin:1.5rem 0 0}.flow-diagram{align-items:center;display:flex;flex-direction:column;gap:.25rem;overflow-x:auto;padding:.25rem 0}.flow-row{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;max-width:900px;width:100%}.flow-card{justify-content:center;min-height:76px}.flow-arrow{color:#64748b;font-size:1.4rem;line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.flow-arrow-bidir{align-items:center;display:flex;flex-direction:column;gap:2px;line-height:1}.flow-arrow-bidir .flow-arrow-top{color:#94a3b8;font-size:1.1rem}.flow-arrow-bidir .flow-arrow-bot,.flow-arrow-down,.flow-arrow-up{color:#eab30880;font-size:1.1rem}.flow-row-loop{min-height:24px}.flow-row-loop .flow-arrow-up{grid-column:3;justify-self:center}.flow-row-loop .flow-loop-label{color:#64748b;font-size:.65rem;grid-column:4;letter-spacing:.04em;text-align:center;text-transform:uppercase}.flow-row-loop .flow-arrow-down{grid-column:5;justify-self:center}.flow-card-rejected{grid-column:3/6;justify-self:stretch}@media (max-width:720px){.flow-row,.flow-row-rejected{gap:.4rem;grid-template-columns:1fr}.flow-row .flow-arrow,.flow-row-loop{display:none}.flow-card-rejected{grid-column:1}}.progress-section-title.audit-title{margin-bottom:1.5rem}.audit-table-wrap{margin-top:.75rem;overflow-x:auto}.audit-table th{white-space:nowrap}.audit-status-badge{border-radius:4px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.15rem .55rem;text-transform:uppercase;white-space:nowrap}.audit-status-badge.status-draft{background:#1e3a8a;color:#bfdbfe}.audit-status-badge.status-submitted{background:#581c87;color:#e9d5ff}.audit-status-badge.status-approved{background:#14532d;color:#bbf7d0}.audit-status-badge.status-rejected{background:#7f1d1d;color:#fecaca}.audit-pagination{align-items:center;color:#cbd5e1;display:flex;font-size:.85rem;gap:1rem;justify-content:space-between;margin-top:.75rem;padding:.5rem 0}.audit-pagination-info{font-feature-settings:"tnum";color:#94a3b8;font-variant-numeric:tabular-nums}.audit-pagination-controls{align-items:center;display:flex;gap:.75rem}.audit-pagination-page{font-feature-settings:"tnum";color:#cbd5e1;font-variant-numeric:tabular-nums}.audit-pagination-btn{background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:.85rem;padding:.35rem .75rem;transition:background .15s,border-color .15s}.audit-pagination-btn:hover:not(:disabled){background:#334155;border-color:#475569}.audit-pagination-btn:disabled{cursor:not-allowed;opacity:.4}@media (max-width:720px){.audit-pagination{align-items:flex-start;flex-direction:column;gap:.5rem}}.cell-tt{align-items:center;display:inline-flex;outline:none;position:relative}.cell-tt-bubble{background:#0f172a;border:1px solid #475569;border-radius:8px;box-shadow:0 8px 24px #00000080;color:#e2e8f0;font-size:.85rem;line-height:1.35;opacity:0;padding:.55rem .8rem;pointer-events:none;position:absolute;transition:opacity .12s ease,transform .12s ease;white-space:nowrap;z-index:60}.cell-tt:focus-within .cell-tt-bubble,.cell-tt:hover .cell-tt-bubble{opacity:1}.cell-tt-label{color:#94a3b8;display:block;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-bottom:.15rem;text-transform:uppercase}.cell-tt-content{color:#e2e8f0;display:block;font-weight:500}.cell-tt-bubble:after,.cell-tt-bubble:before{border-style:solid;content:"";height:0;position:absolute;width:0}.cell-tt-top .cell-tt-bubble{bottom:calc(100% + 8px);left:50%;transform:translate(-50%,-4px)}.cell-tt-top:focus-within .cell-tt-bubble,.cell-tt-top:hover .cell-tt-bubble{transform:translate(-50%)}.cell-tt-top .cell-tt-bubble:after,.cell-tt-top .cell-tt-bubble:before{left:50%;transform:translateX(-50%)}.cell-tt-top .cell-tt-bubble:before{border-color:#475569 #0000 #0000;border-width:9px 9px 0;bottom:-9px}.cell-tt-top .cell-tt-bubble:after{border-color:#0f172a #0000 #0000;border-width:8px 8px 0;bottom:-7px}.cell-tt-bottom .cell-tt-bubble{left:50%;top:calc(100% + 8px);transform:translate(-50%,4px)}.cell-tt-bottom:focus-within .cell-tt-bubble,.cell-tt-bottom:hover .cell-tt-bubble{transform:translate(-50%)}.cell-tt-bottom .cell-tt-bubble:after,.cell-tt-bottom .cell-tt-bubble:before{left:50%;transform:translateX(-50%)}.cell-tt-bottom .cell-tt-bubble:before{border-color:#0000 #0000 #475569;border-width:0 9px 9px;top:-9px}.cell-tt-bottom .cell-tt-bubble:after{border-color:#0000 #0000 #0f172a;border-width:0 8px 8px;top:-7px}.cell-tt-right .cell-tt-bubble{left:calc(100% + 8px);top:50%;transform:translate(4px,-50%)}.cell-tt-right:focus-within .cell-tt-bubble,.cell-tt-right:hover .cell-tt-bubble{transform:translateY(-50%)}.cell-tt-right .cell-tt-bubble:after,.cell-tt-right .cell-tt-bubble:before{top:50%;transform:translateY(-50%)}.cell-tt-right .cell-tt-bubble:before{border-color:#0000 #475569 #0000 #0000;border-width:9px 9px 9px 0;right:100%}.cell-tt-right .cell-tt-bubble:after{border-color:#0000 #0f172a #0000 #0000;border-width:8px 8px 8px 0;right:calc(100% - 2px)}.confirm-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:200}.confirm-dialog{animation:confirmSlideIn .15s ease-out;background:#1e293b;border:1px solid #334155;border-radius:12px;max-width:560px;padding:1.5rem 2rem;width:100%}.confirm-actions{flex-wrap:wrap}@keyframes confirmSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-title{color:#e2e8f0;font-size:1.125rem;margin:0 0 .5rem}.confirm-message{color:#94a3b8;font-size:.875rem;line-height:1.5;margin:0 0 1.25rem}.confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.confirm-cancel{background:#0000;border:1px solid #475569;border-radius:6px;color:#cbd5e1;cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.confirm-cancel:hover{background:#334155}.confirm-ok{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.confirm-ok:hover{background:#2563eb}.confirm-danger{background:#dc2626}.confirm-danger:hover{background:#b91c1c}.confirm-secondary{background:#0000;border:1px solid #475569;color:#cbd5e1}.confirm-secondary:hover{background:#334155}.confirm-ok:disabled{cursor:not-allowed;opacity:.5}.confirm-require{margin:0 0 1rem}.confirm-require label{color:#cbd5e1;display:flex;flex-direction:column;font-size:.85rem;gap:.5rem}.confirm-require strong{background:#f8717114;border-radius:4px;color:#fca5a5;font-family:monospace;padding:.1rem .35rem}.confirm-require input{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-family:monospace;font-size:.9rem;padding:.45rem .6rem}.confirm-require input:focus{border-color:#dc2626;outline:none}.centers-admin{background:#0f172a;color:#e2e8f0;min-height:100vh}.centers-header{align-items:center;display:flex;gap:1rem;margin:0 auto;max-width:900px;padding:1.5rem 1.5rem 1rem}.centers-header h1{flex:1 1;font-size:1.5rem;margin:0}.center-form{background:#1e293b;border:1px solid #334155;border-radius:10px;margin:0 auto 1.5rem;max-width:900px;padding:1.25rem}.center-form h3{color:#cbd5e1;font-size:.9rem;letter-spacing:.05em;margin:0 0 .75rem;text-transform:uppercase}.form-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:2fr 1fr}.form-row label{color:#94a3b8;display:flex;flex-direction:column;font-size:.8rem;gap:.25rem}.form-row input{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:.875rem;padding:.5rem .625rem}.form-row input:focus{border-color:#3b82f6;outline:none}.form-actions{margin-top:1rem}.primary-button,.secondary-button{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.secondary-button{background:#1e293b;border:1px solid #475569;color:#cbd5e1}.secondary-button:hover{background:#334155}.text-button{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.875rem;padding:0;text-decoration:underline}.text-button.danger{color:#f87171}.form-checkbox-row{align-items:center;color:#cbd5e1;display:flex;font-size:.85rem;gap:.5rem;margin-top:.75rem}.form-checkbox-row input{accent-color:#3b82f6;height:16px;width:16px}.staff-active-checkbox{accent-color:#3b82f6;cursor:pointer;height:18px;width:18px}.inline-edit-input{background:#0f172a;border:1px solid #3b82f6;border-radius:4px;box-sizing:border-box;color:#e2e8f0;font-family:inherit;font-size:inherit;padding:.35rem .5rem;width:100%}.inline-edit-input:focus{border-color:#60a5fa;box-shadow:0 0 0 2px #3b82f633;outline:none}.similar-warning{background:#eab3081f;border:1px solid #eab30873;border-radius:4px;color:#fde68a;font-size:.85rem;line-height:1.4;margin:.5rem 0 .75rem;padding:.6rem .8rem}.similar-warning-title{align-items:center;display:flex;font-weight:600;gap:.4rem;margin-bottom:.3rem}.similar-warning ul{list-style:none;margin:0;padding:0}.similar-warning li{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:.15rem 0}.similar-warning li .muted{color:#d1c48f;font-size:.8rem}.similar-warning-action{background:none;border:none;color:#93c5fd;cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:500;margin-left:.4rem;padding:0;text-decoration:underline}.similar-warning-action:hover{color:#bfdbfe}.similar-warning-action:focus-visible{border-radius:2px;outline:2px solid #93c5fd;outline-offset:2px}.users-admin-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.admin-header{align-items:center;display:flex;gap:1.5rem;margin:0 auto;max-width:1100px;padding:1.5rem 1.5rem 1rem}.admin-header h1{flex:1 1;font-size:1.5rem;margin:0}.back-link{color:#93c5fd}.back-link:hover{text-decoration:underline}.create-button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.625rem 1.25rem}.create-button:hover{background:#2563eb}.users-table{background:#1e293b;border:1px solid #334155;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.users-table td,.users-table th{border-bottom:1px solid #334155;padding:.75rem 1rem;text-align:left}.users-table th{background:#0f172a;color:#94a3b8;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.users-table tr.inactive{opacity:.5}.users-table input[type=checkbox]{accent-color:#3b82f6;height:18px;width:18px}.role-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .625rem;text-transform:uppercase}.role-badges{display:flex;flex-wrap:wrap;gap:.25rem}.link-icon-col{width:90px}.role-admin{background:#7f1d1d;color:#fecaca}.role-anotador{background:#78350f;color:#fef3c7}.role-revisor{background:#4c1d95;color:#ede9fe}.roles-fieldset{border:1px solid #334155;border-radius:6px;margin:0;padding:.75rem}.roles-fieldset legend{color:#cbd5e1;font-size:.875rem;padding:0 .375rem}.roles-checkboxes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.role-checkbox-label{align-items:center;cursor:pointer;display:flex;flex-direction:row;gap:.375rem}.role-checkbox-label input[type=checkbox]{accent-color:#3b82f6;height:16px;width:16px}.role-checkbox-label.is-implicit{cursor:not-allowed;opacity:.55}.role-checkbox-label.is-implicit input[type=checkbox]{accent-color:#64748b;cursor:not-allowed}.edit-user-email{color:#94a3b8;font-size:.875rem;margin:-.5rem 0 .75rem}.loading{color:#94a3b8;padding:4rem;text-align:center}.modal-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:#1e293b;border:1px solid #334155;border-radius:12px;max-width:420px;padding:2rem;width:100%}.modal h2{color:#e2e8f0;margin:0 0 1.5rem}.modal form{gap:1rem}.modal form,.modal label{display:flex;flex-direction:column}.modal label{color:#cbd5e1;font-size:.875rem;gap:.375rem}.modal input,.modal select{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:.875rem;padding:.625rem .75rem}.modal input:-webkit-autofill,.modal input:-webkit-autofill:active,.modal input:-webkit-autofill:focus,.modal input:-webkit-autofill:hover{-webkit-text-fill-color:#e2e8f0!important;-webkit-box-shadow:inset 0 0 0 1000px #0f172a!important;caret-color:#e2e8f0;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.new-staff-fieldset{border:1px solid #334155;border-radius:6px;display:flex;flex-direction:column;gap:.75rem;margin:0;padding:.875rem 1rem 1rem}.new-staff-fieldset legend{color:#cbd5e1;font-size:.8rem;font-weight:600;letter-spacing:.04em;padding:0 .4rem;text-transform:uppercase}.modal .action-button{background:#0000;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:.85rem;padding:.55rem .85rem}.modal .action-button:hover{background:#1e293b;color:#e2e8f0}.new-staff-fieldset .action-button{align-self:flex-start;font-size:.8rem;margin-top:.25rem;padding:.45rem .8rem}.modal .radio-row{align-items:center;color:#e2e8f0;cursor:pointer;display:flex;flex-direction:row;font-size:.85rem;gap:.5rem}.modal .radio-row input[type=checkbox],.modal .radio-row input[type=radio]{accent-color:#3b82f6;background:#0000;border:none;cursor:pointer;height:15px;padding:0;width:15px}.modal .radio-row.is-implicit{cursor:not-allowed;opacity:.55}.modal .radio-row.is-implicit input[type=checkbox]{accent-color:#64748b;cursor:not-allowed}.staff-modal-roles{color:#cbd5e1;display:flex;flex-direction:column;font-size:.875rem;gap:.375rem}.staff-modal-roles-label{font-size:.8rem}.staff-modal-roles-options{display:flex;flex-wrap:wrap;gap:.75rem}.modal .form-checkbox-row{align-items:center;color:#e2e8f0;flex-direction:row;gap:.5rem}.modal .form-checkbox-row input[type=checkbox]{accent-color:#3b82f6;background:#0000;border:none;height:15px;padding:0;width:15px}.modal .specialty-dropdown{font-size:.875rem;padding:.625rem .75rem;width:100%}.modal .dropdown{width:100%}.specialty-back{align-self:flex-start;margin-top:.375rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.cancel-button{background:#0000;border-radius:6px;cursor:pointer}.cancel-button,.primary-button{padding:.625rem 1.25rem}.primary-button:hover:not(:disabled){background:#2563eb}.primary-button:disabled{opacity:.5}.ayuda-page{background:#0f172a;display:flex;flex-direction:column;min-height:100vh}.ayuda-toolbar{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:.625rem 1.5rem}.ayuda-title{color:#e2e8f0;font-size:.95rem;font-weight:600;letter-spacing:.01em}.ayuda-close{align-items:center;background:#1e3a8a;border:1px solid #3b82f6;border-radius:6px;color:#bfdbfe;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:.4rem;padding:.375rem .875rem;transition:background .15s,color .15s}.ayuda-close-x{font-size:1.3rem;font-weight:700;line-height:1;transform:translateY(1px)}.ayuda-close:hover{background:#3b82f6;color:#fff}.ayuda-frame{background:#fff;border:none;display:block;flex:1 1;width:100%}.canvas-wrapper{display:inline-block;position:relative}.canvas-wrapper>.canvas-stack{border:none;border-radius:0;box-shadow:none;position:relative}.background-canvas{height:100%;left:0;opacity:1;pointer-events:none;position:absolute;top:0;width:100%}.drawing-canvas{display:block;position:relative}.cursor-canvas{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.details-panel{background-color:#1e293b;border-right:1px solid #334155;gap:1rem;overflow-y:auto;padding:1rem;width:240px}.details-panel,.details-section{display:flex;flex-direction:column}.details-section{gap:.25rem}.details-section+.details-section{border-top:1px solid #334155;padding-top:.75rem}.details-section-title{color:#93c5fd;font-size:1.15rem;font-weight:600;margin:0}.details-section-title+.details-row{padding-top:.1rem}.details-row{display:flex;flex-direction:column;gap:.125rem;padding:.3rem 0 .3rem .3rem}.details-label{color:#64748b;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.details-value{color:#e2e8f0;font-size:.875rem;word-break:break-word}.details-loading{color:#94a3b8;font-size:.875rem}.details-select{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;cursor:pointer;font-family:inherit;font-size:.875rem;margin-top:.1rem;padding:.35rem .5rem}.details-select:focus{border-color:#3b82f6;outline:none}.details-select:disabled{cursor:not-allowed;opacity:.55}.discard-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.discard-modal{background:#1e293b;border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:1.5rem;width:min(90%,520px)}.discard-modal h2{font-size:1.15rem;margin:0 0 .5rem}.discard-subtitle{color:#94a3b8;font-family:monospace;font-size:.8rem;margin:0 0 .75rem}.discard-warning{background:#422006;border:1px solid #a16207;border-radius:6px;color:#fde68a;font-size:.85rem;line-height:1.4;margin:0 0 1rem;padding:.625rem .75rem}.discard-label{color:#cbd5e1;display:flex;flex-direction:column;font-size:.8rem;gap:.375rem}.discard-label input[type=text],.discard-label select,.discard-label textarea{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-family:inherit;font-size:.875rem;padding:.5rem .625rem}.discard-label textarea{resize:vertical}.discard-label select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2394a3b8%27 stroke-width=%272.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right .65rem center;background-repeat:no-repeat;background-size:.75rem;cursor:pointer;padding-right:2rem}.discard-label select option{background:#0f172a;color:#e2e8f0}.discard-label input[type=text]:focus,.discard-label select:focus,.discard-label textarea:focus{border-color:#3b82f6;outline:none}.discard-helper{color:#94a3b8;font-size:.7rem;font-style:italic}.discard-confirm-typed{margin-top:1rem}.discard-confirm-typed strong{background:#f8717114;border-radius:4px;color:#fca5a5;font-family:monospace;padding:.1rem .35rem}.discard-confirm-typed input{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-family:monospace;font-size:.9rem;padding:.45rem .6rem}.discard-confirm-typed input:focus{border-color:#dc2626;outline:none}.discard-error{color:#fca5a5;font-size:.8rem;margin:.5rem 0 0}.discard-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.discard-cancel,.discard-submit{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.discard-cancel{background:#1e293b;border:1px solid #475569;color:#cbd5e1}.discard-cancel:hover{background:#334155}.discard-submit{background:#dc2626;color:#fff}.discard-submit:hover:not(:disabled){background:#b91c1c}.discard-submit:disabled{cursor:not-allowed;opacity:.5}.glm-backdrop{align-items:stretch;background:#0000;bottom:0;display:flex;justify-content:stretch;pointer-events:none;position:fixed;right:0;top:0;width:280px;z-index:10000}.glm-modal{background:#0f172a;border-left:1px solid #334155;border-radius:0;box-shadow:-4px 0 16px #0006;color:#e2e8f0;display:flex;flex-direction:column;max-height:100vh;overflow-y:auto;pointer-events:auto;width:100%}.glm-header{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:.875rem 1.25rem}.glm-header h2{color:#e2e8f0;font-size:1.05rem;font-weight:700;margin:0}.glm-close{background:#0000;border:none;color:#94a3b8;cursor:pointer;font-size:1.5rem;padding:0 .25rem}.glm-close:hover{color:#e2e8f0}.glm-help{color:#94a3b8;font-size:.8rem;line-height:1.4;padding:.875rem 1.25rem 0}.glm-section{padding:.875rem 1.25rem}.glm-section h3{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin:0 0 .625rem;text-transform:uppercase}.glm-empty{color:#64748b;font-size:.85rem;font-style:italic;margin:0}.glm-list{flex-direction:column;list-style:none;margin:0;padding:0}.glm-item,.glm-list{display:flex;gap:.5rem}.glm-item{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:6px;justify-content:space-between;padding:.5rem .75rem}.glm-item.glm-orphan{background:#422006;border-color:#a16207}.glm-item-chips{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.glm-chip{font-feature-settings:"tnum";align-items:center;border-radius:999px;display:inline-flex;font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:700;height:1.5rem;justify-content:center;min-width:1.75rem;padding:0 .5rem}.glm-chip-unknown{background:#334155;color:#94a3b8}.glm-orphan-badge{font-size:.9rem}.glm-delete{align-items:center;background:#0000;border:1px solid #7f1d1d;border-radius:6px;color:#fca5a5;cursor:pointer;display:flex;font-size:.85rem;height:2rem;justify-content:center;width:2rem}.glm-delete:hover{background:#7f1d1d;color:#fee2e2}.glm-picker{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.glm-picker-item{align-items:center;background:#1e293b;border:2px solid #334155;border-radius:6px;color:#e2e8f0;cursor:pointer;display:inline-flex;font-size:.85rem;gap:.35rem;padding:.375rem .625rem;position:relative}.glm-picker-item.is-selected{background:#1e3a8a;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f6}.glm-picker-item.is-selected:after{align-items:center;background:#3b82f6;border-radius:50%;box-shadow:0 0 0 2px #0f172a;color:#fff;content:"✓";display:flex;font-size:.7rem;font-weight:700;height:1rem;justify-content:center;line-height:1;position:absolute;right:-6px;top:-6px;width:1rem}.glm-picker-dot{border-radius:50%;display:inline-block;height:.85rem;width:.85rem}.glm-picker-label{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.glm-picker-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem}.glm-btn-primary,.glm-btn-secondary{border:1px solid #0000;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .875rem}.glm-btn-primary{background:#1e3a8a;border-color:#3b82f6;color:#bfdbfe}.glm-btn-primary:hover:not(:disabled){background:#3b82f6;color:#fff}.glm-btn-primary:disabled{cursor:not-allowed;opacity:.5}.glm-btn-secondary{background:#0000;border-color:#334155;color:#94a3b8}.glm-btn-secondary:hover:not(:disabled){background:#1e293b;color:#e2e8f0}.glm-btn-secondary:disabled{cursor:not-allowed;opacity:.5}.glm-error{background:#7f1d1d;border:1px solid #b91c1c;border-radius:6px;color:#fee2e2;font-size:.85rem;margin:0 1.25rem .875rem;padding:.75rem 1.25rem}.glm-footer{background:#1e293b;border-top:1px solid #334155;display:flex;gap:.5rem;justify-content:flex-end;padding:.875rem 1.25rem}.layer-panel{background-color:#1e293b;border-left:1px solid #334155;display:flex;flex-direction:column;overflow-y:auto;padding:1rem;width:280px}.layer-panel h3{color:#e2e8f0;font-size:1rem;font-weight:600;letter-spacing:.05em;margin:0 0 .75rem;text-transform:uppercase}.layer-panel-title{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.layer-panel-title h3{margin:0}.panel-section+.panel-section,.panel-section-standalone{border-top:1px solid #475569;margin-top:1rem;padding-top:1rem}.panel-subsection{display:flex;flex-direction:column;gap:.5rem}.panel-subsection+.panel-subsection{margin-top:1.5rem}.panel-subsection-header{align-items:center;display:flex;gap:.5rem}.panel-subsection-title{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin:0;text-transform:uppercase}.info-tooltip{align-items:center;background:#e2e8f0;border-radius:50%;color:#0f172a;cursor:help;display:inline-flex;font-family:Georgia,serif;font-size:.72rem;font-style:italic;font-weight:700;height:18px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:18px}.info-tooltip-bubble{background:#0f172a;border:1px solid #334155;border-radius:6px;box-shadow:0 4px 12px #0006;color:#e2e8f0;font-size:.72rem;font-weight:400;line-height:1.4;max-width:320px;padding:.5rem .625rem;pointer-events:none;position:fixed;text-align:left;transform:translate(-100%,-50%);white-space:pre-line;width:max-content;z-index:9999}.layers-list{display:flex;flex-direction:column;gap:.5rem}.layer-item{align-items:center;background-color:#0f172a;border:1px solid #334155;border-radius:6px;cursor:default;display:flex;gap:.625rem;padding:.625rem .75rem;transition:background .15s,border-color .15s}.layer-item.image-layer{border-color:#475569}.layer-item.mask-layer{align-items:stretch;border-color:color-mix(in srgb,#334155 55%,#64748b);border-color:color-mix(in srgb,var(--layer-color,#334155) 55%,#64748b);cursor:pointer;flex-direction:column;gap:.4rem;position:relative}.layer-item.mask-layer.active{border-color:#334155;border-color:var(--layer-color,#334155)}.layer-edit-badge{font-size:1.15rem;left:-5px;line-height:1;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.layer-item-row{align-items:center;display:flex;gap:.5rem;min-width:0;width:100%}.layer-item-header .layer-name{flex:1 1;font-size:.95rem;min-width:0;white-space:nowrap}.layer-item-header .done-toggle{margin-right:.35rem}.layer-item-visibility{gap:.75rem}.layer-item-visibility .layer-opacity-slider{flex:1 1;transform:translateY(1px)}.layer-opacity-pct{font-feature-settings:"tnum";color:#94a3b8;font-size:.7rem;font-variant-numeric:tabular-nums;line-height:1}.layer-item.mask-layer.readonly{cursor:default}.layer-item.mask-layer:hover:not(.readonly):not(.active){background-color:color-mix(in srgb,#334155 28%,#0f172a);background-color:color-mix(in srgb,var(--layer-color,#334155) 28%,#0f172a)}.layer-item.active,.layer-item.active:hover{background-color:color-mix(in srgb,#334155 15%,#0f172a);background-color:color-mix(in srgb,var(--layer-color,#334155) 15%,#0f172a)}.layer-item.locked{cursor:not-allowed;opacity:.45}.layer-item.locked:hover{background-color:#0f172a}.layer-controls{align-items:center;display:flex;gap:.5rem;margin-top:-.25rem;padding:.25rem .75rem .5rem}.layer-opacity-slider{appearance:none;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;flex:1 1;height:4px;outline:none}.layer-opacity-slider::-webkit-slider-thumb{appearance:none;background:color-mix(in srgb,#60a5fa 55%,#64748b);background:color-mix(in srgb,var(--layer-color,#60a5fa) 55%,#64748b);border:1px solid #00000059;border-radius:50%;cursor:pointer;height:12px;width:12px}.layer-opacity-slider::-moz-range-thumb{background:color-mix(in srgb,#60a5fa 55%,#64748b);background:color-mix(in srgb,var(--layer-color,#60a5fa) 55%,#64748b);border:1px solid #00000059;border-radius:50%;cursor:pointer;height:12px;width:12px}.layer-item.mask-layer.active .layer-opacity-slider::-webkit-slider-thumb{background:#60a5fa;background:var(--layer-color,#60a5fa)}.layer-item.mask-layer.active .layer-opacity-slider::-moz-range-thumb{background:#60a5fa;background:var(--layer-color,#60a5fa)}.layer-opacity-slider:disabled{cursor:not-allowed;opacity:.3}.layer-clear-btn{align-items:center;background:#0000;border:1px solid #334155;border-radius:4px;color:#fca5a5;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:24px;justify-content:center;line-height:1;padding:0;width:28px}.layer-clear-btn:hover:not(:disabled){background:#7f1d1d;border-color:#7f1d1d;color:#fee2e2}.layer-clear-btn:disabled{cursor:not-allowed;opacity:.35}.eye-toggle{align-items:center;background:none;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:2px;transition:color .15s,background .15s}.eye-toggle:hover{background:#ffffff14;color:#e2e8f0}.eye-toggle.hidden{color:#475569;opacity:.5}.layer-color{border:1px solid #fff3;border-radius:3px;flex-shrink:0;height:14px;width:14px}.layer-name{color:#e2e8f0;flex:1 1;font-size:.875rem;line-height:1.3;white-space:nowrap}.layer-item-header .layer-name{overflow:hidden;text-overflow:ellipsis}.layer-item:not(.mask-layer) .layer-name{transform:translateY(-1px)}.active-indicator{color:#fbbf24;font-size:.875rem}.done-toggle-wrap{display:inline-flex;flex-shrink:0;margin-left:auto;position:relative}.done-toggle{align-items:center;cursor:pointer;display:flex;flex-shrink:0;gap:.25rem}.done-blocked-tooltip{animation:done-blocked-fade .15s ease-out;background:#7f1d1d;border:1px solid #b91c1c;border-radius:4px;bottom:calc(100% + 6px);box-shadow:0 4px 12px #0006;color:#fee2e2;font-size:.72rem;line-height:1.35;padding:.55rem .7rem;pointer-events:none;position:absolute;right:0;white-space:normal;width:160px;z-index:50}.done-blocked-tooltip:after{border:5px solid #0000;border-top-color:#7f1d1d;content:"";position:absolute;right:8px;top:100%}@keyframes done-blocked-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.done-checkbox{accent-color:#16a34a;cursor:pointer;height:14px;width:14px}.done-checkbox:disabled,.done-checkbox[aria-disabled=true],.done-toggle.is-disabled,.done-toggle.is-disabled .done-checkbox,.done-toggle.is-disabled .done-label{cursor:not-allowed}.done-label{color:#64748b;font-size:.7rem;font-weight:600;text-transform:uppercase}.done-toggle.is-done .done-label{color:#4ade80}.meiboscore-section-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.meiboscore-section-title{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.meiboscore-saving{color:#64748b;font-size:.7rem;font-style:italic}.meiboscore-section-body{align-items:center;display:flex;gap:.625rem}.meiboscore-select{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;cursor:pointer;flex:1 1;font-size:.875rem;padding:.25rem .5rem}.meiboscore-select:disabled{cursor:not-allowed;opacity:.5}.meiboscore-auto{align-items:baseline;background:#0f172a;border:1px solid #334155;border-radius:6px;display:flex;gap:.5rem;padding:.4rem .6rem}.meiboscore-auto-label{color:#64748b;font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.meiboscore-auto-value{font-feature-settings:"tnum";color:#e2e8f0;font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700}.meiboscore-auto-pct{font-feature-settings:"tnum";color:#94a3b8;font-size:.7rem;font-variant-numeric:tabular-nums;margin-left:auto}.gland-count-box{background:#0f172a;border:1px solid #334155;border-radius:6px}.gland-count-header{align-items:center;display:flex;gap:.5rem;padding:.4rem .6rem}.gland-count-label{color:#64748b;font-size:.65rem;font-weight:700;letter-spacing:.05em;line-height:1;text-transform:uppercase}.gland-count-value{font-feature-settings:"tnum";color:#e2e8f0;font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1;padding-bottom:2px}.gland-count-merges{align-items:baseline;align-self:center;background:#0000;border:1px solid #334155;border-radius:4px;color:#94a3b8;cursor:pointer;display:inline-flex;flex-direction:row;font-size:.7rem;gap:.25rem;line-height:1;margin-left:auto;padding:.3rem .5rem}.gland-count-btn-icon{font-size:.9rem;line-height:1}.gland-count-btn-label{font-size:.7rem;font-weight:400;letter-spacing:.02em}.gland-count-merges:hover:not(:disabled){background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.gland-count-merges:disabled{cursor:not-allowed;opacity:.35}.gland-count-review{align-items:center;align-self:center;background:#0000;border:1px solid #334155;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;flex-direction:column;font-size:.7rem;gap:.1rem;line-height:1.1;margin-left:auto;padding:.25rem .85rem}.gland-count-review:hover{background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.gland-count-review.is-active{background:#1e40af;border-color:#60a5fa;color:#e2e8f0}.gland-count-review+.gland-count-merges{margin-left:0}.gland-merges-list{border-top:1px solid #334155;display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:.4rem .6rem .6rem}.gland-merge-item{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:6px;display:flex;gap:.5rem;justify-content:space-between;padding:.3rem .5rem}.gland-merge-item.is-orphan{background:#422006;border-color:#a16207}.gland-merge-chips{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:.35rem}.gland-merge-chip{font-feature-settings:"tnum";align-items:center;border-radius:999px;display:inline-flex;font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:700;height:1.5rem;justify-content:center;min-width:1.6rem;padding:0 .45rem}.gland-merge-chip-unknown{background:#334155;color:#94a3b8}.gland-merge-orphan{font-size:.85rem;line-height:1}.gland-merge-actions{display:flex;gap:.3rem}.gland-merge-delete,.gland-merge-edit{align-items:center;background:#0000;border:1px solid #334155;border-radius:4px;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:24px;justify-content:center;line-height:1;padding:0;width:28px}.gland-merge-edit{color:#94a3b8}.gland-merge-edit:hover:not(:disabled){background:#1e3a8a;border-color:#3b82f6;color:#dbeafe}.gland-merge-delete{color:#fca5a5}.gland-merge-delete:hover:not(:disabled){background:#7f1d1d;border-color:#7f1d1d;color:#fee2e2}.gland-merge-delete:disabled,.gland-merge-edit:disabled{cursor:not-allowed;opacity:.35}.landmark-secondary{gap:.75rem;padding-top:.1rem}.landmark-coords{font-feature-settings:"tnum";color:#94a3b8;font-size:.75rem;font-variant-numeric:tabular-nums;margin-left:auto}.landmark-place-btn{align-items:center;background:#0000;border:1px solid var(--layer-color);border-radius:4px;color:var(--layer-color);cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:600;gap:.3rem;padding:.25rem .55rem}.landmark-place-btn:hover:not(:disabled){background:color-mix(in srgb,var(--layer-color) 20%,#0000)}.landmark-place-btn:disabled{cursor:not-allowed;opacity:.4}.meiboscore-rejection-note{margin-top:.5rem}.done-errors,.meiboscore-rejection-note{background:#1c1117;border:1px solid #7f1d1d;border-radius:6px;padding:.5rem .625rem}.done-errors{margin-top:.75rem}.done-error-msg{color:#fca5a5;font-size:.8rem;line-height:1.4;margin:0 0 .25rem}.done-error-msg:last-child{margin-bottom:0}.layer-help p{line-height:1.4;margin:0}.review-section{border-top:1px solid #334155;margin-top:1.5rem;padding-top:1rem}.review-button{border:none;border-radius:6px;cursor:pointer;display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem;padding:.625rem;transition:background .2s;width:100%}.review-button.approve{background:#16a34a;color:#fff}.review-button.approve:hover{background:#15803d}.review-button.reject{background:#dc2626;color:#fff}.review-button.reject:hover{background:#b91c1c}.review-button.submit{background:#3b82f6;color:#fff}.review-button.submit:hover{background:#2563eb}.approved-message{background:#14532d;color:#d1fae5;font-size:.875rem}.approved-message,.submitted-message{border-radius:6px;font-weight:600;padding:.75rem;text-align:center}.submitted-message{background:#7c2d12;color:#fed7aa;font-size:.85rem;line-height:1.35}.rejection-feedback{border-top:1px solid #7f1d1d;margin-top:1rem;padding-top:.75rem}.rejection-feedback h3{color:#fca5a5;font-size:.8rem;margin-bottom:.5rem}.rejection-item{background:#1c1117;border:1px solid #7f1d1d;border-radius:6px;margin-bottom:.375rem;padding:.5rem .625rem}.rejection-element{color:#fca5a5;display:block;font-size:.7rem;font-weight:700;margin-bottom:.125rem;text-transform:uppercase}.rejection-note-text{color:#e2e8f0;font-size:.8rem;line-height:1.4;margin:0}.discard-section{border-top:1px solid #334155;margin-top:auto;padding-top:1rem}.discard-panel-button{background:#0000;border:2px solid #7f1d1d;border-radius:6px;color:#fca5a5;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.625rem;transition:background .15s,color .15s;width:100%}.discard-panel-button:hover{background:#7f1d1d;color:#fee2e2}.toolbar{background-color:#1e293b;border-right:1px solid #334155;gap:1rem;overflow-y:auto;padding:1rem;width:240px}.toolbar,.toolbar-section{display:flex;flex-direction:column}.toolbar-section{gap:.5rem}.toolbar-section h3{color:#e2e8f0;font-size:1rem;font-weight:600;letter-spacing:.05em;margin:0 0 .25rem;text-transform:uppercase}.brush-size-section h3{color:#94a3b8;font-size:.75rem}.toolbar-button{background-color:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;cursor:pointer;font-family:inherit;font-size:.85rem;padding:.5rem .75rem;transition:background .15s,border-color .15s;width:100%}.toolbar-button:hover:not(:disabled){background-color:#1e3a8a;border-color:#3b82f6}.toolbar-button.active{background-color:#1e3a8a}.toolbar-button.active,.toolbar-button.primary{border-color:#3b82f6;color:#fff;font-weight:600}.toolbar-button.primary{background-color:#3b82f6}.toolbar-button.primary:hover:not(:disabled){background-color:#2563eb}.toolbar-button.danger{background-color:initial;border-color:#7f1d1d;color:#fca5a5}.toolbar-button.danger:hover:not(:disabled){background-color:#7f1d1d;color:#fee2e2}.toolbar-button:disabled{opacity:.5}.tools-grid{grid-gap:.375rem;display:grid;gap:.375rem;grid-template-columns:repeat(4,1fr)}.edit-icons-row{display:flex;gap:.375rem}.edit-icons-row .tool-icon-button{flex:1 1}.tool-icon-button{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;cursor:pointer;display:flex;font-size:1.15rem;justify-content:center;padding:.55rem 0;transition:background .15s,border-color .15s}.tool-icon-button:hover:not(.active):not(:disabled){background:#334155;border-color:#475569}.tool-icon-button.active{background:#1e3a8a;border-color:#3b82f6}.tool-icon-button.disabled-edit,.tool-icon-button:disabled,.toolbar-button:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.4}.slider{appearance:none;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;height:6px;outline:none;width:100%}.slider::-webkit-slider-thumb{appearance:none;background:#3b82f6;background:var(--brush-color,#3b82f6);border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.slider::-moz-range-thumb{background:#3b82f6;background:var(--brush-color,#3b82f6);border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.brush-size-display{color:#94a3b8;font-size:.8rem;text-align:center}.brush-preview{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:6px;display:flex;height:64px;justify-content:center;overflow:hidden}.brush-preview-circle{border:1px solid #ffffff26;border-radius:50%;transition:all .15s ease}.color-display{font-family:monospace}.tool-switcher{background:#0f172a;border:1px solid #334155;border-radius:10px;gap:.125rem;padding:.25rem}.tool-switcher,.tool-switcher-item{align-items:center;display:inline-flex}.tool-switcher-item{background:#0000;border:none;border-radius:7px;color:#94a3b8;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;gap:.375rem;padding:.4rem .95rem;transition:background .15s,color .15s}.tool-switcher-item:hover:not(:disabled):not(.active){color:#e2e8f0}.tool-switcher-item.active{background:#334155;color:#fff}.tool-switcher-item.locked{cursor:not-allowed;opacity:.55}.tool-switcher-lock{align-items:center;display:inline-flex;font-size:.7rem;margin-left:-.15rem}.editor-page{background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;height:100vh;overflow:hidden}.editor-body{min-height:0}.editor-header{grid-gap:1rem;align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:grid;gap:1rem;grid-template-columns:1fr auto 1fr;padding:.75rem 1.25rem}.editor-header-left{align-items:center;display:flex;gap:.75rem;min-width:0}.editor-header-center{display:flex;justify-content:center}.editor-header-right{align-items:center;display:flex;gap:.5rem;justify-content:flex-end}.annotation-timer{font-feature-settings:"tnum";align-items:center;color:#cbd5e1;display:inline-flex;font-size:.85rem;font-variant-numeric:tabular-nums;gap:.35rem;-webkit-user-select:none;user-select:none}.annotation-timer.is-paused{color:#7c8ba1}.annotation-timer-value{font-weight:600}.autosave-indicator{align-items:center;color:#7c8ba1;display:inline-flex;flex-direction:column;font-size:.72rem;justify-content:center;line-height:1.15;padding:0 .35rem;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap}.autosave-line-1{font-weight:500}.autosave-line-2{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.autosave-indicator.is-saving{color:#60a5fa}.autosave-indicator.is-dirty{color:#fbbf24}.autosave-indicator.is-saved{animation:autosave-fade 4s ease-out forwards;color:#86efac}@keyframes autosave-fade{0%{color:#86efac}25%{color:#86efac}to{color:#7c8ba1}}.header-help{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:50%;color:#94a3b8;display:inline-flex;font-size:.95rem;font-weight:700;height:2rem;justify-content:center;text-decoration:none;transition:color .15s,background .15s,border-color .15s;width:2rem}.header-help:hover{background:#1e3a8a;border-color:#3b82f6;color:#e2e8f0}.back-button{align-items:center;background:#0000;border:1px solid #334155;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;height:36px;justify-content:center;transition:background .15s,border-color .15s;width:36px}.back-button:hover{background:#334155;border-color:#475569}.editor-title{color:#94a3b8;font-size:.875rem;overflow:hidden;text-overflow:ellipsis}.editor-title,.header-action{font-weight:600;white-space:nowrap}.header-action{border:1px solid #0000;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.85rem;padding:.5rem .875rem;transition:background .15s,border-color .15s,opacity .15s}.header-action.primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.header-action.primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.header-action.primary:disabled{cursor:not-allowed;opacity:.45}.header-action.submit{background:#16a34a;border-color:#16a34a;color:#fff}.header-action.submit:hover:not(:disabled){background:#15803d;border-color:#15803d}.header-action.submit:disabled{cursor:not-allowed;opacity:.45}.header-action.approve{background:#16a34a;border-color:#16a34a;color:#fff}.header-action.approve:hover{background:#15803d;border-color:#15803d}.header-action.reject{background:#dc2626;border-color:#dc2626;color:#fff}.header-action.reject:hover{background:#b91c1c;border-color:#b91c1c}.header-action.submitted-ghost{background:#0000;border:1px dashed #3b82f680;color:#93c5fdb3;cursor:default;-webkit-user-select:none;user-select:none}.editor-status{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .625rem;text-transform:uppercase}.editor-status.status-uploaded{background:#475569;color:#e2e8f0}.editor-status.status-clahe_done{background:#1e40af;color:#dbeafe}.editor-status.status-pending_annotation{background:#78350f;color:#fef3c7}.editor-status.status-annotated{background:#14532d;color:#d1fae5}.editor-status.status-inference_done{background:#4c1d95;color:#ede9fe}.editor-status.status-reviewed{background:#064e3b;color:#a7f3d0}.approved-badge{background:#16a34a;color:#fff}.approved-badge,.discarded-badge{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .625rem}.discarded-badge{background:#7f1d1d;color:#fee2e2}.discard-image-button{background:#0000;border:1px solid #7f1d1d;border-radius:6px;color:#fca5a5;cursor:pointer;font-size:.8rem;margin-left:auto;padding:.375rem .75rem;transition:background .15s,color .15s}.discard-image-button:hover{background:#7f1d1d;color:#fee2e2}.editor-error-banner{background:#7f1d1d;border:1px solid #b91c1c;border-radius:6px;color:#fecaca;margin:.75rem 1.5rem;padding:.75rem 1rem}.editor-error,.editor-loading{align-items:center;background:#0f172a;color:#94a3b8;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.editor-body{display:flex;flex:1 1;overflow:hidden}.canvas-area{align-items:flex-start;background:#0f172a;display:flex;flex:1 1;justify-content:flex-start;overflow:auto;padding:1rem}.canvas-area.pan-grab,.canvas-area.pan-grab *{cursor:grab!important}.canvas-area.pan-grabbing,.canvas-area.pan-grabbing *{cursor:grabbing!important}.canvas-stack{background:#1a202c;border:1px solid #334155;flex-shrink:0;position:relative}.canvas-area-wrapper{display:flex;flex:1 1;min-height:0;min-width:0;position:relative}.canvas-area-wrapper>.canvas-area{flex:1 1}.zoom-overlay{background:#1e293b;border:1px solid #334155;border-radius:8px;bottom:1rem;display:flex;gap:2px;padding:4px;position:absolute;right:1rem;z-index:20}.zoom-overlay-button{background:#0000;border:none;border-radius:5px;color:#e2e8f0;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;height:28px;min-width:32px;padding:0 .5rem;transition:background .15s}.zoom-overlay-button:hover{background:#334155}.zoom-overlay-value{color:#94a3b8;min-width:48px}.background-image{display:block;left:0;pointer-events:none;position:absolute;top:0}.reject-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:200}.reject-modal{background:#1e293b;border:1px solid #334155;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:1.5rem 2rem;width:100%}.reject-modal h2{color:#e2e8f0;font-size:1.25rem;margin:0 0 .25rem}.reject-subtitle{color:#94a3b8;font-size:.875rem;margin:0 0 1.25rem}.reject-element{margin-bottom:.75rem}.reject-check-label{align-items:center;color:#e2e8f0;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem}.reject-check-label input[type=checkbox]{accent-color:#dc2626;height:16px;width:16px}.reject-note{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;display:block;font-family:inherit;font-size:.8rem;margin-top:.375rem;min-height:48px;padding:.5rem .75rem;resize:vertical;width:100%}.reject-note:focus{border-color:#dc2626;outline:none}.reject-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.reject-cancel{background:#0000;border:1px solid #475569;border-radius:6px;color:#cbd5e1;cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.reject-cancel:hover{background:#334155}.reject-submit{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.reject-submit:hover:not(:disabled){background:#b91c1c}.reject-submit:disabled{cursor:not-allowed;opacity:.5}.forgot-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.forgot-modal{background:#1e293b;border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:1.5rem;width:min(90%,480px)}.forgot-modal h2{font-size:1.15rem;margin:0 0 .75rem}.forgot-helper{color:#94a3b8;font-size:.85rem;line-height:1.45;margin:0 0 1rem}.forgot-label{color:#cbd5e1;display:flex;flex-direction:column;font-size:.85rem;gap:.375rem}.forgot-label input{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:.9rem;padding:.55rem .7rem}.forgot-label input:focus{border-color:#3b82f6;outline:none}.forgot-error{color:#fca5a5;font-size:.8rem;margin:.6rem 0 0}.forgot-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.1rem}.forgot-cancel,.forgot-primary{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.55rem 1.1rem}.forgot-cancel{background:#1e293b;border:1px solid #475569;color:#cbd5e1}.forgot-cancel:hover:not(:disabled){background:#334155}.forgot-primary{background:#3b82f6;color:#fff}.forgot-primary:hover:not(:disabled){background:#2563eb}.forgot-cancel:disabled,.forgot-primary:disabled{cursor:not-allowed;opacity:.5}.forgot-result{display:flex;flex-direction:column;gap:.75rem}.forgot-ok{background:#064e3b;border:1px solid #047857;border-radius:6px;color:#d1fae5;font-size:.85rem;line-height:1.4;margin:0;padding:.7rem .85rem}.forgot-dev-token{background:#422006;border:1px solid #a16207;border-radius:6px;color:#fde68a;font-size:.78rem;padding:.65rem .8rem}.forgot-dev-label{font-weight:600;margin:0 0 .4rem}.forgot-dev-link{color:#93c5fd;display:block;font-family:monospace;font-size:.72rem;margin-bottom:.4rem;text-decoration:underline;word-break:break-all}.forgot-dev-helper{color:#fcd34d;font-size:.7rem;font-style:italic;margin:0}.login-page{align-items:center;background:linear-gradient(135deg,#1e293b,#0f172a);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#1e293b;border:1px solid #334155;border-radius:12px;box-shadow:0 20px 50px #0006;max-width:420px;padding:2.5rem 3rem;width:100%}.login-card h1{color:#e2e8f0;font-size:1.875rem;margin:0 0 .25rem;text-align:center}.login-card .subtitle{color:#94a3b8;font-size:.875rem;margin:0 0 2rem;text-align:center}.login-form{gap:1.25rem}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{color:#cbd5e1;font-size:.875rem;font-weight:500;gap:.5rem}.login-form input{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:1rem;outline:none;padding:.75rem 1rem;transition:border-color .2s}.login-form input:focus{border-color:#3b82f6}.login-form input:disabled{cursor:not-allowed;opacity:.6}.login-form button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.875rem 1rem;transition:background .2s}.login-form button:hover:not(:disabled){background:#2563eb}.login-form button:disabled{background:#475569;cursor:not-allowed}.error-banner{color:#fecaca;font-size:.875rem}.login-loading{align-items:center;background:#0f172a;color:#94a3b8;display:flex;justify-content:center;min-height:100vh}.login-banner{background:#0f172a;border-left:3px solid #3b82f6;border-radius:4px;color:#cbd5e1;font-size:.78rem;line-height:1.4;margin:0 0 1.5rem;padding:.625rem .875rem}.login-helper{color:#94a3b8;font-size:.72rem;margin:0;text-align:center}.login-forgot-link,.login-form .login-forgot-link{align-self:center;background:none!important;border:none!important;color:#93c5fd;cursor:pointer;display:inline-block;font-size:.8rem;font-weight:400;margin:.6rem auto 0;padding:0;text-align:center;text-decoration:none;width:auto}.login-forgot-link:hover,.login-form .login-forgot-link:hover{background:none!important;text-decoration:underline}.reset-ok{background:#064e3b;border:1px solid #047857;border-radius:6px;color:#d1fae5;font-size:.85rem;line-height:1.4;margin:0 0 1rem;padding:.7rem .85rem}.permissions-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.perm-header{align-items:center;display:flex;gap:1rem;margin:0 auto 1.5rem;max-width:900px}.perm-header h1{flex:1 1;font-size:1.5rem;margin:0}.perm-content{margin:0 auto;max-width:900px;padding:0 1.5rem 1.5rem}.perm-summary{background:#1e293b;border:1px solid #334155;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}.perm-email{color:#e2e8f0;font-size:1.05rem;font-weight:600;margin-bottom:.5rem}.perm-roles-line{display:flex;flex-wrap:wrap;gap:.375rem}.perm-role-badge{border-radius:999px;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.25rem .625rem;text-transform:uppercase}.perm-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:1.5rem}.perm-card{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:1rem 1.25rem}.perm-card-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.perm-card-dot{border-radius:50%;height:12px;width:12px}.perm-card h3{color:#e2e8f0;font-size:1rem;margin:0}.perm-card ul{color:#cbd5e1;display:flex;flex-direction:column;font-size:.875rem;gap:.375rem;margin:0;padding-left:1.1rem}.perm-note{color:#94a3b8;font-size:.8rem;margin-top:.5rem;text-align:center}.new-visit-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.new-visit-header{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.new-visit-header h1{font-size:1.5rem;margin:0}.error-banner{margin-bottom:1rem}.new-visit-form{display:flex;flex-direction:column;gap:1.25rem;margin:0 auto;max-width:1100px;padding:0 1.5rem 1.5rem}.error-banner{margin:0 auto;padding:0 1.5rem}.form-section h3{font-size:.875rem}.form-grid input,.form-grid select,.new-visit-form textarea,.patient-search input{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:.875rem;padding:.5rem .625rem}.new-visit-form textarea{resize:vertical;width:100%}.form-grid input:focus,.form-grid select:focus,.new-visit-form textarea:focus,.patient-search input:focus{border-color:#3b82f6;outline:none}.patient-mode{display:flex;font-size:.875rem;gap:1rem;margin-bottom:.75rem}.patient-search{position:relative}.patient-search input{max-width:400px;width:100%}.patient-results{background:#0f172a;border:1px solid #475569;border-radius:6px;list-style:none;margin:.25rem 0 0;max-height:250px;max-width:400px;overflow-y:auto;padding:0}.patient-results li{border-bottom:1px solid #1e293b;cursor:pointer;font-size:.875rem;padding:.5rem .75rem}.patient-results li:last-child{border-bottom:none}.patient-results li:hover{background:#1e3a8a}.no-results{color:#64748b;font-size:.8rem;margin:.25rem 0 0}.selected-patient-card{align-items:center;background:#0f172a;border:1px solid #475569;border-radius:6px;display:flex;gap:.75rem;justify-content:space-between;max-width:400px;padding:.625rem .75rem}.selected-patient-info{align-items:baseline;display:flex;flex:1 1;gap:.375rem;min-width:0}.selected-patient-id{color:#e2e8f0;font-size:.95rem;font-weight:600}.selected-patient-meta{color:#94a3b8;font-size:.8rem}.change-patient-button{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;text-decoration:underline}.change-patient-button:hover{color:#93c5fd}.form-actions{gap:.75rem;padding:.5rem 0 1.5rem}.cancel-button,.submit-button{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:.625rem 1.25rem;text-decoration:none}.cancel-button{background:#1e293b;border:1px solid #475569;color:#cbd5e1}.cancel-button:hover{background:#334155}.submit-button{background:#3b82f6;color:#fff}.submit-button:hover:not(:disabled){background:#2563eb}.submit-button:disabled{cursor:not-allowed;opacity:.6}.not-found-page{align-items:center;background:radial-gradient(1200px 600px at 20% 0,#3b82f614,#0000 60%),radial-gradient(900px 500px at 80% 100%,#d946ef0f,#0000 60%),#0f172a;display:flex;justify-content:center;min-height:100vh;padding:2rem}.not-found-card{background:#1e293b;border:1px solid #334155;border-radius:14px;box-shadow:0 10px 40px #00000059;max-width:520px;padding:2.5rem 2rem;text-align:center;width:100%}.not-found-code{background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:5rem;font-weight:800;letter-spacing:-.05em;line-height:1;margin-bottom:.5rem}.not-found-title{color:#e2e8f0;font-size:1.5rem;font-weight:700;margin:0 0 .75rem}.not-found-desc{color:#94a3b8;font-size:.95rem;line-height:1.5;margin:0 0 1.25rem}.not-found-path{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#cbd5e1;display:flex;flex-wrap:wrap;font-size:.8rem;gap:.5rem;justify-content:center;margin:0 0 1.75rem;padding:.75rem 1rem}.not-found-path-label{color:#64748b;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.not-found-path code{color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all}.not-found-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.not-found-btn{align-items:center;border:1px solid #0000;border-radius:8px;display:inline-flex;font-size:.9rem;font-weight:600;justify-content:center;padding:.65rem 1.25rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.not-found-btn-primary{background:#3b82f6;color:#fff}.not-found-btn-primary:hover{background:#2563eb}.not-found-btn-ghost{background:#0000;border-color:#475569;color:#cbd5e1}.not-found-btn-ghost:hover{background:#334155;color:#e2e8f0}.patient-select{min-width:220px;position:relative}.patient-select-input-wrap{align-items:center;background:#0f172a;border:1px solid #475569;border-radius:6px;box-sizing:border-box;display:flex;flex-wrap:wrap;font-size:.85rem;gap:.25rem;min-height:30px;padding:.1rem .5rem}.patient-select-input{background:#0000;border:none;color:#e2e8f0;flex:1 1;font-family:inherit;font-size:.85rem;min-width:120px;padding:.175rem .125rem}.patient-select-input:focus{outline:none}.patient-select-input::placeholder{color:#64748b}.patient-select-chip{align-items:center;background:#14532d;border:1px solid #16a34a;border-radius:4px;color:#d1fae5;display:inline-flex;font-size:.8rem;gap:.25rem;padding:.15rem .45rem}.patient-select-chip-clear{background:none;border:none;color:#d1fae5;cursor:pointer;font-size:1rem;line-height:1;padding:0}.patient-select-results{background:#0f172a;border:1px solid #475569;border-radius:6px;box-shadow:0 8px 16px #0006;left:0;list-style:none;margin:0;max-height:250px;overflow-y:auto;padding:.25rem;position:absolute;right:0;top:calc(100% + .25rem);z-index:50}.patient-select-results li{border-radius:4px;color:#cbd5e1;cursor:pointer;font-size:.85rem;padding:.5rem .625rem}.patient-select-results li:hover{background:#1e3a8a;color:#fff}.patient-select-card{align-items:center;background:#0f172a;border:1px solid #475569;border-radius:6px;display:flex;gap:.75rem;justify-content:space-between;max-width:400px;padding:.625rem .75rem}.patient-select-info{align-items:baseline;display:flex;flex:1 1;gap:.375rem;min-width:0}.patient-id{color:#e2e8f0;font-size:.95rem;font-weight:600}.patient-meta{color:#94a3b8;font-size:.8rem}.patient-select-change{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;text-decoration:underline}.patient-select-change:hover{color:#93c5fd}.queue-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.queue-header{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:1rem 1.5rem}.header-left h1{display:inline-block;font-size:1.4rem;margin:0}.header-subtitle{color:#94a3b8;font-size:.9rem;margin-left:.75rem}.header-right{align-items:center;display:flex;font-size:.85rem;gap:.75rem}.header-link{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#60a5fa;padding:.375rem .625rem;text-decoration:none}.header-link:hover{background:#334155}.user-info{color:#cbd5e1}.user-role{color:#94a3b8;font-size:.75rem}.logout-button{background:#1e293b;border:1px solid #475569;border-radius:6px;color:#cbd5e1;cursor:pointer;font-size:.85rem;padding:.375rem .75rem}.logout-button:hover{background:#334155}.queue-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-start;padding:.75rem 1.5rem 0}.queue-toolbar+.filter-bar{margin-top:.5rem;padding:0 1.5rem}.queue-toolbar h2{font-size:1.2rem;margin:0}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.filters label{color:#94a3b8;font-size:.8rem}.filter-patient,.filters label{align-items:center;display:flex;gap:.375rem}.filter-patient{position:relative}.filter-inline{gap:.375rem}.filter-inline,.patient-chips{align-items:center;display:flex}.patient-chips{background:#0f172a;border:1px solid #475569;border-radius:6px;flex-wrap:wrap;gap:.25rem;min-width:220px;padding:.25rem .375rem}.filter-label{color:#94a3b8;font-size:.8rem}.patient-search-wrap{position:relative}.patient-search-input{background:#0000;border:none;color:#e2e8f0;flex:1 1;font-size:.85rem;min-width:120px;padding:.25rem}.patient-search-input:focus{outline:none}.patient-search-input::placeholder{color:#64748b}.patient-search-results{background:#0f172a;border:1px solid #475569;border-radius:6px;left:0;list-style:none;margin:.25rem 0 0;max-height:250px;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:20}.patient-search-results li{border-bottom:1px solid #1e293b;color:#e2e8f0;cursor:pointer;font-size:.85rem;padding:.5rem .625rem}.patient-search-results li:last-child{border-bottom:none}.patient-search-results li:hover{background:#1e3a8a}.patient-chip{align-items:center;background:#14532d;border:1px solid #16a34a;border-radius:6px;color:#d1fae5;display:inline-flex;font-size:.85rem;gap:.375rem;padding:.25rem .5rem}.patient-chip-clear{background:none;border:none;color:#d1fae5;cursor:pointer;font-size:1rem;line-height:1;padding:0}.filters select{font-size:.85rem;padding:.375rem .5rem}.filters select,.order-button{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0}.order-button{cursor:pointer;font-size:1rem;line-height:1;padding:.375rem .625rem}.order-button:hover{background:#334155}.error-banner{margin:0 1.5rem 1rem;padding:.625rem .75rem}.queue-status{color:#94a3b8;padding:2rem;text-align:center}.queue-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:0 1.5rem 2rem}.queue-card{background:#1e293b;border:1px solid #334155;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s,border-color .15s}.queue-card:hover{border-color:#3b82f6;transform:translateY(-2px)}.card-thumb{aspect-ratio:2/1;background:#0f172a;overflow:hidden;position:relative}.card-thumb img{height:100%;object-fit:cover;width:100%}.thumb-placeholder{align-items:center;color:#475569;display:flex;font-size:2rem;height:100%;justify-content:center;width:100%}.status-badge{border-radius:4px;font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:.25rem .5rem;position:absolute;right:.5rem;text-transform:uppercase;top:.5rem}.status-badge.status-upload{background:#334155;color:#cbd5e1}.status-badge.status-draft{background:#1e3a8a;color:#bfdbfe}.status-badge.status-submitted{background:#581c87;color:#e9d5ff}.status-badge.status-approved{background:#14532d;color:#bbf7d0}.status-badge.status-rejected{background:#7f1d1d;color:#fecaca}.card-body{display:flex;flex-direction:column;gap:.5rem;padding:.625rem .75rem}.card-patient{align-items:baseline;display:flex;gap:.5rem;justify-content:space-between}.card-patient strong{color:#e2e8f0;font-size:.95rem}.card-eye{color:#94a3b8;font-size:.75rem;text-transform:uppercase}.card-meta{color:#cbd5e1;display:flex;flex-direction:column;font-size:.75rem;gap:.15rem}.card-meta .meta-label{color:#64748b;margin-right:.375rem}.card-meta .meta-email{color:#a5b4fc}.trash-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.trash-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:1100px}.trash-header h1{font-size:1.5rem;margin:0}.trash-info{background:#422006;border:1px solid #a16207;border-radius:6px;color:#fde68a;font-size:.85rem;margin:0 auto 1.25rem;max-width:1100px;padding:.625rem .75rem}.trash-status{color:#94a3b8;text-align:center}.trash-table{background:#1e293b;border-collapse:collapse;border-radius:10px;margin:0 auto;max-width:1100px;overflow:hidden;width:100%}.trash-table td,.trash-table th{border-bottom:1px solid #334155;font-size:.875rem;padding:.625rem .875rem;text-align:left;vertical-align:top}.trash-table th{background:#0f172a;color:#94a3b8;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.trash-table tr:last-child td{border-bottom:none}.note-cell{color:#e2e8f0;max-width:340px;white-space:normal}.days-critical{color:#fca5a5;font-weight:600}.recover-button{background:#1e3a8a;border:1px solid #3b82f6;border-radius:6px;color:#bfdbfe;cursor:pointer;font-size:.8rem;padding:.375rem .75rem}.recover-button:hover{background:#3b82f6;color:#fff}.visit-edit-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.ve-header{align-items:center;display:flex;justify-content:space-between;margin:0 auto 1.5rem;max-width:900px}.ve-header h1{display:inline-block;font-size:1.5rem;margin:0}.ve-header .subtitle{color:#94a3b8;font-size:.95rem;margin-left:.75rem}.ve-header .header-right{align-items:center;display:flex;gap:.75rem}.error-banner{max-width:900px}.visit-status{color:#94a3b8;text-align:center}.ve-form{display:flex;flex-direction:column;gap:1.25rem;margin:0 auto;max-width:900px;padding:0 1.5rem 1.5rem}.form-section{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:1.25rem}.form-section h3{color:#cbd5e1;font-size:.85rem;letter-spacing:.05em;margin:0 0 .75rem;text-transform:uppercase}.form-section .muted{color:#64748b;font-size:.8rem;font-weight:400}.form-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-grid label{color:#94a3b8;display:flex;flex-direction:column;font-size:.8rem;gap:.25rem}.form-grid label.full-width{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-family:inherit;font-size:.875rem;padding:.5rem .625rem}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#3b82f6;outline:none}.form-actions{display:flex;justify-content:flex-end;margin-top:.75rem}.primary-button{cursor:pointer;padding:.5rem 1rem}.primary-button:disabled{cursor:not-allowed;opacity:.6}.images-table{border-collapse:collapse;width:100%}.images-table td,.images-table th{border-bottom:1px solid #334155;font-size:.85rem;padding:.5rem .625rem;text-align:left}.images-table th{color:#94a3b8;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.images-table tr:last-child td{border-bottom:none}.mono{color:#cbd5e1;font-family:monospace}.empty{color:#64748b;font-style:italic;text-align:center}.danger-link{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:.85rem;font-weight:600;padding:0}.danger-link:hover{text-decoration:underline}.danger-zone{border-color:#7f1d1d}.danger-zone h3{color:#fca5a5}.danger-zone p{color:#94a3b8;font-size:.85rem;margin:0 0 .75rem}.danger-button{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.danger-button:hover{background:#b91c1c}.placeholders-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:700px}.placeholder{background:#0f172a;border:2px dashed #475569;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;transition:border-color .15s,background .15s}.placeholder.drag-over{background:#1e3a8a;border-color:#3b82f6}.placeholder-label{color:#cbd5e1;font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.browse-button{background:#1e293b;border:1px solid #475569;border-radius:6px;cursor:pointer;display:inline-block;font-size:.8rem;padding:.5rem .75rem;text-align:center;transition:background .15s}.browse-button:hover{background:#334155}.drop-hint{color:#64748b;font-size:.7rem;text-align:center}.thumbs{display:flex;flex-direction:column;gap:.25rem;list-style:none;margin:0;max-height:140px;overflow-y:auto;padding:0}.thumbs li{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:4px;display:flex;font-size:.75rem;gap:.375rem;padding:.25rem .5rem}.thumb-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thumbs button{background:none;border:none;color:#f87171;cursor:pointer;font-size:.9rem}.visits-list-page{background:#0f172a;color:#e2e8f0;min-height:100vh}.visits-header{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;padding:1.5rem 1.5rem 1rem}.visits-header h1{display:inline-block;font-size:1.5rem;margin:0}.visits-header .subtitle{color:#94a3b8;font-size:.95rem;margin-left:.75rem}.visits-header .header-right{align-items:center;display:flex;gap:.75rem}.back-link{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#60a5fa;font-size:.875rem;padding:.5rem .75rem;text-decoration:none}.back-link:hover{background:#334155}.primary-button{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;display:inline-flex;font-size:.875rem;font-weight:600;padding:.5rem .9rem;text-decoration:none}.primary-button:hover{background:#2563eb}.error-banner{background:#7f1d1d;border:1px solid #b91c1c;border-radius:6px;color:#fee2e2;margin:0 auto 1rem;max-width:1100px;padding:.75rem 1rem}.visits-status{color:#94a3b8;padding:2rem;text-align:center}.visits-table{background:#1e293b;border-collapse:collapse;border-radius:10px;margin:0 auto;max-width:1100px;overflow:hidden;width:100%}.visits-table td,.visits-table th{border-bottom:1px solid #334155;font-size:.875rem;padding:.75rem 1rem;text-align:left}.visits-table th{background:#0f172a;color:#94a3b8;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}.visits-table tr:last-child td{border-bottom:none}.visits-table tr:hover{background:#334155}.visits-table td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.action-link{color:#60a5fa;font-weight:600;text-decoration:none}.action-link:hover{text-decoration:underline}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a1a1a;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.51e46fbc.css.map*/