:root{--bg: #05070d;--panel: rgba(11, 15, 26, .84);--panel-border: rgba(255, 255, 255, .12);--text: #eef4ff;--muted: #9eabc4;--accent: #78d8ff;--accent-2: #ffd36a;--danger: #ff6b88;--node: rgba(18, 26, 42, .9);--node-border: rgba(120, 216, 255, .45)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{min-width:320px;overflow:hidden;color:var(--text);font-family:Segoe UI,Noto Sans TC,Arial,sans-serif;background:radial-gradient(circle at 18% 22%,rgba(120,216,255,.16),transparent 28%),radial-gradient(circle at 82% 78%,rgba(255,211,106,.1),transparent 26%),var(--bg)}body:after{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:radial-gradient(circle at center,transparent 0 38%,rgba(0,0,0,.6) 100%)}.starfield{position:fixed;top:-12%;right:-12%;bottom:-12%;left:-12%;pointer-events:none;transform:translateZ(0);will-change:transform;contain:layout paint style;backface-visibility:hidden;transform-style:preserve-3d}.starfield-back{background-image:radial-gradient(circle,rgba(255,255,255,.58) 0 1px,transparent 1.7px),radial-gradient(circle,rgba(120,216,255,.46) 0 1px,transparent 1.8px);background-position:0 0,92px 64px;background-size:180px 180px,260px 260px;animation:starDriftBack 42s linear infinite;opacity:.58}.starfield-front{background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 .9px,transparent 1.5px),radial-gradient(circle,rgba(255,211,106,.52) 0 .8px,transparent 1.5px);background-position:36px 28px,120px 78px;background-size:230px 230px,340px 340px;animation:starDriftFront 28s linear infinite;opacity:.68}button,input,textarea{font:inherit}button{min-height:38px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:var(--text);background:#ffffff14;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}button:hover:not(:disabled){transform:translateY(-1px);border-color:#78d8ff8c;background:#78d8ff24}button:disabled{cursor:not-allowed;opacity:.45}h1,h2,p{margin:0}.auth-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(280px,440px) minmax(300px,420px);min-height:100vh;align-items:center;justify-content:center;gap:42px;padding:32px}.auth-copy{display:grid;gap:16px}.auth-copy h1{font-size:clamp(40px,7vw,76px);line-height:1}.auth-copy p{max-width:36rem;color:var(--muted);font-size:17px;line-height:1.7}.auth-card,.panel{display:grid;gap:14px;padding:16px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel)}.auth-card{padding:22px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-tabs .active,.primary-action{color:#07101f;border-color:#78d8ffe6;background:var(--accent)}.form-error{color:#ffdbe3;font-size:13px}.form-note{color:var(--muted);font-size:13px;line-height:1.5}.loading{position:relative;z-index:1;display:grid;height:100vh;place-items:center;color:var(--muted)}.app-shell{position:relative;z-index:1;display:grid;grid-template-columns:320px 1fr;height:100vh}.sidebar{display:flex;flex-direction:column;gap:18px;padding:22px;overflow-y:auto;border-right:1px solid var(--panel-border);background:linear-gradient(180deg,#060910eb,#060910bd);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffffff 0 3px,transparent 4px),radial-gradient(circle at center,var(--accent),#3152ff);box-shadow:0 0 28px #78d8ff73}h1{font-size:20px;font-weight:700}h2{font-size:15px;font-weight:700}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-title button{min-height:32px;padding:0 10px}.map-list{display:grid;max-height:180px;gap:8px;overflow-y:auto}.map-row{display:grid;grid-template-columns:1fr auto;align-items:center;min-height:40px;gap:8px;padding:0 10px;text-align:left}.map-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-row small{color:var(--muted);font-size:12px}.map-row.active{border-color:#78d8ffe6;background:#78d8ff29}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:34px;color:var(--muted);font-size:13px}.toggle-row input{width:18px;height:18px;accent-color:var(--accent)}.share-box{display:grid;grid-template-columns:1fr auto;gap:8px}.share-box button{padding:0 12px}.public-shell{position:relative;z-index:1;display:grid;grid-template-rows:auto 1fr;height:100vh}.public-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--panel-border);background:linear-gradient(180deg,#060910eb,#060910bd);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.public-header p{margin-top:4px;color:var(--muted);font-size:13px}.brand p,.field span,.image-preview{color:var(--muted);font-size:13px}.field{display:grid;gap:7px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=file],input:not([type]){width:100%;min-height:38px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:var(--text);background:#ffffff14}input[type=text],input[type=email],input[type=password],input[type=number],input:not([type]){padding:0 11px}input[type=file]{padding:8px}.image-preview{display:grid;min-height:112px;place-items:center;overflow:hidden;border:1px dashed rgba(255,255,255,.18);border-radius:8px;background:#ffffff0d}.image-preview img{width:100%;height:112px;object-fit:cover}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.align-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.align-controls button{min-height:34px;font-size:13px}.align-controls button.active{color:#07101f;border-color:#78d8ffe6;background:var(--accent);box-shadow:0 0 18px #78d8ff47}.danger{color:#ffdbe3;border-color:#ff6b8859;background:#ff6b881f}.ghost{color:var(--muted)}.hidden{display:none}.canvas-wrap{position:relative;min-width:0;overflow:hidden}.canvas-toolbar{position:absolute;top:18px;right:18px;z-index:4;display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--panel-border);border-radius:8px;background:#070a12b8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.canvas-toolbar button{min-width:38px}#zoomLabel{min-width:50px;color:var(--muted);text-align:center;font-size:13px}.canvas{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab}.canvas.is-panning{cursor:grabbing}.link-layer,.node-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:2400px;height:1600px;transform-origin:0 0}.link-layer{overflow:visible}.link{fill:none;stroke:#78d8ff75;stroke-linecap:round;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(120,216,255,.22));stroke-dasharray:1;stroke-dashoffset:1;animation:drawLine .62s ease forwards}.link.settled{stroke-dashoffset:0;animation:none}.mind-node{position:absolute;display:flex;flex-direction:column;gap:7px;min-height:42px;padding:9px 11px;border:1px solid var(--node-border);border-radius:8px;color:var(--text);background:linear-gradient(135deg,rgba(120,216,255,.12),transparent 45%),var(--node);box-shadow:0 18px 42px #00000052,0 0 20px #78d8ff1a;transform:translate(-50%,-50%);cursor:pointer;overflow:hidden;-webkit-user-select:none;user-select:none;animation:nodeArrive .3s ease both}.mind-node.selected{border-color:var(--accent-2);box-shadow:0 0 0 2px #ffd36a42,0 0 28px #ffd36a2e}.mind-node.collapsed{border-color:#ffd36a6b}.node-title{display:block;flex:0 0 auto;overflow-wrap:anywhere;font-size:22px;font-weight:700;line-height:1.25}.node-title-editor{width:100%;min-height:1.4em;padding:0;border:0;outline:0;color:var(--text);background:transparent;resize:none;overflow:hidden}.node-title-editor:focus{outline:1px solid rgba(255,211,106,.42);outline-offset:3px}.node-image{display:block;flex:1 1 auto;width:100%;height:100%;min-height:0;border-radius:6px;object-fit:contain;background:#0000002e;pointer-events:none}.node-toggle{position:absolute;right:-9px;top:50%;display:grid;width:20px;min-width:20px;height:20px;min-height:20px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#07101f;background:var(--accent);box-shadow:0 0 18px #78d8ff7a;transform:translateY(-50%);font-size:14px;font-weight:800}.mind-node.no-children .node-toggle{display:none}.mind-node:has(.node-image){cursor:zoom-in}.node-resize{position:absolute;right:5px;bottom:5px;width:18px;height:18px;cursor:nwse-resize;background:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 7L7 16M16 11L11 16M16 3L3 16' fill='none' stroke='rgba(255,255,255,0.68)' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / 18px 18px no-repeat;opacity:.9}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:none;place-items:center;padding:36px;background:#000000b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-viewer.open{display:grid}.image-viewer-surface{position:relative;display:grid;width:min(92vw,1180px);height:min(86vh,760px);place-items:center;overflow:hidden;border:1px solid rgba(120,216,255,.34);border-radius:8px;background:#05070ddb;box-shadow:0 28px 80px #00000085,0 0 36px #78d8ff29}.image-viewer img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform 80ms linear;-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none}.image-viewer.is-dragging img{cursor:grabbing;transition:none}.viewer-close{position:absolute;top:12px;right:12px;z-index:1;width:38px;min-width:38px;min-height:38px;padding:0;border-radius:50%;font-size:18px;line-height:1}@keyframes starDriftBack{0%{transform:translateZ(0)}to{transform:translate3d(-360px,-360px,0)}}@keyframes starDriftFront{0%{transform:translateZ(0)}to{transform:translate3d(-460px,-460px,0)}}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes nodeArrive{0%{opacity:0;transform:translate(-50%,-50%) scale(.82)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(max-width:820px){body{overflow:auto}.auth-layout{grid-template-columns:1fr;align-content:center}.app-shell{grid-template-columns:1fr;grid-template-rows:auto 70vh;min-height:100vh;height:auto}.sidebar{border-right:0;border-bottom:1px solid var(--panel-border)}.canvas-toolbar{left:12px;right:auto;top:12px}}
