*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1a1a2e;background:#f0f2f5}#app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.app-toolbar{position:relative;z-index:30;display:grid;grid-template-columns:44px minmax(220px,420px) 140px 44px minmax(0,1fr);flex:0 0 auto;align-items:center;gap:6px;min-height:calc(56px + env(safe-area-inset-top,0px));padding:calc(6px + env(safe-area-inset-top,0px)) 12px 6px;border-bottom:1px solid #e0e0e0;background:#fff}.app-toolbar .btn-icon{width:44px;height:44px;margin:0}.app-menu-button{font-size:20px}.toolbar-search-control{position:relative;min-width:0;height:44px}.toolbar-search-control input{width:100%;height:44px;padding:8px 42px 8px 12px}.toolbar-search-clear{position:absolute;top:0;right:0;width:44px;height:44px;padding:0;border:none;border-radius:6px;color:#777;background:transparent;cursor:pointer;font-size:20px}.toolbar-search-clear:focus-visible,.toolbar-search-clear:hover{color:#333;background:#f0f2f5;outline:none}.toolbar-view-mode{width:140px;height:44px;padding:8px 28px 8px 10px;font-size:13px;font-weight:600}.app-workspace{display:flex;flex:1 1 auto;width:100%;min-height:0;overflow:hidden}.graph-pane{flex:1;position:relative;min-width:0;display:flex;overflow:hidden;isolation:isolate}.workspace-history{position:absolute;top:14px;left:14px;z-index:12;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.canvas-control-group{display:flex;padding:3px;border:1px solid #d8e0ec;border-radius:12px;background:#fffffff5;box-shadow:0 3px 16px #1e293b1a}.canvas-control{display:flex;width:44px;height:44px;padding:0;align-items:center;justify-content:center;border:none;border-radius:8px;color:#425675;background:transparent;font:inherit;cursor:pointer;touch-action:manipulation}.canvas-control:hover:not(:disabled){color:#2563a8;background:#eaf3ff}.canvas-control:focus-visible{outline:2px solid #4a90e2;outline-offset:-2px}.canvas-control:disabled{color:#a6b0bf;cursor:default}.workspace-viewport{position:absolute;z-index:12;top:14px;right:14px;flex-direction:column}.canvas-zoom-value{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.canvas-fit-control{margin-top:3px;border-top:1px solid #e4eaf2;border-top-left-radius:0;border-top-right-radius:0}.canvas-stats{padding:5px 9px;border:1px solid #e3e9f1;border-radius:7px;color:#65748b;background:#fffffff5;font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none}.mobile-detail-tab,.mobile-detail-panel,.mobile-sidebar-backdrop,.app-menu-backdrop{display:none}#cy{flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:#fff;position:relative}#cy:focus{outline:none}#cy:focus-visible{outline:2px solid #4a90e2;outline-offset:-2px}.minimap{position:absolute;bottom:16px;right:16px;width:160px;height:120px;background:#f8f9fa;border:1px solid #d0d0d0;border-radius:6px;overflow:hidden;z-index:10;box-shadow:0 2px 8px #00000014;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.minimap.dragging{cursor:grabbing}.minimap canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.minimap-viewport{display:none}.editor-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;overflow:hidden}#sidebar,.sidebar-nav{position:relative;z-index:1;width:300px;background:#fff;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}#sidebar.sidebar-collapsed,.sidebar-nav.sidebar-collapsed{display:none}.mobile-drawer-header,.app-menu-header{display:flex;min-height:56px;flex:0 0 auto;align-items:center;justify-content:space-between;padding:6px 10px 6px 16px;border-bottom:1px solid #e0e0e0;font-size:15px}.mobile-drawer-header{display:none}.mobile-drawer-header .btn-icon,.app-menu-header .btn-icon{width:44px;height:44px}.app-menu{position:fixed;z-index:90;top:0;bottom:0;left:0;display:flex;width:min(88vw,360px);height:100vh;height:100dvh;flex-direction:column;overflow:hidden;border-right:1px solid #e0e0e0;background:#fff;box-shadow:18px 0 44px #1e293b2e;visibility:hidden;pointer-events:none;transform:translate(-100%);transition:transform .2s ease,visibility .2s ease}.app-menu.app-menu-open{visibility:visible;pointer-events:auto;transform:translate(0)}.app-menu-header{padding-top:calc(6px + env(safe-area-inset-top,0px))}.app-menu-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px}.menu-section h2{margin:0 0 8px;font-size:14px}.menu-graph-section{padding-bottom:12px}.app-menu .graph-selector{padding:0;border:none}.app-menu .graph-selector select,.app-menu .graph-selector .btn-icon{height:44px}.app-menu .graph-selector .btn-icon{width:44px}.danger-icon{color:#c0392b}.danger-icon:hover,.danger-icon:focus-visible{color:#a93226;background:#fdf0ee}.menu-disclosure{border-top:1px solid #e8e8e8}.menu-disclosure:last-child{border-bottom:1px solid #e8e8e8}.menu-disclosure summary{display:flex;min-height:48px;align-items:center;justify-content:space-between;cursor:pointer;font-size:14px;font-weight:600;list-style:none}.menu-disclosure summary::-webkit-details-marker{display:none}.menu-disclosure summary:after{content:"›";color:#888;font-size:20px;transform:rotate(90deg);transition:transform .15s ease}.menu-disclosure[open] summary:after{transform:rotate(-90deg)}.menu-disclosure-content{padding:0 0 14px}.menu-disclosure-content .btn{min-height:44px}.app-menu>.account-bar{min-height:56px;flex:0 0 auto;padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid #e0e0e0;border-bottom:none}.app-menu-backdrop{position:fixed;z-index:80;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:none;background:#0f172a6b;cursor:default}.app-menu-backdrop:not([hidden]){display:block}.sidebar-panel-heading{margin-bottom:12px}.sidebar-detail{width:240px;flex:0 0 240px;background:#fafbfc;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.detail-panel-header{padding:10px 12px;border-bottom:1px solid #e8e8e8}.detail-panel-header h2{margin:0;font-size:14px;font-weight:600}.detail-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 12px}.detail-empty{color:#888;font-size:12px;line-height:1.5}.detail-empty .hint{margin:8px 0 0;font-size:11px;color:#aaa;line-height:1.45}.detail-header h3{margin:0 0 2px;font-size:16px}.detail-id{font-size:11px;color:#999}.detail-desc,.detail-meta{font-size:13px;color:#555;line-height:1.5}.detail-edit-section{margin:12px 0;padding:10px 0;border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.detail-field-label{display:block;font-size:11px;font-weight:600;color:#666}.detail-note-input,.detail-link-title-input,.detail-link-url-input{width:100%;border:1px solid #d9dde5;border-radius:5px;color:#283044;background:#fff;font:inherit;outline:none}.detail-note-input{min-height:76px;margin-top:5px;padding:7px 8px;resize:vertical;font-size:12px;line-height:1.5}.detail-note-input:focus,.detail-link-title-input:focus,.detail-link-url-input:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e224}.detail-links-heading{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.detail-add-link{border:none;padding:2px 0;color:#4a90e2;background:transparent;cursor:pointer;font-size:11px}.detail-links-editor{display:flex;flex-direction:column;gap:8px;margin-top:5px}.detail-link-row{padding:6px;border:1px solid #e2e5eb;border-radius:6px;background:#fff}.detail-link-title-input,.detail-link-url-input{height:28px;padding:4px 6px;font-size:11px}.detail-link-url-row{display:grid;grid-template-columns:minmax(0,1fr) 24px 20px;align-items:center;gap:3px;margin-top:4px}.detail-open-link,.detail-remove-link{display:inline-flex;width:20px;height:24px;align-items:center;justify-content:center;border:none;border-radius:4px;color:#4a90e2;background:transparent;cursor:pointer;text-decoration:none;font-size:15px}.detail-open-link:hover{background:#eef5ff}.detail-remove-link{color:#999}.detail-remove-link:hover{color:#c0392b;background:#fdf0ee}.detail-save-hint{margin:7px 0 0;color:#999;font-size:10px}.detail-tags{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.detail-tags .tag{font-size:11px;padding:2px 8px;background:#eef2ff;color:#4338ca;border-radius:10px}.detail-group h4{margin:10px 0 4px;font-size:11px;font-weight:600;color:#666;display:flex;align-items:center;gap:6px}.detail-rel-list{list-style:none;margin:0;padding:0}.detail-rel-list li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:3px 0;font-size:12px;border-bottom:1px solid #f0f0f0}.detail-link{background:none;border:none;padding:0;color:#4a90e2;cursor:pointer;font-size:12px;text-align:left;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-link:hover{text-decoration:underline}.detail-rel-type{font-size:10px;color:#999;flex-shrink:0;max-width:42%;text-align:right;line-height:1.3}.detail-dl{font-size:13px;display:grid;grid-template-columns:64px 1fr;gap:8px 12px}.detail-dl dt{color:#888;margin:0}.detail-dl dd{margin:0}.cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.section-title{margin:24px 0 10px;font-size:13px;font-weight:600}.filter-grid{display:flex;flex-direction:column;gap:4px}.check-row,.radio-row{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:2px 0}.view-mode-group{display:flex;flex-direction:column;gap:4px}.focus-center-wrap{margin-top:10px;padding:8px 10px;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa}.focus-center-wrap.muted{opacity:.65}.focus-center-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.focus-center-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.focus-center-info{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.focus-center-label{font-size:12px;color:#888;flex-shrink:0}.focus-center-name{font-size:14px;font-weight:600;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-wrap.hidden{display:none}.hidden{display:none!important}.timeline-wrap{margin-top:8px}.chapter-stepper-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-label,.timeline-unit{font-size:13px;color:#444;white-space:nowrap}.chapter-stepper{display:flex;align-items:center;gap:4px}.chapter-stepper .stepper-btn{flex-shrink:0;font-size:20px;font-weight:500}.chapter-input{width:56px;height:30px;padding:0 6px;border:1px solid #ddd;border-radius:6px;font-size:14px;text-align:center;-moz-appearance:textfield}.chapter-input::-webkit-outer-spin-button,.chapter-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.chapter-input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d933}.aggregate-actions{display:flex;flex-wrap:wrap;gap:6px}.layout-section.compact .layout-field{margin-bottom:8px}.btn-sm{padding:4px 10px;font-size:12px}@media(max-width:1100px){.sidebar-detail{width:200px;flex-basis:200px}}@media(max-width:900px){.workspace-history{top:10px;left:10px}.workspace-viewport{top:112px;right:10px}.sidebar-detail,.canvas-hint{display:none}}.sidebar-header{padding:16px;border-bottom:1px solid #e0e0e0}.auth-pending #app{visibility:hidden}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:24px;background:#f5f7fb}.auth-screen[hidden]{display:none}.auth-card{width:min(380px,100%);padding:28px;text-align:center;background:#fff;border:1px solid #e0e5ee;border-radius:14px;box-shadow:0 18px 48px #2232541f}.auth-card h1{margin:16px 0 8px;font-size:20px}.auth-card p{margin:0 0 18px;color:#68738a;font-size:13px;line-height:1.6}.auth-spinner{width:36px;height:36px;margin:0 auto;border:4px solid #dce6f5;border-top-color:#4a90e2;border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.account-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #f0f0f0}.account-name{flex:1;min-width:0;overflow:hidden;color:#555;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.graph-selector{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid #f0f0f0;align-items:center}.graph-selector select{flex:1;padding:6px 8px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#fff;outline:none;cursor:pointer}.graph-selector select:focus{border-color:#4a90e2}.graph-selector-actions{display:flex;gap:4px}.btn-icon{width:30px;height:30px;padding:0;border:1px solid #ddd;border-radius:6px;font-size:18px;line-height:1;cursor:pointer;background:#fff;display:flex;align-items:center;justify-content:center;color:#666;transition:background .15s}.btn-icon:hover{background:#f5f5f5;color:#333}.btn-icon:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.sidebar-header h1{margin:0 0 4px;font-size:16px;font-weight:600}.sidebar-header p{margin:0;font-size:12px;color:#888}.tabs{display:flex;border-bottom:1px solid #e0e0e0}.tab{flex:1;padding:10px 0;border:none;background:none;font-size:13px;cursor:pointer;color:#666;border-bottom:2px solid transparent;transition:color .15s}.tab:hover{color:#333}.tab.active{color:#4a90e2;border-bottom-color:#4a90e2;font-weight:500}.tab-panel{display:none;flex:1;overflow-y:auto;padding:16px}.tab-panel.active{display:block}.tab-panel h3{margin:0 0 12px;font-size:14px;font-weight:600}.tab-panel h3.section-title{margin-top:24px;margin-bottom:10px;font-size:13px}.section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.section:last-child{border-bottom:none;margin-bottom:0}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field-label{font-size:12px;color:#666;font-weight:500}input[type=text],select{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s}input[type=text]:focus,select:focus{border-color:#4a90e2}.btn{padding:8px 14px;border:1px solid #ddd;border-radius:6px;font-size:13px;cursor:pointer;background:#fff;transition:background .15s}.btn:hover{background:#f5f5f5}.btn.primary{background:#4a90e2;color:#fff;border-color:#4a90e2}.btn.primary:hover{background:#3a7bc8}.btn.danger{color:#e74c3c;border-color:#e74c3c}.btn.danger:hover{background:#fdf0ee}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-row{display:flex;gap:8px;margin-top:12px}.btn-block{width:100%;margin-bottom:8px}.hint,.meta{font-size:12px;color:#999;margin:0 0 8px}.search-box{display:flex;gap:8px}.search-box input{flex:1}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(80px);background:#333;color:#fff;padding:10px 20px;border-radius:8px;font-size:13px;opacity:0;transition:all .3s;z-index:100;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{background:#e74c3c}#file-import{display:none}.inline-editor{position:absolute;z-index:20;pointer-events:none;opacity:0;transform:translate(-50%,-50%)}.inline-editor.visible{opacity:1;pointer-events:auto}.inline-editor textarea,.inline-editor input{width:100%;height:100%;margin:0;padding:8px;border:none;border-radius:8px;font-size:10px;line-height:1.4;text-align:center;outline:none;resize:none;overflow:hidden;font-family:inherit;box-sizing:border-box}.node-editor textarea{background:transparent;color:#333;caret-color:#333;white-space:pre-wrap;word-break:break-all;cursor:text}.node-editor.important-node textarea{color:#c0392b;caret-color:#c0392b}.node-editor.male-node textarea,.node-editor.female-node textarea{color:#333}.toggle-row{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:8px;cursor:pointer}.edge-editor input{font-size:11px;background:#ffffffe6;color:#1a1a2e;border:2px solid transparent;height:auto;cursor:default}.edge-editor.editing input{border-color:#e67e22;background:#fff;box-shadow:0 2px 12px #e67e2240;cursor:text}.tree-view{font-size:13px}.tree-toolbar{display:flex;gap:6px;margin-bottom:10px}.tree-toolbar #tree-search-input{flex:1;padding:5px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;outline:none}.tree-toolbar #tree-search-input:focus{border-color:#4a90e2}.btn-sm{padding:4px 10px;font-size:12px;border-radius:4px}.tree-node{display:flex;align-items:center;padding:4px 6px;border-radius:4px;cursor:pointer;gap:4px;-webkit-user-select:none;user-select:none}.tree-node:hover{background:#f0f2f5}.tree-node.selected{background:#e8f0fe}.tree-toggle{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#999;flex-shrink:0;transition:transform .15s}.tree-toggle.expanded{transform:rotate(90deg)}.tree-toggle.empty{visibility:hidden}.tree-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-label.org{font-weight:600;color:#5c4a32}.tree-actions{display:none;gap:2px;flex-shrink:0}.tree-node:hover .tree-actions{display:flex}.tree-btn{width:22px;height:22px;padding:0;border:none;border-radius:4px;font-size:14px;line-height:1;cursor:pointer;background:transparent;color:#999;display:flex;align-items:center;justify-content:center}.tree-btn:hover{background:#e0e0e0;color:#333}.tree-btn.danger:hover{background:#fdf0ee;color:#e74c3c}.tree-children{padding-left:0;overflow:hidden}.tree-children.collapsed{display:none}#cy.link-mode{cursor:crosshair}#cy.space-panning{cursor:grab}#cy.space-panning:active{cursor:grabbing}.shortcut-list{list-style:none;padding:0;margin:0}.shortcut-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;border-bottom:1px solid #f5f5f5;gap:12px}.shortcut-list li:last-child{border-bottom:none}.shortcut-desc{flex-shrink:0}.shortcut-keys{text-align:right;color:#888;font-size:12px}.shortcut-list kbd{display:inline-block;padding:2px 8px;font-size:11px;font-family:inherit;background:#f0f2f5;border:1px solid #ddd;border-radius:4px;color:#555}.layout-section{margin-top:4px}.layout-field{margin-bottom:10px}.layout-field label{display:flex;justify-content:space-between;font-size:12px;color:#666;margin-bottom:4px}.layout-field label span{color:#4a90e2;font-weight:500}.layout-field select{width:100%;padding:5px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;outline:none}.layout-field select:focus{border-color:#4a90e2}.edge-display-field{margin:8px 0 14px}.edge-display-hint{margin:7px 0 0;line-height:1.5}.layout-field input[type=range]{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ddd;border-radius:2px;outline:none}.layout-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#4a90e2;cursor:pointer}.layout-field input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#4a90e2;cursor:pointer;border:none}.layout-hint{font-size:11px;color:#999;margin:3px 0 0;line-height:1.4}.canvas-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#ffffffeb;border:1px solid #e0e0e0;border-radius:8px;padding:8px 16px;font-size:12px;color:#666;z-index:10;pointer-events:none;white-space:nowrap;box-shadow:0 2px 8px #0000000f}.node-action-bar{position:absolute;bottom:16px;left:50%;z-index:20;display:flex;max-width:calc(100% - 36px);min-height:44px;align-items:center;gap:8px;padding:6px 7px 6px 12px;transform:translate(-50%);border:1px solid #d8dee9;border-radius:12px;color:#334155;background:#fffffff5;box-shadow:0 8px 24px #1e293b29}.node-action-bar.moving{border-color:#f0b44d;box-shadow:0 8px 24px #f39c1233}.node-action-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.node-action-btn{min-width:76px;min-height:44px;flex-shrink:0;border:none;border-radius:8px;padding:6px 12px;color:#fff;background:#4a90e2;cursor:pointer;font-size:13px;font-weight:600}.node-action-btn:hover,.node-action-btn:focus-visible{background:#357abd;outline:none}.node-action-btn.secondary{color:#7c4f00;background:#fff0cf}.node-action-btn.secondary:hover,.node-action-btn.secondary:focus-visible{background:#ffe4ad}.node-action-btn.tertiary{color:#315c8c;background:#eaf3ff}.node-action-btn.tertiary:hover,.node-action-btn.tertiary:focus-visible{background:#d9eaff}#cy.move-mode{cursor:crosshair}@media(max-width:900px){.app-toolbar{grid-template-columns:44px minmax(0,1fr) 108px 44px;padding-inline:8px}.toolbar-view-mode{width:108px;padding:8px 26px 8px 8px;font-size:12px}#sidebar,.sidebar-nav{position:fixed;z-index:80;top:0;right:0;bottom:0;width:min(88vw,360px);height:100vh;height:100dvh;min-height:0;flex:none;border-top:none;border-right:none;border-left:1px solid #e0e0e0;box-shadow:-18px 0 44px #1e293b2e;visibility:hidden;pointer-events:none;transform:translate(100%);transition:transform .2s ease,visibility .2s ease}#sidebar.sidebar-collapsed,.sidebar-nav.sidebar-collapsed{display:flex}#sidebar.mobile-sidebar-open,.sidebar-nav.mobile-sidebar-open{visibility:visible;pointer-events:auto;transform:translate(0)}.mobile-drawer-header{display:flex;padding:calc(6px + env(safe-area-inset-top,0px)) 10px 6px 16px}.mobile-sidebar-backdrop{position:fixed;z-index:70;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:none;background:#0f172a6b;cursor:default}.mobile-sidebar-backdrop:not([hidden]){display:block}.graph-pane{width:100%;height:auto;min-height:0;flex:1 1 auto}#btn-logout{min-width:48px;height:44px;padding:0 10px}.tab{min-height:44px;padding:8px 0}.mobile-detail-tab,.mobile-detail-panel.active{display:block}.tab-panel{flex:1 1 auto;min-height:0;padding:10px 12px calc(16px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}.tab-panel.active{display:block}.mobile-detail-host .detail-content{display:block;overflow:visible;padding:0}.touch-hover-option,.menu-shortcuts{display:none}.tab-panel h3.section-title{margin-top:16px}.check-row,.radio-row{min-height:44px;padding-block:8px}#sidebar .btn,#sidebar select,#sidebar input[type=range]{min-height:44px}#sidebar .layout-field input[type=range]{height:44px;background:transparent!important}#sidebar .layout-field input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#ddd}#sidebar .layout-field input[type=range]::-webkit-slider-thumb{width:24px;height:24px;margin-top:-9px}#sidebar .layout-field input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:#ddd}#sidebar .layout-field input[type=range]::-moz-range-thumb{width:24px;height:24px}#sidebar .btn-icon{min-width:44px}.chapter-input,.chapter-stepper .stepper-btn{height:44px}.chapter-stepper .stepper-btn{width:44px}.tree-toolbar #tree-search-input,.tree-toolbar .btn-icon{height:44px}.tree-toolbar .btn-icon{width:44px}.tree-node{min-height:44px;padding-block:2px}.tree-toggle{width:44px;height:44px}.tree-actions,.tree-node:hover .tree-actions{display:flex}.tree-btn{width:44px;height:44px}.detail-add-link{min-width:44px;min-height:44px}.detail-link-title-input,.detail-link-url-input{min-height:44px}.detail-link-url-row{grid-template-columns:minmax(0,1fr) 44px 44px}.detail-open-link,.detail-remove-link{width:44px;height:44px}.detail-rel-list li,.detail-link{min-height:44px}.minimap{top:10px;right:10px;bottom:auto;width:120px;height:90px}.node-action-bar{bottom:calc(8px + env(safe-area-inset-bottom,0px));width:calc(100% - 20px);max-width:440px;flex-wrap:nowrap;gap:5px;padding:5px}.node-action-label{flex:1 1 72px;min-width:0;text-align:left}.node-action-btn{min-width:60px;flex:0 1 auto;min-height:44px;padding-inline:10px}}@media(prefers-reduced-motion:reduce){.app-menu{transition:none}}@media(prefers-reduced-motion:reduce)and (max-width:900px){#sidebar,.sidebar-nav{transition:none}}@media(max-width:360px){.app-toolbar{grid-template-columns:44px minmax(0,1fr) 92px 44px}.toolbar-view-mode{width:92px;padding-inline:7px 22px}.node-action-bar:not(.moving) .node-action-label{display:none}}.canvas-hint kbd{display:inline-block;padding:1px 5px;font-size:11px;background:#f0f2f5;border:1px solid #ddd;border-radius:3px;margin:0 2px}body.theme-dark{color:#d9e2ff;background:#0b1020}body.theme-dark #cy{background:#0e1424}body.theme-dark .app-toolbar,body.theme-dark .mobile-drawer-header,body.theme-dark .app-menu,body.theme-dark .app-menu-header{color:#eef3ff;background:#111827;border-color:#273247}body.theme-dark .toolbar-search-clear{color:#96a3bf}body.theme-dark .toolbar-search-clear:hover,body.theme-dark .toolbar-search-clear:focus-visible{color:#eef3ff;background:#1d2940}body.theme-dark .mobile-sidebar-backdrop,body.theme-dark .app-menu-backdrop{background:#0009}body.theme-dark #sidebar,body.theme-dark .sidebar-nav{background:#111827;border-left-color:#273247;border-top-color:#273247}body.theme-dark .sidebar-detail{background:#0f1726;border-right-color:#273247}body.theme-dark .detail-panel-header,body.theme-dark .tabs,body.theme-dark .graph-selector,body.theme-dark .account-bar,body.theme-dark .menu-disclosure,body.theme-dark .section,body.theme-dark .detail-edit-section,body.theme-dark .shortcut-list li,body.theme-dark .detail-rel-list li{border-color:#273247}body.theme-dark .tab-panel h3,body.theme-dark .menu-section h2,body.theme-dark .menu-disclosure summary,body.theme-dark .section-title,body.theme-dark .detail-panel-header h2,body.theme-dark .shortcut-desc{color:#eef3ff}body.theme-dark .hint,body.theme-dark .meta,body.theme-dark .detail-empty,body.theme-dark .detail-dl dt,body.theme-dark .detail-id,body.theme-dark .detail-rel-type,body.theme-dark .focus-center-label,body.theme-dark .field-label,body.theme-dark .layout-field label,body.theme-dark .shortcut-keys,body.theme-dark .tree-toggle,body.theme-dark .tree-btn,body.theme-dark .canvas-hint{color:#8f9bb6}body.theme-dark .detail-desc,body.theme-dark .detail-meta,body.theme-dark .detail-field-label,body.theme-dark .timeline-label,body.theme-dark .timeline-unit,body.theme-dark .focus-center-name,body.theme-dark .tree-label,body.theme-dark .check-row,body.theme-dark .radio-row{color:#cbd6f1}body.theme-dark .detail-note-input,body.theme-dark .detail-link-title-input,body.theme-dark .detail-link-url-input,body.theme-dark .detail-link-row{color:#dbe6ff;background:#0b1221;border-color:#33415c}body.theme-dark .detail-note-input:focus,body.theme-dark .detail-link-title-input:focus,body.theme-dark .detail-link-url-input:focus{border-color:#7aa2ff;box-shadow:0 0 0 2px #7aa2ff38}body.theme-dark .detail-open-link:hover{background:#1b2942}body.theme-dark .detail-remove-link:hover{color:#ff8c86;background:#3a1f27}body.theme-dark .auth-screen{background:#0b1020}body.theme-dark .auth-card{color:#eef3ff;background:#111827;border-color:#273247;box-shadow:0 18px 48px #00000059}body.theme-dark .auth-card p,body.theme-dark .account-name{color:#96a3bf}body.theme-dark .auth-spinner{border-color:#33415c;border-top-color:#8ea5ff}body.theme-dark .focus-center-wrap,body.theme-dark .canvas-hint,body.theme-dark .node-action-bar{background:#151e31;border-color:#2c3850}body.theme-dark .node-action-bar{color:#dbe6ff;box-shadow:0 8px 24px #00000057}body.theme-dark .canvas-control-group,body.theme-dark .canvas-stats{background:#151e31;border-color:#2c3850;box-shadow:0 3px 16px #0000003d}body.theme-dark .canvas-control{color:#c9d8f2}body.theme-dark .canvas-control:disabled{color:#586983}body.theme-dark .canvas-control:hover:not(:disabled){color:#e4eeff;background:#233958}body.theme-dark .canvas-control:focus-visible{outline-color:#7aa2ff}body.theme-dark .canvas-fit-control{border-top-color:#2c3850}body.theme-dark .canvas-stats{color:#a0b1cc}body.theme-dark .node-action-bar.moving{border-color:#c98a28}body.theme-dark .node-action-btn.secondary{color:#ffd68c;background:#473318}body.theme-dark .node-action-btn.secondary:hover,body.theme-dark .node-action-btn.secondary:focus-visible{background:#5b421e}body.theme-dark .node-action-btn.tertiary{color:#c9ddff;background:#233958}body.theme-dark .node-action-btn.tertiary:hover,body.theme-dark .node-action-btn.tertiary:focus-visible{background:#2c4a73}body.theme-dark input[type=text],body.theme-dark input[type=number],body.theme-dark select,body.theme-dark .chapter-input,body.theme-dark .graph-selector select,body.theme-dark .tree-toolbar #tree-search-input,body.theme-dark .layout-field select{color:#dbe6ff;background:#0b1221;border-color:#33415c}body.theme-dark input::placeholder{color:#6f7b95}body.theme-dark input[type=text]:focus,body.theme-dark input[type=number]:focus,body.theme-dark select:focus,body.theme-dark .chapter-input:focus,body.theme-dark .tree-toolbar #tree-search-input:focus,body.theme-dark .layout-field select:focus{border-color:#7aa2ff;box-shadow:0 0 0 2px #7aa2ff38}body.theme-dark input[type=checkbox],body.theme-dark input[type=radio]{accent-color:#7aa2ff}body.theme-dark .tab{color:#96a3bf}body.theme-dark .tab:hover,body.theme-dark .btn-icon:hover,body.theme-dark .tree-btn:hover{color:#eef3ff}body.theme-dark .tab.active,body.theme-dark .layout-field label span,body.theme-dark .detail-link{color:#7aa2ff}body.theme-dark .tab.active{border-bottom-color:#7aa2ff}body.theme-dark .btn,body.theme-dark .btn-icon{color:#dbe6ff;background:#151e31;border-color:#33415c}body.theme-dark .btn:hover,body.theme-dark .btn-icon:hover,body.theme-dark .tree-node:hover,body.theme-dark .tree-btn:hover{background:#1d2940}body.theme-dark .btn.primary{color:#08101f;background:#8ea5ff;border-color:#8ea5ff}body.theme-dark .btn.primary:hover{background:#a6b8ff}body.theme-dark .btn.danger{color:#ff9b93;border-color:#7f393f}body.theme-dark .btn.danger:hover,body.theme-dark .tree-btn.danger:hover{color:#ffc2bd;background:#321a24}body.theme-dark .btn-icon.danger-icon{color:#ff9b93;border-color:#7f393f}body.theme-dark .btn-icon.danger-icon:hover,body.theme-dark .btn-icon.danger-icon:focus-visible{color:#ffc2bd;background:#321a24}body.theme-dark .minimap{background:#111827;border-color:#34415c;box-shadow:0 16px 36px #00000059}body.theme-dark .detail-tags .tag,body.theme-dark .tree-node.selected{color:#c8d3ff;background:#1d294b}body.theme-dark .tree-label.org{color:#d6c39a}body.theme-dark .shortcut-list kbd,body.theme-dark .canvas-hint kbd{color:#cbd6f1;background:#151e31;border-color:#33415c}body.theme-dark .layout-field input[type=range]{background:#33415c}body.theme-dark #sidebar .layout-field input[type=range]::-webkit-slider-runnable-track,body.theme-dark #sidebar .layout-field input[type=range]::-moz-range-track{background:#33415c}body.theme-dark .layout-field input[type=range]::-webkit-slider-thumb{background:#8ea5ff}body.theme-dark .layout-field input[type=range]::-moz-range-thumb{background:#8ea5ff}body.theme-dark .node-editor textarea{color:#d9e2ff;caret-color:#d9e2ff}body.theme-dark .node-editor.important-node textarea{color:#ff8f86;caret-color:#ff8f86}body.theme-dark .node-editor.male-node textarea,body.theme-dark .node-editor.female-node textarea{color:#d9e2ff}body.theme-dark .edge-editor input{color:#d9e2ff;background:#0f1726f0}body.theme-dark .edge-editor.editing input{background:#111827;border-color:#f0a45f;box-shadow:0 2px 12px #f0a45f47}
