:root{--primary-color: #0ea5e9;--primary-dark: #0284c7;--accent-color: #f43f5e;--success-color: #10b981;--warning-color: #f59e0b;--bg-color: #f8fafc;--card-bg: #ffffff;--text-main: #0f172a;--text-secondary: #64748b;--border-color: #e2e8f0;--input-bg: #f8fafc;--rec-bg: #f0f9ff;--rec-border: #bae6fd;--rec-title: #0369a1;--rec-text: #0c4a6e;--radius-lg: 16px;--radius-md: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}[data-theme=dark]{--primary-color: #38bdf8;--primary-dark: #0ea5e9;--accent-color: #fb7185;--success-color: #34d399;--warning-color: #fbbf24;--bg-color: #0f172a;--card-bg: #1e293b;--text-main: #f1f5f9;--text-secondary: #94a3b8;--border-color: #334155;--input-bg: #1e293b;--rec-bg: #1e3a5f;--rec-border: #2563eb;--rec-title: #60a5fa;--rec-text: #bfdbfe;--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-main);line-height:1.5;padding:1rem}@media(min-width:768px){body{padding:2rem}}.container{max-width:1200px;margin:0 auto}header{text-align:center;margin-bottom:1.5rem}header h1{font-size:1.75rem;font-weight:700;color:var(--text-main);letter-spacing:-.025em;margin-bottom:.5rem}header p{color:var(--text-secondary);font-size:.9rem}@media(min-width:768px){header{margin-bottom:3rem}header h1{font-size:2.5rem}header p{font-size:1.1rem}}.grid-layout{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:900px){.grid-layout{grid-template-columns:1fr 1fr;gap:2rem}}.card{background:var(--card-bg);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.5)}@media(min-width:768px){.card{padding:2rem}}.card h2{font-size:1.1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #f1f5f9}@media(min-width:768px){.card h2{font-size:1.25rem;margin-bottom:1.5rem;padding-bottom:.75rem}}.form-group-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600;margin-top:1.25rem;margin-bottom:.75rem}@media(min-width:768px){.form-group-title{font-size:.9rem;margin-top:1.5rem;margin-bottom:1rem}}.form-group-title:first-of-type{margin-top:0}.grid-2{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:600px){.grid-2{grid-template-columns:1fr 1fr}}.input-group{margin-bottom:1rem}.input-group.full-width{grid-column:1 / -1}label{display:block;font-size:.875rem;font-weight:500;color:var(--text-main);margin-bottom:.5rem}input:not([type=checkbox]),select{width:100%;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-main);font-family:inherit;font-size:1rem;transition:all .2s}input:not([type=checkbox]):focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a;background-color:var(--card-bg)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--input-bg) inset!important;-webkit-text-fill-color:var(--text-main)!important}[data-theme=dark] input:-webkit-autofill,[data-theme=dark] input:-webkit-autofill:hover,[data-theme=dark] input:-webkit-autofill:focus,[data-theme=dark] input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--input-bg) inset!important;-webkit-text-fill-color:var(--text-main)!important}.hint{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.btn-primary{width:100%;padding:1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:2rem}.btn-primary:hover{background-color:var(--primary-dark)}.results-grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin-bottom:1.5rem}@media(min-width:600px){.results-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem}}.chart-container{margin-bottom:1.5rem;padding:1rem;background:var(--input-bg);border-radius:var(--radius-md);border:1px solid var(--border-color)}@media(min-width:768px){.chart-container{margin-bottom:2rem;padding:1.5rem}}.chart-container h3{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:var(--text-main)}@media(min-width:768px){.chart-container h3{font-size:1rem;margin-bottom:1rem}}.chart-container canvas{max-height:250px}@media(min-width:768px){.chart-container canvas{max-height:300px}}.metric-card{background:var(--input-bg);padding:1.25rem;border-radius:var(--radius-md);text-align:center;border:1px solid var(--border-color)}.metric-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.metric-value{font-size:1.75rem;font-weight:700;color:var(--text-main);line-height:1.2}.metric-unit{font-size:.75rem;color:var(--text-secondary)}.status-badge{display:inline-block;margin-top:.5rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;background-color:#e2e8f0;color:#64748b}.status-badge.success{background-color:#dcfce7;color:#166534}.status-badge.warning{background-color:#fef3c7;color:#92400e}.status-badge.danger{background-color:#fee2e2;color:#991b1b}.interpretation-box{margin-bottom:2rem}.interpret-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 0;border-bottom:1px solid #f1f5f9}@media(min-width:600px){.interpret-item{flex-direction:row;justify-content:space-between;align-items:center;gap:0}}.interpret-item:last-child{border-bottom:none}.interpret-item .label{font-weight:500;color:var(--text-secondary)}.interpret-item .value{font-weight:600}.recommendation-box{background-color:var(--rec-bg);border:1px solid var(--rec-border);border-radius:var(--radius-md);padding:1rem}@media(min-width:768px){.recommendation-box{padding:1.5rem}}.recommendation-box h3{color:var(--rec-title);font-size:1rem;margin-bottom:.75rem;border-bottom:none}@media(min-width:768px){.recommendation-box h3{font-size:1.1rem}}.recommendation-box p{color:var(--rec-text);font-size:.875rem;line-height:1.6}@media(min-width:768px){.recommendation-box p{font-size:.95rem}}.controls{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}@media(min-width:600px){.controls{flex-direction:row;gap:.75rem;justify-content:center;margin-bottom:1.5rem}}.toggle-btn{padding:.65rem 1rem;border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-main);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%}@media(min-width:600px){.toggle-btn{width:auto;padding:.5rem 1rem}}.toggle-btn:hover{background-color:var(--input-bg);border-color:var(--primary-color)}.toggle-btn svg{width:16px;height:16px}.monitoring-section{margin-top:.5rem}.measurement-entry{background:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem;position:relative;transition:all .3s ease}.measurement-entry.highlight{border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e926}.measurement-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.measurement-label{font-weight:600;font-size:.875rem;color:var(--primary-color)}.btn-remove{padding:.25rem .6rem;font-size:.75rem;background:transparent;border:1px solid var(--accent-color);color:var(--accent-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.btn-remove:hover{background:var(--accent-color);color:#fff}.btn-secondary{padding:.75rem 1.25rem;background:transparent;border:1.5px solid var(--primary-color);color:var(--primary-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-secondary:hover{background:var(--primary-color);color:#fff}.measurement-hint{display:block;margin-top:.75rem;color:var(--text-secondary)}.simulation-box{background:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;margin-top:1.5rem}@media(min-width:768px){.simulation-box{padding:1.5rem}}.simulation-box h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-main)}.simulation-grid{display:grid;grid-template-columns:1fr;gap:1rem;align-items:end}@media(min-width:600px){.simulation-grid{grid-template-columns:1fr 1fr auto}}.simulation-results{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.simulation-result-grid{display:grid;gap:.75rem}.sim-result-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0}.sim-result-label{font-size:.875rem;color:var(--text-secondary);min-width:120px}.sim-result-value{font-weight:600;color:var(--text-main)}.dose-recommendations-box{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;margin-top:1.5rem}@media(min-width:768px){.dose-recommendations-box{padding:1.5rem}}.dose-recommendations-box h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-main)}.dose-options{display:grid;gap:.5rem}.dose-options-header{display:none;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:1rem;padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}@media(min-width:600px){.dose-options-header{display:grid}}.dose-option{display:grid;grid-template-columns:1fr;gap:.5rem;padding:1rem;background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border-color);align-items:center;transition:all .2s}@media(min-width:600px){.dose-option{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:1rem}}.dose-option:hover{border-color:var(--primary-color)}.dose-option.recommended{border-color:var(--success-color);background:#10b9810d}.dose-option.current{border-color:var(--primary-color);background:#0ea5e90d}.dose-option-label{font-weight:600;color:var(--text-main);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.current-badge{font-size:.65rem;padding:.15rem .4rem;background:var(--primary-color);color:#fff;border-radius:4px;font-weight:600}.dose-option-auc,.dose-option-trough{font-size:.875rem;color:var(--text-main)}@media(max-width:599px){.dose-option-auc:before{content:"AUC: ";color:var(--text-secondary);font-weight:400}.dose-option-trough:before{content:"Trough: ";color:var(--text-secondary);font-weight:400}}.dose-option-status{text-align:left}@media(min-width:600px){.dose-option-status{text-align:right}}.fit-quality-indicator{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1rem;background:var(--input-bg);border-radius:var(--radius-md);border:1px solid var(--border-color);font-size:.875rem}.fit-quality-label{color:var(--text-secondary)}.fit-quality-value{font-weight:600}.fit-quality-value.good{color:var(--success-color)}.fit-quality-value.moderate{color:var(--warning-color)}.fit-quality-value.poor{color:var(--accent-color)}.fit-quality-details{color:var(--text-secondary);font-size:.8rem}[data-theme=dark] .dose-option.recommended{background:#10b9811a}[data-theme=dark] .dose-option.current{background:#0ea5e91a}[data-theme=dark] .measurement-entry.highlight{box-shadow:0 0 0 3px #38bdf833}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.modal-overlay.hidden{display:none}.modal-content{background:var(--card-bg);border-radius:var(--radius-lg);padding:2rem;max-width:500px;width:100%;text-align:center;box-shadow:0 25px 50px -12px #00000040;border:2px solid var(--warning-color)}.modal-icon{font-size:3rem;margin-bottom:1rem}.modal-content h2{font-size:1.25rem;font-weight:700;margin-bottom:1rem;color:var(--warning-color);border-bottom:none}.modal-content p{font-size:.9rem;line-height:1.7;color:var(--text-main);margin-bottom:1rem}.modal-watermark{font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--accent-color);padding:.5rem;border:1px dashed var(--accent-color);border-radius:var(--radius-md);margin-bottom:1.25rem}.modal-checkbox-label{display:flex;align-items:flex-start;gap:.5rem;text-align:left;font-size:.85rem;cursor:pointer;margin-bottom:1rem;color:var(--text-main)}.modal-checkbox-label input[type=checkbox]{width:auto;min-width:18px;height:18px;margin-top:.2rem;flex-shrink:0;cursor:pointer;accent-color:var(--primary-color)}.modal-content .btn-primary{margin-top:.5rem}.modal-content .btn-primary:disabled{opacity:.5;cursor:not-allowed}.results-watermark{text-align:center;font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--accent-color);opacity:.7;padding:.5rem;border-top:1px dashed var(--accent-color);margin-top:1.5rem}.input-group .validation-error{color:var(--accent-color);font-size:.75rem;margin-top:.25rem;display:none}.input-group.has-error input,.input-group.has-error select{border-color:var(--accent-color);box-shadow:0 0 0 3px #f43f5e1a}.input-group.has-error .validation-error{display:block}.action-bar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem}.action-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);border-radius:var(--radius-md);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.action-btn:hover{color:var(--primary-color);border-color:var(--primary-color)}.action-btn svg{flex-shrink:0}.action-btn--danger:hover{color:#ef4444;border-color:#ef4444}.modal-content--wide{max-width:900px;width:100%;text-align:left;border:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;max-height:90vh}.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.history-header h2{margin:0;font-size:1.1rem;color:var(--text-main);border-bottom:none}.modal-close-btn{background:transparent;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-secondary);padding:.25rem .5rem}.modal-close-btn:hover{color:var(--text-main)}.history-filter{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:.75rem}.history-filter label{display:flex;flex-direction:column;font-size:.8rem;color:var(--text-secondary);gap:.25rem}.history-filter input[type=date]{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-main);font-size:.85rem}.history-filter button{padding:.45rem .9rem;font-size:.8rem}.history-summary{font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.history-table-wrap{overflow:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:1rem;flex:1 1 auto;min-height:200px}.history-table{width:100%;border-collapse:collapse;font-size:.82rem}.history-table th,.history-table td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.history-table thead th{position:sticky;top:0;background:var(--card-bg);font-weight:600;color:var(--text-secondary)}.history-table tbody tr:hover{background:#0ea5e90f}.history-empty{text-align:center;color:var(--text-secondary);padding:2rem}.history-delete-btn{background:transparent;border:none;color:#ef4444;cursor:pointer;font-size:.9rem;padding:.2rem .4rem;border-radius:var(--radius-sm)}.history-delete-btn:hover{background:#ef44441f}.history-footer{display:flex;gap:.5rem;justify-content:flex-end}.history-footer .btn-danger{color:#ef4444;border-color:#ef4444}.history-footer .btn-danger:hover{background:#ef44441a}@media print{body{padding:0;background:#fff;color:#000}.controls,.action-bar,.toggle-btn,#calculateBtn,.btn-primary,.btn-secondary,.btn-remove,#addMeasurementBtn,#simulateBtn,.simulation-box,.modal-overlay{display:none!important}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.grid-layout{display:block}.results-section{page-break-before:auto}.results-watermark{color:#999!important;opacity:1!important;font-size:.85rem!important;border-top:2px solid #999!important;padding-top:.75rem!important;margin-top:2rem!important}.chart-container canvas{max-height:400px!important}}.age-input-row{display:flex;gap:.5rem}.age-field{flex:1;display:flex;align-items:center;gap:.35rem}.age-field input{flex:1;min-width:0}.age-unit{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}#pediatricHint{color:var(--primary-color);font-weight:500}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:0;background:var(--primary-color);color:#fff;padding:.5rem 1rem;z-index:10000;font-size:.875rem}.skip-link:focus{top:0}
