@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}:root{color-scheme:dark;--bg-base: #0a0a0a;--bg-surface: #111111;--bg-raised: #181818;--bg-elevated: #202020;--bg-input: #161616;--text-primary: #f0f0f0;--text-secondary: #a0a0a0;--text-muted: #606060;--accent: #00C47D;--accent-dark: #009e64;--accent-dim: rgba(0, 196, 125, .1);--accent-dim2: rgba(0, 196, 125, .18);--danger: #e05252;--danger-dim: rgba(224, 82, 82, .12);--warning: #e8a838;--warning-dim: rgba(232, 168, 56, .12);--border: #1e1e1e;--border-mid: #2a2a2a;--border-light: #363636;--font-sans: "DM Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "DM Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--shadow-panel: 0 1px 3px rgba(0,0,0,.6), 0 4px 16px rgba(0,0,0,.4)}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light;--bg-base: #f3f6f8;--bg-surface: #ffffff;--bg-raised: #f7fafc;--bg-elevated: #edf2f6;--bg-input: #ffffff;--text-primary: #141c24;--text-secondary: #405260;--text-muted: #667784;--accent: #00a069;--accent-dark: #008453;--accent-dim: rgba(0, 160, 105, .12);--accent-dim2: rgba(0, 160, 105, .18);--danger: #c74444;--danger-dim: rgba(199, 68, 68, .12);--warning: #bf7e0a;--warning-dim: rgba(191, 126, 10, .12);--border: #d5dee5;--border-mid: #c3d0da;--border-light: #b3c3ce;--shadow-panel: 0 1px 2px rgba(20,28,36,.08), 0 8px 24px rgba(20,28,36,.08)}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);line-height:1.6;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em;line-height:1.2}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--font-mono);font-size:.85em}html{opacity:1}html.is-transitioning{opacity:0;pointer-events:none;transition:opacity .12s ease}.shell.auth-checking{opacity:0;pointer-events:none}.shell.auth-ready{opacity:1;transition:opacity .18s ease}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:100;background:var(--bg-surface);border-bottom:1px solid var(--border-mid);display:flex;align-items:center;gap:var(--sp-5);padding:0 var(--sp-6);height:56px;flex-shrink:0}.brand-wrap{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.brand-mark,.brand-mark-lg{position:relative;display:inline-block;overflow:hidden;flex-shrink:0;background:var(--accent);border:1px solid rgba(0,0,0,.2);box-shadow:none}.brand-mark{width:28px;height:28px;border-radius:var(--r-sm);--heart-inset: 6px}.brand-mark-lg{width:40px;height:40px;border-radius:8px;--heart-inset: 9px}.brand-mark:before,.brand-mark:after,.brand-mark-lg:before,.brand-mark-lg:after{content:"";position:absolute;pointer-events:none;clip-path:polygon(50% 95%,5% 48%,18% 23%,35% 18%,50% 34%,65% 18%,82% 23%,95% 48%)}.brand-mark:before,.brand-mark-lg:before{display:none}.brand-mark:after,.brand-mark-lg:after{inset:var(--heart-inset);background:#f6fffb;box-shadow:none}.brand-wrap .kicker{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);line-height:1}.brand-wrap h1{font-size:.9rem;font-weight:600;color:var(--text-primary);line-height:1.2}.portal-nav{display:flex;align-items:center;gap:2px;flex:1}.portal-nav a{font-size:.82rem;font-weight:500;color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);text-decoration:none;transition:color .15s,background .15s;white-space:nowrap}.portal-nav a:hover{color:var(--text-primary);background:var(--bg-raised)}.portal-nav a.active{color:var(--accent);background:var(--accent-dim)}.top-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;margin-left:auto}.status-pill{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;padding:3px var(--sp-3);border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-muted);white-space:nowrap}.status-pill.ok{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.status-pill.bad{color:var(--danger);border-color:var(--danger);background:var(--danger-dim)}.top-actions .status-pill{max-width:280px;overflow:hidden;text-overflow:ellipsis}button,.btn{font-family:var(--font-sans);font-size:.82rem;font-weight:500;border:none;border-radius:var(--r-sm);cursor:pointer;padding:var(--sp-2) var(--sp-4);transition:background .15s,color .15s,border-color .15s;white-space:nowrap;line-height:1.4}button[type=submit],button.primary,.btn-primary{background:var(--accent);color:#000;font-weight:600}button[type=submit]:hover,button.primary:hover,.btn-primary:hover{background:var(--accent-dark)}button.ghost,.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-light)}button.ghost:hover,.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-light);background:var(--bg-raised)}button.danger,.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.danger:hover{background:var(--danger-dim)}button.full-width{width:100%}button:disabled,button[disabled]{opacity:.4;cursor:not-allowed}.form-grid{display:flex;flex-direction:column;gap:var(--sp-3)}label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.78rem;font-weight:500;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=file],select,textarea{font-family:var(--font-sans);font-size:.88rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-mid);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);width:100%;transition:border-color .15s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:80px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23606060' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;padding-right:var(--sp-7)}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.input-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-3)}.inline-check{flex-direction:row;align-items:center;gap:var(--sp-2);text-transform:none;letter-spacing:0;font-size:.82rem;color:var(--text-secondary);cursor:pointer}.inline-check input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);flex-shrink:0}.tag-input-wrap{display:flex;flex-wrap:wrap;gap:var(--sp-1);align-items:center;background:var(--bg-input);border:1px solid var(--border-mid);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);min-height:38px;cursor:text;transition:border-color .15s}.tag-input-wrap:focus-within{border-color:var(--accent)}.tag-chip{display:inline-flex;align-items:center;gap:4px;background:var(--accent-dim2);border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-size:.72rem;padding:2px 8px;border-radius:var(--r-sm);white-space:nowrap}.tag-chip-remove{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:.9rem;line-height:1;opacity:.7;transition:opacity .1s}.tag-chip-remove:hover{opacity:1}.tag-input-field{flex:1;min-width:120px;background:none;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:.88rem;outline:none;padding:0}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-panel)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);padding-bottom:var(--sp-4);border-bottom:1px solid var(--border)}.panel-head h2{font-size:.9rem;font-weight:600;color:var(--text-primary)}.panel-head .meta{font-size:.78rem;color:var(--text-muted);margin-top:2px}.panel-raised{background:var(--bg-raised)}.eyebrow{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500}.meta{font-size:.78rem;color:var(--text-muted);line-height:1.5}.microcopy{font-size:.72rem;color:var(--text-muted);font-style:italic}.portal-main{flex:1;display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-6);max-width:1200px;width:100%;margin:0 auto}.layout{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:var(--sp-5);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);align-items:start}.column{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.patient-console-layout{grid-template-columns:minmax(0,1.14fr) minmax(0,1fr);grid-template-areas:"summary summary" "capture coordination" "audit audit";gap:var(--sp-4)}.console-overview-strip{grid-area:summary;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4)}.console-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.console-overview-head h2{font-size:1.1rem;margin:4px 0 var(--sp-1)}.console-overview-links{display:flex;gap:var(--sp-2);flex-wrap:wrap}.console-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.console-overview-stat{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:2px}.console-overview-stat p{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.console-overview-stat strong{font-size:1rem;color:var(--text-primary)}.console-overview-stat span{font-size:.72rem;color:var(--text-secondary)}.column-primary{grid-area:capture}.column-coordination{grid-area:coordination}.column-audit{grid-area:audit}.console-audit-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:var(--sp-3)}.console-column-head{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.console-column-head h2{font-size:1rem;font-weight:600;color:var(--text-primary);margin:var(--sp-1) 0 var(--sp-2)}.console-column-head .meta{font-size:.75rem}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}.portal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}.portal-hero{background:var(--bg-raised);border:1px solid var(--border-mid);padding:var(--sp-6)}.portal-hero h2{font-size:1.4rem;font-weight:600;margin:var(--sp-2) 0 var(--sp-3);color:var(--text-primary)}.button-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-4)}.portal-link-button{display:inline-flex;align-items:center;font-family:var(--font-sans);font-size:.82rem;font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);text-decoration:none;transition:background .15s,color .15s;background:var(--accent);color:#000}.portal-link-button:hover{background:var(--accent-dark);text-decoration:none}.portal-link-button.ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-light)}.portal-link-button.ghost:hover{color:var(--text-primary);background:var(--bg-elevated);text-decoration:none}.overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin-bottom:var(--sp-3)}.overview-stat{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-1)}.overview-stat span{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.overview-stat strong{font-size:1.6rem;font-weight:700;color:var(--text-primary);line-height:1}.overview-kv{display:flex;flex-direction:column;gap:0}.overview-kv-row{display:flex;align-items:baseline;justify-content:space-between;padding:var(--sp-3) 0;border-bottom:1px solid var(--border);gap:var(--sp-3)}.overview-kv-row:last-child{border-bottom:none}.overview-kv-row dt{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.overview-kv-row dd{font-size:.88rem;color:var(--text-primary);text-align:right}.overview-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.overview-list li{font-size:.85rem;color:var(--text-secondary);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.overview-list li:last-child{border-bottom:none}.vault-summary-strip{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4)}.vault-summary-item{flex:1;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:2px}.vault-summary-item strong{font-size:1.4rem;font-weight:700;color:var(--text-primary);line-height:1}.vault-summary-item span{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.vault-categories-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-bottom:var(--sp-4)}.vault-category-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.vault-category-card:hover{border-color:var(--border-light);background:var(--bg-elevated)}.vault-category-card.active{border-color:var(--accent);background:var(--accent-dim)}.vault-category-card h3{font-size:.82rem;font-weight:600;color:var(--text-primary);margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.vault-category-card strong{font-family:var(--font-mono);font-size:.72rem;color:var(--accent)}.vault-category-card .meta{font-size:.68rem;margin-top:2px}.vault-category-count-badge{font-family:var(--font-mono);font-size:.68rem;line-height:1;padding:3px 6px;border-radius:var(--r-sm);border:1px solid var(--border-light);background:var(--bg-elevated);color:var(--accent)}.vault-entry-shell{margin-top:var(--sp-4)}.vault-entry-shell .panel-head{margin-bottom:var(--sp-3)}.vault-entry-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);margin-bottom:var(--sp-3)}.vault-entry-tab{border:1px solid var(--border);background:var(--bg-raised);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);text-align:left;color:var(--text-secondary);display:flex;flex-direction:column;gap:2px;min-height:58px}.vault-entry-tab strong{font-size:.78rem;color:var(--text-primary)}.vault-entry-tab span{font-size:.7rem;color:var(--text-muted)}.vault-entry-tab:hover{border-color:var(--border-light);background:var(--bg-elevated)}.vault-entry-tab.active{border-color:var(--accent);background:var(--accent-dim)}.vault-entry-form{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.scroll-box{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);background:var(--bg-input)}.scroll-box::-webkit-scrollbar{width:4px}.scroll-box::-webkit-scrollbar-track{background:transparent}.scroll-box::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.vault-feed-item{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--sp-2) 0;border-bottom:1px solid var(--border);gap:var(--sp-3)}.vault-feed-item:last-child{border-bottom:none}.vault-feed-item .name{font-size:.85rem;color:var(--text-primary);font-weight:500}.vault-feed-item .detail{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary)}.vault-feed-item .ts{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.consent-request-card{background:var(--bg-raised);border:1px solid var(--border-mid);border-radius:var(--r-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);position:relative;overflow:hidden}.consent-request-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--warning)}.consent-request-card.urgent:before{background:var(--danger)}.consent-request-card .doctor-identity{display:flex;align-items:center;gap:var(--sp-3)}.consent-request-card .doctor-avatar{width:40px;height:40px;border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent);flex-shrink:0;text-transform:uppercase}.consent-request-card .doctor-name{font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.2}.consent-request-card .doctor-meta{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:2px}.consent-request-card .purpose-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-1)}.consent-request-card .purpose-text{font-size:.88rem;color:var(--text-secondary);line-height:1.5}.consent-request-card .domain-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.consent-request-card .domain-tag{font-family:var(--font-mono);font-size:.68rem;padding:3px 8px;border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-secondary);letter-spacing:.04em}.consent-request-card .expiry-line{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);padding-top:var(--sp-2);border-top:1px solid var(--border)}.consent-request-card .consent-actions{display:flex;gap:var(--sp-3)}.consent-request-card .consent-actions button{flex:1;padding:var(--sp-3) var(--sp-4);font-size:.85rem;font-weight:600}.consent-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);gap:var(--sp-3)}.consent-row .consent-info{flex:1;min-width:0}.consent-row .consent-doctor{font-size:.88rem;font-weight:600;color:var(--text-primary)}.consent-row .consent-expiry{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:2px}.consent-row .consent-domains{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--sp-2)}.consent-row .tag{font-family:var(--font-mono);font-size:.65rem;padding:2px 6px;border-radius:var(--r-sm);background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);letter-spacing:.04em}.ai-chat-thread{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-md);min-height:200px;max-height:400px;overflow-y:auto}.ai-bubble{max-width:85%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:.88rem;line-height:1.6}.ai-bubble.assistant{background:var(--bg-raised);border:1px solid var(--border-mid);color:var(--text-primary);align-self:flex-start}.ai-bubble.user{background:var(--accent-dim2);border:1px solid var(--accent);color:var(--text-primary);align-self:flex-end}.ai-bubble .meta{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-1)}.ai-chip-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0}.ai-chip{font-family:var(--font-mono);font-size:.72rem;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s;text-align:left}.ai-chip:hover{border-color:var(--accent);color:var(--accent)}.ai-chat-form{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.ai-chat-form input{flex:1}.ai-chat-form button{flex-shrink:0;background:var(--accent);color:#000;font-weight:600;padding:var(--sp-2) var(--sp-5)}.ai-chat-form button:hover{background:var(--accent-dark)}.prompt-label{display:flex;flex-direction:column;gap:var(--sp-1);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.event-log{list-style:none;display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:.75rem;max-height:240px;overflow-y:auto}.event-log li{padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);color:var(--text-secondary);line-height:1.4}.event-log li.error{color:var(--danger)}.event-log li.ok{color:var(--accent)}.vault-key-warning{background:var(--warning-dim);border:1px solid var(--warning);border-radius:var(--r-md);padding:var(--sp-4);display:flex;gap:var(--sp-3);align-items:flex-start}.vault-key-warning .warn-icon{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--warning);background:var(--warning-dim);border:1px solid var(--warning);border-radius:var(--r-sm);padding:2px 6px;flex-shrink:0;letter-spacing:.06em}.vault-key-warning p{font-size:.82rem;color:var(--text-secondary);line-height:1.5}.vault-key-warning strong{color:var(--warning)}.skeleton{background:var(--bg-raised);border-radius:var(--r-sm);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.skeleton-line{height:14px;margin-bottom:var(--sp-2)}.skeleton-line.short{width:40%}.skeleton-line.medium{width:65%}.skeleton-line.full{width:100%}.portal-loading{position:fixed;inset:0;background:var(--bg-base);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);z-index:200}.portal-loading .brand-mark-lg{animation:none}.portal-loading .brand-mark-lg:after{transform-origin:50% 62%;animation:portal-heartbeat 1.45s ease-in-out infinite}@keyframes portal-heartbeat{0%,22%,52%,to{transform:scale(1)}11%{transform:scale(1.18)}34%{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.portal-loading .brand-mark-lg:after{animation:none}}.portal-loading p{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.billing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}.billing-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.billing-card.featured{border-color:var(--accent);background:var(--bg-raised)}.billing-card .plan-name{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.billing-card .plan-price{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1}.billing-card .plan-price span{font-size:.9rem;font-weight:400;color:var(--text-muted)}.billing-card .plan-features{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);flex:1}.billing-card .plan-features li{font-size:.85rem;color:var(--text-secondary);padding-left:var(--sp-4);position:relative}.billing-card .plan-features li:before{content:"·";position:absolute;left:0;color:var(--accent);font-weight:700}.console-billing-grid{gap:var(--sp-3)}.api-settings{position:absolute;top:56px;right:var(--sp-6);background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--r-md);padding:var(--sp-4);z-index:200;min-width:360px;box-shadow:var(--shadow-panel)}.api-settings-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);align-items:flex-end}.api-control{flex:1;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);display:flex;flex-direction:column;gap:var(--sp-1)}.domains-grid{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-wrap:wrap;gap:var(--sp-2)}.domains-grid legend{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:0 var(--sp-2)}.chip-check{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);cursor:pointer;padding:var(--sp-1) var(--sp-3);border:1px solid var(--border-light);border-radius:var(--r-sm);transition:border-color .15s,color .15s,background .15s;text-transform:none;letter-spacing:0}.chip-check:has(input:checked){border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.chip-check input{display:none}.bundle-list{display:flex;flex-direction:column;gap:var(--sp-3)}.bundle-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.bundle-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.bundle-id{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.bundle-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-bottom:var(--sp-3)}.bundle-summary-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:2px}.bundle-summary-item span{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.bundle-summary-item strong{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.bundle-section{margin-top:var(--sp-3)}.bundle-section h3{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2)}.bundle-line,.bundle-metric-row{display:flex;justify-content:space-between;align-items:baseline;padding:var(--sp-1) 0;border-bottom:1px solid var(--border);font-size:.82rem;gap:var(--sp-3)}.bundle-line:last-child,.bundle-metric-row:last-child{border-bottom:none}.bundle-line span,.bundle-metric-row span{color:var(--text-secondary)}.bundle-line strong,.bundle-metric-row strong{font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary)}.care-graph-layout{display:flex;flex-direction:column;gap:var(--sp-3)}.care-graph-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-2)}.care-graph-summary-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.care-graph-summary-card p{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.care-graph-summary-card strong{display:block;margin-top:4px;font-size:1.1rem;color:var(--text-primary)}.care-graph-scope{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:6px}.care-graph-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.care-graph-block{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.care-graph-block h3{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2)}.care-graph-node-list,.care-graph-timeline{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.care-graph-node-item,.care-graph-timeline-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3)}.care-graph-node-item strong,.care-graph-timeline-label{display:block;font-size:.82rem;color:var(--text-primary);margin-bottom:2px}.patients-list{display:flex;flex-direction:column;gap:var(--sp-2)}.patient-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);gap:var(--sp-3);cursor:pointer;transition:border-color .15s}.patient-row:hover{border-color:var(--border-light)}.patient-row.active{border-color:var(--accent);background:var(--accent-dim)}.patient-main{flex:1;min-width:0}.patient-name{font-size:.88rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-meta{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:2px}.tag-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--sp-2)}.tag{font-family:var(--font-mono);font-size:.65rem;padding:2px 6px;border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-muted);letter-spacing:.04em}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-bottom:var(--sp-4)}.stat-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:2px}.stat-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.stat-value{font-size:1.4rem;font-weight:700;color:var(--text-primary);line-height:1}.search-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}.care-plan-item{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-3)}.care-plan-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3);gap:var(--sp-3)}.care-plan-head h3{font-size:.9rem;font-weight:600;color:var(--text-primary)}.care-plan-head select{width:auto;font-size:.75rem;padding:var(--sp-1) var(--sp-3)}.care-plan-section{margin-top:var(--sp-3)}.care-plan-section h4{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2)}.care-plan-section ul{list-style:none;display:flex;flex-direction:column;gap:var(--sp-1)}.care-plan-section li{font-size:.82rem;color:var(--text-secondary);padding:var(--sp-1) var(--sp-2);border-left:2px solid var(--border-light)}.dynamic-list-wrap{display:flex;flex-direction:column;gap:var(--sp-2)}.dynamic-list-item{display:flex;align-items:center;gap:var(--sp-2)}.dynamic-list-item input{flex:1}.dynamic-list-item button{flex-shrink:0;padding:var(--sp-1) var(--sp-2);background:transparent;border:1px solid var(--border-light);color:var(--text-muted);font-size:.8rem}.dynamic-list-item button:hover{border-color:var(--danger);color:var(--danger)}.add-list-item-btn{align-self:flex-start;font-size:.78rem;color:var(--accent);background:transparent;border:1px dashed var(--accent);padding:var(--sp-1) var(--sp-3)}.add-list-item-btn:hover{background:var(--accent-dim)}.synthesis-history{display:flex;flex-direction:column;gap:var(--sp-3);max-height:480px;overflow-y:auto}.synthesis-entry{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.synthesis-entry-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border)}.synthesis-entry-head:hover{background:var(--bg-elevated)}.synthesis-entry-head .ts{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.synthesis-entry-head .patient-ref{font-family:var(--font-mono);font-size:.7rem;color:var(--accent)}.synthesis-entry-head .toggle-icon{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.synthesis-entry-body{padding:var(--sp-4);font-size:.85rem;line-height:1.6;color:var(--text-secondary)}.synthesis-entry-body.collapsed{display:none}.doctor-identity-card{background:var(--bg-raised);border:1px solid var(--border-mid);border-radius:var(--r-md);padding:var(--sp-4);display:flex;align-items:center;gap:var(--sp-4)}.doctor-identity-card .avatar{width:44px;height:44px;border-radius:var(--r-sm);background:var(--accent-dim);border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--accent);flex-shrink:0;text-transform:uppercase}.doctor-identity-card .info{flex:1}.doctor-identity-card .name{font-size:.95rem;font-weight:600;color:var(--text-primary)}.doctor-identity-card .details{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:2px}.patient-search-wrap{position:relative;margin-bottom:var(--sp-3)}.patient-search-wrap input{padding-left:var(--sp-7);background:var(--bg-input)}.patient-search-icon{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);pointer-events:none}.doctor-shell{display:flex;flex:1;min-height:0}.doctor-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-surface);display:flex;flex-direction:column;overflow-y:auto}.doctor-sidebar-inner{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5);flex:1}.doctor-main{flex:1;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5)}.doctor-main-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--sp-5)}.doctor-main-tab{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:var(--sp-3) var(--sp-4);border-bottom:2px solid transparent;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none;transition:color .15s,border-color .15s}.doctor-main-tab:hover{color:var(--text-secondary)}.doctor-main-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.doctor-tab-panel{display:none}.doctor-tab-panel.active{display:flex;flex-direction:column;gap:var(--sp-5)}.dev-only{display:none}.dev-mode .dev-only{display:block}.ui-modal-backdrop{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#000000a6;backdrop-filter:blur(2px)}.ui-modal{width:min(560px,calc(100vw - 32px));border-radius:var(--r-lg);border:1px solid var(--border-light);background:var(--bg-raised);box-shadow:0 20px 56px #0000008c;padding:var(--sp-5)}.ui-modal-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.ui-modal-description{margin-top:var(--sp-2);color:var(--text-secondary);font-size:.84rem}.ui-modal-content{margin-top:var(--sp-3)}.ui-modal-actions{margin-top:var(--sp-4);display:flex;justify-content:flex-end;gap:var(--sp-2)}@media(max-width:1180px){.layout{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-console-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"summary summary" "capture coordination" "audit audit"}.console-overview-stats,.vault-entry-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.portal-grid{grid-template-columns:1fr 1fr}.overview-stats{grid-template-columns:repeat(2,1fr)}.vault-categories-grid{grid-template-columns:repeat(3,1fr)}.billing-grid{grid-template-columns:1fr}.doctor-sidebar{width:240px}.care-graph-columns{grid-template-columns:1fr}.layout{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--sp-4)}.patient-console-layout{grid-template-columns:1fr;grid-template-areas:"summary" "capture" "coordination" "audit"}.console-overview-head{flex-direction:column}.console-overview-links{width:100%}.console-audit-grid{grid-template-columns:1fr}}@media(max-width:640px){.topbar{padding:0 var(--sp-4);gap:var(--sp-3)}.portal-nav{display:none}.portal-main{padding:var(--sp-4)}.portal-grid,.portal-grid-2{grid-template-columns:1fr}.overview-stats,.vault-categories-grid{grid-template-columns:repeat(2,1fr)}.input-row,.input-row-3{grid-template-columns:1fr}.doctor-sidebar{display:none}.doctor-main{padding:var(--sp-4)}.layout{grid-template-columns:1fr;padding:var(--sp-3)}.patient-console-layout{grid-template-columns:1fr;grid-template-areas:"summary" "capture" "coordination" "audit";gap:var(--sp-3)}.console-overview-stats,.vault-entry-tabs{grid-template-columns:1fr}.console-column-head{padding:var(--sp-3)}}
