
:root{--a:#f58220;--ink:#202934;--muted:#667085;--line:#e4e7ec;--bg:#f7f8fa}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.top{height:64px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1180px)/2))}.brand{text-decoration:none;font-weight:850;font-size:21px}.brand small{color:var(--muted)}nav{display:flex;gap:18px}nav a{text-decoration:none;color:var(--muted)}main{max-width:1180px;margin:30px auto;padding:0 20px}.hero{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:22px}.hero h1{margin:0;font-size:34px}.muted{color:var(--muted)}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:19px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:13px}.team{text-decoration:none}.team h3{margin:0 0 5px}.btn{border:0;border-radius:9px;padding:10px 14px;background:#e9edf2;font-weight:750;cursor:pointer;text-decoration:none;display:inline-block}.primary{background:var(--a);color:white}.danger{background:#fee4e2;color:#b42318}.small{padding:7px 10px;font-size:13px}.flash{background:#ecfdf3;border:1px solid #abefc6;color:#067647;padding:12px;border-radius:10px;margin-bottom:16px}.banner{background:#fff3e8;border:1px solid #ffd3aa;border-radius:14px;padding:18px;margin-bottom:18px}.banner h2{margin:0 0 5px}textarea,input,select{width:100%;border:1px solid #cfd4dc;border-radius:9px;padding:10px 11px;font:inherit;background:white}textarea{min-height:80px;resize:vertical}label{font-size:13px;font-weight:750;display:block;margin-bottom:5px}.field{margin-bottom:14px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.spot{display:grid;grid-template-columns:1fr auto;gap:9px}.spot textarea{min-height:52px}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;align-items:start}.col{background:#eef1f4;border-radius:12px;padding:11px;min-height:180px}.col h3{font-size:12px;letter-spacing:.08em;color:#475467}.item{background:white;border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:9px}.item strong{display:block}.item a{color:#bd5b08;font-weight:750;text-decoration:none}.tag{font-size:12px;color:var(--muted);margin-top:7px}.pill{display:inline-block;background:#eef1f4;border-radius:999px;padding:4px 8px;font-size:12px}.detail{display:grid;grid-template-columns:2fr 1fr;gap:18px}.facts{display:grid;grid-template-columns:110px 1fr;gap:8px}.facts dt{color:var(--muted)}.facts dd{margin:0}.login{max-width:420px;margin:70px auto}footer{text-align:center;color:#98a2b3;font-size:12px;padding:30px}@media(max-width:800px){.board{grid-template-columns:1fr 1fr}.detail{grid-template-columns:1fr}}@media(max-width:520px){.board,.row,.spot{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column}}

.spot input[type=text]{min-height:46px}.spot{align-items:center}

.org-help{background:#eef6ff;border:1px solid #cfe3ff;padding:11px 14px;border-radius:10px;margin-bottom:14px}.org-card{overflow:auto}.tree{list-style:none;margin:8px 0 0 22px;padding:0;border-left:1px solid #d7dce2}.root-tree{margin:0;border:0}.team-node{list-style:none;margin:7px 0;padding-left:12px}.team-head{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dfe3e8;border-radius:9px;padding:9px 10px;min-width:330px}.team-head.dragover{outline:2px solid var(--a);background:#fff3e8}.grab{cursor:grab;color:#98a2b3}.toggle{border:0;background:transparent;cursor:pointer}.node-actions{margin-left:auto;font-size:12px}.node-actions a,.person-node>a{color:#bd5b08;text-decoration:none}.team-body.collapsed{display:none}.people-list{list-style:none;padding:5px 0 0 34px;margin:0}.person-node{display:flex;align-items:center;gap:8px;padding:5px 8px;margin:3px 0;border-radius:7px;background:#f8fafb;max-width:540px}.person-node span:nth-child(2){display:flex;flex-direction:column;flex:1}.person-node small{color:var(--muted)}.form-card{max-width:700px}

/* v0.5 Organisation Canvas */
.org-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.org-toolbar h1{margin:0;font-size:34px}.org-toolbar p{margin:5px 0 0}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.people-switch{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:14px;font-weight:750}.people-switch input{width:auto}.root-drop{border:1px dashed #c7cdd5;border-radius:10px;text-align:center;padding:9px;color:#7b8491;background:#fafbfc;margin-bottom:12px;font-size:13px}.root-drop.dragover{border-color:var(--a);background:#fff3e8;color:#9a4c08}.org-viewport{overflow:auto;background:linear-gradient(#fafbfc,#f5f7f9);border:1px solid var(--line);border-radius:16px;min-height:650px;padding:34px 28px}.org-canvas{width:max-content;min-width:100%;transition:transform .12s ease}.org-tree>.org-branch{align-items:center}.org-branch{display:flex;flex-direction:column;align-items:center;position:relative}.team-card{width:230px;background:#fff;border:1px solid #d9dee5;border-radius:13px;padding:13px;box-shadow:0 2px 6px rgba(16,24,40,.05);position:relative;z-index:2}.team-card:hover{border-color:#b9c0ca}.team-card.dragover{outline:3px solid rgba(245,130,32,.35);border-color:var(--a);background:#fffaf5}.team-card-top{display:flex;align-items:center;gap:8px}.team-drag,.person-drag{cursor:grab;color:#a0a7b1;user-select:none}.team-name{font-weight:800;line-height:1.2;flex:1}.team-menu{text-decoration:none;color:#98a2b3;font-weight:900;letter-spacing:1px}.team-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#8a94a3;margin:8px 0 0 23px}.team-board-link{color:#bd5b08;font-weight:750;text-decoration:none;white-space:nowrap}.people-count{display:none}.show-people .people-count{display:inline}.people-wrap{display:none;margin-top:10px;border-top:1px solid #edf0f3;padding-top:8px}.show-people .people-wrap{display:block}.person-card{display:flex;align-items:center;gap:7px;background:#f6f8fa;border:1px solid #e7eaee;border-radius:8px;padding:7px;margin-top:6px;font-size:11px}.person-card>div{min-width:0;flex:1}.person-card b,.person-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-card small{color:#7a8491;margin-top:2px}.person-card>a{text-decoration:none;color:#a0a7b1}.child-row{display:flex;align-items:flex-start;justify-content:center;gap:22px;padding-top:42px;position:relative}.child-row:before{content:"";position:absolute;top:20px;left:50%;height:22px;border-left:2px solid #d7dce2}.child-row>.org-branch:before{content:"";position:absolute;top:-22px;left:50%;height:22px;border-left:2px solid #d7dce2}.child-row>.org-branch:not(:only-child):after{content:"";position:absolute;top:-22px;left:0;right:0;border-top:2px solid #d7dce2}.child-row>.org-branch:first-child:after{left:50%}.child-row>.org-branch:last-child:after{right:50%}.child-row>.org-branch:only-child:after{display:none}@media(max-width:800px){.org-toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{justify-content:flex-start}.org-viewport{padding:24px 16px}}

/* v0.5.2 scalable organisation canvas */
.org-viewport{position:relative;overflow:hidden;cursor:grab;height:clamp(620px,72vh,900px);min-height:620px;padding:0;user-select:none}
.org-viewport.panning{cursor:grabbing}
.org-canvas{position:absolute;left:0;top:0;width:max-content;min-width:0;transition:none;will-change:transform;padding:0}
.org-tree{display:inline-block;padding:0}
.child-row{gap:14px;padding-top:36px}
.child-row:before{top:17px;height:19px}
.child-row>.org-branch:before{top:-19px;height:19px}
.child-row>.org-branch:not(:only-child):after{top:-19px}
.team-card{width:205px;padding:11px}
.team-name{font-size:14px}
.team-meta{font-size:11px;margin-top:6px}
.person-card{font-size:10px;padding:6px}
@media(max-width:800px){.org-viewport{height:70vh;min-height:520px}.team-card{width:190px}.child-row{gap:10px}}

/* v0.5.3 hybrid organisation layout */
.org-fullwidth{width:100vw;margin-left:calc(50% - 50vw);padding:0 18px;box-sizing:border-box}
.org-footer-container{display:none}
.org-viewport{width:100%;box-sizing:border-box;height:clamp(620px,72vh,900px);min-height:620px}
.org-canvas{padding:0;width:max-content;min-width:max-content}
.hybrid-org{display:flex;flex-direction:column;align-items:center;width:max-content;min-width:100%;padding:0 34px 80px;box-sizing:border-box}
.management-row{display:flex;justify-content:center;position:relative}
.management-card{width:230px}
.top-connector{height:38px;border-left:2px solid #d7dce2}
.top-teams{display:flex;align-items:flex-start;justify-content:center;gap:34px;position:relative;padding-top:24px}
.top-teams:before{content:"";position:absolute;top:0;left:calc(var(--edge-pad, 100px));right:calc(var(--edge-pad, 100px));border-top:2px solid #d7dce2}
.top-column{position:relative;min-width:205px}
.top-column:before{content:"";position:absolute;top:-24px;left:50%;height:24px;border-left:2px solid #d7dce2}
.vertical-node{position:relative;display:flex;flex-direction:column;align-items:flex-start}
.vertical-children{position:relative;margin-left:34px;padding-left:28px;padding-top:12px;border-left:2px solid #d7dce2}
.vertical-children>.vertical-node{margin:10px 0}
.vertical-children>.vertical-node:before{content:"";position:absolute;left:-28px;top:25px;width:28px;border-top:2px solid #d7dce2}
.vertical-children>.vertical-node:last-child:after{content:"";position:absolute;left:-30px;top:27px;bottom:-12px;width:5px;background:#f7f9fb}
.vertical-children .team-card{width:190px}
.show-people .top-column{min-width:225px}
.show-people .vertical-children .team-card{width:210px}
@media(max-width:900px){.org-fullwidth{padding:0 8px}.top-teams{gap:22px}.hybrid-org{padding-left:20px;padding-right:20px}}

/* v0.5.4 multiple team memberships */
.membership-help{margin:4px 0 10px}.membership-list{border:1px solid var(--line);border-radius:10px;max-height:430px;overflow:auto;background:#fff}.membership-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-bottom:1px solid #edf0f3}.membership-row:last-child{border-bottom:0}.membership-check,.primary-choice{display:flex;align-items:center;gap:8px;margin:0}.membership-check{font-weight:650;flex:1}.membership-check input,.primary-choice input{width:auto}.primary-choice{font-size:12px;color:#697386}
.modal-backdrop[hidden]{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.38);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card{background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(15,23,42,.25);padding:22px;max-width:480px;width:100%}.modal-card h3{margin-top:0}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}

/* Team CI hierarchy */
.ci-team-card{max-width:760px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.ci-team-tree,.ci-team-children{list-style:none;margin:0;padding:0}.ci-team-children{margin:5px 0 0 18px;padding-left:16px;border-left:1px solid #d9dee5}.ci-team-node{margin:5px 0}.ci-team-line{min-height:44px;display:flex;align-items:center;gap:16px;padding:10px 13px;background:#fff;border:1px solid #e0e5eb;border-radius:9px;text-decoration:none;transition:border-color .15s,background .15s}.ci-team-line:hover{border-color:#b9c0ca;background:#fafbfc}.ci-team-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.ci-team-count{margin-left:auto;min-width:2ch;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.ci-team-tree>.ci-team-node>.ci-team-line{font-weight:850;border-color:#cfd6de}@media(max-width:520px){.ci-team-card{padding:9px}.ci-team-children{margin-left:10px;padding-left:10px}.ci-team-line{min-height:40px;padding:8px 10px}}

/* Personal dashboard */
.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.dashboard-hero h1{font-size:36px;margin:0 0 7px}.dashboard-hero .muted{margin:0}.dashboard-eyebrow{color:#98a2b3}.dashboard-org-link{background:#202934;color:#fff}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.section-heading h2{font-size:20px;margin:0}.section-heading span{color:var(--muted);font-size:14px}.dashboard-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.dashboard-team-card{min-height:224px;display:flex;flex-direction:column;padding:19px;background:#fff;border:1px solid var(--line);border-radius:14px}.dashboard-team-card h3{margin:0;font-size:20px}.dashboard-team-card p{margin:5px 0 0;color:var(--muted);font-size:14px}.team-statuses{display:flex;gap:7px;margin:22px 0 12px;flex-wrap:wrap}.team-statuses span{background:#f2f4f7;border-radius:999px;padding:5px 8px;color:#667085;font-size:11px}.team-statuses strong{color:#202934}.session-state{margin-top:auto!important;min-height:20px}.session-state.is-live{color:#067647;font-weight:800}.session-state.is-stale{color:#b42318!important;font-weight:850}.team-card-actions{display:flex;gap:8px;margin-top:14px}.team-card-actions .btn{flex:1;text-align:center;white-space:nowrap}.team-card-actions form{display:flex;flex:1}.team-card-actions form .btn{width:100%}.dashboard-empty{max-width:520px;padding:24px;background:#fff;border:1px dashed #cbd2da;border-radius:14px}.dashboard-empty h3{margin-top:0}.dashboard-empty p{color:var(--muted);margin-bottom:18px}@media(max-width:600px){.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-hero h1{font-size:30px}.team-card-actions{flex-direction:column}}

/* Guided CI session */
.session-guide{max-width:900px;margin:0 auto}.guide-top{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:14px;margin-bottom:25px}.guide-top a{color:inherit}.guide-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:26px}.guide-step{display:flex;align-items:center;gap:8px;color:#98a2b3;font-size:12px;font-weight:750}.guide-step b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e9edf2;color:#667085}.guide-step.active{color:#202934}.guide-step.active b{background:#f58220;color:#fff}.guide-step.complete{color:#067647}.guide-step.complete b{background:#d1fadf;color:#067647}.guide-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;min-height:440px}.guide-card h1{margin:0;font-size:34px}.guide-lead{font-size:18px;color:var(--muted);margin:8px 0 28px}.guide-item{border-left:4px solid #f58220;background:#fff7ed;padding:18px 20px;margin-bottom:20px;border-radius:0 10px 10px 0}.guide-item-label{font-size:11px;letter-spacing:.1em;font-weight:850;color:#9a4c08;margin:0 0 7px}.guide-item h2{margin:0 0 14px;font-size:23px}.guide-item p:not(.guide-item-label){color:#475467;margin:10px 0}.guide-review-form textarea{min-height:100px}.guide-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.guide-actions form{margin:0}.guide-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:11px}.guide-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #edf0f3}.guide-list li:last-child{border-bottom:0}.guide-list small{color:var(--muted);white-space:nowrap}.guide-empty{color:var(--muted);padding:22px;border:1px dashed #cbd2da;border-radius:10px}.guide-question{font-size:25px;font-weight:800;line-height:1.2;max-width:600px}.guide-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.guide-choice{border:1px solid var(--line);border-radius:12px;padding:20px;text-decoration:none;min-height:150px;display:flex;flex-direction:column;gap:8px}.guide-choice:hover{border-color:#f58220;background:#fffaf5}.guide-choice strong{font-size:18px}.guide-choice span{color:var(--muted);line-height:1.4}@media(max-width:650px){.guide-progress{grid-template-columns:1fr 1fr}.guide-card{padding:22px}.guide-card h1{font-size:29px}.guide-choice-grid{grid-template-columns:1fr}.guide-list li{align-items:flex-start;flex-direction:column}}

/* Focused live CI session screen */
.session-screen{background:#101828;color:#f8fafc;min-height:100vh}.session-layout{min-height:100vh;display:grid;grid-template-columns:minmax(260px,22vw) minmax(0,1fr) minmax(310px,25vw);transition:grid-template-columns .2s ease}.session-layout.controls-collapsed{grid-template-columns:minmax(260px,22vw) minmax(0,1fr) 48px}.spot-rail,.session-controls{padding:28px;background:#182230}.spot-rail{border-right:1px solid #344054}.session-controls{border-left:1px solid #344054;position:relative;overflow:hidden}.session-controls-content{height:100%;display:flex;flex-direction:column;gap:24px;min-width:254px}.session-controls-toggle{position:absolute;top:18px;right:16px;z-index:2;width:27px;height:38px;border:1px solid #475467;border-radius:8px;background:#101828;color:#d0d5dd;font-size:27px;line-height:25px;cursor:pointer}.session-controls.is-collapsed{padding:0}.session-controls.is-collapsed .session-controls-toggle{left:10px;right:auto}.session-controls.is-collapsed .session-controls-content{visibility:hidden}.session-brand{display:inline-block;color:#fff;text-decoration:none;font-weight:900;font-size:21px}.session-brand small{color:#98a2b3;font-size:12px}.spot-rail-heading{display:flex;justify-content:space-between;align-items:center;margin:48px 0 14px;color:#d0d5dd;font-weight:850;letter-spacing:.1em;font-size:12px}.spot-rail-heading strong{font-size:18px;color:#fff}.spot-list{list-style:none;margin:0;padding:0;counter-reset:spots}.spot-list li{counter-increment:spots;padding:13px 0 13px 30px;border-top:1px solid #344054;line-height:1.35;position:relative;color:#e4e7ec}.spot-list li:before{content:counter(spots);position:absolute;left:0;color:#98a2b3;font-size:12px;padding-top:2px}.session-stage{min-width:0;display:flex;flex-direction:column;padding:28px 46px;background:radial-gradient(circle at center,#1f2a3a 0,#101828 68%)}.session-stage-top{display:flex;justify-content:space-between;color:#98a2b3;font-weight:700}.live-indicator{color:#67e8b1;font-size:12px;letter-spacing:.08em}.session-focus{flex:1;display:flex;align-items:center;justify-content:center;text-align:center}.session-focus p{max-width:900px;margin:0;font-size:clamp(34px,5vw,82px);font-weight:820;line-height:1.06;letter-spacing:-.035em}.session-focus .session-empty{color:#667085;font-weight:650}.join-card{border:1px solid #475467;border-radius:14px;padding:18px;text-align:center;background:#101828}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:850;color:#98a2b3;margin:0 0 12px}.join-qr{width:160px;height:160px;background:#fff;border-radius:7px;padding:7px;image-rendering:pixelated}.join-code{font-weight:900;letter-spacing:.16em;font-size:25px;margin-top:12px}.join-url{font-size:12px;color:#98a2b3;margin:8px 0 0}.join-url span{color:#d0d5dd}.session-spot-form{margin-top:auto}.session-spot-form label{color:#f8fafc;font-size:16px;margin-bottom:9px}.session-spot-form textarea{min-height:120px;background:#fff;border:0;color:#101828;resize:vertical}.session-add{width:100%;margin-top:10px;border:0;border-radius:9px;padding:13px;background:#f58220;color:#fff;font-weight:850;font-size:15px;cursor:pointer}.end-session-form button{border:0;background:transparent;color:#98a2b3;text-decoration:underline;cursor:pointer;padding:0}.join-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#101828}.join-panel{max-width:480px;background:#fff;border-radius:16px;padding:32px;color:#101828}.join-panel h1{margin:0 0 12px}.join-panel .join-code{color:#101828}@media(max-width:1000px){.session-layout,.session-layout.controls-collapsed{grid-template-columns:220px 1fr}.session-controls{grid-column:1/-1;display:grid;grid-template-columns:220px 1fr auto;align-items:start}.session-controls.is-collapsed{display:none}.session-spot-form{margin:0}.end-session-form{padding-top:25px}}@media(max-width:650px){.session-layout{display:block}.spot-rail,.session-controls{border:0}.spot-rail{padding:20px}.session-stage{min-height:42vh;padding:24px}.session-controls{display:flex;padding:20px}.spot-rail-heading{margin-top:24px}.join-card{align-self:center;width:min(100%,280px)}}
