/* css/modals.css — popovers + overlays: patient files, file drop, edit patient, trends, note panel, resources, protocols, surveys, login
 * Loaded last. Modal/overlay UI; cascade-order-sensitive z-index + position rules live here.
 */
/* ── PATIENT FILES TAB ── */
.files-layout{flex:1;overflow-y:auto;padding:24px;display:flex;justify-content:center;align-items:flex-start;}
.files-card{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;width:100%;max-width:560px;}
.files-card-hdr{padding:12px 16px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;gap:7px;}
.files-card-title{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);}
.files-card-body{padding:16px;}
.drop-zone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:28px 16px;text-align:center;cursor:pointer;transition:all 0.18s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-bottom:10px;}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--blue);background:var(--blue-soft);}
.drop-zone-icon{font-size:32px;color:var(--gray-300);line-height:1;}
.drop-zone.drag-over .drop-zone-icon{color:var(--blue);}
.drop-zone-text{font-size:12px;font-weight:600;color:var(--text-muted);}
.drop-zone-sub{font-size:10px;color:var(--text-faint);line-height:1.6;}

/* ── FILE DROP MODAL ── */
.file-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:400;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.file-modal-overlay.open{opacity:1;pointer-events:all;}
.file-modal{background:var(--surface);border-radius:var(--radius-lg);width:520px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 12px 48px rgba(0,0,0,0.18);padding:24px;}
.file-modal h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:4px;}
.file-modal-sub{font-size:11px;color:var(--text-muted);margin-bottom:16px;}
.file-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}
.file-browse-btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--font);font-size:11px;font-weight:600;padding:7px 14px;border-radius:var(--radius);border:0.5px solid var(--border-md);background:var(--gray-100);color:var(--text-muted);cursor:pointer;transition:background 0.12s;}
.file-browse-btn:hover{background:var(--gray-200);}
.ds-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius);border:0.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all 0.12s;color:var(--text-faint);font-size:13px;}
.ds-icon-btn:hover{background:var(--blue-soft);color:var(--blue);border-color:var(--blue);}
@keyframes ds-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.ds-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:ds-spin 0.8s linear infinite;}
.ds-check{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius);background:var(--green-soft);color:var(--green);font-size:14px;font-weight:700;border:0.5px solid #a7d9b8;}
.ds-error-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius);background:#f8d7da;color:#c03030;font-size:13px;font-weight:700;border:0.5px solid #f5c6cb;}

/* ── EDIT PATIENT MODAL ── */
.edit-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:400;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.2s;}
/* Trend-mode highlight: pulsing blue ring on trendable widgets */
body.trend-mode [data-trend-key]{
  position:relative;cursor:pointer;
  box-shadow:0 0 0 2px rgba(60,130,230,0.55), 0 0 14px 2px rgba(60,130,230,0.25);
  border-radius:var(--radius);
  animation: trendPulse 1.6s ease-in-out infinite;
  transition: box-shadow 0.2s;
}
body.trend-mode [data-trend-key]:hover{
  box-shadow:0 0 0 3px rgba(60,130,230,0.85), 0 0 18px 4px rgba(60,130,230,0.4);
}
@keyframes trendPulse{
  0%,100%{box-shadow:0 0 0 2px rgba(60,130,230,0.55),0 0 10px 2px rgba(60,130,230,0.2);}
  50%   {box-shadow:0 0 0 2px rgba(60,130,230,0.85),0 0 18px 4px rgba(60,130,230,0.45);}
}
body.trend-mode #btn-trend-values{background:rgba(60,130,230,0.85)!important;color:#fff!important;border-color:rgba(60,130,230,1)!important;}
/* Trend modal interior */
.trend-modal{background:var(--surface);border-radius:var(--radius-lg);padding:24px 26px;min-width:480px;max-width:640px;max-height:80vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,0.2);}
.trend-modal h3{margin:0 0 4px 0;font-size:15px;}
.trend-modal .trend-sub{font-size:11px;color:var(--text-muted);margin-bottom:14px;}
.trend-modal table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}
.trend-modal th,.trend-modal td{padding:6px 10px;text-align:left;border-bottom:0.5px solid var(--border);}
.trend-modal th{font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-faint);font-weight:700;}
.trend-modal .trend-current{background:var(--blue-soft);font-weight:600;}
.trend-modal svg{display:block;margin:10px auto 4px;}
.edit-modal-overlay.open{opacity:1;pointer-events:all;}
.edit-modal{background:var(--surface);border-radius:var(--radius-lg);width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 12px 48px rgba(0,0,0,0.18);padding:24px;}
.edit-modal h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:16px;}
.edit-modal .field{margin-bottom:12px;}
.edit-modal .field-label{display:block;font-size:10px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;}
.edit-modal .field input,.edit-modal .field select{width:100%;font-family:var(--font);font-size:12px;padding:7px 10px;border:0.5px solid var(--border-md);border-radius:var(--radius);background:var(--surface);color:var(--text);box-sizing:border-box;}
.edit-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;}
.edit-modal-save{font-family:var(--font);font-size:12px;font-weight:600;padding:7px 18px;border-radius:var(--radius);border:none;background:var(--navy);color:#fff;cursor:pointer;}
.edit-modal-save:hover{opacity:0.9;}
.edit-modal-cancel{font-family:var(--font);font-size:12px;font-weight:600;padding:7px 18px;border-radius:var(--radius);border:0.5px solid var(--border-md);background:var(--gray-100);color:var(--text-muted);cursor:pointer;}

.ocular-condition-editor{width:min(720px,94vw);}
.ocular-condition-field-title{font-size:10px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.ocular-condition-site-row{min-width:0;}
.ocular-condition-site-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border:1px solid var(--border-md);border-radius:8px;padding:4px;background:var(--gray-100);}
.ocular-condition-site-toggle button{min-width:0;border:0;border-radius:6px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12px;font-weight:700;line-height:1;padding:8px 6px;cursor:pointer;}
.ocular-condition-site-toggle button.active{background:var(--surface);color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,0.12);}
.ocular-condition-eye-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;grid-column:1/-1;}
.ocular-condition-eye-panel{min-width:0;border:1px solid var(--border-md);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--surface) 88%,var(--gray-100));}
.ocular-condition-eye-heading{font-size:10px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;}
.ocular-condition-save-blockers{grid-column:1/-1;border:1px solid var(--danger,#b3261e);border-radius:8px;padding:8px 10px;margin:8px 0;background:color-mix(in srgb,var(--danger,#b3261e) 8%,var(--surface));font-size:12px;}
.ocular-condition-save-blockers[hidden]{display:none!important;}
.ocular-condition-save-blockers-title{font-weight:700;margin-bottom:4px;}
.ocular-condition-preview{border:1px solid var(--border-md);border-radius:8px;padding:10px;margin-top:6px;background:color-mix(in srgb,var(--surface) 92%,var(--gray-100));font-size:12px;max-height:320px;overflow:auto;}
.ocular-condition-preview[hidden]{display:none!important;}
.ocular-condition-preview-label{font-weight:700;}
.ocular-condition-preview-heading{font-weight:700;margin-top:8px;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-muted);}
.ocular-condition-preview-json{font-size:11px;line-height:1.35;white-space:pre-wrap;word-break:break-word;background:var(--gray-100);border-radius:6px;padding:8px;margin:4px 0 0;}
.ocular-condition-preview-blocker{color:var(--danger,#b3261e);}
.ocular-condition-preview-warning{color:var(--warn,#8a5a00);}
.ocular-condition-preview-note{color:var(--text-muted);font-size:11px;}
.ocular-condition-provider select{max-width:100%;}
.ocular-condition-provider-warning{display:block;font-size:11px;color:var(--warn,#8a5a00);margin-top:2px;}
.ocular-condition-provider-warning[hidden]{display:none!important;}
.ocular-condition-advanced-row,.ocular-condition-advanced{grid-column:1/-1;}
.ocular-condition-advanced[hidden]{display:none!important;}
.ocular-condition-advanced-toggle{font-family:var(--font);font-size:12px;font-weight:700;color:var(--navy);background:transparent;border:0;padding:6px 0;cursor:pointer;text-align:left;}
.ocular-condition-advanced-toggle::before{content:'›';display:inline-block;margin-right:6px;color:var(--text-muted);transition:transform .12s ease;}
.ocular-condition-advanced-toggle[aria-expanded="true"]::before{transform:rotate(90deg);}
@media (max-width:640px){
  .ocular-condition-editor{width:min(94vw,520px);}
  .ocular-condition-eye-panels{grid-template-columns:1fr;}
}

.ocular-intervention-editor{width:min(720px,calc(100vw - 48px));}
.ocular-intervention-editor-sections{display:flex;flex-direction:column;gap:16px;}
.ocular-intervention-editor-section{display:flex;flex-direction:column;gap:8px;}
.ocular-intervention-editor-section h4{margin:0;color:var(--navy);font-family:var(--font);font-size:15px;font-weight:800;letter-spacing:0.02em;}
.ocular-intervention-editor-section label{display:flex;flex-direction:column;gap:4px;font-family:var(--font);font-size:12px;font-weight:700;color:var(--text);}
.ocular-intervention-editor-section input,.ocular-intervention-editor-section select{width:100%;box-sizing:border-box;}
.ocular-intervention-field-grid,.ocular-intervention-date-grid,.ocular-intervention-surgeon-grid,.ocular-intervention-storage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.ocular-intervention-date-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.ocular-intervention-storage-section{opacity:0.72;}
@media (max-width:680px){
  .ocular-intervention-field-grid,.ocular-intervention-date-grid,.ocular-intervention-surgeon-grid,.ocular-intervention-storage-grid{grid-template-columns:1fr;}
}

.assessment-finalize-row{display:flex;justify-content:flex-end;padding:12px 16px 16px;}
.assessment-finalize-btn{
  font-family:var(--font);
  font-size:12px;
  font-weight:700;
  padding:8px 18px;
  border-radius:var(--radius);
  border:1px solid var(--accent,#c2553a);
  background:var(--accent,#c2553a);
  color:#fff;
  cursor:pointer;
}
.assessment-finalize-btn:hover{filter:brightness(0.96);}
.finalize-encounter-overlay{z-index:850;}
.finalize-encounter-modal{width:min(420px,calc(100vw - 40px));}
.finalize-encounter-message{
  font-family:var(--font);
  font-size:13px;
  line-height:1.5;
  color:var(--text);
}
.finalize-encounter-actions .edit-modal-save:disabled,
.finalize-encounter-actions .edit-modal-cancel:disabled{
  opacity:0.58;
  cursor:not-allowed;
}

/* ── NOTE PANEL (slide-in) ── */
.note-panel{position:fixed;top:0;right:-600px;bottom:0;width:580px;background:var(--surface);border-left:1px solid var(--border-md);box-shadow:-8px 0 40px rgba(0,0,0,0.16);display:flex;flex-direction:column;transition:right 0.28s cubic-bezier(0.22,0.68,0,1.1);z-index:300;}
.note-panel.open{right:0;}
.note-panel-hdr{padding:13px 16px;border-bottom:1px solid var(--border-md);display:flex;align-items:center;gap:8px;background:var(--navy);flex-shrink:0;}
.note-panel-title{font-size:12px;font-weight:600;color:#fff;flex:1;}
.npbtn{font-family:var(--font);font-size:11.5px;font-weight:600;padding:5px 14px;border-radius:var(--radius);cursor:pointer;border:1px solid rgba(255,255,255,0.22);background:transparent;color:rgba(255,255,255,0.7);transition:all 0.13s;}
.npbtn:hover{background:rgba(255,255,255,0.12);color:#fff;}
.npbtn-copy{background:var(--blue);color:#fff;border-color:transparent;}
.npbtn-copy:hover{background:#1d5fa0;}
.npbtn-polish{background:rgba(138,92,210,0.22);color:rgba(210,185,255,0.9);border-color:rgba(138,92,210,0.4);}
.npbtn-polish:hover:not(:disabled){background:rgba(138,92,210,0.38);color:#fff;border-color:rgba(138,92,210,0.7);}
.npbtn-polish:disabled{opacity:0.55;cursor:not-allowed;}
.npbtn-polish.polishing{animation:polish-pulse 1.1s ease-in-out infinite;}
@keyframes polish-pulse{0%,100%{opacity:0.55;}50%{opacity:1;}}
.npbtn-undo{background:rgba(138,92,210,0.35) !important;color:rgba(220,200,255,0.95) !important;border-color:rgba(138,92,210,0.6) !important;}
.npbtn-undo:hover{background:rgba(138,92,210,0.5) !important;color:#fff !important;}
.note-textarea{flex:1;padding:22px 26px;font-family:Arial,Helvetica,sans-serif;font-size:12.5px;line-height:1.8;color:#1a1a1a;border:none;outline:none;background:#fff;overflow-y:auto;white-space:pre-wrap;word-break:break-word;}
.note-textarea:empty::before{content:'Click Generate Note to build the clinical note from your entries...';color:var(--text-faint);font-style:italic;}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.2);z-index:299;opacity:0;pointer-events:none;transition:opacity 0.22s;}
.overlay.show{opacity:1;pointer-events:all;}
.toast{position:fixed;bottom:16px;right:16px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:500;padding:7px 15px;border-radius:var(--radius);opacity:0;transform:translateY(6px);transition:all 0.16s;pointer-events:none;z-index:999;}
.toast.show{opacity:1;transform:translateY(0);}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
input[type="number"]{-moz-appearance:textfield;}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:99px;}
/* ── RESOURCES SUB-TABS ── */
.res-subtab-bar{display:flex;gap:0;border-bottom:1.5px solid var(--border-md);background:var(--surface);flex-shrink:0;padding:0 16px;}
.res-subtab{font-family:var(--font);font-size:11.5px;font-weight:500;padding:10px 18px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all 0.13s;white-space:nowrap;}
.res-subtab:hover{color:var(--text);}
.res-subtab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600;}
.res-sub-content{display:none;flex:1;overflow:hidden;min-height:0;}
.res-sub-content.active{display:flex;flex-direction:column;}

/* ── PROTOCOLS TAB ── */
.proto-layout{display:grid;grid-template-columns:1fr 1fr;flex:1;overflow:hidden;min-height:0;gap:0;}
.proto-col{overflow-y:auto;padding:20px;}
.proto-col-left{border-right:0.5px solid var(--border);}
.proto-search{display:flex;gap:8px;margin-bottom:14px;}
.proto-search input{flex:1;}
.proto-search select{width:160px;}
.proto-grid{display:flex;flex-direction:column;gap:8px;}
.proto-card{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;cursor:pointer;transition:box-shadow 0.15s,border-color 0.15s;}
.proto-card:hover{border-color:var(--blue);box-shadow:0 2px 12px rgba(36,114,184,0.1);}
.proto-card-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.proto-card-name{font-size:13px;font-weight:600;color:var(--text);flex:1;}
.proto-card-cat{font-size:9px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;padding:2px 8px;border-radius:12px;background:var(--blue-soft);color:var(--blue);}
.proto-card-desc{font-size:11.5px;color:var(--text-muted);line-height:1.45;margin-bottom:10px;}
.proto-card-actions{display:flex;gap:6px;}
.proto-btn{font-family:var(--font);font-size:11px;font-weight:600;padding:5px 14px;border-radius:var(--radius);cursor:pointer;border:0.5px solid var(--border-md);background:var(--gray-50);color:var(--text-muted);transition:all 0.13s;}
.proto-btn:hover{background:var(--gray-100);color:var(--text);}
.proto-btn-primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.proto-btn-primary:hover{background:var(--blue);}
.proto-btn-new{font-family:var(--font);font-size:12px;font-weight:600;padding:8px 18px;border-radius:var(--radius);cursor:pointer;border:1.5px dashed var(--blue);background:transparent;color:var(--blue);transition:all 0.13s;width:100%;margin-bottom:14px;}
.proto-btn-new:hover{background:var(--blue-soft);}
.proto-editor{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;}
.proto-editor .field{margin-bottom:12px;}
.proto-editor .field-label{font-size:11px;font-weight:600;margin-bottom:4px;}
.proto-editor textarea{min-height:100px;}
.proto-q-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;}
.proto-q-item{display:flex;gap:6px;align-items:center;}
.proto-q-item input{flex:1;}
.proto-q-item .proto-q-handle{cursor:grab;color:var(--text-faint);font-size:13px;flex-shrink:0;user-select:none;}
.proto-q-item .proto-q-del{cursor:pointer;color:var(--text-faint);font-size:15px;flex-shrink:0;padding:0 2px;}
.proto-q-item .proto-q-del:hover{color:#c03030;}
.proto-editor-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:0.5px solid var(--border);}
.proto-empty{text-align:center;padding:40px 20px;color:var(--text-faint);font-size:13px;font-style:italic;}

/* ── SURVEY MODAL ── */
.survey-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:400;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.survey-modal-overlay.open{opacity:1;pointer-events:all;}
.survey-modal{background:var(--surface);border-radius:var(--radius-lg);width:420px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 12px 48px rgba(0,0,0,0.18);padding:24px;}
.survey-modal h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:16px;}
.survey-modal-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}
.survey-modal-topbar h3{margin:0!important;}
.survey-modal-close.dashboard-remove-appointment-btn.os-button-dark{
  width:28px!important;
  min-width:28px!important;
  height:28px!important;
  min-height:28px!important;
}
.survey-modal .field{margin-bottom:14px;}
.survey-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0;}
.survey-qr-wrap canvas,.survey-qr-wrap img{border-radius:8px;border:2px solid var(--border);}
.survey-url{font-size:10px;color:var(--text-faint);word-break:break-all;text-align:center;max-width:320px;font-family:var(--mono);}
.survey-expiry{font-size:10px;color:var(--text-faint);font-style:italic;text-align:center;}
.survey-modal-actions{display:flex;align-items:flex-end;gap:8px;margin-top:14px;}
.survey-assign-field{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;margin:0;}
.survey-assign-field span{font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);}
.survey-assign-field span::after{content:" *";color:var(--ds-danger-text,#9B3D33);}
.survey-assign-field select{
  width:100%;
  min-height:34px;
  border:1px solid var(--border-md,color-mix(in srgb,var(--ink,#1F1B16) 18%,transparent))!important;
  border-radius:var(--radius);
  background:var(--surface,#FAF4E8)!important;
  color:var(--ink,#1F1B16)!important;
  font:600 11px/1 var(--font);
  padding:0 10px;
}
.survey-assign-field.survey-assign-required select{
  border-color:var(--ds-danger-text,#9B3D33)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--ds-danger-text,#9B3D33) 18%,transparent);
}
.survey-save-action{
  min-width:92px;
  min-height:34px;
  border:1px solid color-mix(in srgb,var(--ink,#1F1B16) 22%,transparent)!important;
  background:var(--surface,#FAF4E8)!important;
  color:var(--ink,#1F1B16)!important;
}
.survey-save-action.survey-save-dirty{
  border-color:var(--ink,#1F1B16)!important;
  background:var(--ink,#1F1B16)!important;
  color:var(--paper,#F4ECDD)!important;
}
.survey-row-clear{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  padding:0;
  border:1px solid var(--ink,#1F1B16);
  border-radius:5px;
  background:var(--ink,#1F1B16);
  color:var(--paper,#F4ECDD);
  font:800 10px/1 var(--font);
  cursor:pointer;
}
.survey-row-clear:hover,
.survey-row-clear:focus-visible{
  background:color-mix(in srgb,var(--ink,#1F1B16) 88%,var(--accent,#C2553A));
  border-color:color-mix(in srgb,var(--ink,#1F1B16) 88%,var(--accent,#C2553A));
  color:var(--paper,#F4ECDD);
}

/* ── SURVEY STATUS (Patient Files & Day Sheet) ── */
.survey-badge{font-size:10px;font-weight:600;padding:3px 9px;border-radius:12px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.survey-badge-pending{background:#fef3cd;color:#856404;animation:surveyPulse 2s infinite;}
.survey-badge-complete{background:var(--green-soft);color:var(--green);}
@keyframes surveyPulse{0%,100%{opacity:1;}50%{opacity:0.6;}}
.survey-card{margin-top:12px;}
.survey-card-body{padding:14px 16px;}

/* ── LOGIN SCREEN ── */
.login-wrap{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg);}
.login-card{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:36px 40px;width:340px;box-shadow:0 8px 32px rgba(0,0,0,0.08);}
.login-logo{display:flex;align-items:center;gap:9px;justify-content:center;margin-bottom:24px;}
.login-logo .logo-icon{width:36px;height:36px;border-radius:9px;background:var(--navy);display:flex;align-items:center;justify-content:center;}
.login-logo .logo-icon svg{width:20px;height:20px;}
.login-logo .logo-name{font-size:20px;font-weight:600;color:var(--text);}
.login-logo .logo-name em{color:var(--text-muted);font-style:normal;}
.login-field{margin-bottom:14px;}
.login-field label{display:block;font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;}
.login-field input{width:100%;padding:8px 12px;font-family:var(--font);font-size:13px;border:0.5px solid var(--border-md);border-radius:var(--radius);background:var(--gray-50);outline:none;box-sizing:border-box;}
.login-field input:focus{border-color:var(--blue);background:#fff;}
.login-btn{width:100%;padding:9px;font-family:var(--font);font-size:13px;font-weight:600;border:1px solid var(--ink-link,var(--blue,#d97757));border-radius:var(--radius);background:var(--ink-link,var(--blue,#d97757));color:var(--paper,#fff);cursor:pointer;margin-top:6px;transition:background 0.13s,border-color 0.13s;}
.login-btn:hover{background:color-mix(in srgb,var(--ink-link,var(--blue,#d97757)) 88%,var(--ink,#1f1e1d));border-color:color-mix(in srgb,var(--ink-link,var(--blue,#d97757)) 88%,var(--ink,#1f1e1d));}
.login-error{font-size:11px;color:#c03030;text-align:center;margin-top:8px;min-height:16px;}
/* Standalone shell (Stage 2): the injected #login-screen overlays the app shell
   (the source design toggled a sibling .app instead), and the secondary SSO
   button keeps the card's orange-on-cream contract as a quiet outline variant. */
#login-screen.login-wrap{position:fixed;inset:0;z-index:3000;}
.login-btn-secondary{background:transparent;color:var(--ink-link,var(--blue,#d97757));margin-top:8px;}
.login-btn-secondary:hover{background:color-mix(in srgb,var(--ink-link,var(--blue,#d97757)) 12%,var(--surface,#faf4e8));border-color:var(--ink-link,var(--blue,#d97757));}
.login-btn:disabled{opacity:0.6;cursor:default;}

/* ── S2.42 Piece 2 — Inbox queues + Hybrid View modal ── */
.workspace-page-shell{width:100%;max-width:none;margin:0;padding:0;display:flex;flex-direction:column;min-height:100%;box-sizing:border-box;}
.workspace-page-header{min-height:46px;display:flex;align-items:center;gap:12px;margin:0;padding:10px 24px;border-bottom:1px solid var(--hairline-faint,rgba(0,0,0,0.06));background:var(--os-canvas,var(--bg,#f0eee6));font-family:var(--sans-paper,var(--font));font-style:normal;text-align:left;box-sizing:border-box;}
.workspace-page-header .dashboard-title{font-size:18px;font-weight:600;color:var(--text);font-family:var(--display,var(--serif));letter-spacing:0;}
.workspace-date-action{color:var(--ink,var(--text))!important;}
.inbox-dashboard{width:100%;max-width:1400px;margin:0 auto;box-sizing:border-box;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px var(--os-safe-page-pad-x,76px);font-family:var(--sans-paper,var(--font));text-align:left;}
#tab-content-waitlists::before,#tab-content-billing::before,#tab-content-inbox::before{content:none;display:none;}
.inbox-section{min-width:0;padding:20px 22px 22px;background:var(--surface,#fff);border:1px solid var(--hairline-mid)!important;border-radius:10px!important;box-shadow:var(--shadow-paper)!important;color:var(--ink,var(--text));}
.inbox-section-wide{grid-column:1/-1;}
.inbox-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--hairline-faint,rgba(0,0,0,0.06));}
.inbox-section-head .notes-tab-hdr{margin:0;}
.inbox-section-count{min-width:24px;height:22px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--ink-link-soft,var(--blue-soft));border:1px solid var(--ink-link,var(--blue));color:var(--ink-link,var(--blue));font-size:11px;font-weight:700;font-style:normal;}
.or-day-nav{display:inline-flex;align-items:center;gap:7px;color:#1a2230;font-size:12px;font-weight:800;}
.or-day-nav button{width:24px;height:24px;border:1px solid rgba(26,34,48,0.28);border-radius:999px;background:var(--surface,#fff);color:#1a2230;font:inherit;line-height:1;cursor:pointer;}
.or-day-nav button:hover{background:var(--ink-link-soft,var(--blue-soft));}
.or-day-nav-date{min-width:88px;text-align:center;}
.inbox-section > .notes-tab-list{padding:0;}
#tab-content-inbox #notes-tab-list{max-height:304px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;}
#tab-content-inbox #incoming-referrals-list,
#tab-content-inbox #outgoing-referrals-list,
#tab-content-inbox #update-letters-list,
#tab-content-inbox #test-results-list{max-height:260px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;}
#tab-content-waitlists #cataract-waitlist-list,
#tab-content-waitlists #upcoming-or-days-list{max-height:352px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;}
.inbox-empty-state{min-height:88px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:16px 18px;border:1px solid var(--hairline-faint,rgba(0,0,0,0.06));border-radius:8px;background:var(--paper-2,var(--gray-100));font-style:normal;}
.inbox-empty-title{font-size:10px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint,var(--text-faint));}
.inbox-empty-copy{font-size:13px;line-height:1.5;color:var(--ink-mute,var(--text-muted));}
.notes-tab-body{padding:16px;font-family:var(--font);}
.notes-tab-hdr{font-family:var(--serif,var(--display));font-size:18px;font-weight:600;margin:0 0 12px 0;color:var(--ink,var(--text));letter-spacing:-0.01em;text-transform:none;}
.notes-tab-list{display:flex;flex-direction:column;gap:8px;}
.notes-tab-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--hairline-faint,rgba(0,0,0,0.06));border-radius:8px;background:var(--paper-2,var(--gray-100));}
.notes-tab-row-meta{font-size:12px;color:var(--ink-mute,var(--text-muted));}
.notes-tab-row-preview{font-size:13px;color:var(--ink,var(--text));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.notes-tab-row-copy{margin-top:4px;font-size:11.5px;font-weight:600;color:var(--ink-mute,var(--text-muted));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.notes-tab-row-actions{display:flex;gap:6px;}
.notes-tab-row-actions button{font-size:11px;font-weight:700;padding:5px 10px;border-radius:999px;border:1px solid var(--ink-link,var(--blue));background:var(--ink-link-soft,var(--blue-soft));color:var(--ink-link,var(--blue));cursor:pointer;font-family:var(--sans-paper,var(--font));}
.notes-tab-row-actions button:hover{filter:brightness(0.97);}
.notes-tab-empty{padding:24px;text-align:center;color:var(--text-muted);font-style:italic;}
.incoming-referral-row,.pending-consult-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:14px;padding:12px;border:1px solid var(--hairline-faint,rgba(0,0,0,0.06));border-radius:8px;background:var(--paper-2,var(--gray-100));}
.incoming-referral-main{min-width:0;display:flex;flex-direction:column;gap:7px;}
.incoming-referral-meta,.pending-consult-grid{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--ink-mute,var(--text-muted));}
.incoming-referral-main b,.incoming-referral-meta b,.pending-consult-grid b{font-size:10px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink,var(--text));margin-right:4px;}
.incoming-referral-preview{font-size:13px;color:var(--ink,var(--text));line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.incoming-referral-reason-label{font-size:10px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint,var(--text-faint));}
.incoming-referral-reason{min-height:46px;resize:vertical;border:1px solid var(--hairline-mid,rgba(20,40,72,0.14));border-radius:8px;background:var(--surface,#fff);color:var(--ink,var(--text));font-family:var(--sans-paper,var(--font));font-size:12.5px;line-height:1.4;padding:8px 10px;outline:none;}
.incoming-referral-reason:focus{border-color:var(--ink-link,var(--blue,#d97757));box-shadow:0 0 0 2px color-mix(in srgb,var(--ink-link,#d97757) 18%,transparent);}
.incoming-referral-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:7px;min-width:96px;}
.incoming-referral-actions button,.referral-modal-tools button,.pending-consult-row button{font-size:11px;font-weight:800;padding:6px 12px;border-radius:999px;border:1px solid var(--ink-link,var(--blue,#d97757));background:var(--ink-link-soft,var(--blue-soft));color:var(--ink-link,var(--blue,#d97757));cursor:pointer;font-family:var(--sans-paper,var(--font));}
.incoming-referral-book,.referral-modal-book{background:var(--surface,#fff)!important;color:var(--ink-link,var(--blue,#d97757))!important;}
.pending-consult-book{border-color:#9a4b00!important;background:#b85c00!important;color:#fff!important;}
.incoming-referral-reject{border-color:var(--hairline-mid,rgba(20,40,72,0.14))!important;background:var(--surface,#fff)!important;color:var(--ink-mute,var(--text-muted))!important;}
.referral-modal-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 18px;}
.referral-reject-body{padding:0 18px 4px;font-family:var(--sans-paper,var(--font));}
.referral-reject-body p{margin:0 0 10px;font-size:13px;color:var(--ink,var(--text));}
.referral-reject-body textarea{width:100%;min-height:92px;box-sizing:border-box;resize:vertical;border:1px solid var(--hairline-mid,rgba(20,40,72,0.14));border-radius:8px;background:var(--surface,#fff);color:var(--ink,var(--text));font-family:var(--sans-paper,var(--font));font-size:13px;line-height:1.45;padding:10px;outline:none;}
.pending-consult-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;}
.pending-consult-actions{align-items:center;}
.outgoing-referral-remove{min-width:28px;width:28px;height:28px;padding:0!important;border-radius:50%!important;font-size:16px!important;line-height:1;}
.waitlist-estimate{margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline-faint,rgba(0,0,0,0.06));font-size:12px;font-weight:800;color:var(--ink,var(--text));}
@media (max-width: 860px){.inbox-dashboard{grid-template-columns:1fr;}}
.note-view-modal-card{width:min(980px,calc(100vw - 48px));max-height:88vh;overflow:visible;background:var(--surface,#fff);border:1px solid var(--hairline-mid,rgba(20,40,72,0.14));}
.note-view-modal-body{margin:0 18px;padding:14px 16px;font-family:var(--sans-paper,var(--font));font-size:13px;line-height:1.55;color:var(--ink,var(--text));border:1px solid var(--hairline-faint,rgba(0,0,0,0.06));border-radius:10px;background:var(--paper-2,var(--gray-100));max-height:68vh;overflow:auto;}
.note-view-modal-body pre,.note-view-editor{white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:inherit;outline:none;}
.note-view-document-frame{display:block;width:100%;height:min(68vh,760px);border:0;background:var(--surface,#fff);border-radius:6px;}
.note-view-editor:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--ink-link,#d97757) 22%,transparent);border-radius:6px;}
.note-view-modal-footer{display:flex;flex-direction:column;gap:12px;padding:14px 18px 18px;}
.note-review-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;overflow:visible;}
.note-cc-directory.widget-directory{flex:0 1 320px;display:flex;align-items:center;gap:0;min-width:220px;position:relative;padding:0;}
.note-cc-directory .widget-directory-icon{flex:0 0 32px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px 0 0 8px;background:var(--ink-link,var(--blue,#d97757));border:1px solid var(--ink-link,var(--blue,#d97757));color:var(--surface,#fff);}
.note-cc-directory .widget-directory-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.note-cc-directory .widget-directory-input{height:32px!important;flex:1;min-width:0;font-family:var(--sans-paper,var(--font));font-size:12px;color:var(--ink,var(--text));padding:6px 10px!important;background:var(--surface,#fff)!important;border:1px solid var(--ink-link,var(--blue,#d97757))!important;border-left:0!important;border-radius:0 8px 8px 0!important;outline:none;}
.note-cc-directory .widget-directory-input::placeholder{color:var(--ink-faint,var(--text-faint));}
.note-cc-directory .widget-directory-results{display:none;position:fixed;left:0;right:auto;top:0;background:var(--surface,#fff);border:1px solid var(--hairline-mid,rgba(20,40,72,0.14));border-radius:8px;box-shadow:var(--shadow-paper,0 12px 30px rgba(0,0,0,0.12));padding:6px;z-index:460;max-height:220px;overflow-y:auto;}
.note-cc-directory .widget-directory-results.open{display:block;}
.note-cc-directory .widget-directory-result{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;border:0;background:transparent;border-radius:5px;cursor:pointer;text-align:left;font-family:var(--sans-paper,var(--font));}
.note-cc-directory .widget-directory-result:hover{background:var(--paper-2,var(--gray-100));}
.note-cc-directory .widget-directory-result-main{display:flex;flex-direction:column;gap:2px;min-width:0;}
.note-cc-directory .widget-directory-result-label{font-size:12.5px;font-weight:600;color:var(--ink,var(--text));}
.note-cc-directory .widget-directory-result-domain{font-family:var(--mono,'Geist Mono',ui-monospace,monospace);font-size:9.5px;color:var(--ink-faint,var(--text-faint));letter-spacing:0.02em;}
.note-cc-directory .widget-directory-source{font-size:9px;color:var(--ink-link,var(--blue,#d97757));text-transform:uppercase;letter-spacing:0.1em;font-weight:700;}
.note-cc-directory .widget-directory-empty{padding:8px 10px;font-size:11.5px;color:var(--ink-faint,var(--text-faint));font-style:italic;text-align:center;}
.note-view-save-btn{align-self:flex-start;min-width:92px;height:32px;padding:0 18px;border-radius:999px;border:1px solid var(--ink-link,var(--blue,#d97757));background:var(--surface,#fff);color:var(--ink-link,var(--blue,#d97757));font-family:var(--sans-paper,var(--font));font-size:12px;font-weight:800;cursor:pointer;transition:background .14s,color .14s,opacity .14s;}
.note-view-save-btn:disabled{opacity:1;cursor:default;}
.note-view-save-btn.is-dirty{background:var(--ink-link,var(--blue,#d97757));color:var(--surface,#fff);}
.note-cc-current{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding-top:2px;}
.note-cc-label{font-size:10px;font-weight:800;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint,var(--text-faint));}
.note-cc-list{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:24px;}
.note-cc-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:var(--ink-link-soft,var(--blue-soft));border:1px solid color-mix(in srgb,var(--ink-link,#d97757) 40%,transparent);color:var(--ink-link,var(--blue,#d97757));font-size:11px;font-weight:700;}
.note-cc-empty{font-size:12px;color:var(--ink-faint,var(--text-faint));font-style:italic;}
