:root{color-scheme:light;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", sans-serif;--color-label: #000000;--color-label-secondary: rgba(60, 60, 67, .6);--color-label-tertiary: rgba(60, 60, 67, .3);--color-fill: #f2f2f7;--color-secondary-grouped: #ffffff;--color-tertiary-grouped: #f2f2f7;--color-separator: rgba(60, 60, 67, .29);--color-separator-opaque: #c6c6c8;--color-tint: #007aff;--color-tint-hover: #0062cc;--color-tint-muted: rgba(0, 122, 255, .12);--color-green: #34c759;--color-orange: #ff9500;--color-red: #ff3b30;--color-destructive: #ff3b30;--color-destructive-muted: rgba(255, 59, 48, .12);--color-gray-fill: #e5e5ea;--color-gray-fill-secondary: #f2f2f7;--overlay-bg: rgba(0, 0, 0, .4);--accent: var(--color-tint);--accent-hover: var(--color-tint-hover);--surface: var(--color-secondary-grouped);--border: var(--color-separator-opaque);--muted: var(--color-label-secondary);--danger: var(--color-red);--radius-control: 10px;--radius-card: 12px;--radius-sheet: 14px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--shadow-elevated: 0 1px 3px rgba(0, 0, 0, .06);--shadow-sheet: 0 8px 24px rgba(0, 0, 0, .12);--touch-min: 44px;--control-height-toolbar: 36px;--font-caption: .8125rem;--font-body: 1rem;--font-title: 1.0625rem;--font-page-title: 1.375rem;--font-large-title: 2.125rem}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--color-label: #ffffff;--color-label-secondary: rgba(235, 235, 245, .6);--color-label-tertiary: rgba(235, 235, 245, .3);--color-fill: #000000;--color-secondary-grouped: #1c1c1e;--color-tertiary-grouped: #2c2c2e;--color-separator: rgba(84, 84, 88, .65);--color-separator-opaque: #38383a;--color-tint: #0a84ff;--color-tint-hover: #409cff;--color-tint-muted: rgba(10, 132, 255, .2);--color-green: #30d158;--color-orange: #ff9f0a;--color-red: #ff453a;--color-destructive: #ff453a;--color-destructive-muted: rgba(255, 69, 58, .2);--color-gray-fill: #3a3a3c;--color-gray-fill-secondary: #2c2c2e;--overlay-bg: rgba(0, 0, 0, .55);--shadow-elevated: 0 1px 3px rgba(0, 0, 0, .25);--shadow-sheet: 0 8px 24px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:var(--font-body);line-height:1.47;font-weight:400;color:var(--color-label);background:var(--color-fill);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-tint);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.caption{font-size:var(--font-caption);color:var(--color-label-secondary)}.page-title{font-size:var(--font-page-title);font-weight:600;line-height:1.25;margin:0 0 var(--space-3)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);background:var(--color-secondary-grouped);border-bottom:.5px solid var(--color-separator);position:sticky;top:0;z-index:20}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:var(--font-title)}.header-actions,.map-card-actions,.dashboard-header{display:flex;align-items:center;gap:var(--space-3)}.user-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-gray-fill-secondary);font-size:var(--font-caption)}.user-chip img,.presence-avatar{border-radius:var(--radius-pill)}.app-main{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-min);border:none;border-radius:var(--radius-control);padding:0 var(--space-4);cursor:pointer;font-weight:500;transition:background .15s ease,opacity .15s ease;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-tint);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-tint-hover)}.btn-secondary{background:var(--color-gray-fill);color:var(--color-label)}.btn-secondary:hover:not(:disabled){filter:brightness(.96)}.btn-ghost{background:transparent;color:var(--color-tint)}.btn-ghost:hover:not(:disabled){background:var(--color-tint-muted)}.btn-danger{background:var(--color-destructive-muted);color:var(--color-destructive)}.btn-danger-text{background:transparent;color:var(--color-destructive)}.btn-danger-text:hover:not(:disabled){background:var(--color-destructive-muted)}.btn-large{padding:0 var(--space-6);font-size:var(--font-title);border-radius:var(--radius-card)}.btn-icon{min-width:var(--touch-min);padding:0 var(--space-3)}.btn-icon svg{width:18px;height:18px;flex-shrink:0}.btn-active{background:var(--color-tint-muted);color:var(--color-tint)}.muted{color:var(--color-label-secondary)}.landing{max-width:480px;margin:0 auto;padding:var(--space-8) var(--space-5)}.landing .lead{margin:0 0 var(--space-5)}.lead{font-size:var(--font-body);color:var(--color-label-secondary);line-height:1.5}.empty-state{background:var(--color-secondary-grouped);border-radius:var(--radius-card);padding:var(--space-5)}.error-banner{background:var(--color-destructive-muted);color:var(--color-destructive);border-radius:var(--radius-control);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}.dashboard,.editor-shell{max-width:980px;margin:0 auto;padding:var(--space-5)}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.dashboard-header .page-title{margin-bottom:var(--space-1)}.dashboard-header h1{font-size:var(--font-page-title);font-weight:600;line-height:1.25;margin:0}.list-group{background:var(--color-secondary-grouped);border-radius:var(--radius-card);overflow:hidden;border:.5px solid var(--color-separator)}.list-row{padding:var(--space-4)}.list-row+.list-row{border-top:.5px solid var(--color-separator)}.list-row.map-card-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.empty-state{text-align:center;padding:var(--space-8) var(--space-5);border:.5px solid var(--color-separator)}.toolbar-row .map-search-input{flex:1;min-width:220px}.map-search-input,.title-input,.toolbar-select{min-height:var(--touch-min);border:none;border-radius:var(--radius-control);padding:0 var(--space-4);background:var(--color-gray-fill-secondary);color:var(--color-label)}.toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.toolbar-row .map-search-input,.toolbar-row .toolbar-select,.list-row.map-card-row .btn{min-height:var(--control-height-toolbar)}.empty-state h2{margin:0 0 var(--space-2);font-size:var(--font-title)}.title-input{min-width:200px;flex:1}.toolbar-select{padding-right:var(--space-6);cursor:pointer}.map-search-input:focus,.title-input:focus,.toolbar-select:focus{outline:none;box-shadow:0 0 0 2px var(--color-tint)}.editor-shell{max-width:none;width:100%;padding:0;display:flex;flex-direction:column;min-height:calc(100vh - 65px)}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-4);background:var(--color-secondary-grouped);border-bottom:.5px solid var(--color-separator);flex-wrap:wrap;position:sticky;top:0;z-index:20}.editor-toolbar .btn,.editor-toolbar .toolbar-select{min-height:var(--control-height-toolbar);padding-top:0;padding-bottom:0}.editor-toolbar .btn-icon{min-width:var(--control-height-toolbar);padding:0}.editor-toolbar .title-input{flex:1;max-width:280px;min-height:var(--control-height-toolbar)}.editor-toolbar .zoom-controls button{min-height:calc(var(--control-height-toolbar) - 2px);min-width:calc(var(--control-height-toolbar) - 2px)}.editor-toolbar-group{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.save-status{color:var(--color-label-secondary);font-size:var(--font-caption);white-space:nowrap}.presence-inline{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-caption)}.status-dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--color-label-tertiary)}.status-dot.online{background:var(--color-green)}.status-dot.reconnecting{background:var(--color-orange)}.collab-reconnect-label{font-size:var(--font-caption);color:var(--color-label-secondary)}.mind-map-container{flex:1;width:100%;height:100%;min-height:0;background:var(--color-tertiary-grouped)}body.editor-page{overflow:hidden}.editor-loading{display:grid;place-items:center;min-height:100vh;color:var(--color-label-secondary)}.editor-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.editor-body{display:flex;flex:1;min-height:0}.editor-canvas-wrap{position:relative;display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.editor-sidebar{width:320px;border-left:.5px solid var(--color-separator);background:var(--color-secondary-grouped);overflow-y:auto}.segmented-control,.zoom-controls{display:inline-flex;align-items:stretch;background:var(--color-gray-fill);border-radius:8px;padding:1px;gap:1px}.segmented-control button,.zoom-controls button{min-height:calc(var(--control-height-toolbar) - 2px);min-width:calc(var(--control-height-toolbar) - 2px);border:none;border-radius:8px;background:transparent;color:var(--color-label);cursor:pointer;font-size:var(--font-caption);font-weight:500;padding:0 var(--space-3);transition:background .15s ease}.segmented-control button:hover,.zoom-controls button:hover{background:#ffffff59}.segmented-control button:active,.segmented-control button.is-active,.zoom-controls button:active{background:var(--color-secondary-grouped)}.side-panel{padding:var(--space-4)}.side-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.side-panel-header h3{margin:0;font-size:var(--font-title);font-weight:600}.inspector-section{padding-top:var(--space-3);border-top:.5px dashed var(--color-separator)}.shortcut-list{list-style:none;padding:0;margin:0;background:var(--color-tertiary-grouped);border-radius:var(--radius-card);overflow:hidden}.shortcut-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.shortcut-list li+li{border-top:.5px solid var(--color-separator)}.shortcut-list kbd{font-family:var(--font-sans);font-size:var(--font-caption);background:var(--color-secondary-grouped);border:.5px solid var(--color-separator);border-radius:6px;padding:2px 8px;box-shadow:0 1px 0 var(--color-separator);white-space:nowrap}.version-list{list-style:none;padding:0;margin:0}.version-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:.5px solid var(--color-separator)}.export-menu{position:relative}.export-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;display:grid;min-width:180px;background:var(--color-secondary-grouped);border:.5px solid var(--color-separator);border-radius:var(--radius-sheet);box-shadow:var(--shadow-sheet);overflow:hidden;padding:var(--space-1) 0}.export-menu-dropdown button{border:none;background:none;text-align:left;padding:var(--space-3) var(--space-4);cursor:pointer;min-height:var(--touch-min);color:var(--color-label)}.export-menu-dropdown button:hover{background:var(--color-gray-fill-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:var(--overlay-bg);padding:var(--space-5)}.modal-card{width:min(420px,calc(100vw - 2rem));background:var(--color-secondary-grouped);border-radius:var(--radius-sheet);padding:var(--space-5);box-shadow:var(--shadow-sheet)}.modal-card h3{margin:0 0 var(--space-2);font-size:var(--font-title);font-weight:600}.modal-card input[type=file]{width:100%;margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-control);background:var(--color-tertiary-grouped);border:.5px dashed var(--color-separator)}.file-picker{display:inline-flex;margin-top:var(--space-4);cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.conflict-banner,.preview-banner{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:.5px solid var(--color-separator);font-size:var(--font-caption)}.banner-message{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);flex:1;min-width:0}.banner-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0}.conflict-banner .btn,.preview-banner .btn{min-height:28px;padding:0 var(--space-3);font-size:var(--font-caption)}.conflict-banner{background:var(--color-destructive-muted)}.preview-banner{background:var(--color-tint-muted)}.node-style-panel{position:absolute;top:var(--space-3);left:var(--space-3);z-index:5;display:grid;gap:var(--space-2);padding:var(--space-3);background:var(--color-secondary-grouped);border:.5px solid var(--color-separator);border-radius:var(--radius-card)}.node-style-label{font-size:var(--font-caption);font-weight:600;color:var(--color-label-secondary)}.node-style-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.icon-chip,.color-chip{border:.5px solid var(--color-separator);background:var(--color-secondary-grouped);border-radius:8px;cursor:pointer;min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-1)}.color-chip{width:var(--touch-min);height:var(--touch-min);padding:0}.map-list-shell{display:grid;gap:var(--space-4)}.map-card-body{display:grid;gap:var(--space-1);flex:1;min-width:200px}.map-card-actions{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2)}.map-preview-topic{margin:0;color:var(--color-label-secondary)}.map-card-body h3{margin:0;font-size:var(--font-title);font-weight:600}.toast-container{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);z-index:100;display:grid;gap:var(--space-2);width:min(420px,calc(100vw - 2rem))}.toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-4) + 3px);border-radius:var(--radius-control);background:var(--color-secondary-grouped);border:.5px solid var(--color-separator);border-left-width:3px}.toast--success{border-left-color:var(--color-green)}.toast--error{border-left-color:var(--color-red)}.toast--info{border-left-color:var(--color-tint)}.toast-dismiss{border:none;background:none;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--color-label-secondary);min-width:auto;min-height:auto;padding:var(--space-1)}.editor-canvas-wrap>.minimap{position:absolute;right:var(--space-3);bottom:var(--space-3);z-index:6;border:.5px solid var(--color-separator);border-radius:var(--radius-control);overflow:hidden;background:var(--color-secondary-grouped)}.version-preview .minimap,.minimap--embedded{position:static;align-self:flex-start}.minimap svg{display:block;cursor:pointer}.body-size-bar{position:relative;height:3px;background:var(--color-gray-fill);overflow:hidden}.body-size-bar-fill{height:100%;background:var(--color-green);transition:width .2s ease}.body-size-bar--warning .body-size-bar-fill{background:var(--color-orange)}.body-size-bar-label{position:absolute;top:6px;right:var(--space-3);font-size:11px;color:var(--color-label-secondary)}.conflict-diff-summary{font-size:var(--font-caption)}.version-item--expanded{flex-direction:column;align-items:stretch}.version-item-actions{display:flex;gap:var(--space-2);flex-shrink:0}.version-meta{margin:var(--space-1) 0 0;font-size:var(--font-caption)}.version-preview{width:100%;margin-top:var(--space-3);padding-top:var(--space-3);border-top:.5px dashed var(--color-separator);display:grid;gap:var(--space-3)}.version-diff{font-size:var(--font-caption)}.diff-up{color:var(--color-green)}.diff-down{color:var(--color-red)}.version-item-main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}.editor-sidebar .btn{min-height:32px;padding:0 var(--space-3)}@media(min-width:901px){.editor-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;flex-wrap:nowrap}.editor-toolbar-group{flex-wrap:nowrap}.editor-toolbar-group:nth-child(2){justify-self:center}.editor-toolbar-group:nth-child(3){justify-self:end}}@media(max-width:900px){.editor-sidebar{position:absolute;top:48px;right:0;bottom:0;z-index:15;border-left:.5px solid var(--color-separator)}.editor-toolbar{flex-direction:column;align-items:stretch}.toast-container{left:var(--space-4);right:var(--space-4);width:auto;transform:none}}
