:root { --blue: #2563eb; --blue-dark: #1d4ed8; --blue-light: #dbeafe; --purple: #7c3aed; --purple-light: #ede9fe; --teal: #0891b2; --teal-light: #cffafe; --green: #10b981; --green-light: #d1fae5; --red: #ef4444; --red-light: #fee2e2; --amber: #f59e0b; --amber-light: #fef3c7; --g50:#f9fafb;--g100:#f3f4f6;--g200:#e5e7eb;--g300:#d1d5db;--g400:#9ca3af; --g500:#6b7280;--g600:#4b5563;--g700:#374151;--g800:#1f2937;--g900:#111827; --radius:12px; --shadow:0 1px 3px rgba(0,0,0,0.08); --shadow-md:0 4px 12px rgba(0,0,0,0.08); } *{margin:0;padding:0;box-sizing:border-box;} body{font-family:'Inter',system-ui,sans-serif;background:var(--g50);color:var(--g800);line-height:1.6;} /* AUTH */ .auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--g50);padding:20px;} .auth-box{background:white;border-radius:20px;padding:40px;max-width:440px;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.07),0 20px 60px -10px rgba(37,99,235,.12);border:1px solid #e0e7ff;} .auth-logo{text-align:center;margin-bottom:30px;} .auth-logo i{font-size:40px;color:var(--blue);margin-bottom:10px;} .auth-logo h1{font-size:24px;color:var(--g900);} .auth-logo p{color:var(--g500);font-size:14px;} .auth-form h2{font-size:20px;margin-bottom:20px;color:var(--g800);} .form-group{margin-bottom:16px;} .form-group label{display:block;font-size:13px;font-weight:600;color:var(--g600);margin-bottom:4px;} .form-group input{width:100%;padding:10px 14px;border:1.5px solid var(--g300);border-radius:8px;font-size:14px;font-family:inherit;} .form-group input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);} .form-group small{color:var(--g500);font-size:12px;} .btn-auth{width:100%;padding:12px;background:var(--blue);color:white;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:background 0.2s;} .btn-auth:hover{background:var(--blue-dark);} .auth-links{text-align:center;margin-top:16px;font-size:13px;} .auth-links a{color:var(--blue);text-decoration:none;margin:0 8px;} .hipaa-notice{margin-top:24px;padding:12px;background:var(--amber-light);border-radius:8px;font-size:12px;color:#92400e;display:flex;align-items:flex-start;gap:8px;} .hipaa-notice i{margin-top:2px;flex-shrink:0;} /* FOOTER */ .app-footer{color:rgba(255,255,255,0.4);font-size:10.5px;text-align:center;padding:20px 24px 8px;line-height:1.6;} /* HEADER */ .app-header{background:linear-gradient(135deg,var(--blue) 0%,var(--purple) 100%);color:white;padding:14px 24px;} .header-content{max-width:1200px;margin:0 auto;} .header-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;} .logo{display:flex;align-items:center;gap:12px;} .logo i{font-size:26px;} .logo h1{font-size:20px;font-weight:700;} .tagline{font-size:12px;opacity:0.8;} .header-right{display:flex;align-items:center;gap:12px;} .model-selector{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.15);padding:6px 12px;border-radius:8px;} .model-selector label{font-size:12px;} .model-selector select{padding:4px 8px;border:1px solid rgba(255,255,255,0.3);border-radius:6px;background:rgba(255,255,255,0.2);color:white;font-size:12px;font-family:inherit;max-width:220px;} .model-selector select option{background:var(--g800);color:white;} .cost-badge{font-size:10px;padding:2px 8px;background:rgba(16,185,129,0.3);border:1px solid rgba(16,185,129,0.5);border-radius:10px;color:#6ee7b7;font-weight:600;white-space:nowrap;} .header-buttons{display:flex;gap:6px;} .btn-header{background:rgba(255,255,255,0.15);border:none;color:white;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:14px;transition:background 0.2s;} .btn-header:hover{background:rgba(255,255,255,0.3);} /* APP BODY LAYOUT */ .app-body{display:flex;min-height:calc(100vh - 66px);} /* SIDEBAR */ .sidebar{width:210px;flex-shrink:0;background:white;border-right:1.5px solid var(--g200);display:flex;flex-direction:column;position:sticky;top:0;height:calc(100vh - 66px);overflow-y:auto;z-index:100;transition:width 0.22s ease;} .sidebar.collapsed{width:0;border:none;overflow:hidden;} .sidebar-header{display:none;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--g200);} .sidebar-title{font-size:13px;font-weight:700;color:var(--g700);} .sidebar-nav{display:flex;flex-direction:column;padding:8px 0;flex:1;} .sidebar-section-label{font-size:10px;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:0.7px;padding:10px 16px 4px;} .tab-btn{display:flex;align-items:center;gap:10px;padding:10px 16px;border:none;border-left:3px solid transparent;background:none;color:var(--g600);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all 0.15s;width:100%;text-align:left;} .tab-btn:hover{background:var(--g50);color:var(--g900);} .tab-btn.active{background:var(--blue-light);color:var(--blue);border-left-color:var(--blue);font-weight:600;} .tab-btn i{width:16px;text-align:center;flex-shrink:0;font-size:14px;} .tab-btn span{overflow:hidden;text-overflow:ellipsis;} .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:199;} .btn-menu-toggle{display:none;} /* Sidebar collapse/expand buttons (desktop only) */ .sidebar-pin-btn{display:flex;align-items:center;justify-content:center;padding:10px;border:none;background:none;color:var(--g400);cursor:pointer;font-size:13px;border-top:1px solid var(--g200);transition:color 0.15s;flex-shrink:0;} .sidebar-pin-btn:hover{color:var(--blue);} .sidebar-expand-btn{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:101;background:white;border:1.5px solid var(--g200);border-left:none;border-radius:0 8px 8px 0;padding:10px 6px;color:var(--g500);cursor:pointer;font-size:13px;box-shadow:2px 0 8px rgba(0,0,0,0.06);transition:color 0.15s;} .sidebar-expand-btn:hover{color:var(--blue);} /* MAIN */ .main-content{flex:1;min-width:0;padding:20px 20px;} .tab-content{display:none;} .tab-content.active{display:block;animation:fadeIn 0.25s ease;} @keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}} .module-header{margin-bottom:16px;} .module-header h2{font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px;} .module-header p{color:var(--g500);font-size:13px;margin-top:2px;} /* DEMOGRAPHICS */ .demographics-bar{display:flex;gap:12px;flex-wrap:wrap;background:white;padding:12px 16px;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;} .demo-field{display:flex;flex-direction:column;gap:3px;} .demo-field label{font-size:10px;font-weight:600;color:var(--g500);text-transform:uppercase;letter-spacing:0.5px;} .demo-field input,.demo-field select{padding:7px 10px;border:1.5px solid var(--g300);border-radius:8px;font-size:13px;font-family:inherit;min-width:130px;} .demo-field input:focus,.demo-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);} .soap-options{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:500;color:var(--g600);} .soap-options select{padding:6px 10px;border:1.5px solid var(--g300);border-radius:8px;font-size:13px;font-family:inherit;} /* CARDS */ .card{background:white;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;} .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--g50);border-bottom:1px solid var(--g200);} .card-header h3{font-size:13px;font-weight:600;color:var(--g700);display:flex;align-items:center;gap:6px;} /* EDITABLE BOX */ .editable-box{min-height:240px;max-height:600px;overflow-y:auto;padding:14px 18px;font-size:13px;line-height:1.8;outline:none;border-radius:0 0 var(--radius) var(--radius);} .editable-box:empty::before{content:attr(data-placeholder);color:var(--g400);} /* NOTE ENTRY (hospital course, chart review) */ .note-entry{padding:10px 16px;} .note-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;} .note-meta input,.note-meta select{padding:6px 10px;border:1.5px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;} .note-dictate{padding-top:6px;} .lab-entry{display:flex;gap:8px;padding:6px 16px;align-items:center;flex-wrap:wrap;} .lab-entry input{padding:6px 10px;border:1.5px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;flex:1;min-width:120px;} .full-input{width:100%;padding:10px 16px;border:none;font-size:13px;font-family:inherit;outline:none;border-top:1px solid var(--g200);} .action-row{margin-bottom:12px;} /* RECORDING */ .record-controls{display:flex;align-items:center;gap:14px;padding:14px 16px;} .record-btn{display:flex;align-items:center;gap:8px;padding:10px 22px;background:var(--red);color:white;border:none;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.2s;box-shadow:0 3px 10px rgba(239,68,68,0.3);} .record-btn:hover{transform:translateY(-1px);} .record-btn.recording{background:var(--g700);box-shadow:0 3px 10px rgba(0,0,0,0.2);} .btn-purple{background:var(--purple);box-shadow:0 3px 10px rgba(124,58,237,0.3);} .btn-teal{background:var(--teal);box-shadow:0 3px 10px rgba(8,145,178,0.3);} .btn-recording{background:var(--red) !important;color:white !important;animation:btnpulse 1.5s infinite;} .recording-indicator{display:flex;align-items:center;gap:6px;color:var(--red);font-weight:500;font-size:13px;} .recording-indicator.hidden{display:none;} .pulse-dot{width:10px;height:10px;background:var(--red);border-radius:50%;animation:pulse 1.5s infinite;} .pulse-purple{background:var(--purple);} .pulse-teal{background:var(--teal);} @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.4;transform:scale(1.3);}} @keyframes btnpulse{0%,100%{opacity:1;}50%{opacity:0.7;}} /* BUTTONS */ .btn-generate{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:var(--blue);color:white;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;margin-bottom:12px;transition:all 0.2s;box-shadow:0 3px 10px rgba(37,99,235,0.25);} .btn-generate:hover{transform:translateY(-1px);} .btn-generate:disabled{background:var(--g300);cursor:not-allowed;transform:none;box-shadow:none;} .btn-generate-purple{background:var(--purple);box-shadow:0 3px 10px rgba(124,58,237,0.25);} .btn-generate-teal{background:var(--teal);box-shadow:0 3px 10px rgba(8,145,178,0.25);} .btn-generate-blue{background:var(--blue);box-shadow:0 3px 10px rgba(37,99,235,0.25);} .btn-generate-green{background:var(--green);box-shadow:0 3px 10px rgba(16,185,129,0.25);} .btn-sm{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all 0.15s;} .btn-primary{background:var(--blue);color:white;}.btn-primary:hover{background:var(--blue-dark);} .btn-ghost{background:var(--g200);color:var(--g700);}.btn-ghost:hover{background:var(--g300);} .btn-success{background:var(--green);color:white;}.btn-success:hover{background:#059669;} .btn-warning{background:var(--amber);color:white;}.btn-warning:hover{background:#d97706;} .btn-reading{background:var(--red)!important;color:white!important;animation:btnpulse 1.5s infinite;} /* OUTPUT */ .output-card{border:2px solid var(--green);} .output-card.hidden{display:none;} .output-header{background:var(--green-light);border-bottom-color:var(--green);} .output-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;} .output-text{padding:20px 24px;font-size:13px;line-height:1.9;outline:none;min-height:480px;white-space:pre-wrap;overflow-y:auto;} .model-tag{font-size:10px;padding:2px 7px;background:var(--g200);border-radius:4px;color:var(--g600);} /* REFINE BAR */ .refine-bar{display:flex;gap:6px;padding:10px 16px;border-top:1px solid var(--g200);background:var(--g50);align-items:center;flex-wrap:wrap;} .refine-input{flex:1;min-width:200px;padding:7px 12px;border:1.5px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;} .refine-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);} /* CLARIFY BOX */ .clarify-box{padding:14px 16px;background:var(--amber-light);border-top:1px solid #fbbf24;font-size:13px;line-height:1.8;white-space:pre-wrap;color:#92400e;} .clarify-box.hidden{display:none;} /* MILESTONES */ .legend{display:flex;gap:16px;flex-wrap:wrap;padding:8px 14px;background:var(--teal-light);border-radius:var(--radius);margin-bottom:12px;font-size:12px;} .legend-item{display:flex;align-items:center;gap:5px;} .legend-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;font-weight:700;} .legend-yes{background:var(--green-light);color:var(--green);border:2px solid var(--green);} .legend-no{background:var(--red-light);color:var(--red);border:2px solid var(--red);} .legend-blank{background:var(--g100);color:var(--g400);border:2px solid var(--g300);} .domain-section{background:white;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;overflow:hidden;} .domain-header{padding:10px 16px;font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px;} .domain-header .badge{margin-left:auto;font-size:10px;font-weight:500;padding:2px 8px;border-radius:8px;background:rgba(255,255,255,0.6);} .domain-gross-motor .domain-header{background:var(--amber-light);color:#92400e;} .domain-fine-motor .domain-header{background:var(--blue-light);color:#1e40af;} .domain-language .domain-header{background:var(--purple-light);color:#5b21b6;} .domain-social .domain-header{background:#fce7f3;color:#9d174d;} .domain-cognitive .domain-header{background:var(--green-light);color:#065f46;} .ms-items{padding:4px 6px;} .ms-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;transition:background 0.15s;} .ms-item:hover{background:var(--g50);} .ms-toggle{display:flex;gap:3px;flex-shrink:0;} .toggle-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:2px solid var(--g300);border-radius:6px;background:white;cursor:pointer;font-size:14px;font-weight:700;color:var(--g400);transition:all 0.15s;} .toggle-btn:hover{border-color:var(--g400);} .toggle-btn.yes-on{background:var(--green-light);border-color:var(--green);color:var(--green);} .toggle-btn.no-on{background:var(--red-light);border-color:var(--red);color:var(--red);} .ms-text{font-size:13px;color:var(--g700);} .ms-item.is-yes .ms-text{color:var(--g900);font-weight:500;} .ms-item.is-no .ms-text{color:var(--red);} .milestone-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;} .summary-bar{display:flex;gap:14px;padding:8px 16px;background:var(--g50);border-bottom:1px solid var(--g200);font-size:12px;} .summary-bar.hidden{display:none;} .stat{display:flex;align-items:center;gap:5px;font-weight:500;} .dot{width:8px;height:8px;border-radius:50%;}.dot-green{background:var(--green);}.dot-red{background:var(--red);}.dot-gray{background:var(--g400);} .summary-section{border-top:2px dashed var(--g200);} .summary-section-header{padding:12px 16px;} .btn-generate-summary{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:linear-gradient(135deg,#f59e0b,#d97706);color:white;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.2s;} .btn-generate-summary:hover{transform:translateY(-1px);} .btn-generate-summary:disabled{background:var(--g300);cursor:not-allowed;transform:none;} .summary-output-header{background:var(--amber-light);border-bottom:1px solid #fbbf24;border-top:1px solid var(--g200);} .summary-output-text{padding:14px 16px;font-size:13px;line-height:1.8;outline:none;background:#fffbeb;font-weight:500;white-space:pre-wrap;} /* MODAL */ .modal{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:5000;padding:20px;backdrop-filter:blur(3px);} .modal.hidden{display:none;} .modal-content{background:white;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px rgba(0,0,0,0.2);} .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--g200);} .modal-header h2{font-size:18px;display:flex;align-items:center;gap:8px;} .modal-close{background:none;border:none;font-size:18px;color:var(--g500);cursor:pointer;padding:4px;} .modal-body{padding:24px;} .settings-section{margin-bottom:28px;} .settings-section h3{font-size:15px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px;color:var(--g800);} .settings-section p{font-size:13px;color:var(--g600);margin-bottom:8px;} .settings-section .form-group{margin-bottom:12px;} .settings-section img{max-width:200px;margin:12px 0;border:1px solid var(--g200);border-radius:8px;} .settings-section code{background:var(--g100);padding:2px 8px;border-radius:4px;font-size:12px;} .hipaa-info{font-size:13px;color:var(--g700);} .hipaa-info ul{margin:8px 0 8px 20px;} .hipaa-info li{margin-bottom:4px;} /* LOADING */ .loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(3px);} .loading-overlay.hidden{display:none;} .loading-box{background:white;padding:28px 44px;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-md);} .spinner{width:32px;height:32px;border:4px solid var(--g200);border-top-color:var(--blue);border-radius:50%;animation:spin 0.7s linear infinite;margin:0 auto 12px;} @keyframes spin{to{transform:rotate(360deg);}} .loading-box p{color:var(--g600);font-weight:500;font-size:13px;} /* TOAST */ .toast-container{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:6px;z-index:10000;} .toast{padding:8px 16px;border-radius:8px;color:white;font-size:12px;font-weight:500;box-shadow:var(--shadow-md);animation:slideIn 0.3s ease;display:flex;align-items:center;gap:6px;} .toast-success{background:var(--green);}.toast-error{background:var(--red);}.toast-info{background:var(--blue);} @keyframes slideIn{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}} .hidden{display:none;} /* RESPONSIVE */ @media(max-width:768px){ .header-top{flex-direction:row;align-items:center;} .header-right{flex-wrap:wrap;} .model-selector{flex:1;} .model-selector select{max-width:160px;flex:1;} .btn-menu-toggle{display:flex;align-items:center;justify-content:center;} /* Sidebar: hidden off-screen on mobile, slides in */ .app-body{display:block;} .sidebar{position:fixed;left:-220px;top:0;width:220px;height:100vh;z-index:200;transition:left 0.28s ease;box-shadow:none;} .sidebar.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,0.18);} .sidebar.open~.sidebar-overlay{display:block;} .sidebar-header{display:flex;} /* Hide desktop collapse controls on mobile */ .sidebar-pin-btn{display:none;} .sidebar-expand-btn{display:none !important;} .main-content{padding:12px;} .demographics-bar{flex-direction:column;} .demo-field input,.demo-field select{min-width:100%;} .note-meta{flex-direction:column;} .note-meta input,.note-meta select{min-width:100%;} .refine-bar{flex-direction:column;} .refine-input{min-width:100%;} .milestone-actions{flex-direction:column;} .auth-box{padding:24px;} } .editable-box::-webkit-scrollbar,.output-text::-webkit-scrollbar{width:5px;} .editable-box::-webkit-scrollbar-thumb,.output-text::-webkit-scrollbar-thumb{background:var(--g300);border-radius:3px;} /* Per-tab model selector */ .demo-field-model { flex: 1; min-width: 180px; } .demo-field-model select { min-width: 180px; max-width: 260px; } /* Labs textarea */ .visit-labs, .lab-values { width: 100%; padding: 8px 12px; border: 1.5px solid var(--g300); border-radius: 8px; font-size: 13px; font-family: inherit; resize: vertical; margin-top: 8px; line-height: 1.5; } .visit-labs:focus, .lab-values:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-light); } /* Admin Panel */ .admin-stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;} .stat-card{flex:1;min-width:120px;background:white;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;text-align:center;} .stat-value{font-size:28px;font-weight:700;color:var(--blue);} .stat-label{font-size:12px;color:var(--g500);margin-top:4px;} .admin-table{width:100%;border-collapse:collapse;font-size:13px;} .admin-table th{text-align:left;padding:10px 16px;background:var(--g50);border-bottom:2px solid var(--g200);font-weight:600;color:var(--g600);font-size:12px;text-transform:uppercase;letter-spacing:0.4px;} .admin-table td{padding:10px 16px;border-bottom:1px solid var(--g100);vertical-align:middle;} .admin-table tr:last-child td{border-bottom:none;} .admin-table tr:hover td{background:var(--g50);} /* ── WELL VISIT TAB ────────────────────────────────────────────────────────── */ .wv-subtab-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;} .wv-subtab-btn{padding:8px 18px;border:1.5px solid var(--g300);border-radius:8px;background:white;color:var(--g600);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:6px;transition:all 0.15s;} .wv-subtab-btn:hover{border-color:var(--blue);color:var(--blue);} .wv-subtab-btn.active{background:var(--blue);border-color:var(--blue);color:white;} .wv-subpanel{animation:fadeIn 0.2s;} .wv-visit-selector-row{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap;} .wv-visit-selector-row label{font-weight:600;font-size:14px;color:var(--g700);display:flex;align-items:center;gap:6px;} .wv-visit-select{padding:8px 14px;border:1.5px solid var(--g300);border-radius:8px;font-size:14px;font-family:inherit;color:var(--g800);background:white;cursor:pointer;min-width:200px;} .wv-visit-select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);} .wv-visit-detail{display:flex;flex-direction:column;gap:14px;min-height:400px;} .wv-section{background:white;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;} .wv-section-title{font-size:14px;font-weight:700;color:var(--g700);margin-bottom:12px;display:flex;align-items:center;gap:8px;} .wv-section-title i{color:var(--blue);} /* Billing */ .wv-billing-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:center;} .wv-billing-cell{display:flex;align-items:center;gap:8px;} .wv-label{font-size:12px;font-weight:600;color:var(--g500);text-transform:uppercase;letter-spacing:0.5px;} .wv-code-chip{padding:4px 12px;border-radius:20px;font-size:13px;font-weight:700;font-family:monospace;} .wv-code-chip.icd{background:var(--blue-light);color:var(--blue-dark);} .wv-code-chip.cpt{background:var(--purple-light);color:var(--purple);} .wv-billing-desc{width:100%;font-size:13px;color:var(--g600);margin-top:4px;} /* Chips */ .wv-chip-list{display:flex;flex-wrap:wrap;gap:8px;} .wv-chip{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;} .wv-chip-measure{background:var(--teal-light);color:var(--teal);} .wv-chip-range{background:var(--amber-light);color:#92400e;} /* Vaccines */ .wv-vax-list{display:flex;flex-direction:column;gap:10px;min-height:80px;} .wv-vax-item{background:var(--g50);border-radius:8px;padding:12px 16px;border-left:3px solid var(--green);} .wv-vax-name{font-size:14px;font-weight:600;color:var(--g800);display:flex;align-items:center;gap:8px;} .wv-vax-dot{color:var(--green);font-size:10px;} .wv-vax-dose{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;padding:2px 10px;background:var(--green-light);color:#065f46;border-radius:10px;} .wv-vax-note{margin-top:6px;font-size:12px;color:var(--g500);display:flex;align-items:flex-start;gap:6px;} .wv-vax-note i{color:var(--blue);margin-top:2px;flex-shrink:0;} /* Vaccine status row */ .wv-vax-status-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;} /* Screens */ .wv-screen-list{display:flex;flex-direction:column;gap:10px;min-height:60px;} .wv-screen-item{display:flex;align-items:center;gap:10px;} .wv-status-badge{flex-shrink:0;font-size:11px;font-weight:700;padding:2px 10px;border-radius:10px;text-transform:uppercase;letter-spacing:0.4px;} .wv-status-dot{background:var(--green-light);color:#065f46;} .wv-status-risk{background:var(--amber-light);color:#92400e;} .wv-status-range{background:var(--blue-light);color:var(--blue-dark);} .wv-screen-name{font-size:13px;color:var(--g700);} /* Growth & Feeding */ .wv-growth-box{display:flex;flex-direction:column;gap:8px;} .wv-growth-item{display:flex;gap:8px;align-items:baseline;font-size:13px;line-height:1.5;padding:6px 10px;background:var(--g50);border-radius:8px;} .wv-growth-label{font-weight:600;color:var(--g700);min-width:120px;white-space:nowrap;} .wv-feeding-list{margin:0;padding-left:20px;font-size:13px;line-height:1.7;color:var(--g700);} .wv-feeding-list li{margin-bottom:4px;} /* BMI Classification */ .wv-bmi-table{display:flex;flex-direction:column;gap:6px;} .wv-bmi-row{display:grid;grid-template-columns:160px 1fr 1fr;gap:8px;padding:8px 12px;background:var(--g50);border-radius:8px;font-size:12px;align-items:center;} .wv-bmi-label{font-weight:700;font-size:13px;} .wv-bmi-range{color:var(--g600);} .wv-bmi-action{color:var(--g600);font-style:italic;} .wv-bmi-note{margin-top:8px;font-size:11px;color:#6b7280;display:flex;align-items:flex-start;gap:6px;} @media(max-width:768px){.wv-bmi-row{grid-template-columns:1fr;}} /* Notes */ .wv-notes-box{background:var(--blue-light);border-radius:8px;padding:12px 16px;font-size:13px;color:#1e40af;display:flex;align-items:flex-start;gap:8px;} .wv-empty,.wv-loading{color:var(--g400);font-size:14px;padding:20px 0;text-align:center;} /* Catch-up */ .wv-catchup-intro{background:var(--blue-light);border-radius:8px;padding:12px 16px;font-size:13px;color:#1e40af;display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;} .wv-catchup-card{background:white;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;margin-bottom:14px;} .wv-catchup-title{font-size:14px;font-weight:700;color:var(--g800);margin-bottom:10px;display:flex;align-items:center;gap:8px;} .wv-catchup-title i{color:var(--green);} .wv-catchup-min-age{font-size:13px;color:var(--g600);margin-bottom:10px;} .wv-catchup-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:10px;} .wv-catchup-table th{text-align:left;padding:6px 10px;background:var(--g50);border-bottom:2px solid var(--g200);font-weight:600;color:var(--g600);font-size:11px;text-transform:uppercase;letter-spacing:0.4px;} .wv-catchup-table td{padding:6px 10px;border-bottom:1px solid var(--g100);vertical-align:top;} .wv-catchup-table tr:last-child td{border-bottom:none;} .wv-catchup-notes{margin:0;padding:0 0 0 18px;font-size:12px;color:var(--g600);line-height:1.7;} /* Full schedule table */ .wv-schedule-scroll{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);} .wv-schedule-table{min-width:900px;width:100%;border-collapse:collapse;font-size:12px;background:white;} .wv-schedule-table th{text-align:center;padding:8px 6px;background:var(--g50);border-bottom:2px solid var(--g200);font-weight:700;color:var(--g600);font-size:11px;position:sticky;top:0;z-index:1;} .wv-sched-vax-col{text-align:left!important;min-width:200px;position:sticky;left:0;background:var(--g50)!important;z-index:2;} .wv-sched-age-col{min-width:70px;} .wv-sched-vax-name{padding:8px 10px;border-bottom:1px solid var(--g100);font-weight:600;color:var(--g700);position:sticky;left:0;background:white;z-index:1;} .wv-sched-cell{padding:6px 4px;border-bottom:1px solid var(--g100);text-align:center;color:var(--g400);} .wv-sched-has{background:var(--green-light);color:#065f46;font-weight:700;border-radius:4px;cursor:help;} .wv-sched-legend{font-size:11px;color:var(--g400);margin-top:10px;display:flex;align-items:center;gap:6px;} .wv-sched-leg-dot{display:inline-block;width:12px;height:12px;background:var(--green-light);border-radius:2px;} /* Announcement Banner */ .announcement-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:500;border-bottom:1px solid transparent;} .announcement-banner.hidden{display:none;} .announcement-banner.ann-info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe;} .announcement-banner.ann-warning{background:#fffbeb;color:#92400e;border-color:#fcd34d;} .announcement-banner.ann-error{background:#fef2f2;color:#991b1b;border-color:#fca5a5;} .announcement-banner.ann-success{background:#f0fdf4;color:#166534;border-color:#86efac;} .announcement-banner span{flex:1;} .announcement-close{background:none;border:none;cursor:pointer;opacity:0.6;font-size:14px;padding:0 4px;color:inherit;} .announcement-close:hover{opacity:1;} /* Save bar (encounter label + save/load) */ .save-bar-wrap{position:relative;margin-bottom:10px;} .save-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--g50);border:1px solid var(--g200);border-radius:var(--radius);flex-wrap:wrap;} .save-label-input{flex:1;min-width:160px;font-size:13px;padding:5px 8px;border:1px solid var(--g200);border-radius:6px;background:white;} .save-label-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.12);} /* Saved encounters list */ .saved-enc-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--g50);border:1px solid var(--g200);border-radius:8px;font-size:13px;} .saved-enc-label{flex:1;font-weight:600;color:var(--g800);} .saved-enc-meta{font-size:11px;color:var(--g500);} .saved-enc-type{font-size:11px;background:var(--blue-light);color:var(--blue);padding:1px 6px;border-radius:10px;font-weight:600;} /* Memory list item */ .mem-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--g50);border:1px solid var(--g200);border-radius:8px;} .mem-item-info{flex:1;} .mem-item-name{font-weight:600;font-size:13px;color:var(--g800);} .mem-item-cat{font-size:11px;background:var(--green-light);color:#166534;padding:1px 6px;border-radius:10px;font-weight:600;} .mem-item-preview{font-size:12px;color:var(--g500);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px;} /* Models list in admin CMS */ .model-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--g100);} .model-row:last-child{border-bottom:none;} .model-row-name{flex:1;font-size:13px;font-weight:500;color:var(--g800);} .model-row-cost{font-size:12px;color:var(--g500);} .model-row-tag{font-size:10px;background:var(--g100);color:var(--g600);padding:1px 5px;border-radius:8px;} .model-row-toggle{font-size:12px;} /* SSHADESS form */ .shadess-domain{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:white;box-shadow:var(--shadow);} .shadess-domain-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;} .shadess-domain-body{display:flex;flex-direction:column;gap:6px;} .shadess-q-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:3px 0;} .shadess-q-text{font-size:13px;color:var(--g700);flex:1;min-width:200px;} .shadess-concern-badge{font-size:11px;background:var(--red-light);color:var(--red);padding:2px 8px;border-radius:10px;font-weight:600;} .shadess-flag-btn{font-size:11px;padding:2px 6px;} /* Settings page */ .settings-page{display:flex;flex-direction:column;gap:0;} .settings-page .settings-section{padding:20px;margin-bottom:12px;border-radius:var(--radius);} .settings-page .settings-section h3{font-size:16px;font-weight:700;color:var(--g800);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--g100);display:flex;align-items:center;gap:8px;} .settings-page .settings-section p{font-size:13px;color:var(--g600);margin-bottom:12px;line-height:1.6;} .settings-page .hipaa-info ul{margin:10px 0 10px 20px;font-size:13px;} .settings-page .hipaa-info li{margin-bottom:6px;line-height:1.5;} .settings-page .form-group{margin-bottom:14px;} .settings-page .form-group label{font-size:13px;font-weight:600;color:var(--g600);margin-bottom:4px;display:block;} .settings-page .form-group input{width:100%;padding:8px 12px;border:1.5px solid var(--g300);border-radius:6px;font-size:13px;box-sizing:border-box;} .settings-page .form-group input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 2px var(--blue-light);} /* Inline load popover — compact dropdown, right-aligned under Load button */ .enc-load-popover{position:absolute;right:0;top:calc(100% + 4px);width:360px;max-width:calc(100vw - 24px);background:white;border:1px solid var(--g300);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,0.15);z-index:600;display:flex;flex-direction:column;} .enc-load-popover.hidden{display:none;} .enc-load-popover-inner{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--g200);} .enc-load-search{flex:1;padding:6px 10px;border:1px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;} .enc-load-search:focus{outline:none;border-color:var(--blue);} .enc-pop-list{overflow-y:auto;max-height:260px;} .enc-pop-item{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--g100);} .enc-pop-item:hover{background:var(--g50);} .enc-pop-item:last-child{border-bottom:none;} /* ===== ROS / PE / DX — Tasks 2, 3, 4, 6 ===== */ .ros-system-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--g100);} .ros-system-row:last-child{border-bottom:none;} .ros-system-name{flex:1;font-size:13px;color:var(--g700);} .ros-status-btn{font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--g300);background:white;cursor:pointer;transition:all 0.15s;font-family:inherit;} .ros-status-btn:hover{background:var(--g100);} .ros-status-btn.wnl{background:var(--green-light);color:#166534;border-color:var(--green);} .ros-status-btn.abnormal{background:var(--red-light);color:#991b1b;border-color:var(--red);} .ros-status-btn.notrev{background:var(--g100);color:var(--g500);border-color:var(--g300);} .ros-note-input{font-size:12px;padding:3px 8px;border:1px solid var(--g300);border-radius:6px;width:180px;display:none;font-family:inherit;} .ros-note-input.visible{display:inline-block;} .dx-tag{display:inline-flex;align-items:center;gap:4px;background:var(--blue-light);color:#1d4ed8;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;margin:2px;} .dx-tag .dx-remove{cursor:pointer;opacity:0.7;font-size:14px;line-height:1;} .dx-tag .dx-remove:hover{opacity:1;} .dx-chip{cursor:pointer;padding:3px 10px;background:var(--g100);border:1px solid var(--g200);border-radius:12px;font-size:11px;color:var(--g700);display:inline-block;margin:2px;transition:all 0.15s;} .dx-chip:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue);} .sv-section-card{background:white;border-radius:var(--radius);border:1px solid var(--g200);padding:0;margin-bottom:10px;box-shadow:var(--shadow);} .sv-section-card .card-header{padding:10px 16px;border-bottom:1px solid var(--g100);display:flex;align-items:center;gap:8px;} .sv-section-card .card-header h3{font-size:14px;font-weight:600;color:var(--g800);display:flex;align-items:center;gap:6px;} .sv-section-card .card-body{padding:10px 16px;} .visit-status-btn{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--g300);background:white;cursor:pointer;transition:all 0.15s;font-family:inherit;} .visit-status-btn.given,.visit-status-btn.done{background:var(--green-light);color:#166534;border-color:var(--green);} .visit-status-btn.refused{background:var(--red-light);color:#991b1b;border-color:var(--red);} .visit-status-btn.deferred,.visit-status-btn.not-due{background:var(--amber-light);color:#92400e;border-color:var(--amber);} .visit-status-btn.already-done{background:var(--blue-light);color:#1e40af;border-color:var(--blue);} @media(max-width:640px){ .ros-system-row{flex-wrap:wrap;} .ros-note-input{width:100%;} .dx-chip{font-size:10px;} } /* ICD-10 live search dropdown */ .dx-results{position:absolute;top:calc(100% + 2px);left:0;right:0;background:white;border:1px solid var(--g300);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.12);z-index:400;max-height:240px;overflow-y:auto;} .dx-result-item{padding:7px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--g100);} .dx-result-item:last-child{border-bottom:none;} .dx-result-item:hover{background:var(--g50);} .dx-result-code{font-weight:700;color:var(--blue);margin-right:4px;} /* ============================================================ LEARNING HUB ============================================================ */ /* Category bar */ .lh-category-bar{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;} .lh-cat-pill{padding:5px 14px;border-radius:20px;border:1px solid var(--g300);background:white;font-size:13px;cursor:pointer;transition:all 0.15s;font-family:inherit;color:var(--g600);} .lh-cat-pill:hover{border-color:var(--blue);color:var(--blue);} .lh-cat-pill.active{background:var(--blue);color:white;border-color:var(--blue);} /* Feed */ .lh-feed{display:flex;flex-direction:column;gap:8px;} .lh-feed-item{padding:14px 16px;cursor:pointer;transition:box-shadow 0.15s,border-color 0.15s;} .lh-feed-item:hover{box-shadow:var(--shadow-md);border-color:var(--blue-light);} .lh-feed-item-header{display:flex;align-items:flex-start;gap:12px;} .lh-feed-title{font-size:14px;font-weight:600;color:var(--g800);} .lh-feed-meta{font-size:12px;color:var(--g500);display:flex;gap:8px;flex-wrap:wrap;margin-top:2px;} .lh-feed-meta span:not(:last-child)::after{content:'·';margin-left:8px;color:var(--g300);} .lh-feed-badges{display:flex;gap:6px;flex-shrink:0;align-items:flex-start;} .lh-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--g100);color:var(--g600);white-space:nowrap;} .lh-badge-quiz{background:var(--amber-light);color:#92400e;} /* Viewer */ .lh-viewer .card{margin-bottom:0;} .lh-content-body{font-size:14px;line-height:1.75;color:var(--g700);} .lh-content-body h1,.lh-content-body h2,.lh-content-body h3{margin:16px 0 8px;color:var(--g800);} .lh-content-body p{margin-bottom:12px;} .lh-content-body ul,.lh-content-body ol{margin:0 0 12px 20px;} .lh-content-body li{margin-bottom:4px;} .lh-content-body strong{color:var(--g900);} .lh-content-body code{background:var(--g100);padding:2px 6px;border-radius:4px;font-size:13px;} .lh-content-body blockquote{border-left:3px solid var(--blue);padding:8px 16px;margin:12px 0;background:var(--blue-light);border-radius:0 6px 6px 0;font-style:italic;} .lh-content-body table{width:100%;border-collapse:collapse;margin:12px 0;} .lh-content-body th,.lh-content-body td{padding:8px 12px;border:1px solid var(--g200);font-size:13px;} .lh-content-body th{background:var(--g50);font-weight:600;} /* Quiz — large, visual question cards */ .lh-quiz-q{margin-bottom:24px;padding:20px;background:white;border:1.5px solid var(--g200);border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,0.04);} .lh-quiz-q:last-child{margin-bottom:0;} .lh-quiz-q-header{display:flex;gap:10px;align-items:center;margin-bottom:10px;} .lh-quiz-q-num{font-size:13px;font-weight:700;color:white;background:linear-gradient(135deg,var(--blue),var(--purple));padding:4px 12px;border-radius:8px;min-width:32px;text-align:center;} .lh-quiz-q-type{font-size:11px;color:var(--g400);background:var(--g100);padding:2px 8px;border-radius:4px;} .lh-quiz-q-text{font-size:16px;font-weight:600;margin-bottom:14px;color:var(--g800);line-height:1.5;} .lh-quiz-options{display:flex;flex-direction:column;gap:8px;} .lh-quiz-option{display:flex;align-items:center;gap:12px;padding:14px 18px;border:2px solid var(--g200);border-radius:10px;cursor:pointer;transition:all 0.2s;font-size:14px;line-height:1.4;background:white;} .lh-quiz-option:hover{border-color:var(--blue);background:var(--blue-light);transform:translateY(-1px);box-shadow:0 2px 8px rgba(37,99,235,0.1);} .lh-quiz-option input[type="radio"]{accent-color:var(--blue);width:18px;height:18px;flex-shrink:0;} .lh-quiz-option span{flex:1;} .lh-opt-correct{border-color:var(--green) !important;background:var(--green-light) !important;box-shadow:0 0 0 2px rgba(16,185,129,0.2) !important;} .lh-opt-wrong{border-color:var(--red) !important;background:var(--red-light) !important;box-shadow:0 0 0 2px rgba(239,68,68,0.2) !important;} /* Quiz results */ .lh-result-item{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--g100);} .lh-result-item:last-child{border-bottom:none;} .lh-result-header{font-size:14px;margin-bottom:6px;} .lh-expl{font-size:13px;padding:8px 12px;border-radius:6px;margin-top:6px;} .lh-expl-wrong{background:var(--red-light);color:#991b1b;} .lh-expl-correct{background:var(--green-light);color:#166534;} .lh-expl-general{background:var(--blue-light);color:#1e40af;} /* CMS question builder */ .lh-question-block{padding:16px;border:1.5px solid var(--g200);border-radius:10px;margin-bottom:12px;background:white;box-shadow:0 1px 3px rgba(0,0,0,0.04);transition:outline 0.2s;} /* ============================================================ CONTENT MANAGER (WordPress-like CMS) ============================================================ */ /* Stats bar */ .cms-stats-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;} .cms-stat{flex:1;min-width:90px;background:white;border:1px solid var(--g200);border-radius:10px;padding:12px 16px;text-align:center;} .cms-stat-value{display:block;font-size:22px;font-weight:700;color:var(--blue);} .cms-stat-label{font-size:11px;color:var(--g500);text-transform:uppercase;letter-spacing:0.5px;} /* Layout */ .cms-layout{display:grid;grid-template-columns:220px 1fr;gap:16px;min-height:500px;} .cms-sidebar{display:flex;flex-direction:column;gap:12px;} .cms-sidebar-section{background:white;border:1px solid var(--g200);border-radius:10px;padding:14px;} .cms-sidebar-section h4{margin:0 0 10px;font-size:13px;color:var(--g600);display:flex;align-items:center;gap:6px;} .cms-main{background:white;border:1px solid var(--g200);border-radius:10px;overflow:hidden;} /* Category list in sidebar */ .cms-cat-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;} .cms-cat-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:6px;font-size:13px;cursor:default;} .cms-cat-item:hover{background:var(--g50);} .cms-cat-item .cms-cat-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .cms-cat-item .cms-cat-count{font-size:11px;color:var(--g400);margin:0 6px;} .cms-add-cat{display:flex;gap:4px;} .cms-btn-add{width:32px;height:32px;border:1px solid var(--g300);border-radius:6px;background:white;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:12px;} .cms-btn-add:hover{background:var(--blue-light);} /* Input small */ .cms-input-sm{font-size:13px;padding:6px 10px;border:1px solid var(--g300);border-radius:6px;font-family:inherit;background:white;box-sizing:border-box;} .cms-input-sm:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-light);} /* Toolbar */ .cms-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--g200);gap:12px;} .cms-search{display:flex;align-items:center;gap:6px;border:1px solid var(--g300);border-radius:6px;padding:0 10px;background:white;flex:1;max-width:280px;} .cms-search i{color:var(--g400);font-size:12px;} .cms-search input{border:none;outline:none;font-size:13px;padding:6px 0;width:100%;background:transparent;} /* Content table */ .cms-content-table{font-size:13px;} .cms-table-header{display:grid;grid-template-columns:1fr 110px 80px 80px 90px 40px;gap:8px;padding:8px 16px;background:var(--g50);border-bottom:1px solid var(--g200);font-weight:600;color:var(--g500);font-size:11px;text-transform:uppercase;letter-spacing:0.5px;} .cms-table-body{max-height:calc(100vh - 340px);overflow-y:auto;} .cms-table-row{display:grid;grid-template-columns:1fr 110px 80px 80px 90px 40px;gap:8px;padding:10px 16px;border-bottom:1px solid var(--g100);align-items:center;cursor:pointer;transition:background 0.1s;} .cms-table-row:hover{background:var(--g50);} .cms-col-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .cms-col-title .cms-title-sub{font-size:11px;color:var(--g400);font-weight:400;} .cms-col-cat,.cms-col-type,.cms-col-date{color:var(--g500);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .cms-col-status .cms-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;} .cms-badge-pub{background:var(--green-light);color:#166534;} .cms-badge-draft{background:var(--g100);color:var(--g500);} .cms-col-actions{text-align:center;} /* Editor */ .cms-editor{padding:16px 20px;} .cms-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px;} .cms-editor-actions{display:flex;gap:8px;align-items:center;} .cms-title-input{width:100%;font-size:22px;font-weight:600;padding:10px 0;border:none;border-bottom:2px solid var(--g200);outline:none;font-family:inherit;color:var(--g800);margin-bottom:12px;} .cms-title-input:focus{border-bottom-color:var(--blue);} .cms-meta-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px;} .cms-meta-field label{display:block;font-size:11px;font-weight:600;color:var(--g500);margin-bottom:3px;text-transform:uppercase;letter-spacing:0.3px;} .cms-meta-field select,.cms-meta-field input{width:100%;} .cms-label{display:block;font-size:12px;font-weight:600;color:var(--g600);margin-bottom:6px;} .cms-body-editor{width:100%;font-size:13px;line-height:1.6;padding:14px;border:1px solid var(--g300);border-radius:8px;resize:vertical;box-sizing:border-box;font-family:'Courier New',monospace;background:var(--g50);min-height:200px;} .cms-body-editor:focus{outline:none;border-color:var(--blue);background:white;box-shadow:0 0 0 2px var(--blue-light);} .cms-body-section{margin-bottom:20px;} /* Quiz section in editor */ .cms-quiz-section{border-top:2px solid var(--g200);padding-top:16px;} .cms-quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;} .cms-quiz-header h3{margin:0;font-size:15px;color:var(--g700);} /* Editor toolbar */ .cms-editor-toolbar{display:flex;gap:2px;padding:6px 8px;background:var(--g50);border:1px solid var(--g300);border-bottom:none;border-radius:8px 8px 0 0;flex-wrap:wrap;} .cms-tb-btn{width:32px;height:28px;border:none;background:transparent;cursor:pointer;border-radius:4px;font-size:12px;color:var(--g600);display:flex;align-items:center;justify-content:center;font-family:inherit;font-weight:600;} .cms-tb-btn:hover{background:var(--g200);color:var(--g800);} .cms-tb-sep{width:1px;background:var(--g300);margin:2px 4px;align-self:stretch;} .cms-body-section .cms-body-editor{border-radius:0 0 8px 8px;} /* Mobile responsive */ @media(max-width:768px){ .cms-layout{grid-template-columns:1fr;} .cms-sidebar{flex-direction:row;overflow-x:auto;gap:8px;} .cms-sidebar-section{min-width:200px;flex-shrink:0;} .cms-table-header,.cms-table-row{grid-template-columns:1fr 80px 70px;font-size:12px;} .cms-col-cat,.cms-col-date,.cms-col-actions{display:none;} .cms-meta-row{grid-template-columns:1fr;gap:8px;} .cms-stats-bar{gap:4px;} .cms-stat{padding:8px 10px;} .cms-stat-value{font-size:18px;} } .lh-option-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px;padding:6px 8px;border-radius:6px;background:var(--g50);} @media(max-width:640px){ .lh-feed-item-header{flex-direction:column;gap:6px;} .lh-feed-badges{align-self:flex-start;} .lh-option-row{flex-wrap:wrap;} .lh-option-row .lh-opt-expl{width:100%;} } /* ── Tiptap editor ────────────────────────────────────────── */ .cms-quill-body{border:1px solid var(--g300);border-radius:8px;background:white;overflow:hidden;} .cms-quill-body .tp-content .ProseMirror{min-height:280px;padding:16px;outline:none;font-size:14px;font-family:'Inter',system-ui,sans-serif;line-height:1.6;} /* Shared ProseMirror content styles */ .ProseMirror{outline:none;} .ProseMirror p{margin-bottom:8px;} .ProseMirror h2{font-size:20px;font-weight:700;margin:16px 0 8px;} .ProseMirror h3{font-size:16px;font-weight:600;margin:12px 0 6px;} .ProseMirror blockquote{border-left:4px solid var(--blue);padding-left:12px;color:var(--g600);margin:10px 0;} .ProseMirror pre{background:var(--g900);color:#e5e7eb;padding:12px;border-radius:6px;font-size:13px;overflow-x:auto;} .ProseMirror ul{padding-left:20px;margin-bottom:8px;} .ProseMirror ol{padding-left:20px;margin-bottom:8px;} .ProseMirror li{margin-bottom:3px;} .ProseMirror a{color:var(--blue);text-decoration:underline;} .ProseMirror code{background:var(--g100);padding:1px 5px;border-radius:3px;font-size:0.9em;} .ProseMirror p.is-editor-empty:first-child::before{content:attr(data-placeholder);color:var(--g400);pointer-events:none;float:left;height:0;} /* Tiptap toolbar */ .tp-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;background:var(--g50);border-bottom:1px solid var(--g200);} .tp-btn{height:28px;min-width:28px;padding:0 6px;border:none;background:transparent;cursor:pointer;border-radius:4px;font-size:12px;color:var(--g600);display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-weight:600;transition:background 0.1s;} .tp-btn:hover{background:var(--g200);color:var(--g800);} .tp-btn.active{background:var(--blue-light);color:var(--blue);} .tp-sep{width:1px;background:var(--g300);margin:2px 3px;align-self:stretch;} .tp-toolbar-mini{padding:4px 6px;} .tp-toolbar-mini .tp-btn{height:24px;min-width:24px;font-size:11px;} /* Link bar — inline, no popup */ .tp-link-bar{display:none;align-items:center;gap:6px;padding:6px 10px;background:#fffbeb;border-bottom:1px solid var(--amber);font-size:13px;} .tp-link-input{flex:1;padding:5px 10px;border:1px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;min-width:0;} .tp-link-apply{padding:4px 12px;background:var(--blue);color:white;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;} .tp-link-apply:hover{background:#1d4ed8;} .tp-link-remove{padding:4px 10px;background:var(--red-light);color:var(--red);border:1px solid var(--red);border-radius:6px;cursor:pointer;font-size:12px;} .tp-link-cancel{padding:4px 8px;background:transparent;border:none;cursor:pointer;color:var(--g400);font-size:14px;} .tp-content{position:relative;} /* Mini richtext wraps for questions/options */ .lh-q-richtext-wrap{border:1.5px solid var(--g300);border-radius:8px;overflow:hidden;margin-bottom:8px;} .lh-q-richtext-wrap .tp-content .ProseMirror{min-height:60px;padding:10px;font-size:14px;} .lh-opt-richtext-wrap{border:1.5px solid var(--g300);border-radius:6px;overflow:hidden;flex:2;} .lh-opt-richtext-wrap .tp-content .ProseMirror{min-height:36px;padding:6px 8px;font-size:13px;} /* Rich text toggle button */ .lh-richtext-btn{font-size:11px;padding:3px 8px;border:1px solid var(--g300);border-radius:4px;background:white;cursor:pointer;color:var(--g500);white-space:nowrap;} .lh-richtext-btn.active{background:var(--blue-light);border-color:var(--blue);color:var(--blue);font-weight:600;} /* Multi-select quiz options */ .lh-quiz-option input[type="checkbox"]{accent-color:var(--blue);width:18px;height:18px;flex-shrink:0;} .lh-quiz-multi-hint{font-size:12px;color:var(--g500);margin-bottom:10px;font-style:italic;} /* ── Inline delete confirmation bar ──────────────────────── */ /* display:flex is NOT set here — .hidden (display:none) must win */ .lh-delete-confirm-bar{align-items:center;gap:10px;padding:10px 16px;background:#fef2f2;border:1.5px solid #fca5a5;border-radius:10px;margin-bottom:12px;font-size:13px;color:#991b1b;flex-wrap:wrap;} .lh-delete-confirm-bar:not(.hidden){display:flex;} .lh-delete-confirm-bar i{color:var(--red);flex-shrink:0;} /* ── Marp / Presentation editor ──────────────────────────── */ .lh-marp-textarea{width:100%;min-height:320px;font-family:'Courier New',monospace;font-size:13px;line-height:1.6;padding:14px;border:1px solid var(--g300);border-radius:8px;resize:vertical;box-sizing:border-box;background:var(--g900);color:#e5e7eb;outline:none;} .lh-marp-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-light);} /* ── Slide preview modal ──────────────────────────────────── */ .slide-preview-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;} .slide-preview-modal.hidden{display:none;} .slide-preview-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.85);} .slide-preview-shell{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:column;padding:12px;} .slide-preview-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;flex-shrink:0;} .slide-preview-counter{font-size:14px;font-weight:700;color:white;background:rgba(255,255,255,0.15);padding:4px 14px;border-radius:20px;} .slide-preview-close{background:rgba(255,255,255,0.15);border:none;color:white;padding:6px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:background 0.15s;} .slide-preview-close:hover{background:rgba(255,255,255,0.25);} .slide-preview-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;min-height:0;overflow:hidden;} .slide-preview-frame{flex:1;max-width:900px;background:white;border-radius:8px;overflow:auto;box-shadow:0 8px 40px rgba(0,0,0,0.6);max-height:100%;display:flex;flex-direction:column;} .slide-preview-frame section{all:unset;display:block;padding:40px 48px !important;box-sizing:border-box;} .slide-preview-frame section *{box-sizing:border-box;} .slide-nav-btn{background:rgba(255,255,255,0.15);border:none;color:white;font-size:36px;line-height:1;padding:10px 14px;border-radius:10px;cursor:pointer;flex-shrink:0;transition:background 0.15s;user-select:none;} .slide-nav-btn:hover{background:rgba(255,255,255,0.25);} .slide-preview-dots{display:flex;justify-content:center;gap:6px;padding-top:10px;flex-shrink:0;flex-wrap:wrap;} .slide-dot{width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,0.3);cursor:pointer;padding:0;transition:background 0.15s;} .slide-dot.active{background:white;} @media(max-width:600px){ .slide-nav-btn{font-size:24px;padding:8px 10px;} .slide-preview-topbar span:nth-child(2){display:none;} } /* ── AI Generate panel ────────────────────────────────────── */ .lh-ai-panel{border:2px solid transparent;background:linear-gradient(white,white) padding-box,linear-gradient(135deg,#7c3aed,#2563eb) border-box;border-radius:12px;padding:20px;margin-bottom:16px;} .lh-ai-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;} .lh-ai-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--g200);padding-bottom:10px;} .lh-ai-tab{padding:6px 14px;border:1px solid var(--g200);border-radius:8px;background:white;cursor:pointer;font-size:13px;font-weight:500;color:var(--g600);display:flex;align-items:center;gap:6px;transition:all 0.15s;} .lh-ai-tab:hover{border-color:var(--blue);color:var(--blue);} .lh-ai-tab.active{background:var(--blue-light);border-color:var(--blue);color:var(--blue);font-weight:600;} .lh-ai-tabpanel{margin-bottom:14px;} .lh-ai-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border:2px dashed var(--g300);border-radius:10px;cursor:pointer;text-align:center;font-size:13px;color:var(--g600);transition:border-color 0.2s;background:var(--g50);} .lh-ai-dropzone:hover{border-color:var(--blue);background:var(--blue-light);} .lh-ai-options{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;padding:14px;background:var(--g50);border-radius:8px;} .lh-ai-opt-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;} .lh-ai-opt-field{display:flex;flex-direction:column;gap:3px;} .lh-ai-opt-field label{font-size:11px;font-weight:600;color:var(--g500);text-transform:uppercase;letter-spacing:0.3px;} /* Quiz questions card inside AI panel */ .lh-ai-quiz-card{background:linear-gradient(135deg,#eff6ff,#eef2ff);border:1.5px solid #c7d2fe;border-radius:10px;overflow:hidden;} .lh-ai-quiz-card-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:white;border-bottom:1px solid #e0e7ff;} .lh-ai-quiz-card-body{padding:12px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;} /* WebDAV browser */ .lh-webdav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--g100);transition:background 0.1s;} .lh-webdav-item:last-child{border-bottom:none;} .lh-webdav-item:hover{background:var(--g50);} .lh-webdav-dir{color:var(--g700);font-weight:500;} .lh-webdav-file{color:var(--g600);} .lh-webdav-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}