:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--primary:221.2 83.2% 53.3%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:221.2 83.2% 53.3%;--radius:.625rem}[data-theme=dark]{--background:222 47% 8%;--foreground:210 40% 96%;--card:224 44% 10%;--card-foreground:210 40% 96%;--primary:217 91% 60%;--primary-foreground:222 47% 12%;--secondary:223 30% 18%;--secondary-foreground:210 40% 96%;--muted:223 30% 14%;--muted-foreground:215 20% 73%;--destructive:0 72% 52%;--destructive-foreground:210 40% 98%;--border:223 23% 22%;--input:223 23% 22%;--ring:217 91% 60%}*{box-sizing:border-box}html,body,#app{min-height:100%}body{color:hsl(var(--foreground));background:hsl(var(--background));margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3,h4,p{margin:0}.center-screen{place-items:center;min-height:100vh;display:grid}.muted{color:hsl(var(--muted-foreground));font-size:.9rem}.dashboard-layout{grid-template-columns:clamp(280px, var(--sidebar-width,26vw), 420px) minmax(0, 1fr);background:hsl(var(--muted) / .35);height:100vh;display:grid;overflow:hidden}.dashboard-sidebar{border-right:1px solid hsl(var(--border));background:hsl(var(--card));grid-template-rows:auto 1fr auto;gap:1rem;height:100vh;padding:1.25rem;display:grid;position:relative;overflow:auto}.sidebar-brand{gap:.3rem;display:grid}.sidebar-brand-title{align-items:center;gap:.55rem;display:flex}.sidebar-brand-icon{flex-shrink:0;width:1.1rem;height:1.1rem}.sidebar-brand h1{font-size:1.25rem;font-weight:700}.sidebar-card{align-self:start}.patient-form{gap:.5rem;display:grid}.add-patient-btn{width:100%;min-width:0;font-size:.95rem}.patient-list{gap:.35rem;margin-top:.25rem;display:grid}.patient-list-btn{justify-content:flex-start;width:100%}.sidebar-account{border-top:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:.75rem;padding-top:.85rem;display:flex}.sidebar-footer{gap:.65rem;display:grid}.theme-toggle-btn{width:100%}.account-copy{min-width:0}.avatar-chip{width:2rem;height:2rem;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.sidebar-resize-handle{cursor:col-resize;background:0 0;border:0;width:8px;height:100%;margin:0;padding:0;position:absolute;top:0;right:-4px}.sidebar-resize-handle:hover:after,.sidebar-resize-handle:focus-visible:after{content:"";background:hsl(var(--border));width:2px;height:100%;position:absolute;top:0;right:3px}.dashboard-main{align-content:start;gap:1rem;height:100vh;padding:1rem;display:grid;overflow:auto}.dashboard-topbar{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));justify-content:space-between;gap:1rem;padding:.95rem 1rem;display:flex}.dashboard-topbar h2{margin-bottom:.15rem;font-size:1.3rem}.header-actions{align-items:center;gap:.6rem;display:flex}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.kpi-value{font-size:1.7rem;font-weight:700}.dashboard-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:1rem;display:grid}.grid-span-full{grid-column:1/-1}.graph-risk-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.pending-alert{align-items:center;gap:.75rem;display:flex}.auth-shell{background:hsl(var(--muted) / .35);place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{width:min(420px,100%)}.auth-toggle{gap:.5rem;display:flex}.auth-form{gap:.75rem;display:grid}.field-label{font-size:.875rem;font-weight:500}.med-form{gap:.5rem;display:flex}.med-search-wrap{flex:1;position:relative}.med-suggestion-list{z-index:20;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;box-shadow:0 10px 24px #0f172a14}.med-suggestion-item{border-radius:calc(var(--radius) - 4px);text-align:left;width:100%;padding:.45rem .55rem;font-size:.82rem;display:block}.med-suggestion-btn{cursor:pointer;background:0 0;border:0}.med-suggestion-btn:hover,.med-suggestion-btn.is-active{background:hsl(var(--secondary))}.med-list,.history-list,.conflict-list,.evidence-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.med-list-item,.history-item,.conflict-list-item,.evidence-list-item{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);justify-content:space-between;align-items:center;gap:.7rem;padding:.6rem;display:flex}.conflict-list-item,.evidence-list-item,.med-list-item{align-items:flex-start}.med-list-copy{gap:.3rem;display:grid}.last-dose-row{gap:.35rem;margin-top:.35rem;display:grid}.physiology-form{gap:.65rem;display:grid}.field-block{gap:.45rem;display:grid}.choice-row{flex-wrap:wrap;gap:.5rem;display:flex}.flag-row{align-items:center;gap:.45rem;font-size:.9rem;display:flex}.advanced-block{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);padding:.45rem .55rem}.advanced-block>summary{list-style:none}.advanced-block>summary::-webkit-details-marker{display:none}.advanced-body{gap:.5rem;margin-top:.5rem;display:grid}.egfr-label{align-items:center;gap:.4rem;display:inline-flex}.info-dot{background:hsl(var(--secondary));width:1rem;height:1rem;color:hsl(var(--secondary-foreground));cursor:help;border-radius:999px;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex;position:relative}.info-popover{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 3px);background:hsl(var(--background));width:min(260px,75vw);color:hsl(var(--foreground));opacity:0;visibility:hidden;z-index:20;padding:.45rem .55rem;font-size:.75rem;line-height:1.35;position:absolute;top:calc(100% + .35rem);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0f172a26}.info-dot:hover .info-popover,.info-dot:focus-visible .info-popover{opacity:1;visibility:visible}.user-row{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem;display:flex}@media (width<=1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.dashboard-layout{grid-template-columns:1fr;height:auto;min-height:100vh}.dashboard-sidebar{border-right:0;border-bottom:1px solid hsl(var(--border));height:auto;max-height:none}.sidebar-resize-handle{display:none}.dashboard-main{height:auto;overflow:visible}.kpi-grid,.dashboard-grid{grid-template-columns:1fr}}.history-title{font-size:.95rem;font-weight:600}.med-list-meta{font-size:.8rem}.tag-wrap{flex-wrap:wrap;gap:.45rem;display:flex}.tech-details{border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 2px);max-width:100%;padding:.5rem;overflow:hidden}.tech-details summary{cursor:pointer;color:hsl(var(--muted-foreground));font-size:.84rem}.tech-json{border-radius:calc(var(--radius) - 3px);border:1px solid hsl(var(--border));background:hsl(var(--muted) / .45);white-space:pre;max-width:100%;max-height:180px;margin:.5rem 0 0;padding:.55rem;font-size:.75rem;line-height:1.35;overflow:auto}.evidence-list-item{min-width:0;display:grid}.chat-thread{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));flex:1;gap:.6rem;min-height:0;max-height:none;padding:.25rem;display:grid;overflow:auto}.chat-bubble{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);gap:.35rem;max-width:min(90%,62ch);padding:.55rem .65rem;display:grid}.chat-assistant{background:hsl(var(--muted) / .55);justify-self:start}.chat-user{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .25);justify-self:end}.chat-role{color:hsl(var(--muted-foreground));font-size:.75rem;font-weight:600}.chat-markdown>*{margin:0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4{margin:.4rem 0 .35rem;font-weight:700;line-height:1.25}.chat-markdown h1{font-size:1.05rem}.chat-markdown h2{font-size:1rem}.chat-markdown h3{font-size:.95rem}.chat-markdown h4{font-size:.9rem}.chat-markdown p{margin:.3rem 0;line-height:1.5}.chat-markdown ul{margin:.3rem 0 .3rem 1rem;padding:0}.chat-markdown li{margin:.2rem 0}.chat-markdown strong{font-weight:700}.chat-loading{justify-self:start}.chat-error{color:hsl(var(--destructive));font-size:.85rem}.chat-quick-actions{flex-wrap:wrap;gap:.45rem;display:flex}.chat-form{gap:.5rem;display:flex}.chat-panel,.history-panel{flex-direction:column;height:clamp(420px,52vh,620px);display:flex}.chat-panel-content,.history-panel-content{flex-direction:column;flex:1;min-height:0;display:flex}.history-list{flex:1;min-height:0;padding-right:.2rem;overflow:auto}.graph-shell{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));min-height:420px;overflow:hidden}.organ-stress-meta{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.organ-radar-shell{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));min-height:320px}.organ-radar-svg{width:100%;height:320px}.radar-ring{fill:none;stroke:#cbd5e1;stroke-width:1.2px}.radar-threshold-ring{fill:#f8717114;stroke:#ef444480;stroke-width:1.2px;stroke-dasharray:4 4}.radar-axis{stroke:#d1d5db;stroke-width:1px}.radar-label{fill:#334155;text-anchor:middle;dominant-baseline:central;font-size:11px}.radar-threshold-zone{fill:#f871711a;stroke:#ef444447;stroke-width:1px}.radar-value-area{fill:#2563eb33;stroke:#2563ebcc;stroke-width:2px}.radar-value-dot{fill:#1d4ed8}.organ-axis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.organ-stress-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:.8rem;display:grid}.organ-axis-card{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);gap:.45rem;padding:.55rem;display:grid}.organ-axis-card header{justify-content:space-between;align-items:center;display:flex}.organ-axis-card.is-danger{border-color:hsl(var(--destructive) / .45);background:hsl(var(--destructive) / .06)}.organ-contributor-list{gap:.25rem;margin:0;padding-left:1rem;font-size:.84rem;display:grid}.risk-curve-shell{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);min-height:300px;margin-top:.75rem;overflow:hidden}.risk-curve-svg{background:hsl(var(--background));width:100%;height:100%;min-height:300px;display:block}.risk-curve-spike-zone{fill:hsl(var(--destructive) / .08)}.risk-curve-grid-line{stroke:hsl(var(--border));stroke-width:1px}.risk-curve-grid-line-vertical{stroke-dasharray:2 6}.risk-curve-line{fill:none;stroke:hsl(var(--primary));stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.risk-curve-marker{fill:hsl(var(--destructive));stroke:hsl(var(--background));stroke-width:2px}.risk-curve-axis-label{fill:hsl(var(--muted-foreground));dominant-baseline:middle;font-size:11px}.risk-curve-axis-title{fill:hsl(var(--muted-foreground));font-size:12px;font-weight:600}.risk-curve-marker-label{fill:hsl(var(--destructive));font-size:11px;font-weight:700}.digital-twin-shell{gap:1rem;display:grid}.digital-twin-header{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));justify-content:space-between;align-items:center;gap:.9rem;padding:.9rem 1rem;display:flex}.digital-twin-header h2{margin-top:.15rem;font-size:1.2rem}.digital-twin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}.digital-twin-summary .evidence-list{margin-top:.4rem}.twin-candidate-grid{gap:.5rem;display:grid}.twin-chart-shell{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);overflow:hidden}.twin-chart-svg{background:hsl(var(--background));width:100%;height:auto;min-height:320px;display:block}.twin-line-total{fill:none;stroke:hsl(var(--primary));stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.twin-line-threshold{fill:none;stroke:hsl(var(--destructive));stroke-width:2.2px;stroke-dasharray:6 5}.twin-line-axis{fill:none;stroke-width:1.7px;opacity:.8}.twin-line-medication{fill:none;stroke-width:1.9px;opacity:.92}.twin-legend-dot{vertical-align:middle;border-radius:999px;width:.55rem;height:.55rem;margin-right:.35rem;display:inline-block}.d3-graph-svg{z-index:1;cursor:grab;width:100%;height:440px;position:relative}.d3-graph-svg:active{cursor:grabbing}.d3-bg{fill:hsl(var(--background))}.d3-link{stroke:#9db8da;stroke-width:2px;stroke-linecap:round;opacity:.9;transition:opacity .13s}.d3-link-conflict{stroke:#dc2626;stroke-width:3.1px}.d3-link-focus{opacity:1}.d3-link-dim{opacity:.14}.d3-node .d3-node-circle{fill:#fff;stroke:#8eadd4;stroke-width:2px;filter:drop-shadow(0 3px 8px #0f172a1f);transition:stroke-width .12s,opacity .12s}.d3-node:hover .d3-node-circle{stroke-width:2.8px}.d3-node-medication .d3-node-circle{fill:#dbeafe;stroke:#3b82f6}.d3-node-target .d3-node-circle{fill:#eef2ff;stroke:#6366f1}.d3-node-conflict .d3-node-circle{fill:#fee2e2;stroke:#dc2626;stroke-width:2.6px}.d3-node-minor-pathway .d3-node-circle{stroke:#f59e0b;stroke-width:2.8px}.d3-node-label{fill:#1f2937;pointer-events:none;font-size:11px;font-weight:600;transition:opacity .12s}.d3-node-focus .d3-node-circle{stroke-width:3.1px}.d3-node-dim .d3-node-circle,.d3-node-dim .d3-node-label{opacity:.22}.ui-btn{border-radius:calc(var(--radius) - 2px);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;min-height:2.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .12s;display:inline-flex}.ui-btn:disabled{opacity:.6;cursor:not-allowed}.ui-btn:focus-visible,.ui-input:focus-visible,.ui-textarea:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.ui-btn-default{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.ui-btn-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.ui-btn-outline{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.ui-btn-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.ui-btn-ghost{color:hsl(var(--foreground));background:0 0}.ui-input,.ui-textarea{border-radius:calc(var(--radius) - 2px);border:1px solid hsl(var(--input));background:hsl(var(--background));width:100%;color:hsl(var(--foreground));padding:.5rem .75rem;font-size:.875rem}.ui-input{min-height:2.5rem}.ui-textarea{resize:vertical;min-height:7rem}.ui-card{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--card-foreground));padding:1rem}.ui-card-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.ui-card-content{gap:.75rem;display:grid}.ui-card-title{font-size:1.05rem;font-weight:600}.ui-badge{border-radius:calc(var(--radius) - 3px);border:1px solid #0000;align-items:center;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.ui-badge-default{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.ui-badge-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.ui-badge-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.ui-badge-outline{border-color:hsl(var(--border));background:hsl(var(--background))}.ui-alert{border-radius:calc(var(--radius) - 2px);border:1px solid hsl(var(--border));padding:.75rem;font-size:.875rem}.ui-alert-default{background:hsl(var(--muted))}.ui-alert-destructive{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .4);color:hsl(var(--destructive))}.ui-spinner-wrap{color:hsl(var(--muted-foreground));align-items:center;gap:.5rem;display:inline-flex}.spinner{border:2px solid hsl(var(--border));border-top-color:hsl(var(--primary));border-radius:999px;width:1rem;height:1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1080px){.dashboard-layout{grid-template-columns:1fr;height:auto;overflow:visible}.dashboard-sidebar{border-right:0;border-bottom:1px solid hsl(var(--border));height:auto;overflow:visible}.sidebar-resize-handle{display:none}.kpi-grid,.dashboard-grid{grid-template-columns:1fr}.grid-span-full{grid-column:auto}.graph-risk-row,.organ-stress-layout,.organ-axis-grid,.digital-twin-grid{grid-template-columns:1fr}.dashboard-main{height:auto;overflow:visible}.chat-panel,.history-panel{height:auto}.chat-thread,.history-list{max-height:360px}}@media (width<=720px){.dashboard-topbar{flex-direction:column;align-items:flex-start}.med-form,.patient-form{flex-direction:column}}
