diff --git a/public/css/styles.css b/public/css/styles.css index 5f31b20..d63f279 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -267,3 +267,81 @@ body{font-family:'Inter',system-ui,sans-serif;background:var(--g50);color:var(-- .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;} +.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;} +.wv-vax-item{background:var(--g50);border-radius:8px;padding:10px 14px;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;} + +/* Screens */ +.wv-screen-list{display:flex;flex-direction:column;gap:8px;} +.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);} + +/* 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;} diff --git a/public/index.html b/public/index.html index 9269af7..15f941e 100644 --- a/public/index.html +++ b/public/index.html @@ -147,6 +147,10 @@ Milestones + + + Well Visit + Admin @@ -703,6 +707,49 @@ + + + + Well Visit / Preventive Care + AAP 2025 Bright Futures periodicity — vaccines, screenings, billing codes, and catch-up schedule + + + + + + By Visit Age + + + Full Vaccine Schedule + + + Catch-Up Schedule + + + + + + + Select Visit Age: + + + + Select a visit age above to see recommendations. + + + + + + Loading schedule... + + + + + Loading catch-up schedule... + + + + @@ -785,6 +832,7 @@ + @@ -794,6 +842,7 @@ +
AAP 2025 Bright Futures periodicity — vaccines, screenings, billing codes, and catch-up schedule
Select a visit age above to see recommendations.
Loading schedule...
Loading catch-up schedule...