:root{--color-bg: #faf8f5;--color-text: #1a1a1a;--color-text-muted: #6b6560;--color-text-subtle: #9d9590;--color-border: #e8e4de;--color-border-subtle: #f0ece6;--color-surface: #ffffff;--color-surface-alt: #f5f2ed;--color-surface-raised: #ffffff;--color-accent: #4f46b8;--color-accent-hover: #4338a8;--color-accent-subtle: rgba(79, 70, 184, .08);--color-accent-text: #4f46b8;--color-stroke: #0F172A;--color-stroke-selected: #0891b2;--color-stroke-hover: rgba(8, 145, 178, .35);--color-selection-glow: rgba(8, 145, 178, .3);--color-canvas-bg: #fefefe;--color-grid: #eae6e0;--color-danger: #dc4545;--color-danger-subtle: rgba(220, 69, 69, .08);--color-success: #2d9d5c;--color-find-highlight: rgba(250, 188, 40, .35);--color-find-current: rgba(250, 188, 40, .65);--color-search-highlight: rgba(100, 140, 230, .3);--shadow-sm: 0 1px 3px rgba(30, 25, 20, .06), 0 1px 2px rgba(30, 25, 20, .04);--shadow-md: 0 4px 16px rgba(30, 25, 20, .08), 0 1px 4px rgba(30, 25, 20, .04);--shadow-lg: 0 12px 40px rgba(30, 25, 20, .1), 0 4px 12px rgba(30, 25, 20, .05);--shadow-xl: 0 20px 60px rgba(30, 25, 20, .12), 0 8px 20px rgba(30, 25, 20, .06);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .2s}[data-theme=dark]{--color-bg: #111110;--color-text: #ece9e4;--color-text-muted: #9d9590;--color-text-subtle: #6b6560;--color-border: #2a2826;--color-border-subtle: #1f1e1c;--color-surface: #1a1918;--color-surface-alt: #141312;--color-surface-raised: #222120;--color-accent: #7c73e6;--color-accent-hover: #6b62d6;--color-accent-subtle: rgba(124, 115, 230, .12);--color-accent-text: #9b94f0;--color-stroke: #c8c3bc;--color-stroke-selected: #22d3ee;--color-stroke-hover: rgba(34, 211, 238, .35);--color-selection-glow: rgba(34, 211, 238, .35);--color-canvas-bg: #1a1918;--color-grid: #252422;--color-danger: #ef6b6b;--color-danger-subtle: rgba(239, 107, 107, .12);--color-success: #4bbe7a;--color-find-highlight: rgba(250, 188, 40, .25);--color-find-current: rgba(250, 188, 40, .5);--color-search-highlight: rgba(100, 140, 230, .25);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .15);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25), 0 1px 4px rgba(0, 0, 0, .15);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .35), 0 8px 20px rgba(0, 0, 0, .2)}[data-theme=dark] .dock-toolbar{background:#222120e0;border-color:#ffffff1f;box-shadow:0 1px #ffffff0f inset,0 8px 40px #00000073,0 2px 8px #00000040}[data-theme=dark] .dock-toolbar button,[data-theme=dark] .dock-toolbar a{color:#94a3b8}[data-theme=dark] .dock-toolbar button:hover,[data-theme=dark] .dock-toolbar a:hover{background:#ffffff1a;color:#e2e8f0}[data-theme=dark] .dock-toolbar button:active,[data-theme=dark] .dock-toolbar a:active{background:#ffffff24}[data-theme=dark] .dock-toolbar button.active{background:#e2e8f0;color:#0f172a}[data-theme=dark] .dock-toolbar .zoom-group button{background:#ffffff0f}[data-theme=dark] .dock-toolbar .zoom-group button:hover{background:#ffffff1f}[data-theme=dark] .dock-toolbar .toolbar-divider{background:#ffffff1a}[data-theme=dark] .dock-grip{color:#ffffff40}[data-theme=dark] .dock-grip:hover{color:#ffffff73}[data-theme=dark] .dock-toolbar.dock-header{background:var(--color-surface);border-bottom-color:var(--color-border-subtle)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#app{display:flex;flex-direction:column;height:100vh;padding:0;overflow:hidden}.app-header{display:flex;align-items:center;gap:0;padding:0 16px;height:36px;flex-shrink:0;border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface)}.app-brand-link{text-decoration:none;color:inherit;display:flex;align-items:center}.app-logo{color:var(--color-text);flex-shrink:0;margin-right:6px}.app-header h1{font-size:.9rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);flex-shrink:0}.tip-display{flex:1;min-width:0;font-size:.68rem;color:var(--color-text-muted, #888);font-style:italic;white-space:nowrap;overflow:hidden;text-align:center;opacity:0;transition:opacity 1s ease;pointer-events:none;padding:0 12px}.tip-display.tip-visible{opacity:1}h1{font-size:.9rem;font-weight:600;letter-spacing:-.01em}p{font-size:.8rem;color:var(--color-text-muted);margin-bottom:0}.dock-toolbar{position:fixed;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px 6px;padding:5px 10px;max-width:calc(100vw - 32px);background:#f5f5f7e0;backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8);border:1px solid rgba(0,0,0,.12);border-radius:14px;box-shadow:0 1px #ffffff80 inset,0 8px 40px #00000029,0 2px 8px #00000014;z-index:90;cursor:grab;-webkit-user-select:none;user-select:none}.dock-toolbar .toolbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:1px}.dock-toolbar .toolbar-divider{width:1px;align-self:stretch;min-height:24px;background:#0000001a;flex-shrink:0;margin:0 2px}.dock-toolbar button,.dock-toolbar a{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:8px;background:transparent;color:#334155;font-size:11px;font-weight:600;font-family:Inter,system-ui,-apple-system,sans-serif;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease;white-space:nowrap;text-decoration:none}.dock-toolbar button:hover,.dock-toolbar a:hover{background:#00000012;color:#0f172a}.dock-toolbar button:active,.dock-toolbar a:active{background:#0000001f;transform:scale(.92)}.dock-toolbar button.active{background:#0f172a;color:#fff}.dock-toolbar button:disabled{opacity:.25;cursor:default;pointer-events:none}.dock-toolbar button svg,.dock-toolbar a svg{width:16px;height:16px;flex-shrink:0}.dock-toolbar .zoom-group{display:inline-flex;align-items:center;gap:1px}.dock-toolbar .zoom-group button{width:28px;height:28px;border-radius:6px;background:#0000000a}.dock-toolbar .zoom-group button:hover{background:#00000017}.dock-toolbar .zoom-group button:active{background:#00000024}.dock-grip{display:flex;align-items:center;justify-content:center;width:16px;cursor:grab;color:#00000040;flex-shrink:0;margin-left:2px}.dock-grip:hover{color:#00000073}.dock-toolbar.dock-header{position:fixed;top:0;left:0;right:0;bottom:auto;transform:none;border-radius:0;height:36px;padding:0 10px 0 100px;max-width:none;box-shadow:none;border:none;border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);backdrop-filter:none;-webkit-backdrop-filter:none;z-index:91}.dock-toolbar.dock-header .toolbar-divider{height:16px}.app-header.header-has-dock{background:transparent;border-bottom:none;position:relative;z-index:92;pointer-events:none}.app-header.header-has-dock .app-logo,.app-header.header-has-dock h1{pointer-events:auto}.dock-toolbar.dock-vertical{flex-direction:column;align-items:stretch;max-width:44px;padding:8px 5px}.dock-toolbar.dock-vertical .toolbar-group{flex-direction:column;align-items:center;gap:1px}.dock-toolbar.dock-vertical .toolbar-divider{width:100%;height:1px;min-height:1px;align-self:auto;margin:2px 0}.dock-toolbar.dock-vertical .zoom-group{flex-direction:column}.dock-toolbar.dock-square{max-width:120px;padding:6px;align-items:flex-start}.dock-toolbar.dock-square .toolbar-group{flex-wrap:wrap;justify-content:flex-start;gap:2px}.dock-toolbar.dock-square .toolbar-divider{width:100%;height:1px;min-height:1px;align-self:auto;margin:2px 0}.dock-toolbar.dock-square .zoom-group{flex-wrap:wrap}.file-menu{position:relative}.file-menu-popup{display:none;position:absolute;bottom:calc(100% + 8px);left:0;top:auto;padding:4px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;min-width:180px;flex-direction:column}.file-menu-popup.open{display:flex}.file-menu-popup button{display:block;width:100%;height:auto;text-align:left;padding:7px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.72rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast);white-space:nowrap}.file-menu-popup button:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.file-menu-popup hr{border:none;border-top:1px solid var(--color-border-subtle);margin:2px 8px}.file-submenu-parent{position:relative}.file-menu-popup>.file-submenu-parent+.file-submenu-parent{border-top:1px solid var(--color-border-subtle)}.file-submenu-trigger{display:flex!important;justify-content:space-between!important;align-items:center!important}.file-submenu-trigger .chevron{margin-left:16px;opacity:.45;font-size:1em}.file-submenu{display:none;position:absolute;left:calc(100% + 2px);bottom:0;padding:4px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;min-width:240px;flex-direction:column}.file-submenu-parent:hover>.file-submenu,.file-submenu-parent.submenu-open>.file-submenu{display:flex}.file-submenu-parent:hover>.file-submenu-trigger,.file-submenu-parent.submenu-open>.file-submenu-trigger{background:var(--color-accent-subtle);color:var(--color-accent-text)}.file-submenu button{display:block;width:100%;height:auto;text-align:left;padding:7px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.72rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast);white-space:nowrap}.file-submenu button:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.file-submenu hr{border:none;border-top:1px solid var(--color-border-subtle);margin:2px 8px}.file-submenu button.needs-individual{opacity:.45;cursor:default}.file-submenu button.needs-individual.has-individual{opacity:1;cursor:pointer}.dock-header .file-menu-popup{bottom:auto;top:calc(100% + 4px)}.dock-header .file-submenu{bottom:auto;top:0}.font-settings{position:relative}.font-settings-popup{display:none;position:absolute;bottom:calc(100% + 8px);right:0;top:auto;padding:12px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;min-width:200px}.font-settings-popup.open{display:flex;flex-direction:column;gap:8px}.font-settings-popup label{font-size:.68rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.font-settings-popup input,.font-settings-popup select{font-family:inherit;font-size:.78rem;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);outline:none;transition:border-color var(--duration-fast)}.font-settings-popup input:focus,.font-settings-popup select:focus{border-color:var(--color-accent)}.font-settings-popup .font-row{display:flex;align-items:center;gap:8px}.font-settings-popup .font-row label{text-transform:none;letter-spacing:0}#canvas{flex:1;width:100%;border:none;border-radius:0;background:var(--color-canvas-bg);cursor:crosshair;touch-action:none;outline:none}.toast{position:fixed;bottom:24px;left:50%;translate:-50% 0;padding:8px 20px;border-radius:var(--radius-xl);font-size:.78rem;font-weight:600;letter-spacing:.01em;color:#fff;pointer-events:none;opacity:1;transition:opacity .3s var(--ease-out),translate .3s var(--ease-out);box-shadow:var(--shadow-md)}.toast.hidden{opacity:0;translate:-50% 8px}.toast.error{background:var(--color-danger);max-width:400px;text-align:center}.find-bar{position:fixed;top:48px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:150;font-size:.78rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.find-bar.hidden{display:none}.find-bar input{font-family:inherit;font-size:.78rem;padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);outline:none;width:200px;transition:border-color var(--duration-fast)}.find-bar input:focus{border-color:var(--color-accent)}.find-bar .find-count{font-size:.68rem;font-weight:500;color:var(--color-text-subtle);min-width:3em;text-align:center}.find-bar button{display:inline-flex;align-items:center;justify-content:center;height:26px;min-width:26px;padding:0 6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.72rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--duration-fast)}.find-bar button:hover{background:var(--color-surface-alt);color:var(--color-text)}.note-overlay{position:fixed;z-index:160;display:flex;flex-direction:column;gap:4px}.note-overlay textarea{font-family:inherit;font-size:.78rem;padding:8px 10px;border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-lg);resize:both;min-width:180px;min-height:80px;outline:none;transition:border-color var(--duration-fast)}.note-overlay-toolbar{display:flex;justify-content:flex-end;gap:4px;padding:0 0 2px}.note-overlay-btn{padding:2px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text-muted);font-size:.72rem;cursor:pointer}.note-overlay-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.note-overlay-close{border:none;font-size:1rem;padding:0 6px;line-height:1}.note-overlay-viewer{background:var(--color-surface-raised);border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-lg);font-size:.78rem;line-height:1.6;color:var(--color-text);max-height:60vh;overflow-y:auto}.note-overlay-viewer h2{font-size:.92rem;margin:0 0 6px}.note-overlay-viewer h3{font-size:.84rem;margin:10px 0 4px}.note-overlay-viewer ul,.note-overlay-viewer ol{margin:4px 0;padding-left:18px}.note-overlay-viewer li{margin-bottom:2px}.note-overlay-viewer a{color:var(--color-accent);text-decoration:none}.note-overlay-viewer a:hover{text-decoration:underline}.note-overlay-viewer table{width:100%;border-collapse:collapse;margin:6px 0;font-size:.75rem}.note-overlay-viewer th{text-align:left;border-bottom:2px solid var(--color-border);padding:3px 6px;font-size:.7rem;text-transform:uppercase}.note-overlay-viewer td{padding:2px 6px;border-bottom:1px solid var(--color-border-subtle, #eee)}.note-overlay-viewer hr{border:none;border-top:1px solid var(--color-border);margin:8px 0}.note-overlay-viewer em{color:var(--color-text-muted)}.disease-key{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:4px;padding:0;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:120px}.disease-key.hidden{display:none}.disease-key-title{font-size:.72rem;font-weight:600;color:var(--color-text-muted);padding:8px 12px 4px;cursor:grab;-webkit-user-select:none;user-select:none}.disease-key-title:active{cursor:grabbing}.disease-key-row{display:flex;align-items:center;gap:8px;padding:3px 12px}.disease-key-row:last-child{padding-bottom:8px}.disease-key-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid var(--color-border)}.disease-key-label{font-size:.7rem;color:var(--color-text);white-space:nowrap}.disease-key-empty{font-size:.7rem;color:var(--color-text-subtle);font-style:italic;padding:4px 12px 8px}.undo-history-popup{position:fixed;z-index:200;display:flex;flex-direction:column;min-width:160px;max-height:300px;overflow-y:auto;padding:4px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.undo-history-item{display:block;width:100%;text-align:left;padding:6px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.72rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.undo-history-item:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.context-menu{position:fixed;z-index:200;min-width:200px;background:var(--color-surface-raised);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:6px;font-size:.78rem;animation:ctx-appear .12s var(--ease-out)}@keyframes ctx-appear{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-heading{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);padding:4px 8px 6px}.context-menu-row{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;border-radius:var(--radius-sm)}.context-menu-label{font-size:.76rem;font-weight:500;color:var(--color-text-muted);flex:1}.context-menu-sex-group{display:flex;align-items:center;gap:4px}.context-menu-sex-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--color-surface-alt);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.context-menu-sex-btn svg{width:16px;height:16px}.context-menu-sex-btn:hover{background:var(--color-accent-subtle);border-color:var(--color-accent);transform:scale(1.1)}.context-menu-sex-btn:active{transform:scale(.95)}.context-menu-sep{height:1px;background:var(--color-border-subtle);margin:4px 8px}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);font-size:.76rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.context-menu-item:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.context-menu-item svg{width:14px;height:14px;flex-shrink:0}.context-menu-item.danger:hover{background:var(--color-danger-subtle);color:var(--color-danger)}@media(max-width:768px){.app-header{height:auto;min-height:32px;padding:4px 12px}.dock-toolbar{bottom:8px;left:8px;right:8px;max-width:none;transform:none;border-radius:12px;padding:4px 6px}.dock-toolbar button,.dock-toolbar a{width:28px;height:28px;font-size:9px}.dock-toolbar .zoom-group button{width:26px;height:26px}.dock-toolbar button svg,.dock-toolbar a svg{width:14px;height:14px}.dock-toolbar .toolbar-divider{height:18px}.find-bar{top:auto;bottom:60px}}.sidebar{position:fixed;top:72px;right:20px;width:290px;min-width:240px;max-height:calc(100vh - 92px);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;font-size:.78rem;z-index:100;overflow:hidden;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar.hidden{display:none}.sidebar-resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;z-index:10;border-radius:0 0 var(--radius-xl) 0}.sidebar-resize-handle:before{content:"";position:absolute;bottom:4px;right:4px;width:8px;height:8px;border-right:2px solid var(--color-border);border-bottom:2px solid var(--color-border);opacity:.5;transition:opacity var(--duration-fast)}.sidebar-resize-handle:hover:before{opacity:1}.sidebar-titlebar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:transparent;border-bottom:1px solid var(--color-border-subtle);border-radius:var(--radius-xl) var(--radius-xl) 0 0;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}.sidebar-titlebar:active{cursor:grabbing}.sidebar-titlebar span{font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted)}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:none;cursor:pointer;font-size:.85rem;line-height:1;color:var(--color-text-subtle);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.sidebar-close:hover{color:var(--color-text);background:var(--color-surface-alt)}.sidebar-body{overflow-y:auto;padding:6px 14px 16px;flex:1;min-height:0}.sidebar-body::-webkit-scrollbar{width:5px}.sidebar-body::-webkit-scrollbar-track{background:transparent}.sidebar-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.sidebar-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}.sidebar h3{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--color-border-subtle)}.sidebar h3:first-child{margin-top:4px}.panel-section{break-inside:avoid}.panel-section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:14px}.panel-section-toggle:after{content:"▸";position:absolute;right:0;top:0;font-size:.6rem;color:var(--color-text-subtle);transform:rotate(90deg);transition:transform var(--duration-fast)}.panel-section.collapsed .panel-section-toggle:after{transform:rotate(0)}.panel-section.collapsed .panel-section-content{display:none}.panel-grid{container-type:inline-size}@container (min-width: 460px){.panel-grid{columns:2;column-gap:16px}}@container (min-width: 720px){.panel-grid{columns:3}}.sidebar .field{display:flex;flex-direction:column;margin-bottom:6px}.sidebar .field label{font-size:.66rem;font-weight:500;color:var(--color-text-subtle);margin-bottom:3px}.sidebar .field input,.sidebar .field select,.sidebar .field textarea{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:11px;font-weight:400;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.sidebar .field input:focus,.sidebar .field select:focus,.sidebar .field textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle)}.sidebar .field textarea{resize:vertical;min-height:3.5rem}.partial-date{display:flex;gap:3px;align-items:center}.partial-date-text{font-family:inherit;font-size:11px;padding:4px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);width:110px;min-width:0}.partial-date-text:focus{border-color:var(--color-accent);outline:none}.partial-date-text::placeholder{color:var(--color-text-muted, #999);font-size:10px}.partial-date-native{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.partial-date-cal{font-size:12px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:3px 4px;line-height:1;color:var(--color-text-muted, #999)}.partial-date-cal:hover{border-color:var(--color-accent);color:var(--color-text)}.partial-date-clear{font-size:13px;background:none;border:none;color:var(--color-text-muted, #999);cursor:pointer;padding:0 2px;line-height:1}.partial-date-clear:hover{color:var(--color-danger, #c33)}.sidebar .field input[type=range]{padding:0;border:none;background:transparent;cursor:pointer;box-shadow:none}.sidebar .field input[type=range]:focus{box-shadow:none}.sidebar .field-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.sidebar .field-row label{font-size:.72rem;font-weight:400;color:var(--color-text-muted)}.sidebar .field-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-accent);cursor:pointer}.md-editor{display:flex;flex-direction:column}.md-toolbar{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--color-border);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-surface-alt)}.md-editor textarea,.md-editor .notes-preview{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.md-btn{font-size:.7rem;font-family:inherit;padding:2px 6px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:3px;line-height:1.3}.md-btn:hover{background:var(--color-border);color:var(--color-text)}.md-preview-btn{font-size:.6rem;font-weight:500;color:var(--color-accent-text)}.md-preview-btn:hover{opacity:.7;background:none}.notes-section{position:relative}.notes-toggle{font-size:.65rem;font-weight:500;color:var(--color-accent-text);background:none;border:none;cursor:pointer;padding:2px 0;margin-left:4px;transition:opacity var(--duration-fast)}.notes-toggle:hover{opacity:.7}.notes-preview{font-size:.78rem;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);min-height:3.5rem;max-height:14rem;overflow-y:auto;line-height:1.55}.notes-preview h1,.notes-preview h2,.notes-preview h3{margin:6px 0 3px;font-size:.82rem;font-weight:600;color:var(--color-text);text-transform:none;letter-spacing:normal}.notes-preview h1{font-size:.9rem}.notes-preview h2{font-size:.86rem}.notes-preview p{margin:4px 0;font-size:.78rem;color:var(--color-text)}.notes-preview ul,.notes-preview ol{margin:4px 0;padding-left:1.3rem;font-size:.78rem}.notes-preview a{color:var(--color-accent-text)}.notes-preview strong{font-weight:600}.event-list{margin-top:2px}.event-item{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:5px;overflow:hidden;transition:border-color var(--duration-fast)}.event-item.expanded{border-color:var(--color-accent)}.event-item-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;font-size:.72rem;font-weight:500;background:var(--color-surface-alt);-webkit-user-select:none;user-select:none;transition:background var(--duration-fast)}.event-item-header:hover{background:var(--color-border-subtle)}.event-item-header span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.event-item.expanded .event-item-header span{color:var(--color-accent-text)}.event-delete-btn{background:none;border:none;cursor:pointer;font-size:.82rem;line-height:1;color:var(--color-text-subtle);padding:0 2px;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--duration-fast),background var(--duration-fast)}.event-delete-btn:hover{color:var(--color-danger);background:var(--color-danger-subtle)}.event-item-body{display:none;padding:6px 10px 10px}.event-item.expanded .event-item-body{display:block}.event-date-range{padding-left:8px;border-left:2px solid var(--color-border);margin:4px 0}.event-add-btn{width:100%;padding:7px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:none;color:var(--color-text-subtle);font-size:.72rem;font-weight:500;font-family:inherit;cursor:pointer;margin-top:4px;transition:border-color var(--duration-fast),color var(--duration-fast),background var(--duration-fast)}.event-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent-text);background:var(--color-accent-subtle)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120f66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}.modal-dialog{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:20px 24px;min-width:280px;max-width:360px;font-size:.82rem}.modal-dialog h4{margin:0 0 10px;font-size:.9rem;font-weight:600;color:var(--color-text)}.modal-dialog p{margin:0 0 16px;color:var(--color-text-muted);line-height:1.5;font-size:.8rem}.modal-buttons{display:flex;flex-direction:column;gap:6px}.modal-buttons button{padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text);font-size:.78rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast)}.modal-buttons button:hover{background:var(--color-border-subtle);border-color:var(--color-border)}.modal-buttons button.primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.modal-buttons button.primary:hover{background:var(--color-accent-hover)}.genetics-tab-bar{display:flex;gap:2px;margin-bottom:8px;border-bottom:1px solid var(--color-border-subtle);padding-bottom:6px}.genetics-tab{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.68rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.genetics-tab:hover{background:var(--color-surface-alt);color:var(--color-text)}.genetics-tab.active{background:var(--color-accent-subtle);color:var(--color-accent-text)}.genetics-search{width:100%;padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.72rem;background:var(--color-surface-alt);color:var(--color-text);outline:none;box-sizing:border-box;transition:border-color var(--duration-fast)}.genetics-search:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle)}.genetics-search::placeholder{color:var(--color-text-subtle)}.badge-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.resource-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.72rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface-alt);transition:border-color var(--duration-fast)}.resource-badge:hover{border-color:var(--color-border)}.disease-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.badge-remove{background:none;border:none;cursor:pointer;font-size:.82rem;line-height:1;color:var(--color-text-subtle);padding:0 1px;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--duration-fast),background var(--duration-fast)}.badge-remove:hover{color:var(--color-danger);background:var(--color-danger-subtle)}.badge{display:inline-block;padding:2px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.68rem;color:var(--color-text-muted);background:var(--color-surface-alt);transition:border-color var(--duration-fast),background var(--duration-fast);-webkit-user-select:none;user-select:none}.badge:hover{border-color:var(--color-accent)}.badge.badge-active{border-color:var(--color-accent);background:var(--color-accent-subtle, rgba(59, 130, 246, .12));color:var(--color-accent-text);font-weight:500}.linked-tests-section{margin-top:6px}.linked-tests-section>label{display:block;font-size:.7rem;font-weight:600;color:var(--color-text-muted);margin-bottom:3px}.text-muted{color:var(--color-text-muted)}.marker-badge{flex-wrap:wrap;gap:3px}.marker-badge-name{flex-shrink:0;font-weight:500}.marker-allele-input{width:36px;padding:2px 4px!important;font-size:.68rem!important;border:1px solid var(--color-border)!important;border-radius:4px!important;background:var(--color-surface)!important;color:var(--color-text);font-family:inherit;outline:none}.marker-allele-input:focus{border-color:var(--color-accent)!important}.sub-resource-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);margin:8px 0 4px}.sub-resource-section{margin-top:6px}.popup-picker-anchor{position:relative}.popup-picker{position:absolute;top:100%;left:0;right:0;z-index:10;margin-top:4px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);max-height:200px;display:flex;flex-direction:column;overflow:hidden}.popup-picker-search{padding:6px 8px;border:none;border-bottom:1px solid var(--color-border-subtle);font-family:inherit;font-size:.72rem;background:var(--color-surface-alt);color:var(--color-text);outline:none;flex-shrink:0}.popup-picker-search::placeholder{color:var(--color-text-subtle)}.popup-picker-list{overflow-y:auto;flex:1;min-height:0}.popup-picker-item{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:.72rem;color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast)}.popup-picker-item:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.popup-picker-item .disease-dot{flex-shrink:0}.popup-picker-group{padding:4px 8px 2px;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);pointer-events:none}.popup-picker-empty{padding:8px;font-size:.72rem;color:var(--color-text-subtle);text-align:center}.ancestry-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.72rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface-alt);transition:border-color var(--duration-fast)}.ancestry-badge:hover{border-color:var(--color-border)}.ancestry-proportion{width:52px;padding:2px 4px!important;font-size:.75rem!important;border:1px solid var(--color-border)!important;border-radius:4px!important;background:var(--color-surface)!important;color:var(--color-text);font-family:inherit;outline:none;text-align:right}.ancestry-proportion:focus{border-color:var(--color-accent)!important}.panel-accordion-item{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:5px;overflow:hidden;transition:border-color var(--duration-fast)}.panel-accordion-item.expanded{border-color:var(--color-accent)}.panel-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;font-size:.72rem;font-weight:500;background:var(--color-surface-alt);-webkit-user-select:none;user-select:none;transition:background var(--duration-fast)}.panel-accordion-header:hover{background:var(--color-border-subtle)}.panel-accordion-header span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.panel-accordion-item.expanded .panel-accordion-header span{color:var(--color-accent-text)}.panel-accordion-body{display:none;padding:6px 10px 10px}.panel-accordion-item.expanded .panel-accordion-body{display:block}.manifestation-section{margin-top:8px;border-top:1px solid var(--color-border-subtle);padding-top:6px}.manifestation-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 4px}.manifestation-list{margin-bottom:4px}.manifestation-item{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:4px;overflow:hidden;transition:border-color var(--duration-fast)}.manifestation-item.expanded{border-color:var(--color-accent)}.manifestation-item-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;cursor:pointer;font-size:12px;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast)}.manifestation-item-header:hover{background:var(--color-border-subtle)}.manifestation-item-header span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.manifestation-item.expanded .manifestation-item-header span{color:var(--color-accent-text)}.manifestation-item-body{display:none;padding:4px 8px 8px}.manifestation-item.expanded .manifestation-item-body{display:block}.sidebar .field.field-with-show{position:relative}.sidebar .field.field-with-show .show-on-pedigree{position:absolute;top:0;right:0;width:12px;height:12px;accent-color:var(--color-accent);cursor:pointer;opacity:.5;transition:opacity .15s}.sidebar .field.field-with-show .show-on-pedigree:checked{opacity:1}.sidebar .field.field-with-show .show-on-pedigree:hover{opacity:1}.panel-info-block{font-size:12px;line-height:1.6;color:var(--text-color, #333)}.panel-tag{display:inline-block;padding:2px 8px;margin:2px;background:var(--input-bg, #f0f0f0);border:1px solid var(--input-border, #ddd);border-radius:12px;font-size:11px;color:var(--text-color, #555)}@media(max-width:768px){.sidebar{top:auto;bottom:0;left:0;right:0;width:100%;max-height:60vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:none}.sidebar-titlebar{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.sidebar-resize-handle{display:none}}.help-link{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;border-radius:50%;font-size:.7rem;line-height:1;text-decoration:none;color:var(--color-text-muted, #888);opacity:.6;transition:opacity .15s,color .15s;flex-shrink:0;vertical-align:middle}.help-link:hover{opacity:1;color:var(--color-primary, #3b82f6)}.export-dialog{min-width:320px;max-width:400px}.export-field{margin-bottom:12px}.export-field>label{display:block;font-size:.78rem;font-weight:500;color:var(--color-text-muted);margin-bottom:4px}.export-field label:has(input[type=checkbox]){display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-text);cursor:pointer}.export-format-tabs{display:flex;gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2px}.export-tab{flex:1;padding:5px 8px;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--color-text-muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:background .1s,color .1s}.export-tab:hover{background:var(--color-accent-subtle);color:var(--color-text)}.export-tab.active{background:var(--color-accent);color:#fff;font-weight:600}.export-dialog select{width:100%;padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.8rem}.export-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.export-actions button{padding:7px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.8rem;cursor:pointer;transition:background .1s}.export-actions button:hover{background:var(--color-accent-subtle)}.export-actions button.primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent);font-weight:500}.export-actions button.primary:hover{background:var(--color-accent-hover)}.canvas-notes-section{margin-top:8px}.canvas-notes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.canvas-notes-header label{font-size:11px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.canvas-notes-add{font-size:11px;padding:1px 8px;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer}.canvas-notes-add:hover{background:var(--color-surface-hover);color:var(--color-text)}.canvas-notes-list{display:flex;flex-direction:column;gap:2px}.canvas-notes-empty{font-size:11px;color:var(--color-text-muted);padding:4px 0}.canvas-notes-row{display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:3px;background:var(--color-surface);border:1px solid var(--color-border)}.canvas-notes-row:hover{background:var(--color-surface-hover)}.canvas-notes-preview{flex:1;font-size:11px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.canvas-notes-del{flex-shrink:0;width:18px;height:18px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--color-text-muted);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.canvas-notes-del:hover{background:var(--color-danger, #e53e3e);color:#fff}.inferred-empty{font-size:.7rem;color:var(--color-text-muted);padding:10px 4px;line-height:1.4}.inferred-blood-card{background:linear-gradient(135deg,var(--color-surface-alt),var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:10px}.inferred-blood-title{display:flex;align-items:center;gap:6px}.inferred-blood-icon{font-size:1.1rem;line-height:1}.inferred-blood-label{font-size:.7rem;color:var(--color-text-muted);font-weight:500}.inferred-blood-value{font-size:1.1rem;font-weight:700;color:var(--color-accent-text, #c62828);margin-left:auto;letter-spacing:.5px}.inferred-blood-details{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.inferred-blood-chip{font-size:.65rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:10px;padding:2px 8px;display:inline-flex;align-items:center;gap:4px}.inferred-blood-chip.override-positive{border-color:var(--color-positive, #16a34a);color:var(--color-positive, #16a34a)}.inferred-blood-chip.override-negative{border-color:var(--color-danger, #e53e3e);color:var(--color-danger, #e53e3e);text-decoration:line-through}.inferred-category-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--color-text-subtle);padding:8px 0 3px;border-bottom:1px solid var(--color-border-subtle);margin-bottom:2px}.inferred-trait-row{display:flex;flex-wrap:wrap;align-items:center;padding:5px 4px;border-radius:var(--radius-sm, 3px);cursor:pointer;transition:background var(--duration-fast);font-size:.72rem;gap:4px}.inferred-trait-row:hover{background:var(--color-surface-alt)}.inferred-trait-row.expanded{background:var(--color-surface-alt);border-left:2px solid var(--color-accent);padding-left:6px}.inferred-trait-name{flex:1 1 40%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-weight:500}.inferred-trait-prediction{flex:0 1 auto;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}.inferred-trait-prediction.confirmed{color:var(--color-positive, #16a34a);font-weight:600}.inferred-trait-prediction.denied{color:var(--color-danger, #e53e3e);text-decoration:line-through;opacity:.7}.inferred-trait-badge{flex:0 0 auto;font-size:.6rem;font-weight:500;padding:1px 6px;border-radius:8px;background:var(--color-surface);border:1px solid var(--color-border-subtle);white-space:nowrap}.inferred-trait-badge.override-positive{background:color-mix(in srgb,var(--color-positive, #16a34a) 12%,transparent);border-color:var(--color-positive, #16a34a);color:var(--color-positive, #16a34a)}.inferred-trait-badge.override-negative{background:color-mix(in srgb,var(--color-danger, #e53e3e) 12%,transparent);border-color:var(--color-danger, #e53e3e);color:var(--color-danger, #e53e3e)}.inferred-trait-detail{flex:0 0 100%;padding:6px 0 4px 8px;font-size:.65rem;color:var(--color-text-muted);line-height:1.5}.inferred-trait-snps{font-family:var(--font-mono, monospace);font-size:.62rem;opacity:.8;margin-bottom:2px}.inferred-trait-desc{margin-bottom:6px;line-height:1.4}.inferred-override-row{display:flex;align-items:center;gap:4px;margin-top:4px}.inferred-override-label{font-size:.62rem;color:var(--color-text-subtle);margin-right:2px}.inferred-override-btn{font-size:.62rem;padding:2px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.inferred-override-btn:hover{background:var(--color-surface-alt);border-color:var(--color-text-muted)}.inferred-override-btn.active-positive{background:color-mix(in srgb,var(--color-positive, #16a34a) 15%,transparent);border-color:var(--color-positive, #16a34a);color:var(--color-positive, #16a34a);font-weight:600}.inferred-override-btn.active-negative{background:color-mix(in srgb,var(--color-danger, #e53e3e) 15%,transparent);border-color:var(--color-danger, #e53e3e);color:var(--color-danger, #e53e3e);font-weight:600}.inferred-override-btn.inferred-override-reset{font-style:italic;opacity:.7}.inferred-override-btn.inferred-override-reset:disabled{opacity:.35;cursor:default}.inferred-override-btn.inferred-override-reset:not(:disabled):hover{opacity:1}.likelihood-badge{font-size:.58rem;font-weight:500}.blade-stack{display:flex;flex-direction:column;height:100%;min-height:0}.blade-bc{display:flex;align-items:center;gap:2px;padding:6px 12px;font-size:.68rem;border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;overflow-x:auto;white-space:nowrap;min-height:28px}.blade-bc:empty{padding:0;min-height:0;border-bottom:none}.blade-bc-item{background:none;border:none;cursor:pointer;font:inherit;font-size:.68rem;color:var(--color-text-muted);padding:2px 5px;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.blade-bc-item:hover:not(.active){color:var(--color-text);background:var(--color-surface-alt)}.blade-bc-item.active{color:var(--color-text);font-weight:600;cursor:default}.blade-bc-sep{color:var(--color-text-subtle);font-size:.72rem;flex-shrink:0}.blade-strip{display:flex;flex:1;min-height:0;overflow-x:auto;scroll-behavior:smooth}.blade-strip::-webkit-scrollbar{height:4px}.blade-strip::-webkit-scrollbar-track{background:transparent}.blade-strip::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.blade{display:flex;flex-direction:column;min-width:240px;width:260px;flex-shrink:0;border-right:1px solid var(--color-border-subtle)}.blade:last-child{border-right:none;flex:1 0 280px;width:auto}.blade-hdr{padding:7px 12px;font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:6px}.blade-hdr-delete{background:none;border:none;cursor:pointer;font-size:.82rem;color:var(--color-text-subtle);padding:0 2px;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast);line-height:1}.blade-hdr-delete:hover{color:var(--color-danger);background:var(--color-danger-subtle)}.blade-body{overflow-y:auto;flex:1;min-height:0;padding:2px 0}.blade-body::-webkit-scrollbar{width:4px}.blade-body::-webkit-scrollbar-track{background:transparent}.blade-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.blade-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:.74rem;color:var(--color-text);border-bottom:1px solid var(--color-border-subtle);transition:background var(--duration-fast);-webkit-user-select:none;user-select:none}.blade-item:hover{background:var(--color-surface-alt)}.blade-item:last-child{border-bottom:none}.blade-item-content{flex:1;min-width:0}.blade-item-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blade-item-sub{font-size:.64rem;color:var(--color-text-muted);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blade-item-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:10px;font-size:.6rem;font-weight:600;flex-shrink:0;color:#fff}.blade-item-chevron{flex-shrink:0;color:var(--color-text-subtle);font-size:.82rem;line-height:1}.blade-section-heading{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);padding:10px 12px 4px}.blade-empty{padding:20px 16px;text-align:center;color:var(--color-text-muted);font-size:.72rem;font-style:italic}.blade-detail{padding:3px 12px;font-size:.72rem;display:flex;justify-content:space-between;gap:8px}.blade-detail-label{color:var(--color-text-muted);flex-shrink:0}.blade-detail-value{color:var(--color-text);font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blade-add-btn{display:block;width:calc(100% - 16px);margin:6px 8px;padding:6px;font:inherit;font-size:.7rem;color:var(--color-text-muted);background:var(--color-surface-alt);border:1px dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-align:center;transition:border-color var(--duration-fast),color var(--duration-fast)}.blade-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent-text)}.blade-filter{display:block;width:calc(100% - 16px);margin:4px 8px;padding:5px 8px;font:inherit;font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);outline:none;transition:border-color var(--duration-fast)}.blade-filter:focus{border-color:var(--color-accent)}.blade-filter::placeholder{color:var(--color-text-subtle)}.blade-result-positive{color:#d32f2f;font-weight:600}.blade-result-negative{color:#388e3c}.blade-result-vus{color:#f57c00}.blade-result-notested{color:#9e9e9e}.sidebar-body.blade-host{padding:0;overflow:hidden}#register-panel{width:680px;min-width:400px;max-height:calc(100vh - 72px)}.register-grid{width:100%;border-collapse:collapse;font-size:.75rem}.register-grid th,.register-grid td{padding:4px 6px;border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.register-grid th{position:sticky;top:0;background:var(--color-surface-raised);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none}.register-grid th:hover{color:var(--color-text)}.register-grid tr:hover{background:var(--color-surface-hover)}.register-grid tr.hidden-row{opacity:.45}.register-grid tr.selected-row{background:color-mix(in srgb,var(--color-accent) 15%,transparent)}.register-grid tr.selected-row:hover{background:color-mix(in srgb,var(--color-accent) 22%,transparent)}.register-grid td input[type=text]{background:transparent;border:none;border-bottom:1px solid transparent;color:inherit;font:inherit;padding:1px 2px;width:100%;min-width:60px;transition:border-color var(--duration-fast)}.register-grid td input[type=text]:focus{outline:none;border-bottom-color:var(--color-accent)}.register-grid td select{background:transparent;border:none;color:inherit;font:inherit;padding:1px 2px;cursor:pointer}.register-grid td input[type=checkbox]{cursor:pointer}.register-grid .rel-cell{color:var(--color-text-muted);font-style:italic;font-size:.7rem}.register-grid .disease-cell{font-size:.65rem;text-align:center}.register-grid .disease-cell .dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid currentColor}.register-grid .disease-cell .dot.affected{background:currentColor}.register-grid .disease-cell .dot.carrier{background:transparent}.register-toolbar{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--color-border);align-items:center;flex-wrap:wrap}.register-toolbar button{font-size:.72rem;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.register-toolbar button:hover{background:var(--color-surface-hover);border-color:var(--color-accent)}.register-toolbar select{font-size:.72rem;padding:3px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.register-toolbar .spacer{flex:1}.register-add-btn{margin-left:auto;margin-right:4px;font-size:.7rem;padding:2px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.register-add-btn:hover{background:var(--color-surface-hover);border-color:var(--color-accent)}.register-ctx-menu{position:fixed;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:9999;min-width:180px;padding:4px 0}.register-ctx-menu button{display:block;width:100%;text-align:left;padding:5px 12px;border:none;background:transparent;color:var(--color-text);font:inherit;font-size:.74rem;cursor:pointer}.register-ctx-menu button:hover{background:var(--color-surface-hover)}.register-ctx-menu .ctx-sep{height:1px;background:var(--color-border);margin:4px 0}.visibility-section{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 8px}.vis-action-btn{font-size:.68rem;padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast)}.vis-action-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}#risk-panel{position:fixed;top:60px;right:20px;width:380px;max-height:calc(100vh - 80px);z-index:200;background:var(--panel-bg, #ffffff);border:1px solid var(--panel-border, #ccc);border-radius:8px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;font-size:13px}#risk-panel.hidden{display:none}.risk-form{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.risk-form label{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--label-color, #666);margin-top:4px}.risk-select{padding:6px 8px;border:1px solid var(--input-border, #ccc);border-radius:4px;background:var(--input-bg, #fff);color:var(--text-color, #333);font-size:13px}.risk-run-btn{margin-top:8px;padding:8px 16px;background:var(--accent-color, #2563eb);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.risk-run-btn:hover{background:var(--accent-hover, #1d4ed8)}.risk-run-btn:disabled{opacity:.6;cursor:not-allowed}.risk-model-desc{font-size:12px;color:var(--label-color, #666);margin-bottom:12px;line-height:1.4}.risk-results{overflow-y:auto}.risk-loading{text-align:center;padding:20px;color:var(--label-color, #888)}.risk-quota{font-size:11px;color:var(--label-color, #888);display:block;margin-bottom:4px}.risk-quota-bar{height:4px;background:var(--panel-border, #e5e5e5);border-radius:2px;margin-bottom:8px;overflow:hidden}.risk-quota-fill{height:100%;background:var(--color-accent, #3b82f6);border-radius:2px;transition:width .3s ease}.risk-error{padding:12px;background:var(--error-bg, #fef2f2);color:var(--error-color, #991b1b);border-radius:6px;font-size:12px;line-height:1.5}.risk-error code{display:block;margin-top:8px;padding:6px 8px;background:var(--code-bg, #f5f5f5);border-radius:4px;font-family:monospace;font-size:12px;color:var(--text-color, #333)}.risk-success{padding:8px 12px;background:var(--success-bg, #f0fdf4);color:var(--success-color, #166534);border-radius:6px;font-size:12px;margin-top:6px}.risk-warnings{padding:8px 12px;background:var(--warn-bg, #fffbeb);color:var(--warn-color, #92400e);border-radius:6px;font-size:11px;margin-bottom:8px}.risk-warnings ul{margin:4px 0 0 16px;padding:0}.risk-info{margin-bottom:12px;font-size:13px}.risk-section{margin-bottom:16px}.risk-section h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--label-color, #666)}.risk-table{width:100%;border-collapse:collapse;font-size:12px}.risk-table th{text-align:left;padding:4px 8px;border-bottom:2px solid var(--panel-border, #ddd);font-weight:600;font-size:11px;color:var(--label-color, #666)}.risk-table td{padding:4px 8px;border-bottom:1px solid var(--panel-border, #eee)}.risk-val{text-align:right;font-variant-numeric:tabular-nums}.risk-elevated{color:var(--risk-elevated, #b45309);font-weight:600}.risk-high{color:var(--risk-high, #dc2626);font-weight:700}.risk-linkage-config{margin-top:4px}.risk-linkage-config details{border:1px solid var(--panel-border, #ddd);border-radius:4px;padding:6px 8px}.risk-linkage-config summary{cursor:pointer;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--label-color, #666)}.risk-linkage-config label{display:block;margin-top:4px}.risk-checkbox-label{display:flex;align-items:center;gap:4px;font-size:12px}.risk-note-text{font-size:11px;color:var(--label-color, #888);font-style:italic;margin-top:4px}.risk-lod-marker{font-size:12px;margin-bottom:6px}.risk-lod-sig{color:var(--success-color, #16a34a);font-weight:700}.risk-lod-excl{color:var(--risk-high, #dc2626);font-weight:700}.risk-lod-positive{color:var(--success-color, #16a34a)!important;font-weight:700}.risk-lod-negative{color:var(--risk-high, #dc2626)!important;font-weight:700}.risk-multipoint-lod{margin-top:8px;font-size:12px;padding:6px 8px;background:var(--info-bg, #eff6ff);border-radius:4px}.risk-weighted-rec{margin-top:6px;font-size:12px;padding:6px 8px;background:var(--info-bg, #eff6ff);border-radius:4px}.risk-investigate-section{margin-top:8px}.risk-investigate-section details{border:1px solid var(--panel-border, #ddd);border-radius:4px;padding:6px 8px}.risk-investigate-section summary{cursor:pointer;font-weight:600;font-size:12px;color:var(--label-color, #666)}.risk-investigate-section label{display:block;margin-top:4px}.risk-investigate-btn{margin-top:8px;width:100%}.risk-investigate-summary{margin:8px 0;font-size:13px;padding:8px;background:var(--info-bg, #eff6ff);border-radius:6px}.risk-investigate-card{padding:6px 8px;margin:4px 0;border-radius:4px;border-left:3px solid var(--risk-elevated, #b45309);background:var(--warn-bg, #fffbeb);font-size:12px}.risk-report-viewer{margin-top:8px;border:1px solid var(--panel-border, #ddd);border-radius:4px}.risk-report-viewer summary{cursor:pointer;font-weight:600;font-size:12px;padding:6px 8px;color:var(--label-color, #666)}.risk-report-text{font-family:monospace;font-size:10px;line-height:1.4;padding:8px;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;background:var(--code-bg, #f5f5f5);border-radius:0 0 4px 4px;margin:0}.risk-copy-btn{display:block;width:100%;padding:4px;font-size:11px;background:var(--panel-bg, #fff);border:1px solid var(--panel-border, #ddd);border-radius:0 0 4px 4px;cursor:pointer;color:var(--label-color, #666)}.risk-copy-btn:hover{background:var(--info-bg, #eff6ff)}.risk-descendant-report{border:1px solid var(--panel-border, #ddd);border-radius:4px;margin:4px 0;padding:4px 8px}.risk-descendant-report summary{cursor:pointer;font-size:12px}.risk-profile-card{background:var(--color-surface, #f8f8f8);border:1px solid var(--panel-border, #ddd);border-radius:6px;padding:10px 12px;margin-bottom:12px;font-size:12px;line-height:1.5}.risk-profile-card strong{font-weight:600}.risk-profile-row{margin-bottom:4px}.risk-profile-row:last-child{margin-bottom:0}.risk-profile-label{color:var(--color-text-muted, #888);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.risk-profile-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.risk-profile-tag{display:inline-block;padding:1px 6px;border-radius:3px;font-size:11px;background:var(--color-accent-light, #e0edff);color:var(--color-accent, #2563eb);border:1px solid var(--color-accent, #2563eb);opacity:.85}.risk-profile-empty{color:var(--color-text-muted, #999);font-style:italic;font-size:11px;padding:6px 0}.risk-section-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #666);margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--panel-border, #ddd)}.risk-screen-desc{font-size:11px;color:var(--color-text-muted, #888);margin-bottom:8px;line-height:1.4}.risk-screen-row{display:flex;gap:6px;margin-bottom:6px}.risk-screen-primary{flex:1;background:var(--color-accent, #2563eb)!important;color:#fff!important;border:none;font-weight:600}.risk-screen-primary:hover:not(:disabled){background:var(--color-accent-hover, #1d4ed8)!important}.risk-screen-secondary{flex:1;background:transparent!important;color:var(--color-text, #333)!important;border:1px solid var(--panel-border, #ccc)!important}.risk-screen-secondary:hover:not(:disabled){background:var(--color-surface-hover, #f0f0f0)!important}.risk-screen-checkbox{font-size:11px;margin-bottom:6px}.risk-screening-results{margin-top:8px}.risk-model-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:3px;background:var(--color-surface, #f0f0f0);color:var(--color-text-muted, #666);border:1px solid var(--panel-border, #ddd);margin:4px 0 8px}.risk-disease-section details{margin-top:6px}.risk-disease-section details summary{cursor:pointer;font-size:11px;color:var(--color-text-muted, #888)}.risk-family-disease{border-left-color:var(--color-accent, #2563eb)!important;background:var(--color-surface, #f8f8ff)!important}.risk-gene-badges{display:flex;flex-wrap:wrap;gap:3px;margin:3px 0 2px}.risk-gene-badge{display:inline-block;font-size:10px;padding:1px 5px;border-radius:3px;background:var(--color-surface, #f0f0f0);color:var(--color-text-muted, #666);border:1px solid var(--panel-border, #ddd);font-family:monospace}.risk-karyo-pinned{margin-top:4px}.risk-karyo-pinned-content{position:relative;background:var(--panel-bg, #fff);border:1px solid var(--panel-border, #ddd);border-radius:6px;padding:8px 10px;font-size:11px;line-height:1.5;box-shadow:0 2px 8px #0000001a}.risk-karyo-pinned-close{position:absolute;top:4px;right:6px;border:none;background:transparent;font-size:16px;cursor:pointer;color:var(--color-text-muted, #999);line-height:1;padding:0}.risk-karyo-pinned-close:hover{color:var(--color-danger, #e53e3e)}.help-link-text{color:var(--color-accent, #2563eb);text-decoration:none;font-size:11px}.help-link-text:hover{text-decoration:underline}.risk-report-md{font-size:11px;line-height:1.5;max-height:400px;overflow-y:auto;padding:4px 0}.risk-report-md h2{font-size:13px;margin:0 0 6px}.risk-report-md h3{font-size:12px;margin:10px 0 4px}.risk-report-md h4{font-size:11px;margin:8px 0 2px}.risk-report-md table{width:100%;border-collapse:collapse;font-size:11px;margin:4px 0 8px}.risk-report-md th{text-align:left;border-bottom:2px solid var(--panel-border, #ccc);padding:3px 6px;font-size:10px;text-transform:uppercase}.risk-report-md td{padding:2px 6px;border-bottom:1px solid var(--panel-border, #eee)}.risk-report-md hr{border:none;border-top:1px solid var(--panel-border, #ddd);margin:8px 0}.risk-report-md em{color:var(--color-text-muted, #888)}
