.layout{grid-template-columns:300px minmax(0,1fr)}.rail{gap:18px;overflow-x:auto}.rail button{white-space:nowrap}.rail .project-nav{display:flex;gap:18px;align-items:center}.rail .project-nav:empty{display:none}.rail .project-nav button{max-width:230px;overflow:hidden;text-overflow:ellipsis}.rail .active{border-bottom-color:var(--ink)}
main{position:relative;min-height:0;display:flex;flex-direction:column}.world-heading{padding:18px 24px 12px;align-items:center}.world-heading h1{font-size:clamp(1.9rem,2.8vw,2.7rem)}.manager{max-height:calc(100vh - 130px);min-height:640px}.map-stage{position:relative;display:flex;flex-direction:column;min-height:640px;flex:1;margin:0 18px 18px;border:2px solid var(--ink);background:#eaece7;overflow:hidden}.map-toolbar,.map-legend{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 14px;background:var(--surface);font:.75rem/1.3 var(--ks-font-mono);letter-spacing:.03em}.map-toolbar{border-bottom:2px solid var(--ink);text-transform:uppercase}.map-toolbar>div{display:flex;align-items:center;gap:5px}.map-toolbar button{min-width:34px;min-height:31px;border:1px solid var(--ink);background:var(--surface);font:1rem var(--ks-font-interface)}.map-toolbar button:hover{background:var(--bg)}.map-toolbar #map-fit{font-size:.75rem;padding:0 9px}.map-toolbar #map-zoom-value{width:48px;text-align:center}.map-legend{border-top:2px solid var(--ink);flex-wrap:wrap;justify-content:flex-start;gap:8px 20px}.map-legend span:last-child{margin-left:auto;color:var(--blue)}.map-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;border:1px solid var(--ink)}.legend-hub{background:var(--ink)}.legend-project{background:var(--surface)}.legend-resource{background:var(--ks-color-brand-400)}
.process-viewport{position:relative;flex:1;min-height:520px;overflow:hidden;cursor:grab;touch-action:none;background-color:#e6e8e3;background-image:linear-gradient(90deg,rgba(0,49,83,.085) 1px,transparent 1px),linear-gradient(rgba(0,49,83,.085) 1px,transparent 1px);background-size:24px 24px}.process-viewport.dragging{cursor:grabbing}.process-world{position:absolute;left:0;top:0;width:3600px;height:2600px;transform-origin:0 0}.process-links{position:absolute;inset:0;pointer-events:none;overflow:visible}.project-link{fill:none;stroke:var(--blue);stroke-width:3;opacity:.8}.resource-link{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-dasharray:9 9;opacity:.58}.link-dot{fill:var(--ink)}
.map-node{position:absolute;color:var(--ink);text-align:left}.map-kicker{display:block;font:.75rem/1.4 var(--ks-font-mono);letter-spacing:.12em;color:var(--blue);text-transform:uppercase}.map-project{width:310px;min-height:190px;display:flex;flex-direction:column;align-items:stretch;gap:11px;border:2px solid var(--ink);background:var(--surface);box-shadow:8px 8px 0 var(--ks-color-brand-400);padding:20px;transition:box-shadow .15s,transform .15s;cursor:pointer}.map-project:hover,.map-project:focus-visible{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--ks-color-brand-400)}.map-project strong{display:block;font:2rem/1.05 var(--display);letter-spacing:.025em;overflow-wrap:anywhere}.map-copy{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;font-size:.88rem}.map-node-foot{margin-top:auto;display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--soft);padding-top:8px;color:var(--blue);font-size:.75rem}.map-node-foot b{font-size:1rem}
.map-hub{width:250px;height:250px;border:3px solid var(--ink);border-radius:50%;background:var(--ink);color:var(--surface);box-shadow:0 0 0 13px rgba(37,93,132,.19),0 0 0 27px rgba(37,93,132,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;cursor:pointer}.map-hub .map-kicker{color:var(--ks-color-brand-400)}.map-hub strong{font:4.5rem/.95 var(--display);letter-spacing:.06em}.map-hub small{font-size:.7rem;max-width:175px;line-height:1.4;opacity:.8}.map-hub:hover{box-shadow:0 0 0 16px rgba(37,93,132,.25),0 0 0 31px rgba(37,93,132,.13)}
.map-goals,.map-tools{width:420px;padding:22px;border:2px solid var(--ink);background:var(--surface);box-shadow:8px 8px 0 var(--ks-color-brand-400)}.map-goals h2,.map-tools h2{margin:5px 0 18px;font-size:2.1rem}.map-goals>div{display:flex;gap:13px;border-top:1px solid var(--blue);padding:12px 0;font-size:.95rem}.map-goals>div span{font:.8rem var(--ks-font-mono);color:var(--blue)}.map-goals small{display:block;margin-top:12px;color:var(--blue)}.map-tools button{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:7px 0;border:0;border-top:1px solid var(--blue);background:transparent;text-align:left}.map-tools button:hover{background:var(--bg)}.map-tools button>span{font:1.45rem/1 var(--display);min-width:105px}.map-tools button small{color:var(--blue);font-size:.8rem}.map-tools button b{margin-left:auto}.map-tools p{padding:0 0 8px 117px;color:var(--blue);font-size:.76rem;margin:0}.map-add{position:absolute;border:2px dashed var(--blue);background:var(--surface);padding:15px 22px;font:1.1rem var(--display);letter-spacing:.04em}.map-add span{font:1.4rem var(--ks-font-interface);margin-right:9px}.map-add:hover{background:var(--bg)}
.map-stage .office-overlay{z-index:5;inset:12px 18px 18px;background:rgba(247,247,239,.98);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ks-color-brand-600)}.map-stage .office-overlay[hidden]{display:none}.project-summary{padding:22px 25px;display:grid;gap:18px;max-width:900px}.project-summary h3{margin:0}.project-summary .summary-goal{border-left:3px solid var(--blue);padding:12px 16px;background:var(--bg)}.project-summary .summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-summary .summary-grid>div{border:1px solid var(--ink);padding:14px}.project-summary .summary-grid strong{display:block;font-size:1.35rem}.project-summary .panel-actions{margin:0}.project-summary .manager-setup{padding:18px;border:1px solid var(--ink);background:var(--bg)}.project-summary .manager-setup p{font-size:.88rem;color:var(--blue)}.project-summary .manager-setup select{max-width:350px}.tool-detail{padding:24px;max-width:850px}.tool-detail h3{margin-top:10px}.tool-detail p{line-height:1.6}.tool-detail .card{box-shadow:none;margin:16px 0}.board-shell{height:100%;min-height:0}
@media(max-width:1000px){.layout{grid-template-columns:250px minmax(0,1fr)}.rail{gap:12px}.rail .project-nav{gap:12px}.rail button{font-size:1rem}.manager{gap:18px;padding:22px 18px}.map-stage{margin:0 10px 10px}}
@media(max-width:850px){.layout{grid-template-columns:1fr}.rail{justify-content:flex-start}.manager{grid-row:3;max-height:none}.map-stage{min-height:550px}.process-viewport{min-height:440px}.map-stage .office-overlay{inset:8px}.world-heading{padding:18px 16px 12px}.map-legend span:last-child{display:none}}
@media(max-width:520px){.map-stage{margin:0 5px 5px;min-height:510px}.process-viewport{min-height:390px}.map-toolbar>span{display:none}.map-toolbar{justify-content:flex-end}.map-legend{font-size:.65rem}.map-stage .office-overlay{inset:4px;box-shadow:5px 5px 0 var(--ks-color-brand-600)}.project-summary{padding:14px}.project-summary .summary-grid{grid-template-columns:1fr}.project-summary .panel-actions button{flex:1}}
/* v0.4: the map is the workspace; cards expand in place. */
.layout{grid-template-columns:var(--chat-width,300px) minmax(0,1fr)}.manager{position:relative;gap:0;padding:0;max-height:calc(100vh - 130px);min-height:640px}.chat-top{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--ink);min-height:62px}.chat-top strong{font:1.45rem/1 var(--display);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-top .quiet{margin-left:auto;white-space:nowrap}.chat-top #chat-size{margin-left:0;font-size:1.1rem}.chat-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border:2px solid var(--ink);background:var(--ink);color:var(--surface)}.chat-icon svg{width:23px;height:23px}.chat-scope-menu{position:absolute;top:62px;left:10px;right:10px;z-index:9;max-height:230px;overflow:auto;background:var(--surface);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ks-color-brand-400)}.chat-scope-menu[hidden]{display:none}.chat-scope-menu button{display:block;width:100%;padding:10px;border:0;border-bottom:1px solid var(--soft);background:transparent;text-align:left}.chat-scope-menu button:hover,.chat-scope-menu button.active{background:var(--bg)}.manager .messages{padding:12px 16px;min-height:200px;white-space:normal}.manager .message{padding:10px 0;white-space:pre-wrap}.manager .message small{margin-bottom:3px}.manager #chat-form{padding:12px 14px;border-top:1px solid var(--ink)}.manager #chat-body{min-height:86px;max-height:210px;resize:vertical}.manager .compose-foot{margin-top:8px}.chat-resize{position:absolute;z-index:7;right:-6px;top:0;bottom:0;width:12px;cursor:col-resize;touch-action:none}.chat-resize:hover,.chat-resize:focus-visible{background:rgba(96,157,196,.25)}
.map-node .map-kicker em{font-style:normal;letter-spacing:0;color:var(--blue);float:right;opacity:.65}.map-drag{cursor:grab;touch-action:none}.map-drag:active{cursor:grabbing}.map-project{display:block;width:310px;min-height:0;overflow:visible;padding:0;cursor:default;transition:width .2s}.map-project:hover{transform:none;box-shadow:8px 8px 0 var(--ks-color-brand-400)}.map-project.expanded{width:560px;z-index:4}.project-head,.node-head,.stats-head{position:relative;display:block;width:100%;padding:15px 18px;background:transparent;border:0;text-align:left}.project-head strong,.node-head strong,.stats-head strong{display:block;margin-top:5px;font:2rem/1 var(--display);letter-spacing:.02em;overflow-wrap:anywhere}.project-chevron,.stats-head>span:last-child,.node-head>span:last-child{position:absolute;right:18px;bottom:15px;font-size:1.5rem}.project-collapsed{padding:0 18px 14px}.project-collapsed p{font-size:.82rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0 0 12px}.project-collapsed small{display:block;border-top:1px solid var(--soft);padding-top:7px;color:var(--blue)}.project-expanded{border-top:1px solid var(--ink)}.project-goal-row{display:grid;grid-template-columns:1fr 57px;gap:12px;padding:16px 18px}.project-goal-row p{font-size:.9rem;margin:6px 0 0}.project-chat{position:relative;width:51px;height:48px;border:2px solid var(--blue);background:transparent;color:var(--blue);font:2.3rem/1 var(--ks-font-interface)}.project-chat span{position:absolute;left:16px;top:7px;font:1.1rem var(--ks-font-interface)}.project-chat.active{background:var(--blue);color:var(--surface)}.project-tabs{display:flex;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.project-tabs button{flex:1;min-height:39px;border:0;border-right:1px solid var(--ink);background:var(--bg);font:.95rem var(--display)}.project-tabs button.active{background:var(--ink);color:var(--surface)}.project-tab-body{padding:14px 18px;max-height:450px;overflow:auto;font-size:.86rem}.project-tab-body p{margin:5px 0 10px}.project-mini-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--soft);padding-top:9px}.project-mini-row button,.text-action{padding:4px;border:0;border-bottom:1px solid var(--blue);background:transparent;color:var(--blue);font-size:.78rem}.context-form{display:flex;gap:8px;align-items:flex-end;margin:0 0 12px}.context-form label{flex:1;margin:0;font-weight:600}.context-form label small{display:block;font-weight:400;color:var(--blue)}.context-form textarea{min-height:68px;margin-top:4px;padding:6px;font-size:.78rem}.context-form button{min-height:35px;border:1px solid var(--ink);background:var(--bg);font-size:.74rem;padding:5px}.project-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.project-tool-grid span{border:1px solid var(--soft);padding:8px;font-weight:600}.project-tool-grid small{display:block;color:var(--blue);font-weight:400}.project-tab-body select{min-height:36px;padding:5px;margin-top:4px;font-size:.8rem}
.map-hub{width:250px;height:250px;gap:2px}.map-hub strong{font-size:4.7rem}.map-hub span{font-size:1rem}.hub-progress{position:absolute;z-index:5;width:300px;padding:15px;border:2px solid var(--ink);background:var(--surface);box-shadow:6px 6px 0 var(--ks-color-brand-400)}.hub-progress strong{display:block;font:1.35rem var(--display);margin:5px 0}.hub-progress p{font-size:.75rem;border-top:1px solid var(--soft);margin:5px 0;padding-top:5px}.hub-progress p small{float:right}.hub-progress>small{color:var(--blue);font-size:.68rem}.progress-track{height:8px;border:1px solid var(--ink);background:var(--bg)}.progress-track i{display:block;width:0;height:100%;background:var(--ks-color-brand-400)}.progress-track i.busy{width:100%;background:repeating-linear-gradient(45deg,var(--ks-color-brand-400) 0 10px,var(--blue) 10px 20px)}
.map-goals,.map-tools{padding:0}.map-goals{width:420px}.map-goals .node-head,.map-tools .node-head{border-bottom:1px solid var(--ink)}.goal-preview{padding:0 18px 14px}.goal-preview>div{display:flex;gap:11px;border-top:1px solid var(--blue);padding:10px 0;font-size:.85rem}.goal-preview span{color:var(--blue);font: .75rem var(--ks-font-mono)}.goals-body{padding:7px 18px 16px;max-height:530px;overflow:auto}.goal-area>button:first-child{display:flex;justify-content:space-between;width:100%;border:0;border-bottom:1px solid var(--blue);background:transparent;padding:10px 0;text-align:left}.goal-area>button strong{font:1.35rem var(--display)}.goal-area>button span{font-size:.85rem}.goal-list{padding:5px 0 13px}.goal-list>button:not(.goal-add){display:flex;align-items:center;gap:8px;width:100%;padding:7px 0;border:0;background:transparent;text-align:left;font-size:.82rem}.goal-list>button.done{text-decoration:line-through;color:var(--blue)}.goal-list>button b{margin-left:auto}.goal-add,.goal-add-area{border:1px dashed var(--blue);background:transparent;padding:6px 10px;font-size:.8rem}.goal-add-area{margin-top:10px}.tools-list{padding:0 18px 16px}.map-tools button{min-height:48px}.map-tools p{padding-left:111px}.map-stats{width:500px;padding:0;border:2px solid var(--ink);background:var(--surface);box-shadow:7px 7px 0 var(--ks-color-brand-400);z-index:2}.map-stats .stats-head{border-bottom:1px solid var(--ink)}.map-stats .stats-head strong{font-size:1.7rem}.stats-metrics{display:grid;grid-template-columns:repeat(3,1fr)}.stats-metrics>div{padding:8px 12px;border-right:1px solid var(--soft)}.stats-metrics small,.stats-metrics b{display:block}.stats-metrics small{font-size:.68rem;color:var(--blue)}.stats-metrics b{font:1.15rem/1.2 var(--display);overflow-wrap:anywhere}.stats-detail{padding:10px 12px;border-top:1px solid var(--soft);font-size:.82rem}.stats-detail>div{display:flex;justify-content:space-between;gap:8px;padding:3px 0}.stats-detail small{display:block;margin-top:8px;color:var(--blue)}.map-add .map-drag{padding:2px 5px;border-right:1px solid var(--blue);margin-right:4px}
@media(max-width:850px){.layout{grid-template-columns:1fr}.manager{grid-row:3;max-height:none;min-height:400px}.chat-resize,#chat-size{display:none}.manager .messages{max-height:320px}.map-stage{min-height:600px}}
@media(max-width:520px){.chat-top{padding:8px 12px}.manager{min-height:350px}.map-stage{min-height:540px}.project-expanded .context-form{display:block}.context-form button{margin-top:4px}}
.tool-inline{border-top:2px solid var(--ink);padding:11px 0}.tool-inline strong{font:1.3rem var(--display)}.tool-inline p{padding:0;margin:5px 0;font-size:.8rem}.tool-inline button{border:1px solid var(--ink);padding:6px;min-height:30px;font-size:.8rem}.hub-context{border-top:1px solid var(--soft);margin-top:9px;padding-top:9px}.hub-context p{max-height:55px;overflow:hidden;font-size:.7rem}.hub-context p b{font-weight:600}
.map-goals>.goal-preview,.map-goals>.goals-body{display:block;gap:0;border:0;padding:7px 18px 16px}.map-goals>.goal-preview>div{display:flex;gap:11px;padding:9px 0;border-top:1px solid var(--blue);font-size:.85rem}.goal-area{display:block;border:0;padding:0}.goal-area>button:first-child{min-height:38px}.goal-area .goal-list{display:block}.goal-list>button:not(.goal-add){width:100%;min-height:30px}.map-stats{width:600px}.goal-done{display:flex;align-items:center;gap:9px}.goal-done input{width:auto;min-height:0;margin:0}
.goal-dialog-row{display:flex;justify-content:space-between;gap:10px;width:100%;min-height:38px;border:0;border-bottom:1px solid var(--soft);background:transparent;padding:7px 0;text-align:left}.goal-dialog-row:hover{background:var(--bg)}
