:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0e15;--text:#e7ecf5;--muted:#8b93a7;--panel:#121622d1;--border:#ffffff1a;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.app{flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.app-header{z-index:3;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, transparent);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex;position:relative}.app-header h1{letter-spacing:.2px;margin:0;font-size:1.15rem}.title-group{align-items:center;gap:.75rem;min-width:0;display:flex}.tree-picker{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:#ffffff0a;border-radius:8px;padding:.38rem .6rem;font-size:.85rem}.tree-picker:hover{background:#ffffff17}.actions button.primary{background:#78aaff2e;border-color:#78aaff80}.actions button.danger{color:#ffb4c4;border-color:#e05a7a66}.actions button.danger:hover{background:#e05a7a2e}.ghost{border:1px dashed var(--border);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:.45rem .7rem;font-size:.85rem}.ghost:hover{background:#ffffff0f}.tree-title-input{border:1px solid var(--border);color:var(--text);letter-spacing:.2px;background:#ffffff0d;border-radius:8px;max-width:16rem;padding:.2rem .5rem;font-size:1.15rem;font-weight:700}.tree-title-input:focus{border-color:#ffffff47;outline:none}.edit-hint{color:var(--muted);margin:0 0 .85rem;font-size:.85rem;line-height:1.4}.edit-field{margin-bottom:.85rem;display:block}.edit-label{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-size:.72rem;font-weight:700;display:block}.edit-input{border:1px solid var(--border);width:100%;color:var(--text);font:inherit;background:#ffffff0a;border-radius:9px;padding:.5rem .6rem;font-size:.9rem}.edit-input:focus{border-color:#ffffff47;outline:none}.rubric-input{resize:vertical;margin-bottom:.4rem;font-size:.85rem;line-height:1.4}.edit-color input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:48px;height:32px;padding:0}.edit-actions{flex-wrap:wrap;gap:.5rem;display:flex}.edit-actions button{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:#ffffff0d;border-radius:8px;padding:.5rem .8rem;font-size:.85rem}.edit-actions button:hover{background:#ffffff1a}.edit-actions button.danger{color:#ffb4c4;border-color:#e05a7a66}.edit-actions button.danger:hover{background:#e05a7a2e}.actions{align-items:center;gap:.5rem;display:flex}.account{align-items:center;gap:.5rem;display:flex;position:relative}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;color:var(--muted);font-size:.82rem;overflow:hidden}.account-syncing{color:var(--muted);opacity:.85;font-size:.75rem;font-style:italic}.account-popover{z-index:5;border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;width:260px;padding:1rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 40px #00000080}.account-hint{color:var(--muted);margin:0 0 .85rem;font-size:.8rem;line-height:1.45}.account-google,.account-magic{border:1px solid var(--border);width:100%;color:var(--text);font:inherit;cursor:pointer;background:#ffffff0f;border-radius:9px;padding:.55rem .7rem;font-size:.85rem}.account-google:hover,.account-magic:hover{background:#ffffff1f}.account-magic{margin-top:.5rem}.account-magic:disabled{opacity:.6;cursor:default}.account-or{text-align:center;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:.7rem 0;font-size:.72rem}.account-status{color:var(--text);margin:.7rem 0 0;font-size:.8rem;line-height:1.4}.actions button,.button-like{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:#ffffff0a;border-radius:8px;align-items:center;padding:.45rem .85rem;font-size:.85rem;display:inline-flex}.actions button:hover,.button-like:hover{background:#ffffff17}.stage{background:radial-gradient(circle at 1px 1px, #ffffff0d 1px, transparent 0) 0 0 / 26px 26px, radial-gradient(1200px 800px at 50% 42%, #5a78c81f, transparent 70%), var(--bg);flex:1;min-height:0;position:relative}.canvas-wrap{position:absolute;inset:0}.skill-tree-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.skill-tree-canvas:active{cursor:grabbing}.edges path{fill:none;stroke-width:2.5px;stroke-opacity:.4;stroke-linecap:round}.skill-node{cursor:pointer;outline:none}.node-halo{pointer-events:none}.node-fill{fill:#10151f;stroke-width:2px;stroke-opacity:.9}.node-ring-bg{fill:none;stroke:#ffffff1a;stroke-width:4px}.node-ring-fill{fill:none;stroke-width:4px;stroke-linecap:round;filter:drop-shadow(0 0 3px);transition:stroke-dashoffset .3s}.node-value-text{fill:var(--text);pointer-events:none;font-size:13px;font-weight:700}.node-label-text{fill:var(--muted);pointer-events:none;font-size:11px}.skill-node:hover .node-fill,.skill-node:focus-visible .node-fill{stroke-opacity:1}.skill-node:hover .node-label-text{fill:var(--text)}.skill-node.selected .node-fill{stroke-width:3px}.skill-node.selected .node-label-text{fill:var(--text);font-weight:700}.zoom-controls{z-index:3;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-controls button{border:1px solid var(--border);background:var(--panel);width:34px;height:34px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:9px;font-size:1.05rem}.zoom-controls button:hover{background:#ffffff1a}.detail-dock{z-index:3;width:min(360px,100% - 32px);position:absolute;bottom:16px;left:16px}.detail-panel{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;padding:1.1rem 1.25rem;box-shadow:0 12px 40px #00000073}.detail-panel h2{margin:0 0 .25rem;font-size:1.1rem}.detail-panel .value{margin:.15rem 0 .9rem;font-size:1.4rem;font-weight:700}.detail-panel p{color:var(--muted);margin:.5rem 0;font-size:.9rem;line-height:1.45}.detail-panel p strong{color:var(--text)}.stepper{gap:.5rem;margin-bottom:.9rem;display:flex}.stepper button{border:1px solid var(--border);width:2.2rem;height:2.2rem;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:8px;font-size:1.1rem}.stepper button:hover{background:#ffffff1a}.evidence{margin-top:.9rem;display:block}.evidence-label{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-size:.72rem;font-weight:700;display:block}.evidence-input{resize:vertical;border:1px solid var(--border);width:100%;min-height:3.4rem;color:var(--text);font:inherit;background:#ffffff0a;border-radius:9px;padding:.55rem .65rem;font-size:.85rem;line-height:1.45}.evidence-input::placeholder{color:color-mix(in srgb, var(--muted) 65%, transparent)}.evidence-input:focus{border-color:#ffffff47;outline:none}.progress-sidebar{z-index:3;border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;width:min(280px,100% - 32px);padding:.9rem 1rem;position:absolute;top:16px;left:16px;box-shadow:0 12px 40px #00000073}.progress-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.progress-head-title{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:700}.progress-head-value{font-size:.85rem;font-weight:700}.progress-bar{background:#ffffff14;border-radius:999px;height:6px;display:block;overflow:hidden}.progress-bar-fill{border-radius:999px;height:100%;transition:width .3s;display:block}.progress-list{flex-direction:column;gap:.5rem;margin:.85rem 0 0;padding:0;list-style:none;display:flex}.progress-row{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;padding:.4rem .45rem;display:block}.progress-row:hover{background:#ffffff0d}.progress-row.active{border-color:var(--border);background:#ffffff0f}.progress-row-top{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.35rem;display:flex}.progress-row-name{font-size:.85rem}.progress-row-value{color:var(--muted);font-size:.8rem;font-weight:700}
