.dashboard{padding:0;max-width:100%;margin:0;padding-bottom:var(--space-lg)}.dashboard-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding:var(--space-sm) 0 var(--space-md);border-bottom:2px solid var(--accent-soft);background:var(--bg-app);flex-wrap:wrap;gap:var(--space-sm)}.dashboard-header h2{margin:0;color:var(--text-primary);font-weight:600;font-size:1.25rem}.dashboard-controls{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.time-period-tabs{display:flex;gap:var(--space-xs)}.time-period-tabs button{padding:var(--space-sm) var(--space-md);background:var(--bg-card);border:1px solid var(--shadow-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--text-secondary);transition:all .2s ease;box-shadow:var(--shadow-sm)}.time-period-tabs button:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.time-period-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-md)}.dashboard-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.sync-button{padding:var(--space-md) var(--space-lg);background:var(--bg-card);color:var(--accent);border:2px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;transition:all .2s ease;min-height:36px}.sync-button:hover:not(:disabled){background:var(--accent);color:#fff;box-shadow:var(--shadow-md)}.sync-button:disabled{opacity:.6;cursor:not-allowed}.last-sync{font-size:.75rem;color:var(--text-muted);font-style:italic}.analyze-button{padding:var(--space-md) var(--space-lg);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;transition:all .2s ease;box-shadow:var(--shadow-md);min-height:36px}.analyze-button:hover{background:var(--accent-hover);box-shadow:var(--shadow-lg)}.analyze-button:focus{outline:2px solid var(--accent);outline-offset:2px}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-sm);margin-bottom:var(--space-md)}.card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-sm);border-top:3px solid var(--accent);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;text-align:center}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent) 0%,#8b5cf6 100%)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card h3{margin:0;font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;text-align:center}.card-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;line-height:1.2}.card-value .card-score{display:block}.card-value .card-indicators{display:flex;align-items:center;gap:4px;font-size:1.1rem}.card-indicator{font-size:1.1rem}.card-indicator.good{color:var(--accent)}.card-indicator.ok{color:var(--warning)}.card-indicator.poor{color:var(--error)}.trend-arrow{font-size:1.1rem;font-weight:700;display:inline-block;transition:transform .2s ease}.trend-arrow.trend-up{color:var(--success)}.trend-arrow.trend-down{color:var(--error)}.trend-arrow.trend-neutral{color:var(--text-muted);opacity:.7}.school-trend-stats{display:flex;flex-direction:column;gap:var(--space-xs);flex:1;justify-content:center}.school-stat{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0;border-bottom:1px solid var(--shadow-sm)}.school-stat:last-child{border-bottom:none}.school-stat-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.school-stat-value{font-size:.9375rem;font-weight:600}.school-stat-value.present{color:var(--success)}.school-stat-value.absent{color:var(--error)}.school-stat-value.ok{color:var(--warning)}.dashboard-trends{margin-bottom:var(--space-lg)}.dashboard-trends details{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}@media(max-width:768px){.dashboard-trends details{margin-bottom:var(--space-sm)}}.dashboard-trends summary{padding:var(--space-md) var(--space-lg);font-weight:600;color:var(--text-primary);font-size:1rem;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid transparent;transition:background .2s ease}.dashboard-trends summary::-webkit-details-marker{display:none}.dashboard-trends summary:after{content:"▼";font-size:.7rem;color:var(--text-muted);transition:transform .2s ease}.dashboard-trends details[open] summary:after{transform:rotate(180deg)}.dashboard-trends summary:hover{background:var(--accent-soft)}.trend-section{margin-bottom:0}.trend-section-title{margin:0;font-size:inherit;font-weight:inherit;padding:0;border:none}.trends-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);padding:var(--space-md);margin:0}.chart-panel{background:var(--bg-app);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-lg);box-shadow:none;border:1px solid var(--shadow-sm);transition:box-shadow .2s ease}.chart-panel:hover{box-shadow:var(--shadow-sm)}.chart-panel h3{margin:0 0 var(--space-md) 0;color:var(--text-primary);font-weight:600;font-size:.9375rem;display:flex;align-items:center;gap:var(--space-sm)}.chart-panel h3:before{content:"";width:3px;height:14px;background:var(--accent);border-radius:2px}.chart-hint{margin:var(--space-xs) 0 0;font-size:.6875rem;color:var(--text-muted)}.chart-trends-compact{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--shadow-sm);display:flex;flex-wrap:wrap;gap:var(--space-md);font-size:.75rem}.chart-trend-item{display:flex;align-items:center;gap:var(--space-xs);flex:1;min-width:140px}.chart-trend-label{font-weight:600;color:var(--text-secondary);min-width:50px}.chart-trend-value{font-weight:600;color:var(--text-primary)}.chart-trend-arrow{font-size:.875rem;font-weight:700}.chart-trend-range{color:var(--text-muted);font-size:.6875rem;margin-left:auto}.dashboard-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.chart-container{background:var(--bg-card);border-radius:var(--radius-sm);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.chart-container h3{margin:0 0 var(--space-md) 0;color:var(--text-primary);font-weight:600;font-size:1rem}.dashboard-insights{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-md)}.dashboard-insights h3{margin:0 0 var(--space-md) 0;color:var(--text-primary);font-weight:600;font-size:1rem}.insight-group{margin-bottom:var(--space-md);border:1px solid var(--shadow-sm);border-radius:var(--radius-sm);overflow:hidden}.insight-group-summary{padding:var(--space-md);font-weight:600;color:var(--text-primary);font-size:.9375rem;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;background:var(--accent-soft);transition:background .2s ease}.insight-group-summary::-webkit-details-marker{display:none}.insight-group-summary:after{content:"▼";font-size:.7rem;color:var(--text-muted);transition:transform .2s ease}.insight-group[open] .insight-group-summary:after{transform:rotate(180deg)}.insight-group-summary:hover{background:var(--accent-border)}.no-insights{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-xl);font-size:.9375rem}.insights-list{display:flex;flex-direction:column;gap:var(--space-sm)}.insight{border-left:4px solid var(--warning);padding:var(--space-md);background:var(--accent-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.insight-high{border-left-color:var(--error)}.insight-medium,.insight-low{border-left-color:var(--accent)}.insight-header{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.insight-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.insight-correlation{background:var(--accent-soft);color:var(--accent)}.insight-pattern{background:var(--accent-soft);color:var(--accent-hover)}.insight-anomaly{background:#ef44441f;color:var(--error)}.insight-recommendation{background:var(--accent-soft);color:var(--accent-hover)}.insight-medication_effect{background:#a855f71f;color:#7c3aed}.insight-blood_trend{background:#ef444414;color:#dc2626}.insight-group-medication_effect{border-left:3px solid #7c3aed}.insight-group-blood_trend{border-left:3px solid #dc2626}.insight-group-recommendation{border-left:3px solid var(--success)}.insight-group-anomaly{border-left:3px solid var(--error)}.insight-group-correlation{border-left:3px solid var(--accent)}.insight-group-pattern{border-left:3px solid var(--warning)}.insight-severity{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.severity-high{background:#ef444426;color:var(--error)}.severity-medium{background:var(--accent-soft);color:var(--accent)}.severity-low{background:var(--accent-soft);color:var(--text-secondary)}.insight h4{margin:0 0 var(--space-xs) 0;color:var(--text-primary);font-weight:600;font-size:.9375rem}.insight-description{margin:0 0 var(--space-sm) 0;color:var(--text-secondary);line-height:1.45;font-size:.875rem}.insight-actionable{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);background:#10b9811a;border-left:3px solid var(--success);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-primary)}.insight-actionable strong{color:var(--success);font-weight:600}.insight-data-summary{margin:var(--space-xs) 0 var(--space-sm);font-size:.75rem;color:var(--text-muted);font-style:italic}.insight-evidence{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);background:#6366f10f;border-left:3px solid var(--accent);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-secondary);line-height:1.45}.insight-evidence strong{color:var(--accent);font-weight:600}.insight-footer{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:.75rem;color:var(--text-muted);margin-top:var(--space-sm);padding-top:var(--space-xs);border-top:1px solid var(--shadow-sm);align-items:center}.insight-confidence{font-weight:600;padding:2px 6px;border-radius:3px}.confidence-high{background:#10b9811f;color:var(--success)}.confidence-med{background:#f59e0b1f;color:var(--warning)}.confidence-low{background:#ef44441a;color:var(--error)}.insight-sample-size{background:var(--accent-soft);padding:2px 6px;border-radius:3px;font-weight:500}.insight-date-range{font-style:italic}.dashboard-alerts{background:#f59e0b1f;border:1px solid var(--warning);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-sm)}.dashboard-alerts h3{margin:0 0 var(--space-sm) 0;color:var(--warning);font-weight:600;font-size:.9375rem}.dashboard-alerts ul{margin:0;padding-left:var(--space-lg)}.dashboard-alerts li{margin:var(--space-xs) 0;color:var(--text-primary);font-size:.875rem}.dashboard-loading,.dashboard-error{text-align:center;padding:var(--space-lg);font-size:.9375rem;color:var(--text-secondary)}.dashboard-error{color:var(--error)}.dashboard-trends .recharts-responsive-container{min-height:180px}@media(min-width:769px){.dashboard-trends .recharts-responsive-container{min-height:200px}}@media(max-width:768px){.dashboard-header{margin-bottom:var(--space-sm);padding-bottom:var(--space-sm)}.dashboard-header h2{font-size:1.125rem}.dashboard-cards{gap:var(--space-xs);margin-bottom:var(--space-md);grid-template-columns:repeat(2,1fr)}.card{padding:var(--space-sm) var(--space-md)}.card h3{margin-bottom:2px;font-size:.625rem}.card-value{font-size:1.125rem}.time-period-tabs{flex-wrap:wrap}.time-period-tabs button{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.analyze-button,.sync-button{padding:var(--space-sm) var(--space-md);font-size:.8125rem;min-height:44px}.dashboard-actions{width:100%;justify-content:center}.dashboard-insights{padding:var(--space-md)}.dashboard-insights h3{font-size:.9375rem;margin-bottom:var(--space-sm)}.insight-group-summary{padding:var(--space-sm) var(--space-md);font-size:.875rem}.insight{padding:var(--space-sm) var(--space-md)}.insight h4{font-size:.875rem}.insight-description{font-size:.8125rem}.insight-actionable{font-size:.75rem;padding:var(--space-xs) var(--space-sm)}.insight-footer{flex-direction:column;gap:2px;font-size:.6875rem}.trends-grid{grid-template-columns:1fr;padding:var(--space-sm)}.chart-panel{padding:var(--space-sm) var(--space-md)}.dashboard-trends .recharts-responsive-container{min-height:150px}.chart-trends-compact{gap:var(--space-sm);font-size:.6875rem}.chart-trend-item{min-width:100%;flex-direction:column;align-items:flex-start;gap:2px}.chart-trend-label{min-width:auto}.chart-trend-range{margin-left:0;font-size:.625rem}.school-trend-stats{gap:2px}.dashboard-alerts{padding:var(--space-sm) var(--space-md)}.dashboard-alerts h3{font-size:.875rem;margin-bottom:var(--space-xs)}}.quick-pick-dropdown{position:absolute;left:0;right:0;top:100%;margin-top:6px;z-index:1000;background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;animation:quickPickSlideIn .28s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;min-width:100%}@keyframes quickPickSlideIn{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.quick-pick-option{display:block;width:100%;padding:12px 16px;border:none;background:none;text-align:left;font-size:15px;color:var(--text-primary);cursor:pointer;transition:background .15s ease,color .15s ease;pointer-events:auto;-webkit-tap-highlight-color:transparent}.quick-pick-option:hover,.quick-pick-option:focus{background:var(--accent-soft);color:var(--accent);outline:none}.quick-pick-option.selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.quick-pick-option+.quick-pick-option{border-top:1px solid #f0f0f0}.quick-pick-option.quick-pick-other{color:var(--text-secondary);font-style:italic;border-top:2px solid var(--shadow-sm)}.quick-pick-option.quick-pick-other:hover{color:var(--accent)}.quick-pick-option.quick-pick-range{font-weight:500}.quick-pick-option.quick-pick-range+.quick-pick-option:not(.quick-pick-range){border-top:2px solid #E0E0E0}@media(max-width:768px){.quick-pick-dropdown{position:fixed!important;left:12px!important;right:12px!important;top:auto!important;bottom:calc(68px + env(safe-area-inset-bottom,0px))!important;border-radius:16px!important;box-shadow:0 -4px 32px #0000002e!important;animation:quickPickSlideUp .25s cubic-bezier(.34,1.56,.64,1)!important;max-height:60vh;overflow-y:auto}@keyframes quickPickSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.quick-pick-option{padding:14px 20px;font-size:16px}}.data-table-container{padding:var(--space-md) 0;max-width:1400px;margin:0 auto}.table-controls{margin-bottom:var(--space-md);padding:var(--space-md);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.date-filters{display:flex;gap:24px}.date-filters label{display:flex;flex-direction:column;gap:var(--space-sm);font-weight:500;color:var(--text-primary);font-size:.875rem}.date-filter-box{cursor:pointer;padding:10px 12px;border-radius:12px;border:2px solid transparent;transition:border-color .25s ease,background .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease}.date-filter-box:hover{background:var(--accent-soft);border-color:var(--accent-border)}.date-filter-box:focus-within{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.02);box-shadow:var(--shadow-md)}.date-filter-box:active{transform:scale(.99);transition-duration:.1s}.date-filter-box-with-picker{position:relative;min-width:140px}.date-filter-label{display:block;margin-bottom:4px;font-size:13px}.date-filter-box input{border-bottom:none;padding-left:0;padding-right:0}.date-filters input{padding:var(--space-md);border:none;border-bottom:2px solid var(--text-muted);border-radius:0;font-size:.875rem;background:transparent;color:var(--text-primary);transition:border-color .2s ease;min-height:44px}.date-filter-box input:focus{outline:none;border-bottom:none}.date-filters input:focus{outline:none;border-bottom-color:var(--accent)}.date-filters input:hover{border-bottom-color:var(--text-secondary)}.table-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md);border-bottom:2px solid var(--shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.table-tabs::-webkit-scrollbar{display:none}.table-tabs button{padding:var(--space-md) var(--space-lg);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;transition:all .2s ease;min-height:44px;flex:0 0 auto;-webkit-tap-highlight-color:transparent}.table-tabs button:hover{color:var(--text-primary);background:var(--accent-soft)}.table-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.table-content{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--accent-soft)}.data-table th{padding:var(--space-md);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--accent-border);font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em}.data-table td{padding:var(--space-md);border-bottom:1px solid var(--shadow-sm);color:var(--text-primary)}.data-table .tags-cell{max-width:280px;word-break:break-word;white-space:normal;line-height:1.35;font-size:.875rem}.data-table tbody tr{transition:background .2s ease}.data-table tbody tr:hover{background:var(--accent-soft)}.gluten-warning{background:#f59e0b1f!important}.gluten-badge{background:var(--warning);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.blood-results-table .gluten-badge{background:#03a9f4;color:#fff!important}.absent-row{background:#ef444414!important}.school-cell{font-size:.8125rem;white-space:nowrap}.school-cell.present{color:var(--success)}.school-cell.absent{color:var(--error);font-weight:600}.school-cell.none{color:var(--text-muted)}.wellness-score{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-weight:500}.score-good{background:var(--accent-soft);color:var(--accent)}.score-ok{background:#f59e0b26;color:var(--warning)}.score-poor{background:#ef44441f;color:var(--error)}.table-loading{text-align:center;padding:var(--space-lg);font-size:.9375rem;color:var(--text-secondary)}.blood-trend-section .recharts-cartesian-grid-horizontal line,.blood-trend-section .recharts-cartesian-grid-vertical line{stroke:var(--accent-border)}.blood-trend-section .recharts-line-curve{stroke:var(--accent)}.blood-results-table-container{margin-top:var(--space-md)}.blood-results-table-container h3{margin:0 0 var(--space-sm) 0;color:var(--text-primary);font-weight:600;font-size:.9375rem}.blood-results-table{min-width:600px;table-layout:fixed}.blood-results-table th:first-child,.blood-results-table td:first-child{box-sizing:border-box}.blood-marker-header{position:relative}.blood-marker-resize-handle{position:absolute;top:0;right:0;width:10px;height:100%;cursor:col-resize;background:#00000014;border-left:1px solid var(--accent-border)}.blood-marker-resize-handle:after{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:2px;height:20px;background:var(--text-muted);border-radius:1px;opacity:.7}.blood-marker-resize-handle:hover,.blood-marker-resize-handle:active{background:var(--accent-soft)}.blood-marker-resize-handle:hover:after,.blood-marker-resize-handle:active:after{background:var(--accent);opacity:1}.blood-results-table td{vertical-align:top;padding:6px var(--space-sm);font-size:.8125rem}.blood-results-table tbody tr:hover td:first-child{background:var(--accent-soft)}.blood-marker-cell{box-shadow:2px 0 4px #0000000d}@media(max-width:768px){.data-table-container{padding:8px 0}.table-controls{margin-bottom:8px;padding:8px 10px}.table-tabs{margin-bottom:8px}.table-tabs button{padding:8px 10px;font-size:11px;min-height:40px}.table-content{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px}.data-table{min-width:500px}.data-table th,.data-table td{padding:8px 10px;font-size:13px}.blood-results-table{min-width:600px}}.result-trends-pdf{background:#fff;padding:24px;border-radius:4px;box-shadow:0 1px 3px #00000014}.result-trends-title{font-size:1.5rem;font-weight:700;color:#1a1a1a;margin:0 0 8px}.result-trends-date-limitation,.result-trends-patient,.result-trends-table-context{font-size:.875rem;color:#424242;margin:0 0 4px}.result-trends-table-context{margin-bottom:16px}.result-trends-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px;table-layout:fixed}.result-trends-table thead{background:#f5f5f5}.result-trends-table th{padding:12px 10px;text-align:left;font-weight:600;color:#1a1a1a;border:1px solid #333;font-size:13px}.result-trends-component-header{text-align:left!important;position:relative;background:#f5f5f5;z-index:10}.result-trends-date-col{text-align:center!important;min-width:100px}.result-trends-table td{padding:10px;border:1px solid #333;vertical-align:top;color:#1a1a1a}.result-trends-component-cell{background:#fff;z-index:9}.result-trends-component-name{font-weight:500}.result-trends-normal-range{font-size:.75rem;color:#555;margin-top:4px;padding-left:12px}.result-trends-cell{text-align:center}.result-trends-cell.result-trends-abnormal{background:linear-gradient(135deg,#1565c0,#1976d2);color:#fff;box-shadow:inset 0 1px #ffffff26}.result-trends-cell.result-trends-abnormal .result-trends-cell-inner span{color:#fff;font-weight:600;text-shadow:0 1px 1px rgba(0,0,0,.1)}.result-trends-abnormal-badge{display:block;margin-top:6px;padding:3px 10px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:#ffffff40;border-radius:6px;width:fit-content;margin-left:auto;margin-right:auto;border:1px solid rgba(255,255,255,.3)}.result-trends-cell-inner{position:relative;min-height:28px}.result-trends-pagination{display:flex;align-items:center;gap:16px;margin-top:16px;font-size:.875rem}.result-trends-pagination button{padding:6px 12px;font-size:.875rem;border:1px solid #ccc;background:#fff;cursor:pointer;border-radius:4px}.result-trends-pagination button:hover:not(:disabled){background:#f0f0f0}.result-trends-pagination button:disabled{opacity:.5;cursor:not-allowed}.entry-form-container{padding:8px 0;max-width:1000px;margin:0 auto;overflow:visible;position:relative}.entry-form-container h2{margin:0 0 var(--space-sm) 0;color:var(--text-primary);font-weight:600;font-size:1.125rem}.sick-days-section{margin-bottom:16px}.sick-days-section h3{margin:0 0 var(--space-xs) 0;font-size:1rem;color:var(--text-primary)}.section-hint{margin:0 0 var(--space-sm) 0;font-size:.8125rem;color:var(--text-secondary)}.form-row-inline{display:flex;flex-wrap:wrap;gap:10px 16px}.form-row-inline .form-group{flex:1;min-width:120px}.form-section-title{margin:var(--space-md) 0 var(--space-sm) 0;font-size:.9375rem;color:var(--text-secondary)}.entry-form{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-md);overflow:visible;position:relative}.form-group{margin-bottom:10px}.form-group label{display:block;margin-bottom:var(--space-sm);font-weight:500;color:var(--text-primary);font-size:.875rem}label.form-group-clickable,.form-group-clickable-wrapper{position:relative;display:block;cursor:pointer;padding:10px 12px;margin:0 -12px 14px;border-radius:12px;border:2px solid transparent;transition:border-color .25s ease,background .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease;overflow:visible;z-index:1}.form-group-clickable-wrapper{cursor:default}label.form-group-clickable:hover,.form-group-clickable-wrapper:hover{background:var(--accent-soft);border-color:var(--accent-border)}label.form-group-clickable:focus-within,.form-group-clickable-wrapper:focus-within{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01);box-shadow:var(--shadow-md);z-index:100}label.form-group-clickable:active,.form-group-clickable-wrapper:active{transform:scale(.99);transition-duration:.1s}.form-group-clickable .form-group-label,.form-group-clickable-wrapper .form-group-label{display:block;margin-bottom:var(--space-xs);font-weight:500;color:var(--text-primary);font-size:.875rem}.form-group-clickable input[type=date],.form-group-clickable input[type=time],.form-group-clickable select,.form-group-clickable-wrapper input[type=date],.form-group-clickable-wrapper input[type=time],.form-group-clickable-wrapper select{margin:0;border-bottom:none;padding-left:0;padding-right:0}.form-group-clickable input[type=date]:focus,.form-group-clickable input[type=time]:focus,.form-group-clickable select:focus,.form-group-clickable-wrapper input[type=date]:focus,.form-group-clickable-wrapper input[type=time]:focus,.form-group-clickable-wrapper select:focus{border-bottom:none}.wellness-date-wrapper{position:relative}.wellness-date-display{display:block;font-size:1rem;color:var(--text-primary);padding:2px 0;min-height:1.5em;pointer-events:none}.wellness-date-input-native{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;margin:0;padding:0}.wellness-date-wrapper:focus .wellness-date-input-native{pointer-events:auto}.wellness-date-wrapper.wellness-date-input-revealed .wellness-date-input-native{position:static;left:auto;width:auto;min-width:140px;height:auto;opacity:1;pointer-events:auto;margin-top:6px;padding:6px 8px;font-size:1rem;border:1px solid var(--border-color, #ccc);border-radius:8px}.wellness-date-wrapper.wellness-date-input-revealed .wellness-date-display{display:none}.form-row-inline .form-group-clickable,.form-row-inline .form-group-clickable-wrapper{flex:1;min-width:120px;margin-bottom:0;padding:8px 10px}.form-row-inline .form-group-clickable .form-group-label,.form-row-inline .form-group-clickable-wrapper .form-group-label{margin-bottom:4px}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:var(--space-md) var(--space-md);border:none;border-bottom:2px solid var(--text-muted);border-radius:0;font-size:1rem;font-family:inherit;background:transparent;transition:border-color .2s ease;color:var(--text-primary);min-height:44px;-webkit-appearance:none;appearance:none}.form-group input[type=text]:focus,.form-group input[type=date]:focus,.form-group input[type=time]:focus,.form-group input[type=number]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-bottom-color:var(--accent)}.form-group input[type=text]:hover,.form-group input[type=date]:hover,.form-group input[type=time]:hover,.form-group input[type=number]:hover,.form-group select:hover,.form-group textarea:hover{border-bottom-color:var(--text-secondary)}.form-group textarea{resize:vertical}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.gluten-warning-box{margin-top:var(--space-md);padding:var(--space-md);background:#f59e0b1f;border:1px solid var(--warning);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem}.score-input{display:flex;align-items:center;gap:15px}.score-slider{flex:1;height:4px;border-radius:2px;background:var(--text-muted);outline:none;-webkit-appearance:none;appearance:none}.score-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.score-slider::-webkit-slider-thumb:hover{box-shadow:var(--shadow-md)}.score-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:none;box-shadow:var(--shadow-sm);transition:all .2s ease}.score-slider::-moz-range-thumb:hover{box-shadow:var(--shadow-md)}.score-display{font-size:1.25rem;font-weight:600;color:var(--accent);min-width:40px;text-align:center}.score-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-top:var(--space-sm)}.symptoms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}.message{padding:var(--space-lg);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);box-shadow:var(--shadow-sm)}.message-success{background:#10b9811f;color:var(--text-primary);border:1px solid var(--success)}.message-error{background:#ef44441f;color:var(--error);border:1px solid var(--error)}.submit-button{width:100%;padding:var(--space-md) var(--space-lg);min-height:44px;-webkit-tap-highlight-color:transparent;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.submit-button:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-lg)}.submit-button:focus{outline:2px solid var(--accent);outline-offset:2px}.submit-button:disabled{background:#bdbdbd;cursor:not-allowed;box-shadow:none}.recent-entries{background:#fff;border-radius:4px;padding:16px 20px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.recent-entries h3{margin:0 0 12px;color:#424242;font-weight:500;font-size:16px}.recent-entries ul{list-style:none;padding:0;margin:0}.recent-entries li{padding:10px 12px;border-bottom:1px solid #E0E0E0;border-left:4px solid #FF9800;transition:background .2s ease}.recent-entries li:hover{background:#e3f2fd}.recent-entries li:last-child{border-bottom:none}.recent-entries li.gluten-entry{background:#fff9c4;border-left-color:#03a9f4}.entry-date{font-weight:500;color:#424242;margin-bottom:8px}.entry-meal,.entry-medication,.entry-dosage,.entry-time,.entry-description,.entry-feeling,.entry-symptoms,.entry-notes,.entry-score{margin:8px 0;color:#757575;font-size:14px}.gluten-badge{display:inline-block;background:#03a9f4;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;margin-left:8px;text-transform:uppercase;letter-spacing:.5px}.sick-day-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;background:#ffccbc;color:#bf360c}.no-entries{color:#757575;font-style:italic;text-align:center;padding:40px}.attendance-section{display:flex;flex-direction:column;gap:24px}.attendance-calendar-compact{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;max-width:600px}.attendance-calendar{background:#fff;border-radius:4px;padding:32px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.calendar-header button{padding:8px 16px;background:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:#424242;text-transform:uppercase;letter-spacing:.5px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;min-height:36px}.calendar-header button:hover{background:#bbdefb;box-shadow:0 4px 5px #00000024,0 1px 10px #0000001f,0 2px 4px -1px #0003}.calendar-header button:focus{outline:2px solid #2196F3;outline-offset:2px}.calendar-header h3{margin:0;color:#424242;font-weight:500;font-size:20px}.calendar-stats{display:flex;gap:24px;margin-bottom:24px;padding:16px;background:#e3f2fd;border-radius:4px}.stat{display:flex;align-items:center;gap:8px}.stat-label{font-weight:500;color:#757575}.stat-value{font-size:20px;font-weight:400}.stat-value.present{color:#2196f3}.stat-value.absent{color:#f44336}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{aspect-ratio:1;border:1px solid #E0E0E0;border-radius:4px;padding:8px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;justify-content:space-between;background:#fff}.calendar-day:hover{background:#bbdefb;border-color:#2196f3;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.calendar-day.present{background:#e3f2fd;border-color:#2196f3}.calendar-day.absent{background:#ffcdd2;border-color:#f44336}.calendar-click-hint{margin:0 0 8px;font-size:13px;color:#757575}.calendar-weekday-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.calendar-weekday-label{text-align:center;font-size:12px;font-weight:600;color:#757575;padding:4px 0}.calendar-day-empty{aspect-ratio:1}.calendar-grid-compact{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day-compact{aspect-ratio:1;border:1px solid #E0E0E0;border-radius:4px;padding:4px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:#fff;min-height:32px;font-size:12px;font-family:inherit;position:relative;-webkit-tap-highlight-color:transparent}.calendar-day-compact:hover:not(:disabled){background:#bbdefb;border-color:#2196f3;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.calendar-day-compact:active:not(:disabled){transform:scale(.96)}.calendar-day-compact:disabled,.calendar-day-compact.toggling{cursor:wait;opacity:.85}.calendar-day-compact.present{background:#e3f2fd;border-color:#2196f3}.calendar-day-compact.absent{background:#ffcdd2;border-color:#f44336}.calendar-day-compact.selected{box-shadow:0 0 0 2px #424242;outline:none}.calendar-day-compact.weekend,.calendar-day-compact.future{opacity:.45;cursor:default;background:#fafafa;border-color:#eee}.day-toggling-spinner{position:absolute;inset:0;border-radius:4px;border:2px solid transparent;border-top-color:#2196f3;animation:calendar-spin .6s linear infinite;pointer-events:none}@keyframes calendar-spin{to{transform:rotate(360deg)}}.day-number{font-weight:500;color:#424242}.day-status{font-size:18px;text-align:center}.day-oura-dot{display:block;font-size:8px;color:#7c4dff;line-height:1;margin-top:2px}.calendar-day-detail{margin-top:16px;padding:14px 16px;background:#f5f5f5;border-radius:8px;border:1px solid #E0E0E0}.calendar-day-detail h4{margin:0 0 10px;font-size:15px;color:#424242}.day-detail-status{margin:0 0 12px;font-size:14px;color:#616161}.day-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.day-detail-btn{padding:8px 14px;border-radius:6px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s ease,opacity .2s ease}.day-detail-btn:disabled{opacity:.6;cursor:not-allowed}.day-detail-btn.present{background:#2196f3;color:#fff}.day-detail-btn.present:hover:not(:disabled){background:#1976d2}.day-detail-btn.absent{background:#ff5722;color:#fff}.day-detail-btn.absent:hover:not(:disabled){background:#e64a19}.day-detail-oura{border-top:1px solid #E0E0E0;padding-top:12px}.day-detail-oura-label{display:block;font-size:12px;color:#757575;margin-bottom:8px}.day-detail-btn.oura-tag{background:#9c27b0;color:#fff;margin-right:8px;margin-bottom:6px}.day-detail-btn.oura-tag:hover:not(:disabled){background:#7b1fa2}.wellness-score{display:inline-block;padding:4px 8px;border-radius:4px;font-weight:500}.score-good{background:#ffecb3;color:#e65100}.score-ok{background:#fff9c4;color:#f57f17}.score-poor{background:#ffcdd2;color:#c62828}.attendance-trends{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;margin-top:24px}.trend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #BBDEFB}.trend-header h3{margin:0;color:#424242;font-weight:500;font-size:20px}.time-period-tabs{display:flex;gap:8px}.time-period-tabs button{padding:8px 16px;background:#fff;border:1px solid #E0E0E0;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:#757575;transition:all .3s cubic-bezier(.4,0,.2,1)}.time-period-tabs button:hover{background:#e3f2fd;border-color:#2196f3;color:#2196f3}.time-period-tabs button.active{background:#2196f3;border-color:#2196f3;color:#fff;box-shadow:0 2px 4px #2196f34d}.trend-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:24px}.trend-chart-panel{background:#f5f5f5;border-radius:4px;padding:20px;border-top:4px solid #2196F3}.trend-chart-panel h4{margin:0 0 16px;color:#424242;font-weight:500;font-size:16px}.entry-form-compact{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;margin-bottom:24px;max-width:600px}.entry-form-compact .form-group{margin-bottom:16px}.entry-form-compact textarea{min-height:60px}.medication-table-section{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;margin-top:24px}.medication-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #BBDEFB}.medication-table-header h3{margin:0;color:#424242;font-weight:500;font-size:20px}.medication-table-container{overflow-x:auto;max-width:100%}.medication-timeline-table{width:100%;border-collapse:collapse;font-size:14px}.medication-timeline-table thead{background:#e3f2fd;position:sticky;top:0;z-index:10}.medication-timeline-table th{padding:12px 8px;text-align:center;font-weight:500;color:#424242;border-bottom:2px solid #BBDEFB;border-right:1px solid #E0E0E0;font-size:12px;white-space:nowrap}.medication-name-col{position:sticky;left:0;background:#e3f2fd;z-index:5;min-width:150px;text-align:left!important;padding-left:16px!important}.medication-timeline-table tbody tr{border-bottom:1px solid #F5F5F5}.medication-timeline-table tbody tr:hover{background:#f5f5f5}.medication-name-cell{position:sticky;left:0;background:#fff;z-index:4;padding:12px 16px;font-weight:500;color:#424242;border-right:2px solid #E0E0E0;min-width:150px}.medication-timeline-table tbody tr:hover .medication-name-cell{background:#f5f5f5}.medication-cell{padding:12px 8px;text-align:center;border-right:1px solid #F5F5F5;color:#757575;font-size:12px;min-width:80px;white-space:normal;word-break:break-word}.medication-cell.has-medication{background:#e3f2fd;color:#1976d2;font-weight:500}.medication-timeline-table tbody tr:hover .medication-cell.has-medication{background:#bbdefb}.medication-notes-col{position:sticky;right:0;background:#e3f2fd;z-index:5;min-width:200px;max-width:320px;text-align:left!important;padding-left:12px!important}.medication-notes-cell{position:sticky;right:0;background:#fff;z-index:4;text-align:left!important;padding:12px;font-size:12px;color:#424242;border-left:2px solid #E0E0E0;white-space:pre-wrap;word-break:break-word}.medication-timeline-table tbody tr:hover .medication-notes-cell{background:#f5f5f5}.entry-oura-tags{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 0}.entry-oura-tag-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:500;background:#6366f11f;color:#4338ca;border:1px solid rgba(99,102,241,.25)}@media(max-width:768px){.entry-form-container{padding:8px 0}.entry-form-container h2{margin:0 0 8px;font-size:1.125rem}.entry-form{padding:14px 16px;margin-bottom:12px;border-radius:var(--radius-md)}.form-group{margin-bottom:12px}.symptoms-grid{grid-template-columns:repeat(2,1fr);gap:8px}.checkbox-label{font-size:.9375rem;gap:6px}.score-input{gap:10px}.score-display{font-size:1.375rem;min-width:36px}.form-group-clickable-wrapper{padding:12px 14px;margin:0 -14px 14px}.wellness-date-display{font-size:1.0625rem;font-weight:500}.recent-entries{padding:14px 16px;border-radius:var(--radius-md)}.recent-entries h3{font-size:.9375rem;margin-bottom:10px}.recent-entries li{padding:10px 12px}.entry-date{font-size:.9375rem}.entry-score,.entry-feeling,.entry-symptoms,.entry-notes{font-size:.875rem;margin:5px 0}.message{padding:10px 12px;margin-bottom:12px}.sick-days-section{margin-bottom:12px}.form-section-title{margin:10px 0 6px;font-size:14px}.attendance-section{gap:12px}.attendance-calendar-compact{padding:12px 14px}.calendar-header h3{font-size:16px}.calendar-grid-compact{gap:2px}.calendar-day-compact .day-number{font-size:12px}.attendance-trends h3,.trend-header h3{font-size:15px}.trend-chart-panel{min-height:180px}}.oura-connection{padding:24px;max-width:1000px;margin:0 auto}.oura-connection h2{margin:0 0 32px;color:#424242;font-weight:500;font-size:24px}.connection-info{background:#bbdefb;border:1px solid #2196F3;border-radius:4px;padding:24px;margin-bottom:32px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.connection-info p{margin:12px 0;color:#e65100;line-height:1.6}.connection-info a{color:#e65100;text-decoration:underline}.connection-actions{margin-bottom:32px}.action-card{background:#fff;border-radius:4px;padding:32px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;text-align:center}.action-card h3{margin:0 0 12px;color:#424242;font-weight:500;font-size:20px}.action-card p{margin:0 0 24px;color:#757575}.connect-button,.sync-button{padding:12px 24px;background:#2196f3;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;min-height:36px}.connect-button:hover:not(:disabled),.sync-button:hover:not(:disabled){background:#1976d2;box-shadow:0 4px 5px #00000024,0 1px 10px #0000001f,0 2px 4px -1px #0003}.connect-button:active:not(:disabled),.sync-button:active:not(:disabled){box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.connect-button:focus,.sync-button:focus{outline:2px solid #2196F3;outline-offset:2px}.connect-button:disabled,.sync-button:disabled{background:#bdbdbd;cursor:not-allowed;box-shadow:none}.webhook-info{background:#fff;border-radius:4px;padding:32px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003;margin-bottom:32px}.webhook-info h3{margin:0 0 16px;color:#424242;font-weight:500;font-size:20px}.webhook-info p{margin:12px 0;color:#757575;line-height:1.6}.webhook-url{background:#e3f2fd;padding:16px;border-radius:4px;margin:16px 0}.webhook-url strong{display:block;margin-bottom:8px;color:#424242;font-weight:500}.webhook-url code{display:block;padding:12px;background:#fff;border:1px solid #E0E0E0;border-radius:4px;font-family:Courier New,monospace;word-break:break-all;color:#424242}.webhook-note{font-size:14px;color:#9e9e9e;font-style:italic}.message{padding:16px;border-radius:4px;margin-bottom:24px;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.message-success{background:#ffecb3;color:#e65100;border:1px solid #03A9F4}.message-error{background:#ffccbc;color:#bf360c;border:1px solid #F44336}.data-sources{background:#fff;border-radius:4px;padding:32px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}.data-sources h3{margin:0 0 16px;color:#424242;font-weight:500;font-size:20px}.data-sources ul{list-style:none;padding:0;margin:0}.data-sources li{padding:8px 0 8px 32px;position:relative;color:#757575}.data-sources li:before{content:"✓";position:absolute;left:0;color:#2196f3;font-weight:700;font-size:18px}.legal-page{min-height:100vh;padding:2rem;background:#f5f5f5}.legal-content{max-width:800px;margin:0 auto;background:#fff;padding:3rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.legal-content h1{color:#2c3e50;margin-bottom:.5rem;font-size:2.5rem}.last-updated{color:#7f8c8d;font-style:italic;margin-bottom:2rem;font-size:.9rem}.legal-content section{margin-bottom:2.5rem}.legal-content h2{color:#34495e;margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;border-bottom:2px solid #3498db;padding-bottom:.5rem}.legal-content h3{color:#555;margin-top:1.5rem;margin-bottom:.75rem;font-size:1.2rem}.legal-content p{line-height:1.8;color:#333;margin-bottom:1rem}.legal-content ul{margin-left:2rem;margin-bottom:1rem;line-height:1.8}.legal-content li{margin-bottom:.5rem;color:#333}.legal-content a{color:#3498db;text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-content strong{color:#e74c3c;font-weight:600}.sidebar{position:fixed;left:0;top:0;height:100vh;height:100dvh;width:260px;background:var(--bg-nav);box-shadow:var(--shadow-md);display:flex;flex-direction:column;z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:env(safe-area-inset-top,0);border-right:1px solid rgba(0,0,0,.06)}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid rgba(0,0,0,.06);background:var(--bg-nav-active);flex-shrink:0}.sidebar-title{margin:0;color:#fff;font-size:1.1rem;font-weight:600;text-align:center;letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex:1;min-height:0}.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease,color .2s ease;color:var(--text-primary);font-size:.9375rem;font-weight:500;text-align:left;width:100%;min-height:44px;-webkit-tap-highlight-color:transparent}.sidebar-item:hover{background:var(--accent-soft);color:var(--accent)}.sidebar-item.active{background:var(--bg-nav-active);color:#fff;box-shadow:var(--shadow-sm)}.sidebar-icon{font-size:1.25rem;width:28px;text-align:center;flex-shrink:0}.sidebar-label{flex:1}.sidebar-item-mobile-logout{display:none}.sidebar-footer{margin-top:auto;padding:var(--space-md);border-top:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0}.sidebar-user{font-size:.8125rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}.sidebar-logout{padding:8px 12px;background:transparent;border:1px solid var(--text-muted);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-secondary);cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent}.sidebar-logout:hover{background:var(--bg-app);color:var(--text-primary)}@media(max-width:768px){.sidebar{top:auto;left:0;right:0;width:100%;height:auto;max-height:calc(60px + env(safe-area-inset-bottom,0px));flex-direction:column;padding-top:0;padding-bottom:env(safe-area-inset-bottom,0);border-right:none;border-top:1px solid rgba(0,0,0,.06);box-shadow:0 -4px 20px #00000014}.sidebar-header{display:none}.sidebar-nav{flex-direction:row;padding:var(--space-sm);gap:2px;overflow-x:auto;overflow-y:hidden;flex:0 0 auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-item{flex:0 0 auto;flex-direction:column;gap:2px;padding:6px 10px;min-width:56px;max-width:68px;min-height:52px;border-radius:var(--radius-md)}.sidebar-item .sidebar-icon{font-size:1.35rem;width:auto}.sidebar-item .sidebar-label{font-size:.625rem;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sidebar-item-mobile-logout{display:flex}.sidebar-footer{display:none}}.app-footer{background:var(--text-primary);color:#fff;padding:var(--space-md) var(--space-lg);margin-top:auto;border-top:1px solid rgba(255,255,255,.08)}.footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.footer-content p{margin:0;color:var(--text-muted);font-size:.8125rem}.footer-links{display:flex;align-items:center;gap:var(--space-sm)}.footer-links a{color:var(--accent);text-decoration:none;font-size:.875rem;font-weight:500;transition:color .2s ease}.footer-links a:hover{color:#fff;text-decoration:underline}.footer-separator{color:var(--text-muted);margin:0 var(--space-sm)}@media(max-width:768px){.app-footer{padding:var(--space-sm) var(--space-md)}.footer-content{flex-direction:column;text-align:center;gap:var(--space-xs)}.footer-content p{font-size:.75rem}.footer-separator{display:none}.footer-links{flex-direction:row;gap:var(--space-sm);flex-wrap:wrap;justify-content:center}.footer-links a{font-size:.8125rem;padding:var(--space-xs) 0;min-height:44px;display:inline-flex;align-items:center}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:1rem}.login-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;padding:2rem;width:100%;max-width:400px}.login-card h1{margin:0 0 .25rem;font-size:1.75rem;color:#1a1a2e}.login-subtitle{margin:0 0 1.5rem;color:#666;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:#333}.login-form input{padding:.75rem 1rem;border:1px solid #ccc;border-radius:8px;font-size:16px;min-height:44px;-webkit-appearance:none;appearance:none}.login-form input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d933}.login-hint{font-size:.8rem;color:#666;font-weight:400}.login-error{padding:.6rem .75rem;background:#fee;color:#c33;border-radius:8px;font-size:.9rem}.login-submit{padding:.75rem 1rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem;min-height:44px;-webkit-tap-highlight-color:transparent}.login-submit:hover:not(:disabled){background:#3a7bc8}.login-submit:disabled{opacity:.7;cursor:not-allowed}.login-toggle{display:block;width:100%;margin-top:1rem;padding:.5rem;background:none;border:none;color:#4a90d9;font-size:.9rem;cursor:pointer;text-decoration:underline}.login-toggle:hover{color:#3a7bc8}.change-password-page{padding:2rem;max-width:440px;margin:0 auto}.change-password-card{background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000014;padding:2rem;border:1px solid #eee}.change-password-card h2{margin:0 0 .25rem;font-size:1.5rem;color:#1a1a2e}.change-password-subtitle{margin:0 0 1.5rem;color:#666;font-size:.95rem}.change-password-form{display:flex;flex-direction:column;gap:1rem}.change-password-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:#333}.change-password-form input{padding:.6rem .75rem;border:1px solid #ccc;border-radius:8px;font-size:1rem}.change-password-form input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d933}.change-password-hint{font-size:.8rem;color:#666;font-weight:400}.change-password-error{padding:.6rem .75rem;background:#fee;color:#c33;border-radius:8px;font-size:.9rem}.change-password-success{padding:.6rem .75rem;background:#efe;color:#363;border-radius:8px;font-size:.9rem}.change-password-submit{padding:.75rem 1rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.change-password-submit:hover:not(:disabled){background:#3a7bc8}.change-password-submit:disabled{opacity:.7;cursor:not-allowed}.settings-page{padding:2rem;max-width:720px;margin:0 auto}.settings-card{background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000014;padding:2rem;border:1px solid #eee}.settings-header{margin-bottom:1.5rem}.settings-card h2{margin:0 0 .25rem;font-size:1.5rem;color:#1a1a2e}.settings-subtitle{margin:0;color:#666;font-size:.9rem;line-height:1.5}.settings-loading,.settings-no-access{color:#888;font-style:italic;padding:2rem 0;text-align:center}.settings-error{padding:.65rem .85rem;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:8px;font-size:.9rem;margin-bottom:1rem}.settings-success{padding:.65rem .85rem;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:8px;font-size:.9rem;margin-bottom:1rem}.settings-group{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid #f0f0f0}.settings-group:last-of-type{border-bottom:none;margin-bottom:1rem;padding-bottom:0}.settings-group-title{font-size:1.05rem;font-weight:600;color:#1a1a2e;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.settings-group-icon{font-size:1.1rem}.settings-group-fields{display:flex;flex-direction:column;gap:1.25rem}.settings-field{display:flex;flex-direction:column;gap:.4rem}.settings-field-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.settings-field-label{font-size:.85rem;font-weight:500;color:#374151}.settings-field-status{display:flex;gap:.35rem;align-items:center}.settings-badge{font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.settings-badge-database{background:#ede9fe;color:#6d28d9}.settings-badge-env{background:#fef3c7;color:#92400e}.settings-badge-active{background:#dcfce7;color:#166534}.settings-badge-missing{background:#fef2f2;color:#b91c1c}.settings-masked-value{display:flex;align-items:center;gap:.5rem}.settings-masked-value code{font-size:.8rem;color:#6b7280;background:#f3f4f6;padding:.2rem .5rem;border-radius:4px;font-family:SF Mono,Monaco,Consolas,Courier New,monospace}.settings-delete-btn{background:none;border:none;color:#b91c1c;font-size:.75rem;cursor:pointer;padding:.15rem .4rem;border-radius:4px;font-weight:500}.settings-delete-btn:hover{background:#fef2f2;text-decoration:underline}.settings-input{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-family:SF Mono,Monaco,Consolas,Courier New,monospace;transition:border-color .15s,box-shadow .15s}.settings-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.settings-input::placeholder{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;font-style:italic;color:#9ca3af}.settings-actions{margin-top:1.5rem;display:flex;gap:.75rem}.settings-save-btn{padding:.7rem 1.5rem;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.settings-save-btn:hover:not(:disabled){background:#4f46e5}.settings-save-btn:disabled{opacity:.5;cursor:not-allowed}.settings-info{margin-top:1.5rem;padding:1rem 1.25rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.settings-info h4{margin:0 0 .5rem;font-size:.9rem;color:#475569}.settings-info ul{margin:0;padding-left:1.25rem}.settings-info li{font-size:.82rem;color:#64748b;line-height:1.6}.settings-info code{background:#e2e8f0;padding:.1rem .3rem;border-radius:3px;font-size:.78rem}@media(max-width:640px){.settings-page{padding:1rem}.settings-card{padding:1.25rem}.settings-field-header{flex-direction:column;align-items:flex-start}}*{box-sizing:border-box}.app{min-height:100vh;display:flex;flex-direction:row;background:var(--bg-app)}.app-content-wrapper{flex:1;display:flex;flex-direction:column;margin-left:260px;min-height:100vh}.app-content-wrapper.no-sidebar{margin-left:0}.app-main{flex:1;padding:var(--space-lg) var(--space-xl) var(--space-xl);width:100%;max-width:calc(100vw - 260px);overflow-x:hidden}.app-main-full{flex:1;width:100%;padding:0}@media(max-width:768px){.app-content-wrapper{margin-left:0;padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.app-main{padding:var(--space-md) var(--space-md) var(--space-lg);max-width:100%}}:root{--bg-app: #f5f7fa;--bg-card: #ffffff;--bg-nav: #ffffff;--bg-nav-active: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--accent: #6366f1;--accent-hover: #4f46e5;--accent-soft: rgba(99, 102, 241, .12);--accent-border: rgba(99, 102, 241, .35);--success: #10b981;--warning: #f59e0b;--error: #ef4444;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-app);min-height:100vh;min-height:-webkit-fill-available;color:var(--text-primary);padding:0;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);font-size:15px;line-height:1.45}#root{width:100%;max-width:1200px;margin:0 auto;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
