/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4
   Macrostructure: organization canvas · tone: utilitarian anti-design · theme: restrained paper
   Audience: 건강지도 임직원 · use: 업무 참여와 협업 · nav: side-rail · footer: inline */
@import url('/tokens.css');
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{font-family:var(--font-body);color:var(--color-ink);background:var(--color-paper);font-size:14px;word-break:keep-all;overflow-wrap:break-word}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--color-health);outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid var(--color-health);outline-offset:1px}button{white-space:nowrap}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{text-wrap:balance;font-style:normal}p{line-height:1.65;text-wrap:pretty}svg{width:18px;height:18px;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.045em}.muted{color:var(--color-muted)}.row{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}.stack{display:grid;gap:16px}.spacer{flex:1}.btn{border:1px solid var(--color-line);background:var(--color-surface);padding:10px 15px;border-radius:var(--radius-small);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;min-height:40px}.btn:hover{border-color:var(--color-strong);background:var(--color-paper)}.btn.primary{background:var(--color-ink);color:var(--color-surface);border-color:var(--color-ink)}.btn.primary:hover{opacity:.88}.btn.accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-ink)}.btn.small{padding:7px 10px;min-height:32px;font-size:12px}.icon-btn{border:0;background:transparent;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-small);flex-shrink:0}.icon-btn:hover{background:var(--color-line)}.link-btn{padding:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px}.boot{padding:60px;font-size:25px;font-weight:700}.boot span{display:block;font-size:14px;margin-top:15px;color:var(--color-muted)}
.shell{display:grid;grid-template-columns:216px minmax(0,1fr);height:100dvh;min-height:550px}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--color-line);background:var(--color-surface);padding:28px 18px 16px;z-index:2}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:850;letter-spacing:-1px}.brand-symbol{width:32px;height:32px;display:grid;place-items:center;background:var(--color-ink);color:var(--color-accent);border-radius:7px}.brand-symbol svg{width:25px;height:25px}.brand-sub{font-size:10px;letter-spacing:2px;margin:9px 0 0 43px;color:var(--color-muted)}.workspace-label{margin:43px 12px 13px;font-size:10px;color:var(--color-muted);letter-spacing:1.5px;font-weight:700}.nav-btn{display:flex;align-items:center;gap:12px;padding:12px;width:100%;border:0;background:none;text-align:left;border-radius:4px;margin-bottom:4px;color:var(--color-muted);font-weight:550}.nav-btn.active{background:var(--color-health-soft);color:var(--color-ink);font-weight:700}.nav-btn:hover{background:var(--color-paper);color:var(--color-ink)}.count{margin-left:auto;font-family:var(--font-mono);font-size:11px;background:var(--color-line);padding:2px 5px;border-radius:3px}.division-key{display:flex;gap:9px;align-items:center;font-size:12px;margin:17px 12px;color:var(--color-muted)}.dot{width:7px;height:7px;border-radius:50%;background:var(--color-health);display:inline-block;flex-shrink:0}.dot.physio{background:var(--color-physio)}.sidebar-note{margin-top:auto;padding:16px 12px 22px;color:var(--color-muted);font-size:11px;line-height:1.7}.sidebar-note svg{margin-bottom:7px}.profile{border-top:1px solid var(--color-line);padding-top:16px;display:flex;align-items:center;gap:9px}.avatar{background:var(--color-health-soft);border:1px solid var(--color-line);width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.profile strong{font-size:12px;display:block}.profile small{font-size:10px;color:var(--color-muted)}.main{display:flex;flex-direction:column;min-width:0;overflow:hidden}.topbar{height:68px;flex-shrink:0;background:var(--color-surface);border-bottom:1px solid var(--color-line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{font-size:12px;display:flex;gap:12px;align-items:center}.live{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--color-muted);white-space:nowrap}.live .dot{width:6px;height:6px}.live.offline .dot{background:var(--color-warning)}.demo-tag{border:1px solid var(--color-line);padding:4px 7px;font-size:10px;color:var(--color-muted)}.page-head{padding:32px 32px 24px;background:var(--color-surface)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-family:var(--font-mono);color:var(--color-muted);margin-bottom:11px}.page-head h1{font-size:29px;letter-spacing:-1.2px;font-weight:750}.page-head p{font-size:12px;color:var(--color-muted);margin-top:8px}.overview{display:flex;align-items:center;gap:22px;margin-top:25px}.overview-item{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--color-muted)}.overview-item b{font-family:var(--font-mono);font-weight:500;font-size:22px;color:var(--color-ink)}.overview-item+.overview-item{border-left:1px solid var(--color-line);padding-left:22px}.toolbar{padding:13px 32px;display:flex;justify-content:space-between;align-items:center;gap:14px;border-block:1px solid var(--color-line);background:var(--color-surface);flex-wrap:wrap}.segments{display:flex;gap:3px;padding:3px;background:var(--color-paper);border:1px solid var(--color-line);border-radius:5px}.segment{border:0;background:transparent;padding:8px 13px;font-size:12px;border-radius:3px;color:var(--color-muted)}.segment.active{background:var(--color-ink);color:var(--color-surface)}.segment .dot{margin-right:6px}.search{display:flex;align-items:center;gap:8px;color:var(--color-muted);width:200px}.search input{border:0;background:transparent;min-width:0;width:100%;padding:7px 0;font-size:12px}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--color-health);outline-offset:3px}.view-switch{display:flex;gap:2px;border-left:1px solid var(--color-line);padding-left:10px}.view-switch button.active{background:var(--color-paper);color:var(--color-ink)}.workspace{position:relative;flex:1;min-height:180px;overflow:hidden}.canvas{height:100%;width:100%;overflow:auto;background-image:radial-gradient(var(--color-dot) .7px,transparent .7px);background-size:20px 20px;cursor:grab;overscroll-behavior:contain}.canvas.dragging{cursor:grabbing;user-select:none}.map-stage{position:relative;min-height:660px;padding:36px 52px 100px;transform-origin:top left}.map{width:100%;min-width:900px}.ceo-row{display:flex;justify-content:center}.person-node{background:var(--color-surface);border:1px solid var(--color-line);border-radius:5px;display:flex;align-items:center;gap:10px;padding:13px 15px;width:206px;position:relative;text-align:left}.person-node.ceo{border:1px solid var(--color-ink);width:210px}.person-node.ceo .avatar{background:var(--color-ink);color:var(--color-accent);border:0}.person-node strong{font-size:13px;display:block;margin-bottom:3px}.person-node small{font-size:10px;color:var(--color-muted)}.person-node .role-code{position:absolute;right:11px;top:13px;color:var(--color-muted);font-size:9px;font-family:var(--font-mono)}.root-stem{height:30px;width:1px;background:var(--color-strong);margin:auto}.lane-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;position:relative}.lane-grid:before{content:'';position:absolute;top:0;left:16.66%;right:16.66%;border-top:1px solid var(--color-strong)}.lane{position:relative;min-width:0}.lane:before{content:'';display:block;height:25px;width:1px;background:var(--color-strong);margin:auto}.lane>.person-node{margin:auto}.lane-heading{display:flex;justify-content:space-between;align-items:center;margin:26px 0 12px;color:var(--color-muted);font-size:10px;letter-spacing:.03em}.lane-tasks{border-left:1px solid var(--color-line);padding-left:17px;display:grid;gap:12px}.task-card{position:relative;background:var(--color-surface);border:1px solid var(--color-line);border-radius:4px;padding:15px;width:100%;text-align:left;white-space:normal;transition:border-color var(--dur-fast) var(--ease-default),transform var(--dur-fast) var(--ease-default)}.task-card:before{content:'';position:absolute;left:-18px;top:22px;width:17px;border-top:1px solid var(--color-line)}.task-card:hover{border-color:var(--color-strong);transform:translateY(-2px)}.task-card.selected{border-color:var(--color-ink)}.task-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:var(--color-muted);margin-bottom:11px}.task-title{font-size:13px;line-height:1.5;font-weight:700;display:block;margin-bottom:7px}.task-description{font-size:11px;line-height:1.6;color:var(--color-muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:34px}.task-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:13px}.badge{font-size:10px;padding:4px 6px;border-radius:3px;background:var(--color-paper);color:var(--color-muted);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.badge.progress{background:var(--color-health-soft);color:var(--color-accent-ink)}.badge.report{background:var(--color-warning-soft);color:var(--color-warning)}.badge.done{background:var(--color-physio-soft);color:var(--color-physio)}.badge.required{background:none;border:1px solid var(--color-line);padding:3px 5px}.priority{color:var(--color-danger);font-size:10px}.task-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-line);padding-top:11px;margin-top:13px;font-size:10px;color:var(--color-muted)}.task-footer .avatar{width:23px;height:23px;font-size:9px}.avatars{display:flex;align-items:center;gap:5px}.avatars .avatar+.avatar{margin-left:-9px}.task-footer svg{width:12px;height:12px}.empty-lane{padding:23px 10px;text-align:center;color:var(--color-muted);font-size:11px;border:1px dashed var(--color-line);background:var(--color-paper)}.canvas-bottom{position:absolute;bottom:20px;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.canvas-legend{font-size:10px;color:var(--color-muted);background:var(--color-paper);padding:6px 8px}.zoom{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--color-line);background:var(--color-surface);border-radius:5px;pointer-events:auto}.zoom span{font:11px var(--font-mono);min-width:38px;text-align:center}.zoom .icon-btn{width:29px;height:29px}.empty{padding:65px 24px;text-align:center;color:var(--color-muted)}.empty svg{width:30px;height:30px;margin-bottom:15px}.empty h3{font-size:17px;color:var(--color-ink);margin-bottom:8px}.empty p{font-size:12px}.list-area{height:100%;overflow:auto;padding:22px 30px}.task-list{width:100%;border-collapse:collapse;background:var(--color-surface)}.task-list th{text-align:left;font-size:11px;color:var(--color-muted);font-weight:500;padding:13px 15px;border-bottom:1px solid var(--color-line)}.task-list td{padding:17px 15px;border-bottom:1px solid var(--color-line);font-size:12px}.task-list .task-name{border:0;background:none;font-weight:650;text-align:left;white-space:normal;padding:0}.task-name:hover{text-decoration:underline}.mobile-only{display:none}
.scrim{position:fixed;inset:0;background:var(--color-overlay);z-index:10}.drawer{position:fixed;inset:0 0 0 auto;width:min(480px,100%);background:var(--color-surface);z-index:11;display:flex;flex-direction:column;border-left:1px solid var(--color-line)}.drawer-head{padding:22px 24px;border-bottom:1px solid var(--color-line)}.drawer-head h2{font-size:22px;line-height:1.4;margin:18px 0 12px;letter-spacing:-.5px}.drawer-content{padding:23px 24px;overflow:auto;flex:1}.detail-label{font-size:11px;color:var(--color-muted);min-width:75px}.detail-meta{display:grid;gap:14px;margin:23px 0}.detail-meta>.row{align-items:flex-start}.description{font-size:13px;white-space:pre-wrap}.divider{height:1px;background:var(--color-line);margin:25px 0}.section-title{font-size:13px;margin-bottom:15px;font-weight:700}.status-actions{display:flex;gap:6px;flex-wrap:wrap}.status-actions .btn{font-size:11px;padding:7px 10px}.thread-tabs{display:flex;gap:20px;border-bottom:1px solid var(--color-line);margin-top:28px}.thread-tab{padding:12px 0;border:0;background:none;color:var(--color-muted);font-size:12px}.thread-tab.active{color:var(--color-ink);border-bottom:2px solid var(--color-ink)}.entries{display:grid;gap:18px;padding:20px 0}.message{display:flex;gap:10px;min-width:0}.message>div:last-child{min-width:0;flex:1}.message-name{font-size:11px;display:flex;align-items:center;gap:8px;margin:2px 0 6px}.message-name time{font-size:10px;color:var(--color-muted);font-weight:400}.message-body{font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.report-entry{border-left:2px solid var(--color-health);padding-left:12px}.activity{font-size:11px;color:var(--color-muted);display:flex;gap:8px;align-items:center;line-height:1.7}.activity time{margin-left:auto;font-size:9px;white-space:nowrap}.composer{padding:15px 24px 20px;border-top:1px solid var(--color-line);background:var(--color-paper)}.composer textarea{resize:vertical;min-height:68px;max-height:160px;width:100%;padding:11px;border:1px solid var(--color-line);border-radius:4px;background:var(--color-surface);font-size:12px}.composer .row{margin-top:8px}.composer small{font-size:10px;color:var(--color-muted)}
.modal-backdrop{position:fixed;inset:0;z-index:20;background:var(--color-overlay);display:grid;place-items:center;padding:20px;overflow:auto}.modal{width:min(550px,100%);max-height:90dvh;overflow:auto;background:var(--color-surface);padding:28px;border:1px solid var(--color-ink);border-radius:5px}.modal h2{font-size:22px}.form{display:grid;gap:17px;margin-top:25px}.field{display:grid;gap:7px;font-size:12px;font-weight:600;min-width:0}.field input,.field textarea,.field select{width:100%;border:1px solid var(--color-line);background:var(--color-surface);padding:11px 12px;border-radius:3px;min-width:0;color:var(--color-ink);font-weight:400}.field textarea{resize:vertical;min-height:100px}.fields-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.check{display:flex;align-items:center;gap:10px;padding:15px;background:var(--color-paper);font-size:12px}.check input{accent-color:var(--color-ink);width:16px;height:16px}.check small{display:block;color:var(--color-muted);margin-top:4px;line-height:1.6}.form-error{color:var(--color-danger);font-size:12px;line-height:1.6}.form-error:empty{display:none}#toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 24px);bottom:auto;left:50%;transform:translateX(-50%);background:var(--color-ink);color:var(--color-surface);padding:12px 20px;border-radius:4px;font-size:12px;z-index:40;max-width:90vw;display:none}#toast.show{display:block}.people-grid{display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}.person-card{padding:20px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:4px}.person-card h3{font-size:14px}.person-card p{font-size:11px;color:var(--color-muted);margin-top:5px}.person-card .form{gap:12px;margin-top:15px}.people-heading{font-size:15px;margin:12px 0 20px}.notice{background:var(--color-health-soft);padding:13px 16px;font-size:12px;line-height:1.6;border-left:2px solid var(--color-health);margin-bottom:20px}
.auth-shell{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.auth-art{padding:48px 55px;background:var(--color-paper);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--color-line);position:relative;overflow:hidden}.auth-word{margin-top:80px;margin-bottom:70px}.auth-word .eyebrow{margin-bottom:25px}.auth-word h1{font-size:clamp(36px,4.5vw,64px);line-height:1.2;letter-spacing:-3px;font-weight:800}.auth-word h1 span{background:var(--color-accent);padding:0 5px}.auth-word p{margin-top:24px;color:var(--color-muted);font-size:14px}.auth-diagram{margin-bottom:70px;display:grid;justify-items:center;max-width:470px}.auth-root{border:1px solid var(--color-ink);padding:15px 30px;background:var(--color-surface);font-weight:700}.auth-line{height:30px;border-left:1px solid var(--color-strong)}.auth-branches{display:flex;width:100%;justify-content:space-around;border-top:1px solid var(--color-strong)}.auth-branches div{font-size:12px;padding-top:25px;position:relative}.auth-branches div:before{content:'';position:absolute;top:0;left:50%;height:17px;border-left:1px solid var(--color-strong)}.auth-footer{display:flex;justify-content:space-between;color:var(--color-muted);font-size:10px}.auth-main{padding:50px 45px;display:flex;align-items:center;justify-content:center;background:var(--color-surface)}.auth-form-wrap{width:min(360px,100%)}.auth-form-wrap h2{font-size:28px;letter-spacing:-1px;margin-bottom:12px}.auth-form-wrap>p{color:var(--color-muted);font-size:12px}.auth-switch{font-size:12px;color:var(--color-muted);margin-top:25px;text-align:center}.auth-demo{margin-top:30px;padding-top:25px;border-top:1px solid var(--color-line)}.auth-demo p{font-size:11px;color:var(--color-muted);margin-top:10px;text-align:center}.auth-demo .btn{width:100%}.waiting-screen{min-height:100dvh;display:grid;place-items:center;padding:25px}.waiting-box{max-width:420px;text-align:center}.waiting-box h1{font-size:28px;margin:25px 0 12px}.waiting-box p{color:var(--color-muted);margin-bottom:24px}.waiting-icon{width:65px;height:65px;background:var(--color-accent);display:grid;place-items:center;border-radius:50%;margin:auto}.waiting-icon svg{width:28px;height:28px}
@media(min-width:1550px){.map{max-width:1320px;margin:auto}.page-head{padding-top:40px;padding-bottom:30px}.task-card{padding:19px}.task-title{font-size:14px}.map-stage{padding-top:45px}.lane-grid{gap:48px}}
@media(max-width:1100px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding-inline:12px}.topbar{padding-inline:22px}.page-head{padding:26px 22px 20px}.toolbar{padding-inline:22px}.search{width:150px}.map-stage{padding-inline:32px}.auth-art{padding:40px 30px}.auth-word h1{letter-spacing:-2px}}
@media(max-width:768px){.shell{grid-template-columns:64px minmax(0,1fr)}.sidebar{padding:20px 10px 12px;align-items:center}.brand-text,.brand-sub,.workspace-label,.nav-btn span,.sidebar-note,.division-key,.profile>div:not(.avatar),.profile>.icon-btn{display:none}.sidebar nav{margin-top:35px;width:100%}.nav-btn{justify-content:center;padding:12px 0}.profile{margin-top:auto;justify-content:center;width:100%}.topbar{height:56px;padding-inline:16px}.breadcrumb{font-size:11px;gap:6px}.topbar .demo-tag{display:none}.page-head{padding:23px 16px 18px}.page-head h1{font-size:25px}.page-head p{max-width:300px}.page-head .btn{padding:9px}.page-head .btn span{display:none}.overview{gap:13px;margin-top:18px}.overview-item{gap:5px;font-size:10px}.overview-item+.overview-item{padding-left:13px}.overview-item b{font-size:19px}.toolbar{padding:10px 16px;gap:10px}.toolbar>.row{width:100%;justify-content:space-between}.search{width:auto;flex:1}.segments{max-width:100%}.segment{font-size:11px;padding:7px 10px}.canvas-bottom{left:12px;right:12px;bottom:12px}.canvas-legend{display:none}.zoom{margin-left:auto}.list-area{padding:15px}.task-list th:nth-child(3),.task-list td:nth-child(3),.task-list th:nth-child(4),.task-list td:nth-child(4){display:none}.task-list th,.task-list td{padding:12px 9px}.auth-shell{grid-template-columns:minmax(0,1fr)}.auth-art{display:none}.auth-main{padding:40px 25px;min-height:100dvh}.mobile-only{display:block}.auth-main .mobile-only{margin-bottom:40px}.modal{padding:23px}.people-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:414px){.shell{grid-template-columns:50px minmax(0,1fr)}.sidebar{padding-inline:6px}.brand-symbol{width:29px;height:29px}.topbar .breadcrumb .muted,.topbar .breadcrumb .crumb-separator{display:none}.live{font-size:10px}.page-head h1{font-size:23px}.page-head p{font-size:11px}.overview{gap:9px}.overview-item+.overview-item{padding-left:9px}.overview-item{gap:4px}.overview-item b{font-size:17px}.segment{padding:7px;font-size:10px}.toolbar{padding-inline:10px}.fields-two{grid-template-columns:minmax(0,1fr)}.drawer-head,.drawer-content{padding:20px}.composer{padding:12px 20px}.composer small{max-width:160px}.modal-backdrop{padding:12px}.modal h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Spacious map revision — no navigation rail, borderless shadow cards. */
.shell { display:block; height:100dvh; min-height:480px; }
.main { height:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.map-header { display:flex; align-items:center; gap:28px; padding:20px 36px; min-height:88px; background:var(--color-surface); flex-shrink:0; }
.map-header .brand { font-size:24px; gap:12px; }
.map-header .brand-text { display:inline; }
.map-header .brand-symbol { width:40px; height:40px; border-radius:12px; }
.area-picker select { font-size:16px; font-weight:600; padding:12px 36px 12px 16px; border:0; border-radius:10px; background:var(--color-map); color:var(--color-ink); max-width:230px; }
.header-actions { display:flex; align-items:center; gap:16px; margin-left:auto; }
.header-actions .live { font-size:13px; }
.header-actions .btn { font-size:15px; padding:13px 18px; min-height:48px; border:0; border-radius:12px; }
.team-button { background:var(--color-map); }
#pending-count:empty { display:none; }
#pending-count { color:var(--color-danger); }
.workspace { background:var(--color-map); }
.canvas { background-image:none; }
.map-tools { position:absolute; left:36px; top:24px; z-index:1; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.map-tools .search { width:224px; padding:8px 14px; background:var(--color-surface); border-radius:12px; box-shadow:var(--shadow-control); }
.search input { font-size:15px; padding:6px 0; }
.sample-label { color:var(--color-muted); font-size:12px; margin-left:4px; }
.map-stage { padding:30px 56px 110px; min-width:1100px; min-height:100%; }
.map { min-width:980px; max-width:1440px; margin:auto; }
.person-node, .person-node.ceo { width:290px; max-width:100%; min-height:94px; padding:20px 24px; gap:16px; border:0; border-radius:18px; box-shadow:var(--shadow-card); }
.person-node strong { font-size:25px; margin-bottom:6px; line-height:1.15; letter-spacing:-.6px; }
.person-node small { font-size:15px; line-height:1.4; display:block; }
.person-node .avatar { width:50px; height:50px; font-size:16px; border:0; }
.person-node.ceo { background:var(--color-surface); }
.root-stem { height:34px; width:2px; }
.lane-grid { gap:48px; }
.lane-grid:before { left:calc((100% - 96px) / 6); right:calc((100% - 96px) / 6); border-top-width:2px; }
.lane:before { height:32px; width:2px; }
.lane-heading { margin:27px 5px 16px; font-size:14px; color:var(--color-muted); }
.lane-tasks { border:0; padding:0; gap:24px; }
.task-card { padding:24px; border:0; border-radius:18px; box-shadow:var(--shadow-card); transition:box-shadow var(--dur-fast) var(--ease-default); }
.task-card:before { display:none; }
.task-card:hover { border:0; transform:none; box-shadow:var(--shadow-card-hover); }
.task-card.selected { border:0; box-shadow:var(--shadow-card-hover); }
.task-top { font-size:13px; margin-bottom:14px; }
.task-top .dot { width:8px; height:8px; margin-right:4px; }
.task-title { font-size:21px; line-height:1.4; letter-spacing:-.6px; margin-bottom:10px; }
.task-description { font-size:15px; line-height:1.6; min-height:0; color:var(--color-muted); }
.task-meta { margin-top:18px; gap:8px; }
.badge { font-size:13px; padding:6px 9px; border-radius:6px; }
.badge.required { border:0; background:var(--color-paper); padding:6px 9px; }
.priority { font-size:12px; }
.task-footer { border:0; margin-top:22px; padding:0; font-size:13px; gap:10px; flex-wrap:wrap; }
.task-footer .avatar { width:30px; height:30px; font-size:11px; border:0; }
.task-footer svg { width:15px; height:15px; }
.empty-lane { padding:30px 20px; font-size:15px; line-height:1.6; border:0; border-radius:18px; background:var(--color-surface); box-shadow:var(--shadow-card); }
.canvas-bottom { bottom:22px; left:36px; right:36px; }
.canvas-legend { font-size:13px; background:var(--color-map); padding:8px; }
.zoom { border:0; border-radius:12px; box-shadow:var(--shadow-control); padding:5px; gap:6px; }
.zoom span { font-size:13px; min-width:45px; }
.zoom .icon-btn { width:36px; height:36px; }
.person-card { border:0; padding:24px; border-radius:16px; box-shadow:var(--shadow-card); }
.person-card h3 { font-size:19px; }
.person-card p { font-size:14px; }
.people-heading { font-size:18px; margin:25px 0 20px; }
.people-modal { width:min(900px,100%); background:var(--color-map); }
.people-modal .list-area { padding:0 2px 15px; }
.people-grid { gap:24px; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.modal { border:0; border-radius:20px; padding:30px; box-shadow:var(--shadow-card-hover); }
.modal h2 { font-size:26px; }
.field { font-size:15px; }
.field input,.field textarea,.field select { padding:13px; font-size:15px; }
.drawer { width:min(570px,100%); border:0; box-shadow:var(--shadow-card-hover); }
.drawer-head { padding:26px 30px; }
.drawer-head h2 { font-size:29px; }
.drawer-content { padding:26px 30px; }
.description,.message-body { font-size:16px; }
.detail-label { font-size:14px; }
.section-title { font-size:17px; }
.status-actions .btn { font-size:14px; padding:10px 13px; border-radius:8px; }
.thread-tab { font-size:15px; }
.message-name { font-size:14px; }
.message-name time { font-size:12px; }
.activity { font-size:14px; }
.activity time { font-size:11px; }
.composer { padding:18px 30px; }
.composer textarea { font-size:15px; min-height:82px; padding:14px; }
.composer small { font-size:12px; }
@media(min-width:1550px) { .map-stage { padding-top:36px; } .task-card { padding:28px; } .task-title { font-size:23px; } }
@media(max-width:1100px) { .map-header { gap:18px; padding:18px 24px; } .header-actions { gap:10px; } .header-actions .live { display:none; } .map-tools { left:24px; } }
@media(max-width:768px) {
  .map-header { padding:16px 20px; gap:14px; flex-wrap:wrap; }
  .map-header .brand { font-size:22px; }
  .map-header .brand-symbol { width:34px; height:34px; }
  .header-actions { gap:8px; }
  .header-actions .btn { padding:10px 12px; min-height:42px; }
  .team-button span { display:none; }
  .area-picker { order:3; flex-basis:100%; }
  .area-picker select { width:100%; max-width:none; font-size:16px; }
  .map-tools { position:relative; top:auto; left:auto; padding:12px 20px; flex-direction:row; align-items:center; }
  .map-tools .search { width:100%; }
  .sample-label { display:none; }
  .workspace { display:flex; flex-direction:column; }
  .canvas { flex:1; min-height:0; }
  .map-stage { min-width:0; padding:20px 22px 100px; }
  .map { min-width:0; max-width:500px; }
  .person-node,.person-node.ceo { width:100%; max-width:330px; }
  .lane-grid { display:flex; flex-direction:column; gap:36px; }
  .lane-grid:before { display:none; }
  .lane:before { height:24px; }
  .lane+.lane:before { display:none; }
  .root-stem { height:14px; }
  .lane-heading { margin-top:22px; }
  .task-card { padding:24px; }
  .task-title { font-size:21px; }
  .task-description { font-size:15px; }
  .canvas-bottom { left:16px; right:16px; bottom:14px; }
  .canvas-legend { display:none; }
  .people-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:414px) {
  .map-header { padding:14px 16px; gap:12px; }
  .map-header .brand { font-size:20px; }
  .header-actions .btn { padding:10px; }
  .header-actions .btn.primary span { display:none; }
  .header-actions .btn.primary { width:42px; }
  .map-tools { padding:8px 16px; }
  .map-stage { padding-inline:16px; }
  .person-node,.person-node.ceo { padding:20px; }
  .task-card { padding:22px; }
  .task-title { font-size:20px; }
  .drawer-head,.drawer-content { padding:22px; }
  .drawer-head h2 { font-size:26px; }
  .composer { padding:16px 22px; }
  .modal { padding:24px; }
  .modal h2 { font-size:24px; }
}
/* People on the canvas; shared work in the right-hand queue. */
.assignment-board { display:grid; grid-template-columns:minmax(0,1fr) 370px; height:100%; min-height:0; }
.organization { position:relative; min-width:0; min-height:0; overflow:hidden; }
.organization .map-stage { min-width:0; padding:38px 30px 110px; }
.organization .map { min-width:680px; max-width:1050px; }
.organization .lane-grid { gap:24px; }
.organization .lane-grid:before { left:calc((100% - 48px) / 6); right:calc((100% - 48px) / 6); }
.person-block { width:100%; max-width:280px; margin-inline:auto; border-radius:18px; background:var(--color-surface); box-shadow:var(--shadow-card); position:relative; }
.organization .person-node { width:100%; max-width:none; box-shadow:none; padding:22px 18px; border-radius:18px; gap:13px; }
.organization .person-node strong { font-size:23px; margin:5px 0 0; }
.organization .person-node small { font-size:13px; }
.organization .person-node .avatar { width:44px; height:44px; font-size:14px; }
.organization .person-node.vacant { box-shadow:var(--shadow-card); margin:auto; }
.organization .lane .person-block+.person-block { margin-top:24px; }
.is-me .person-node .avatar { background:var(--color-ink); color:var(--color-surface); }
.drop-hint { font-size:12px; line-height:1.6; color:var(--color-muted); padding:4px 18px 17px; text-align:center; }
.drop-ready { outline:2px dashed var(--color-strong); outline-offset:6px; }
.drop-over { outline:3px solid var(--color-ink); background:var(--color-health-soft); }
.personal-todos { padding:0 16px 12px; }
.personal-todos summary { list-style:none; display:flex; align-items:center; justify-content:space-between; cursor:pointer; padding:12px 4px; font-size:15px; font-weight:650; }
.personal-todos summary::-webkit-details-marker { display:none; }
.personal-todos summary:focus-visible { outline:2px solid var(--color-strong); }
.personal-todos summary b { font-size:12px; color:var(--color-muted); margin-left:8px; }
.fold-arrow { font-size:21px; }
.personal-todos[open] .fold-arrow { transform:rotate(180deg); }
.personal-list { display:grid; gap:8px; }
.personal-task { display:flex; flex-direction:column; align-items:flex-start; gap:8px; border:0; background:var(--color-paper); border-radius:9px; padding:12px; text-align:left; white-space:normal; font-size:14px; line-height:1.5; }
.personal-task:hover { background:var(--color-accent); }
.personal-task .badge { font-size:11px; padding:3px 6px; }
.member-section { margin-top:48px; }
.member-section h2 { font-size:15px; color:var(--color-muted); font-weight:500; margin-bottom:20px; }
.member-nodes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.task-backlog { min-height:0; display:flex; flex-direction:column; background:var(--color-surface); box-shadow:-8px 0 32px #20283805; z-index:1; }
.backlog-head { padding:28px 25px 18px; }
.backlog-head h1 { font-size:26px; letter-spacing:-.7px; }
.backlog-head h1 span { font-size:17px; color:var(--color-muted); margin-left:7px; font-weight:500; }
.backlog-head p { margin-top:8px; font-size:14px; color:var(--color-muted); }
.backlog-head .search { width:100%; background:var(--color-paper); margin-top:20px; padding:7px 12px; border-radius:10px; }
.backlog-list { overflow:auto; min-height:0; padding:6px 25px 35px; display:flex; flex-direction:column; gap:20px; }
.backlog-card { background:var(--color-surface); box-shadow:var(--shadow-card); padding:22px; border-radius:16px; cursor:grab; flex-shrink:0; }
.backlog-card:active { cursor:grabbing; }
.backlog-card.joined { background:var(--color-paper); box-shadow:none; cursor:default; }
.backlog-card.dragging-task { opacity:.4; }
.drag-grip { font-size:24px; line-height:1; color:var(--color-strong); }
.backlog-title { padding:0; border:0; background:none; text-align:left; font-size:19px; line-height:1.5; font-weight:700; white-space:normal; }
.backlog-title:hover { text-decoration:underline; text-underline-offset:4px; }
.backlog-card .task-meta { margin-top:14px; }
.backlog-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:20px; font-size:12px; color:var(--color-muted); }
.backlog-bottom .btn { border:0; border-radius:8px; }
.organization .canvas-legend { font-size:12px; }
.organization .canvas-bottom { left:24px; right:24px; }
.drawer { inset:5vh 5vw; width:min(680px,90vw); height:90dvh; margin:auto; border-radius:22px; overflow:hidden; }
@media(max-width:1100px) { .assignment-board { grid-template-columns:minmax(0,1fr) 330px; } .backlog-head { padding:24px 20px 16px; } .backlog-list { padding-inline:20px; } .organization .map-stage { padding-inline:24px; } .organization .canvas-legend { display:none; } }
@media(max-width:768px) {
  .assignment-board { grid-template-columns:minmax(0,1fr) 300px; }
  .organization .map { min-width:0; }
  .organization .map-stage { padding:24px 20px 100px; }
  .organization .lane-grid { gap:24px; }
  .member-nodes { grid-template-columns:minmax(0,1fr); }
  .organization .person-node { padding:20px 16px; }
  .backlog-head { padding-inline:16px; }
  .backlog-list { padding-inline:16px; }
  .backlog-card { padding:19px; }
  .backlog-title { font-size:18px; }
}
@media(max-width:600px) {
  .assignment-board { display:flex; flex-direction:column; overflow:auto; }
  .organization { flex:none; height:420px; }
  .organization .map { max-width:350px; }
  .task-backlog { flex:none; min-height:400px; box-shadow:0 -5px 24px #20283806; }
  .backlog-list { overflow:visible; padding:8px 20px 30px; }
  .backlog-head { padding:24px 20px 16px; }
  .backlog-card { padding:22px; }
  .organization .canvas-bottom { bottom:10px; }
  .drawer { inset:0; width:100%; height:100dvh; border-radius:0; }
}
.brand-logo { width:46px; height:46px; object-fit:contain; }
.brand-text { color:var(--color-ink); }
.btn.primary { background:var(--color-brand); border-color:var(--color-brand); }
.btn.primary:hover { background:var(--color-brand-dark); opacity:1; }
.btn.accent { color:var(--color-brand-dark); }
.is-me .person-node .avatar,.person-node.ceo .avatar { background:var(--color-brand); color:var(--color-surface); }
.drop-over { outline-color:var(--color-brand); }
.backlog-card.joined .btn { color:var(--color-brand-dark); opacity:1; }
.badge.done { color:var(--color-brand-dark); }
@media(max-width:768px) { .brand-logo { width:36px; height:36px; } }
.backlog-card { user-select:none; }
.drag-grip { touch-action:none; cursor:grab; padding:4px; }
.drag-preview { position:fixed; z-index:50; pointer-events:none; background:var(--color-surface); color:var(--color-ink); font-size:16px; font-weight:700; padding:20px 24px; max-width:300px; border-radius:14px; box-shadow:var(--shadow-card-hover); }
.custom-select { position:relative; min-width:0; width:100%; font-weight:400; }
.custom-select select[hidden] { display:none; }
.select-trigger { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; min-height:48px; padding:12px 15px; border:0; border-radius:11px; background:var(--color-paper); color:var(--color-ink); font-size:15px; font-weight:550; text-align:left; }
.select-trigger svg { width:17px; height:17px; color:var(--color-muted); }
.select-trigger:hover,.select-trigger[aria-expanded="true"] { background:var(--color-accent); }
.select-trigger[aria-expanded="true"] svg { transform:rotate(180deg); color:var(--color-brand); }
.select-options { position:absolute; z-index:35; top:calc(100% + 8px); left:0; min-width:100%; width:max-content; max-width:min(320px,80vw); padding:7px; background:var(--color-surface); border-radius:13px; box-shadow:var(--shadow-card-hover); overflow:auto; }
.select-options[hidden] { display:none; }
.select-options button { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; padding:12px 13px; min-height:44px; border:0; border-radius:8px; color:var(--color-ink); background:transparent; font-size:15px; text-align:left; }
.select-options button:hover,.select-options button:focus-visible { background:var(--color-paper); outline:none; }
.select-options button[aria-selected="true"] { color:var(--color-brand-dark); background:var(--color-accent); font-weight:650; }
.select-options button svg { width:16px; height:16px; }
.custom-select.opens-up .select-options { top:auto; bottom:calc(100% + 8px); }
.area-picker { min-width:190px; }
.map-header { position:relative; z-index:3; }
.field .select-trigger { font-weight:400; }
@media(max-width:768px) { .area-picker { width:100%; } }
/* Always-visible business-area switch. */
.area-switch { display:flex; align-items:center; gap:4px; padding:5px; background:var(--color-paper); border-radius:13px; flex-shrink:0; }
.area-switch button { border:0; border-radius:9px; padding:11px 14px; min-height:42px; background:transparent; color:var(--color-muted); font-size:14px; font-weight:600; }
.area-switch button:hover { background:var(--color-accent); color:var(--color-brand-dark); }
.area-switch button[aria-pressed="true"] { background:var(--color-surface); color:var(--color-brand-dark); box-shadow:var(--shadow-control); }
@media(max-width:1200px) { .map-header { gap:18px; } .header-actions .live { display:none; } }
@media(max-width:950px) { .map-header { flex-wrap:wrap; } .area-switch { order:3; width:100%; } .area-switch button { flex:1; } }
@media(max-width:414px) { .area-switch { gap:2px; padding:4px; } .area-switch button { padding:10px 8px; font-size:12px; } }
/* Compact task cards in the right panel. */
.backlog-list { gap:12px; }
.backlog-card { padding:14px 16px; border-radius:12px; }
.backlog-card .task-top { font-size:11px; margin-bottom:6px; min-height:20px; }
.backlog-card .drag-grip { font-size:19px; padding:0 3px; }
.backlog-title { font-size:16px; line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.backlog-bottom { margin-top:10px; gap:8px; }
.compact-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; font-size:11px; }
.compact-meta .badge { font-size:11px; padding:3px 5px; }
.compact-report { color:var(--color-muted); white-space:nowrap; }
.compact-due { color:var(--color-muted); font-variant-numeric:tabular-nums; }
.compact-due:empty { display:none; }
.backlog-bottom .compact-add { padding:5px 7px; min-width:30px; min-height:30px; font-size:10px; flex-shrink:0; }
.compact-add svg { width:16px; height:16px; }
@media(pointer:coarse) { .backlog-bottom .compact-add { min-width:40px; min-height:40px; } }

/* Hide scrollbar chrome everywhere while preserving native scrolling. */
* {
  scrollbar-width: none;
  scrollbar-color: transparent transparent;
}
*::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-corner {
  background: transparent;
}

/* Slim business-area tabs. */
.area-switch { padding:3px; gap:3px; border-radius:10px; }
.area-switch button { min-height:32px; padding:6px 14px; border-radius:7px; font-size:13px; line-height:20px; }
@media(max-width:768px) {
  .map-header { padding-block:12px; row-gap:10px; }
}
@media(max-width:414px) {
  .area-switch { padding:3px; gap:2px; }
  .area-switch button { min-height:30px; padding:5px 8px; font-size:12px; }
}

/* Extra-compact top tabs. */
.area-switch { padding:2px; gap:2px; border-radius:8px; }
.area-switch button { min-height:24px; padding:3px 10px; border-radius:6px; font-size:12px; line-height:18px; }
@media(max-width:768px) { .map-header { padding-block:10px; row-gap:7px; } }
@media(max-width:414px) {
  .area-switch { padding:2px; }
  .area-switch button { min-height:24px; padding:3px 6px; font-size:11px; line-height:18px; }
}

/* Lighter typography with clear hierarchy. */
body { font-weight:400; -webkit-font-smoothing:antialiased; }
.brand,.map-header .brand { font-weight:550; letter-spacing:-.5px; }
.organization .person-node strong { font-weight:550; letter-spacing:-.4px; }
.backlog-head h1,.drawer-head h2,.modal h2 { font-weight:550; }
.backlog-title,.task-title { font-weight:550; }
.personal-todos summary,.personal-todos summary b { font-weight:500; }
.btn,.area-switch button,.select-trigger { font-weight:500; }
.select-options button[aria-selected="true"] { font-weight:550; }
.field,.section-title,.person-card h3,.message-name strong { font-weight:550; }
.avatar { font-weight:500; }

/* Hallmark revision: a quiet organizational workbench.
   Deliberate hierarchy, compact controls, separate people and task surfaces. */
body { font-size:14px; letter-spacing:-.15px; }
.map-header { min-height:64px; padding:13px 28px; gap:28px; background:var(--color-surface); box-shadow:0 1px 0 var(--color-line); }
.map-header .brand { gap:10px; font-size:19px; letter-spacing:-.65px; font-weight:600; flex-shrink:0; }
.map-header .brand-home{padding:0;border:0;background:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer}
.map-header .brand-home:focus-visible{outline:2px solid var(--color-brand);outline-offset:5px;border-radius:3px}
.brand-logo { width:30px; height:34px; }
.brand-workspace { font-weight:400; color:var(--color-muted); margin-left:3px; }
.header-actions { gap:9px; }
.app-download-menu{position:relative;flex-shrink:0}
.app-download-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px}
.app-download-menu>summary::-webkit-details-marker{display:none}
.app-download-chevron{display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.app-download-menu[open]>summary{background:var(--color-paper)}
.app-download-options{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:218px;padding:7px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:10px;box-shadow:var(--shadow-card)}
.app-download-options button{display:block;width:100%;padding:11px 12px;border:0;border-radius:7px;background:transparent;color:var(--color-ink);text-align:left;font-size:12px;cursor:pointer}
.app-download-options button:hover,.app-download-options button:focus-visible{background:var(--color-paper)}
.app-download-options button:disabled{opacity:.55;cursor:wait}
.app-download-status{display:block;padding:5px 12px 7px;color:var(--color-muted);font-size:11px;line-height:1.4}
.header-actions .btn { min-height:34px; padding:8px 12px; font-size:12px; border-radius:6px; }
.header-actions .btn svg { width:15px; height:15px; }
.header-actions .team-button { background:transparent; color:var(--color-muted); }
.header-actions .icon-btn { width:30px; height:32px; color:var(--color-muted); }
.header-actions .live { font-size:10px; margin-right:10px; }
.area-switch { padding:2px; background:var(--color-paper); border-radius:6px; gap:2px; }
.area-switch button { min-height:24px; padding:3px 11px; font-size:11px; line-height:18px; font-weight:500; border-radius:4px; }
.area-switch button[aria-pressed="true"] { color:var(--color-ink); background:var(--color-surface); box-shadow:var(--shadow-control); }
.assignment-board { grid-template-columns:minmax(0,1fr) 324px; }
.organization { display:flex; flex-direction:column; background:var(--color-map); }
.organization-heading { display:flex; align-items:flex-end; justify-content:space-between; padding:29px 34px 0; flex-shrink:0; }
.section-kicker { font:9px var(--font-mono); letter-spacing:1.7px; color:var(--color-muted); }
.organization-heading h2 { font-size:20px; font-weight:550; letter-spacing:-.7px; margin-top:7px; }
.team-size { color:var(--color-muted); font-size:12px; padding-bottom:3px; }
.organization .canvas { flex:1; min-height:0; height:auto; }
.organization .map-stage { padding:30px 34px 85px; min-width:0; min-height:100%; }
.organization .map { min-width:0; max-width:980px; }
.ceo-row { align-items:flex-start; }
.person-block { max-width:240px; border-radius:10px; box-shadow:var(--shadow-card); }
.ceo-row>.person-block { width:240px; }
.organization .person-node { position:relative; display:block; padding:19px 18px 15px; min-height:87px; border-radius:10px; }
.organization .person-node .avatar { position:absolute; top:19px; right:16px; width:30px; height:30px; border-radius:8px; font-size:10px; font-weight:500; background:var(--color-paper); color:var(--color-muted); }
.organization .person-node small { font-size:11px; line-height:17px; color:var(--color-muted); padding-right:34px; }
.organization .person-node strong { font-size:20px; line-height:26px; letter-spacing:-.65px; font-weight:550; margin-top:5px; padding-right:22px; }
.organization .is-me .avatar { background:var(--color-accent); color:var(--color-brand-dark); }
.me-label { font-size:9px; padding:2px 4px; margin-left:5px; color:var(--color-brand); background:var(--color-accent); border-radius:3px; }
.personal-todos { padding:0 12px 7px; }
.personal-todos summary { padding:10px 6px; font-size:12px; font-weight:500; color:var(--color-muted); }
.personal-todos summary b { display:inline-grid; place-items:center; min-width:17px; height:17px; margin-left:5px; font:10px var(--font-mono); background:var(--color-paper); border-radius:4px; color:var(--color-ink); }
.fold-arrow { font-size:16px; color:var(--color-muted); }
.drop-hint { font-size:10px; padding:8px 12px 13px; color:var(--color-muted); }
.drop-hint:before { content:'＋'; color:var(--color-brand); margin-right:6px; }
.personal-list { gap:5px; padding-bottom:4px; }
.personal-task { font-size:12px; line-height:1.5; padding:10px; gap:5px; border-radius:5px; }
.organization .root-stem { height:29px; width:1px; }
.organization .lane-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:start; }
.organization .lane-grid:before { display:block; left:calc((100% - 44px) / 6); right:calc((100% - 44px) / 6); border-top-width:1px; }
.organization .lane:before { display:block; height:28px; width:1px; }
.organization .person-node.vacant { min-height:122px; }
.member-section { margin-top:37px; }
.member-section h2 { font-size:11px; letter-spacing:.2px; font-weight:500; color:var(--color-muted); margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.member-section h2:after { content:''; height:1px; background:var(--color-line); flex:1; margin-left:8px; }
.member-section h2 span { font:10px var(--font-mono); color:var(--color-muted); }
.member-nodes { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.organization .canvas-bottom { left:28px; right:28px; bottom:18px; }
.organization .canvas-legend { display:flex; align-items:center; gap:7px; font-size:10px; padding:5px; color:var(--color-muted); }
.canvas-legend svg { width:13px; height:13px; }
.zoom { padding:3px; gap:1px; border-radius:6px; box-shadow:var(--shadow-control); }
.zoom .icon-btn { width:27px; height:27px; }
.zoom .icon-btn svg { width:14px; height:14px; }
.zoom span { font-size:10px; min-width:37px; }
.task-backlog { background:var(--color-surface); box-shadow:-1px 0 0 var(--color-line); }
.backlog-head { padding:30px 23px 16px; }
.backlog-head h1 { display:flex; align-items:center; gap:9px; font-size:21px; font-weight:550; letter-spacing:-.7px; }
.backlog-head h1 .task-total { display:inline-grid; place-items:center; min-width:23px; height:23px; padding:0 5px; margin:0; background:var(--color-paper); border-radius:6px; font:11px var(--font-mono); color:var(--color-muted); }
.sample-label { font-size:9px; letter-spacing:.2px; color:var(--color-muted); }
.backlog-head p { font-size:11px; margin-top:8px; line-height:1.6; }
.backlog-head .search { margin-top:20px; border-radius:7px; padding:5px 10px; }
.backlog-head .search input { font-size:12px; padding:6px 0; }
.backlog-head .search svg { width:14px; height:14px; }
.backlog-list { padding:3px 23px 28px; gap:12px; }
.backlog-card { padding:13px 14px; border-radius:8px; background:var(--color-surface); box-shadow:var(--shadow-card); }
.backlog-card:hover { box-shadow:var(--shadow-card-hover); }
.backlog-card.joined { background:var(--color-paper); box-shadow:none; }
.backlog-card .task-top { font-size:10px; margin-bottom:7px; }
.backlog-card .task-top .dot { width:5px; height:5px; }
.backlog-card .drag-grip { font-size:17px; color:var(--color-strong); }
.backlog-title { font-size:14px; font-weight:550; letter-spacing:-.3px; line-height:1.5; }
.backlog-bottom { gap:6px; margin-top:11px; }
.compact-meta { gap:6px; font-size:10px; }
.compact-meta .badge { font-size:10px; padding:3px 4px; background:transparent; }
.compact-meta .badge .dot { width:3px!important; height:3px!important; }
.compact-meta .badge.progress { color:var(--color-brand-dark); }
.compact-meta .badge.report { color:var(--color-warning); }
.compact-report { font-size:9px; }
.compact-due { font:9px var(--font-mono); }
.backlog-bottom .compact-add { min-width:25px; min-height:25px; padding:4px 5px; font-size:9px; background:var(--color-accent); color:var(--color-brand-dark); border-radius:5px; }
.backlog-bottom .compact-add svg { width:13px; height:13px; }
.backlog-card.joined .compact-add { background:transparent; }
.drop-ready { outline:1px dashed var(--color-brand); outline-offset:4px; }
.drop-over { outline:2px solid var(--color-brand); background:var(--color-accent); }
.drag-preview { font-size:14px; border-radius:8px; padding:16px 20px; }
.modal { border-radius:12px; box-shadow:var(--shadow-card-hover); }
.modal h2,.drawer-head h2 { font-weight:550; letter-spacing:-.7px; }
.drawer { border-radius:12px; }
.select-trigger { min-height:42px; border-radius:7px; font-size:14px; }
.select-options { border-radius:9px; padding:5px; }
.select-options button { font-size:14px; border-radius:5px; min-height:38px; padding:9px 11px; }
@media(min-width:1550px) { .assignment-board { grid-template-columns:minmax(0,1fr) 360px; } .organization .map-stage { padding-top:45px; } .organization-heading { padding-top:36px; } .organization .person-node { padding:22px; min-height:97px; } }
@media(max-width:1200px) { .map-header { gap:16px; padding-inline:24px; } .header-actions .live { display:none; } .map-header .brand { font-size:17px; } }
@media(max-width:1040px) { .map-header { flex-wrap:wrap; padding-block:11px; row-gap:9px; } .area-switch { order:3; width:100%; } .area-switch button { flex:1; } .assignment-board { grid-template-columns:minmax(0,1fr) 280px; } .organization .lane-grid,.member-nodes { gap:14px; } .organization .lane-grid:before { left:calc((100% - 28px) / 6); right:calc((100% - 28px) / 6); } .organization .map-stage { padding-inline:23px; } .organization-heading { padding-inline:23px; } }
@media(max-width:800px) {
  .assignment-board { grid-template-columns:minmax(0,1fr) 260px; }
  .map-header { padding-inline:20px; }
  .map-header .brand { font-size:17px; }
  .map-header .brand-logo { width:25px; height:30px; }
  .header-actions .team-button span { display:none; }
  .organization-heading { padding-top:24px; }
  .organization-heading h2 { font-size:18px; }
  .organization .map-stage { padding:25px 20px 75px; }
  .organization .lane-grid,.member-nodes { gap:10px; }
  .organization .lane-grid:before { left:calc((100% - 20px) / 6); right:calc((100% - 20px) / 6); }
  .organization .person-node { padding:15px 12px 11px; min-height:75px; }
  .organization .person-node .avatar { display:none; }
  .organization .person-node strong { font-size:17px; padding:0; }
  .organization .person-node small { font-size:10px; padding:0; }
  .organization .ceo-row .person-node .avatar { display:grid; top:17px; right:17px; }
  .ceo-row>.person-block { width:220px; }
  .personal-todos { padding:0 8px 5px; }
  .personal-todos summary { font-size:11px; padding:9px 4px; }
  .personal-todos summary b { margin-left:3px; font-size:9px; min-width:14px; }
  .personal-task { font-size:11px; padding:8px; }
  .backlog-head { padding:25px 17px 14px; }
  .backlog-list { padding-inline:17px; }
  .backlog-card { padding:12px; }
  .backlog-title { font-size:14px; }
  .backlog-card .task-top { font-size:9px; }
  .compact-meta { gap:4px; }
  .organization .canvas-bottom { left:18px; right:18px; }
  .organization .canvas-legend { display:none; }
}
@media(max-width:600px) {
  .assignment-board { display:flex; flex-direction:column; }
  .organization { height:480px; flex:none; }
  .task-backlog { min-height:400px; box-shadow:0 -1px 0 var(--color-line); }
  .organization-heading { padding:21px 20px 0; }
  .organization .map-stage { padding:24px 18px 70px; }
  .organization .map { max-width:none; }
  .organization .lane-grid,.member-nodes { gap:10px; }
  .backlog-head { padding:24px 20px 14px; }
  .backlog-list { padding:3px 20px 28px; }
  .backlog-title { font-size:15px; }
  .backlog-card { padding:14px; }
  .drawer { inset:0; height:100dvh; width:100%; border-radius:0; }
}
@media(max-width:414px) {
  .map-header { padding:10px 14px; gap:7px; }
  .map-header .brand { font-size:15px; gap:5px; letter-spacing:-.5px; }
  .brand-workspace { margin-left:0; }
  .header-actions { gap:3px; }
  .header-actions .btn { padding:7px; min-height:30px; }
  .header-actions .btn.primary { width:30px; }
  .header-actions .icon-btn { width:25px; }
  .area-switch button { font-size:10px; padding-inline:6px; }
  .organization .person-node strong { font-size:16px; }
  .organization .person-node { padding-inline:10px; }
}

/* Live members: a compact header control with a quiet, shadowed list. */
.presence { position:relative; flex-shrink:0; font-size:12px; color:var(--color-muted); }
.presence-summary { display:flex; align-items:center; gap:7px; padding:6px 8px; cursor:pointer; list-style:none; white-space:nowrap; border-radius:6px; }
.presence-summary::-webkit-details-marker { display:none; }
.presence-summary:hover,.presence[open] .presence-summary { background:#f3f5f8; }
.presence-summary:focus-visible { outline:2px solid #3c6ec0; outline-offset:2px; }
.presence .dot { background:#3c6ec0; width:6px; height:6px; flex-shrink:0; }
.presence.offline .dot { background:#a2a9b5; }
.presence-chevron { font-size:12px; color:#8a94a7; }
.presence-panel { position:absolute; top:calc(100% + 12px); right:0; width:264px; max-width:calc(100vw - 28px); padding:17px; background:white; border-radius:10px; box-shadow:0 12px 44px #1b24401c,0 2px 8px #1b244009; z-index:100; }
.presence-heading { font-size:12px; font-weight:600; color:#1b2440; margin-bottom:10px; }
.presence-list { max-height:240px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; }
.presence-list::-webkit-scrollbar { display:none; width:0; height:0; }
.presence-person { height:60px; box-sizing:border-box; display:flex; gap:10px; align-items:center; padding:10px 0; }
.presence-person .avatar { width:30px; height:30px; font-size:11px; border-radius:50%; }
.presence-person>div { flex:1; min-width:0; }
.presence-person strong { display:block; font-size:13px; font-weight:500; color:#1b2440; overflow-wrap:anywhere; }
.presence-person small { display:block; font-size:11px; color:#7c879a; margin-top:3px; }
.presence-self { margin-left:6px; color:#3c6ec0; font-size:10px; }
.presence-empty { margin:12px 0 4px; font-size:12px; color:#7c879a; }
@media(max-width:600px) { .presence-summary { padding:5px 3px; gap:4px; font-size:11px; } .presence-chevron { display:none; } .presence-panel { position:fixed; top:60px; right:14px; } }

.presence-summary { line-height:1; }
.presence-chevron { display:block; width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.presence[open] .presence-chevron { transform:rotate(180deg); }
.people-modal { width:min(820px,100%); padding:26px; }
.people-modal #modal-title { font-size:21px; font-weight:550; letter-spacing:-.6px; }
.member-count { margin-left:7px; color:var(--color-muted); font-size:16px; font-weight:400; }
.people-modal .people-grid { grid-template-columns:minmax(0,1fr); gap:9px; }
.people-modal .person-card { padding:14px 16px; border-radius:9px; box-shadow:0 3px 15px #1b244006; }
.member-row,.member-columns { display:grid; grid-template-columns:minmax(130px,1fr) 118px 160px 64px; gap:12px; align-items:center; }
.people-modal .person-card .form { margin:0; gap:12px; }
.member-columns { padding:0 16px; margin:24px 0 10px; font-size:11px; color:var(--color-muted); }
.member-identity { display:flex; align-items:center; gap:11px; min-width:0; }
.member-identity>div { min-width:0; }
.member-identity .avatar { width:32px; height:32px; flex:none; font-size:11px; }
.people-modal .person-card h3 { font-size:15px; font-weight:500; overflow-wrap:anywhere; }
.people-modal .person-card p { font-size:11px; overflow-wrap:anywhere; }
.member-row .select-trigger { padding:9px 11px; min-height:38px; font-size:13px; gap:8px; border-radius:6px; }
.member-row .select-trigger svg { flex:none; width:14px; height:14px; }
.member-row .select-trigger>span { white-space:nowrap; }
.member-row .btn { min-height:34px; padding:7px 10px; border:0; border-radius:6px; color:var(--color-brand); background:var(--color-accent); font-size:12px; }
.member-row .form-error { grid-column:1/-1; }
.member-value { font-size:13px; padding-inline:11px; color:var(--color-muted); }
@media(max-width:650px) {
  .people-modal { padding:20px 14px; }
  .member-row,.member-columns { grid-template-columns:minmax(85px,1fr) 92px 132px 46px; gap:6px; }
  .people-modal .person-card { padding:12px 9px; }
  .people-modal .person-card .form { gap:6px; }
  .member-columns { padding-inline:9px; }
  .member-identity { gap:7px; }
  .member-identity .avatar { display:none; }
  .member-row .select-trigger { padding-inline:8px; font-size:12px; }
}
@media(max-width:460px) {
  .member-columns { display:none; }
  .people-modal .people-grid { margin-top:16px; }
  .member-row { grid-template-columns:1fr 1.35fr 46px; }
  .member-identity { grid-column:1/-1; margin-bottom:5px; }
  .member-identity .avatar { display:flex; width:25px; height:25px; }
}

.backlog-card,.backlog-card.joined { cursor:pointer; -webkit-touch-callout:none; }
.backlog-card:active { cursor:pointer; }
.backlog-card.dragging-task,.backlog-card.dragging-task * { cursor:grabbing; }
.drag-grip { touch-action:auto; }

.backlog-card.drag-preview { position:fixed; z-index:1000; pointer-events:none; max-width:none; margin:0; opacity:1; box-shadow:0 18px 45px #1b24402b; transform:scale(1.025); }
.backlog-card.drag-preview * { pointer-events:none; }

/* Use the same drop feedback for yourself and every eligible teammate. */
.person-block[data-drop-user] { transition:box-shadow .15s ease,outline-color .15s ease; }
.person-block.drop-over { box-shadow:0 0 0 5px #3c6ec012,0 8px 24px #3c6ec01a; }
.person-block.drop-over .person-node,
.person-block.drop-over .personal-todos { background:var(--color-accent); }
.person-block.drop-over .personal-todos summary,
.person-block.drop-over .person-node strong { color:var(--color-brand); }
@media(prefers-reduced-motion:reduce) { .person-block[data-drop-user] { transition:none; } }

.assignee-trigger { display:flex; align-items:center; justify-content:flex-end; flex:none; padding:0 1px 0 5px; background:transparent; border:0; border-radius:20px; min-height:25px; cursor:pointer; }
.assignee-trigger .avatar,.assignee-more { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; margin-left:-5px; border-radius:50%; background:#e6edf7; color:#45618a; box-shadow:0 0 0 2px white; font-size:9px; font-weight:500; }
.assignee-trigger .avatar:nth-child(2) { background:#e8edf0; color:#596778; }
.assignee-trigger .avatar:nth-child(3) { background:#dceaf4; color:#446c89; }
.assignee-trigger:hover { filter:brightness(.96); }
.assignee-trigger:focus-visible { outline:2px solid var(--color-brand); outline-offset:4px; }
.assignee-trigger>svg { width:17px; height:17px; color:var(--color-muted); }
.assignee-modal { width:min(350px,100%); padding:24px; }
.assignee-modal #modal-title { font-size:18px; font-weight:550; }
.assignee-task-title { margin:12px 0 18px; font-size:13px; color:var(--color-muted); overflow-wrap:anywhere; }
.assignee-list { display:grid; gap:16px; }
.assignee-person { display:flex; align-items:center; gap:12px; }
.assignee-person .avatar { width:34px; height:34px; font-size:12px; }
.assignee-person strong { font-size:14px; font-weight:500; }
.assignee-person small { display:block; margin-top:4px; font-size:12px; color:var(--color-muted); }

.member-row .select-trigger>span { white-space:normal; word-break:keep-all; line-height:1.4; }
.member-row .select-options { min-width:220px; right:0; left:auto; }

.member-row .select-trigger>span { white-space:nowrap; }
.member-row .field:has(select[name="division"]) .select-trigger { font-size:12px; gap:5px; padding-inline:9px; }
@media(max-width:650px) { .member-row .field:has(select[name="division"]) .select-trigger { font-size:11px; padding-inline:6px; gap:3px; } }

.task-create-modal { width:min(520px,100%); padding:26px; }
.task-create-modal #modal-title { font-size:22px; font-weight:550; }
.task-form-intro { margin-top:8px; font-size:12px; color:var(--color-muted); }
.task-create-modal .form { margin-top:22px; gap:18px; }
.task-create-modal .field { gap:8px; font-size:12px; font-weight:500; }
.task-create-modal .field input,.task-create-modal .field textarea { border:0; border-radius:8px; background:var(--color-paper); padding:12px 14px; font-size:14px; }
.task-create-modal .field textarea { min-height:88px; }
.task-create-modal .field small { margin-left:4px; color:var(--color-muted); font-weight:400; }
.priority-field { margin:0; padding:0; border:0; min-width:0; }
.priority-field legend { padding:0; margin-bottom:8px; font-size:12px; font-weight:500; }
.priority-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.priority-options label { cursor:pointer; position:relative; }
.priority-options label>span { display:block; padding:13px 14px; border-radius:8px; background:var(--color-paper); font-size:13px; box-shadow:inset 0 0 0 1px transparent; }
.priority-options small { display:block; margin-top:5px; font-size:11px; color:var(--color-muted); }
.priority-options input:checked+span { background:#eef3fb; color:var(--color-brand); box-shadow:inset 0 0 0 1px #3c6ec060; }
.priority-options input:focus-visible+span { outline:2px solid var(--color-brand); outline-offset:2px; }
.report-setting { position:relative; display:flex; align-items:center; gap:12px; padding:17px 14px; border-radius:9px; background:#f1f4f8; cursor:pointer; }
.report-setting-icon { color:var(--color-brand); display:flex; }
.report-setting-copy { flex:1; }
.report-setting strong { display:block; font-size:14px; font-weight:550; }
.report-setting small { display:block; font-size:11px; line-height:1.5; color:var(--color-muted); margin-top:5px; }
.report-switch { width:36px; height:22px; flex:none; border-radius:15px; background:#c8cfdb; padding:3px; transition:background .15s; }
.report-switch:before { content:''; display:block; width:16px; height:16px; background:white; border-radius:50%; box-shadow:0 1px 4px #0002; transition:transform .15s; }
.report-setting:has(input:checked) { background:#eaf1fc; box-shadow:inset 0 0 0 1px #3c6ec040; }
.report-setting input:checked+.report-switch { background:var(--color-brand); }
.report-setting input:checked+.report-switch:before { transform:translateX(14px); }
.report-setting input:focus-visible+.report-switch { outline:2px solid var(--color-brand); outline-offset:3px; }
.task-submit { width:100%; justify-content:center; min-height:42px; }
.date-picker { position:relative; font-weight:400; }
.date-picker summary { display:flex; align-items:center; gap:8px; list-style:none; background:var(--color-paper); border-radius:7px; padding:11px 12px; min-height:42px; cursor:pointer; font-size:13px; }
.date-picker summary::-webkit-details-marker { display:none; }
.date-picker summary svg { width:16px; height:16px; color:var(--color-muted); }
.date-calendar { position:absolute; right:0; top:calc(100% + 7px); width:268px; background:white; border-radius:10px; padding:14px; box-shadow:0 10px 40px #1b244025; z-index:3; }
.calendar-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.calendar-heading strong { font-size:13px; font-weight:550; }
.calendar-heading button { width:28px; height:28px; border:0; border-radius:6px; background:var(--color-paper); font-size:20px; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; text-align:center; }
.calendar-weekday { font-size:10px; color:var(--color-muted); padding:5px 0; }
.calendar-grid button { height:29px; border:0; border-radius:6px; background:white; font-size:12px; }
.calendar-grid button:hover { background:var(--color-accent); }
.calendar-grid button[aria-current] { color:var(--color-brand); font-weight:650; }
.calendar-grid button[aria-pressed=true] { background:var(--color-brand); color:white; }
.calendar-clear { display:block; margin-top:10px; padding:8px; border:0; border-radius:6px; width:100%; background:var(--color-paper); font-size:11px; color:var(--color-muted); }

.organization .root-stem { width:100%; height:56px; background:none; position:relative; }
.organization .root-stem svg { position:absolute; left:calc((100% - 44px) / 6); width:calc(100% - (100% - 44px) / 3); height:100%; overflow:visible; fill:none; stroke:var(--color-strong); stroke-width:1; }
.organization .root-stem path { vector-effect:non-scaling-stroke; }
.organization .lane-grid:before,.organization .lane:before { display:none; }
@media(max-width:1040px) { .organization .root-stem svg { left:calc((100% - 28px) / 6); width:calc(100% - (100% - 28px) / 3); } }
@media(max-width:800px) { .organization .root-stem svg { left:calc((100% - 20px) / 6); width:calc(100% - (100% - 20px) / 3); } }

.auth-shell.auth-clean { display:flex; flex-direction:column; min-height:100dvh; background:#fff; }
.auth-clean-header { padding:30px 40px; }
.auth-clean-header .brand { font-size:20px; font-weight:550; letter-spacing:-.7px; }
.auth-clean-header .brand-logo { width:23px; height:27px; object-fit:contain; }
.auth-clean .auth-main { flex:1; display:flex; align-items:center; justify-content:center; padding:36px 24px 70px; min-height:0; }
.auth-clean .auth-form-wrap { width:100%; max-width:350px; }
.auth-heading h1 { margin:0; font-size:28px; font-weight:550; letter-spacing:-1px; }
.auth-clean .auth-heading p { margin:10px 0 0; font-size:13px; color:var(--color-muted); line-height:1.6; }
.auth-clean .form { margin-top:30px; gap:19px; }
.auth-clean .field { gap:9px; font-size:12px; font-weight:500; }
.auth-clean .field input { min-height:46px; padding:12px 14px; border:0; background:#f5f6f8; border-radius:7px; font-size:14px; }
.auth-clean .field input::placeholder { color:#9aa2af; font-size:13px; }
.auth-clean .field input:focus { outline:2px solid #3c6ec060; outline-offset:1px; }
.auth-remember-email{display:flex;align-items:center;gap:9px;margin:-5px 0 0;color:#f3f6fb;font-size:13px;cursor:pointer}
.auth-remember-email input{width:17px;height:17px;margin:0;accent-color:#3c6ec0;cursor:pointer}
.auth-remember-email input:focus-visible{outline:2px solid #a9cbff;outline-offset:3px}
.auth-clean .form>.primary { min-height:44px; border-radius:7px; justify-content:center; font-size:14px; margin-top:3px; }
.auth-clean .auth-switch { margin-top:24px; font-size:12px; text-align:center; }
.auth-clean .auth-switch .link-btn { font-size:12px; margin-left:7px; text-decoration:none; }
.auth-clean .auth-demo { margin-top:30px; padding:0; border:0; text-align:center; }
.auth-clean .auth-demo .link-btn { display:inline-flex; align-items:center; gap:7px; color:var(--color-muted); font-size:11px; font-weight:400; text-decoration:none; }
.auth-clean .auth-demo svg { width:13px; height:13px; }
.auth-clean-footer { display:flex; justify-content:space-between; padding:22px 40px; color:#929aa8; font-size:11px; }
@media(max-width:600px) { .auth-clean-header { padding:25px 24px; } .auth-clean .auth-main { padding:25px 24px 40px; } .auth-clean-footer { padding:20px 24px; font-size:10px; gap:12px; } }

.auth-shell.auth-mountain { position:relative; isolation:isolate; background:#263b4c; color:white; }
.auth-mountain:before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#11233466,#12263a15); z-index:-1; }
.auth-mountain .auth-clean-header .brand { color:white; }
.auth-mountain .brand-workspace { color:#e3eaf3; }
.auth-mountain .auth-main { justify-content:flex-start; padding:20px max(7vw,24px) 48px; }
.auth-mountain .auth-form-wrap { max-width:410px; padding:34px; background:linear-gradient(135deg,#ffffff38,#ffffff18); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:22px; box-shadow:inset 0 0 0 1px #ffffff50,0 20px 60px #071b3430; }
.auth-mountain .auth-heading h1 { color:white; font-size:27px; }
.auth-mountain .auth-heading p,.auth-mountain .auth-switch { color:#e4eaf2; }
.auth-mountain .field { color:#f3f6fb; }
.auth-mountain .field input { background:#fffffff0; color:#1b2440; }
.auth-mountain .auth-switch .link-btn { color:white; }
.auth-mountain .auth-clean-footer { color:#edf2f6; text-shadow:0 1px 5px #162c49; }
.auth-mountain .form-error { color:#ffe2df; }
.auth-mountain .select-trigger { background:#fffffff0; }
@media(min-width:1500px) { .auth-mountain .auth-main { padding-left:17vw; } }
@media(max-width:700px) { .auth-shell.auth-mountain { background-position:65% center; } .auth-mountain .auth-main { justify-content:center; padding:24px; } .auth-mountain .auth-form-wrap { padding:28px; } }
.auth-mountain .auth-main { background:transparent; }
.auth-mountain .brand-text { display:inline; color:white; }
@media(max-width:1000px) { .auth-shell.auth-mountain { background-position:82% center; } }

.work-layout { display:grid; grid-template-columns:270px minmax(0,1fr); flex:1; min-height:0; overflow:hidden; }
.work-layout .workspace { min-width:0; min-height:0; }
.team-chat { display:flex; flex-direction:column; min-height:0; padding:24px 16px 16px; background:#fff; box-shadow:2px 0 14px #1b244005; z-index:2; }
.team-chat-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.team-chat-heading h2 { font-size:18px; font-weight:550; }
.team-chat-heading button { display:none; }
.chat-rooms { display:flex; gap:5px; padding:4px; background:var(--color-paper); border-radius:7px; }
.chat-rooms button { flex:1; padding:8px 3px; border:0; border-radius:5px; background:transparent; font-size:11px; color:var(--color-muted); }
.chat-rooms button[aria-pressed=true] { color:var(--color-brand); background:white; box-shadow:0 2px 7px #1b244008; }
.chat-room-note { font-size:10px; color:var(--color-muted); margin:12px 0; }
.team-messages { flex:1; min-height:0; overflow:auto; padding:10px 0; }
.team-message { margin-bottom:16px; }
.team-message>div { display:flex; gap:8px; align-items:center; margin:0 3px 6px; }
.team-message strong { font-size:11px; font-weight:550; }
.team-message time { font-size:9px; color:var(--color-muted); }
.team-message p { display:inline-block; max-width:100%; padding:10px 12px; background:#f3f5f8; border-radius:0 9px 9px 9px; font-size:12px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.team-message.mine { text-align:right; }
.team-message.mine>div { justify-content:flex-end; }
.team-message.mine p { text-align:left; background:#edf3fc; border-radius:9px 0 9px 9px; }
.team-message:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px;border-radius:5px}
.team-message-menu{position:fixed;z-index:1000;width:146px;padding:5px;border:1px solid var(--color-line);border-radius:9px;background:var(--color-surface);box-shadow:0 8px 24px #1b24402a}
.team-message-menu button{display:block;width:100%;padding:9px 11px;border:0;border-radius:5px;background:transparent;color:var(--color-ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.team-message-menu button:hover,.team-message-menu button:focus-visible{background:var(--color-health-soft);outline:0}
.team-reply-quote{display:block;max-width:min(250px,65vw);margin-bottom:7px;padding:0 0 7px;border-bottom:1px solid #8493ad47;opacity:.62;white-space:normal}
.team-reply-caption,.team-reply-snippet{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-reply-caption{font-size:11px;font-weight:600}.team-reply-snippet{font-size:11px;margin-top:2px}
.team-message-body{white-space:pre-wrap}
.chat-reply-draft{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;padding:8px 2px 10px;border-bottom:1px solid var(--color-line);color:var(--color-ink)}
.chat-reply-draft[hidden]{display:none}.chat-reply-draft-text{display:grid;gap:2px;min-width:0;flex:1}
.chat-reply-draft-text strong,.chat-reply-draft-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-reply-draft-text strong{color:var(--color-brand);font-size:12px}.chat-reply-draft-text small{color:var(--color-ink);font-size:13px;font-weight:600}
.chat-reply-cancel{border:0;background:transparent;color:var(--color-muted);font-size:20px;cursor:pointer}
.chat-empty { text-align:center; padding:32px 5px; color:var(--color-muted); font-size:12px; line-height:1.8; }
.team-chat-send { display:flex; align-items:center; justify-content:space-between; }
.team-chat-send small { font-size:8px; color:var(--color-muted); }
.team-chat-send button { color:var(--color-brand); width:30px; height:30px; }
.approval-button { font-size:11px; white-space:nowrap; }
#pending-count:not(:empty) { background:#edf3fc; color:var(--color-brand); border-radius:5px; padding:2px 5px; }
.approval-note { margin:20px 0; font-size:12px; color:var(--color-muted); }
@media(max-width:1100px) { .work-layout { grid-template-columns:minmax(0,1fr); position:relative; } .team-chat { display:none; } .work-layout.chat-open .team-chat { display:flex; position:absolute; top:0; left:0; bottom:0; width:min(300px,90vw); z-index:5; box-shadow:8px 0 35px #1b244026; } .team-chat-heading button { display:flex; } }
@media(min-width:1101px) { .work-layout.chat-open { grid-template-columns:minmax(0,1fr); } .work-layout.chat-open .team-chat { display:none; } }

.work-layout { grid-template-columns:minmax(0,1fr); }
.work-layout .team-chat { display:none; }
.work-layout.chat-visible { grid-template-columns:270px minmax(0,1fr); }
.work-layout.chat-visible .team-chat { display:flex; }
.team-chat-heading button { display:flex; }
.header-actions [data-action="toggle-chat"],.chat-rooms button { position:relative; }
.has-unread:after { content:''; position:absolute; top:4px; right:4px; width:6px; height:6px; background:#e66868; border-radius:50%; box-shadow:0 0 0 2px white; }
.chat-history-controls { display:flex; justify-content:center; gap:8px; padding:3px 0 10px; }
.chat-history-controls button { background:transparent; border:0; padding:5px 2px; font-size:11px; color:var(--color-brand); }
.chat-history-controls button:disabled { color:var(--color-muted); opacity:.5; cursor:default; }
@media(max-width:1100px) { .work-layout.chat-visible { grid-template-columns:minmax(0,1fr); } .work-layout.chat-visible .team-chat { position:absolute; top:0; left:0; bottom:0; width:min(300px,90vw); z-index:5; box-shadow:8px 0 35px #1b244026; } }

.work-layout.chat-visible { grid-template-columns:340px minmax(0,1fr); }
.team-chat { padding:16px 20px 18px; }
.team-message p { font-size:13px; padding:11px 14px; }
.team-message strong { font-size:12px; }
.team-messages { position:relative; overflow-anchor:none; }
.message-arriving { animation:chat-arrive .18s ease-out; }
@keyframes chat-arrive { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1100px) { .work-layout.chat-visible { grid-template-columns:minmax(0,1fr); } .work-layout.chat-visible .team-chat { width:min(360px,94vw); } }
@media(prefers-reduced-motion:reduce) { .message-arriving { animation:none; } }

.work-layout { position:relative; }
.chat-edge-toggle { position:absolute; left:0; top:50%; transform:translateY(-50%); width:27px; height:64px; display:grid; place-items:center; background:white; color:var(--color-brand); border:0; border-radius:0 10px 10px 0; box-shadow:2px 2px 13px #1b24401a; z-index:7; cursor:pointer; }
.chat-edge-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.chat-visible .chat-edge-toggle { left:340px; }
.chat-visible .chat-edge-toggle svg { transform:rotate(180deg); }
.chat-edge-toggle.has-unread:after { display:none; }
.chat-unread-count { position:absolute; top:-7px; right:-7px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; background:#e66565; color:white; box-shadow:0 0 0 2px white; border-radius:12px; font-size:9px; font-weight:600; }
.chat-unread-count[hidden] { display:none; }
.task-arriving { animation:task-arrive .28s ease-out; }
@keyframes task-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1100px) { .chat-visible .chat-edge-toggle { left:min(360px,94vw); } }
@media(prefers-reduced-motion:reduce) { .task-arriving { animation:none; } }

/* Keep both panels mounted so opening and closing share the same motion. */
.work-layout,.work-layout.chat-visible { --chat-width:340px; --panel-motion:300ms cubic-bezier(.22,.68,0,1); display:block; padding-left:0; transition:padding-left var(--panel-motion); }
.work-layout.chat-visible { padding-left:var(--chat-width); }
.work-layout .workspace { height:100%; }
.work-layout .team-chat,.work-layout.chat-visible .team-chat { display:flex; position:absolute; inset:0 auto 0 0; width:var(--chat-width); transform:translateX(-100%); visibility:hidden; pointer-events:none; transition:transform var(--panel-motion),visibility 0s 300ms; z-index:5; }
.work-layout.chat-visible .team-chat { transform:translateX(0); visibility:visible; pointer-events:auto; transition-delay:0s; }
.chat-edge-toggle { transition:left var(--panel-motion); }
.chat-visible .chat-edge-toggle { left:var(--chat-width); }
.assignment-board { --backlog-width:324px; position:relative; display:block; height:100%; overflow:hidden; padding-right:var(--backlog-width); transition:padding-right var(--panel-motion); }
.assignment-board.backlog-closed { padding-right:0; }
.assignment-board .organization { height:100%; min-height:0; }
.assignment-board .task-backlog { position:absolute; inset:0 0 0 auto; width:var(--backlog-width); min-height:0; transform:translateX(0); visibility:visible; transition:transform var(--panel-motion),visibility 0s; z-index:5; }
.backlog-closed .task-backlog { transform:translateX(100%); visibility:hidden; pointer-events:none; transition:transform var(--panel-motion),visibility 0s 300ms; }
.backlog-edge-toggle { position:absolute; right:var(--backlog-width); top:50%; transform:translateY(-50%); width:27px; height:64px; display:grid; place-items:center; background:white; color:var(--color-brand); border:0; border-radius:10px 0 0 10px; box-shadow:-2px 2px 13px #1b24401a; z-index:7; cursor:pointer; transition:right var(--panel-motion); }
.backlog-edge-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.backlog-closed .backlog-edge-toggle { right:0; }
.backlog-closed .backlog-edge-toggle svg { transform:rotate(180deg); }
@media(min-width:1550px) { .assignment-board { --backlog-width:360px; } }
@media(max-width:1100px) { .work-layout,.work-layout.chat-visible { --chat-width:min(360px,calc(100vw - 32px)); padding-left:0; } }
@media(max-width:1040px) { .assignment-board { --backlog-width:280px; } }
@media(max-width:700px) { .assignment-board { --backlog-width:min(300px,calc(100vw - 32px)); padding-right:0; } }
@media(prefers-reduced-motion:reduce) {
  .work-layout,.work-layout.chat-visible { --panel-motion:0s; }
  .work-layout .team-chat,.assignment-board .task-backlog { transition:none; }
}

.chat-message-viewport { position:relative; flex:1; min-height:0; margin-top:10px; }
.chat-message-viewport .team-messages { height:100%; }
.chat-jump-bottom { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:var(--color-surface); color:var(--color-brand); box-shadow:0 3px 16px #1b244024; cursor:pointer; z-index:2; }
.chat-jump-bottom svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.chat-jump-bottom:hover { background:var(--color-accent); }
.chat-jump-bottom[hidden] { display:none; }

/* Fixed composer: long drafts scroll inside the input. */
.team-chat-send { justify-content:flex-end; }

.team-chat-send .chat-photo-add { margin-right:auto; color:var(--color-muted); }
.chat-photo-add svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; }
.chat-photo-draft { display:flex; align-items:center; gap:8px; padding:7px 0; font-size:11px; color:var(--color-brand); }
.chat-photo-draft[hidden] { display:none; }
.chat-photo-draft span { min-width:0; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-photo-remove { border:0; background:none; font-size:19px; padding:0 5px; }
.team-message .chat-photo { display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-top:6px; }
.team-message.mine .chat-photo { align-items:flex-end; }
.chat-photo img { width:100%; height:160px; object-fit:contain; background:var(--color-paper); border-radius:8px; }
.chat-photo img[hidden] { display:none; }
.chat-photo button { max-width:100%; border:0; background:none; color:var(--color-brand); font-size:11px; overflow-wrap:anywhere; text-align:left; padding:4px 0; }

.chat-photo .chat-photo-preview { width:100%; padding:0; text-align:inherit; }
.chat-photo-preview img { display:block; cursor:zoom-in; }
.chat-photo-preview span { display:block; padding:7px 0 2px; font-size:11px; color:var(--color-muted); }
.chat-photo-modal { width:min(900px,94vw); max-width:900px; }
.chat-photo-modal #modal-title { min-width:0; overflow-wrap:anywhere; font-size:16px; }
.chat-photo-modal .row>.icon-btn { flex-shrink:0; }
.chat-photo-full { display:grid; place-items:center; min-height:180px; margin:20px 0; }
.chat-photo-full img { max-width:100%; max-height:65dvh; object-fit:contain; border-radius:8px; }
.chat-photo-full p { color:var(--color-muted); font-size:13px; text-align:center; }
.chat-photo-full [hidden] { display:none; }
.chat-photo-actions { display:flex; justify-content:center; }

/* Message content first, author and timestamp beneath it. */
.team-message { display:flex; flex-direction:column; align-items:flex-start; }
.team-message.mine { align-items:flex-end; }
.team-message>.team-message-author { order:2; margin:7px 3px 0; }
.team-message>p { order:0; }
.team-message>.chat-photo { order:1; max-width:100%; width:100%; }

/* Instructor portrait fades toward the member's name. */
.organization .person-node.has-portrait { overflow:hidden; isolation:isolate; }
.organization .person-node .person-portrait { position:absolute; right:-22px; top:-3px; width:130px; height:130px; max-width:57%; object-fit:contain; object-position:center top; pointer-events:none; user-select:none; opacity:.92; mask-image:linear-gradient(to right,transparent 0%,#000 55%); }
.organization .person-node.has-portrait>div { position:relative; z-index:1; }
.organization .person-node.has-portrait strong { padding-right:60px; }

/* Header popovers sit above the sliding work panels. */
.map-header { position:relative; z-index:20; }
.work-layout { z-index:0; }

.presence-loading { display:inline-block; width:10px; height:10px; border:1.5px solid var(--color-line); border-top-color:var(--color-brand); border-radius:50%; animation:presence-spin .8s linear infinite; }
.presence-summary { min-width:100px; }
@keyframes presence-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .presence-loading { animation:none; } }

.avatar.avatar-photo { overflow:hidden; position:relative; padding:0; background:#eef2f8; }
.avatar.avatar-photo img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.65); transform-origin:50% 20%; pointer-events:none; }

.backlog-create { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; min-height:44px; margin-top:12px; padding:10px 14px; border:1px dashed #c7d2e3; border-radius:8px; background:#f5f7fb; color:#74839a; font-size:12px; font-weight:500; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.backlog-create svg { width:15px; height:15px; }
.backlog-create:hover { background:#edf3fc; color:var(--color-brand); border-color:var(--color-brand); }
.backlog-create:focus-visible { outline:2px solid var(--color-brand); outline-offset:3px; }


.backlog-card.priority-high,.personal-task.priority-high,.task-card.priority-high { outline:1.5px solid #df806c; outline-offset:-1.5px; }
.backlog-card.priority-high:hover,.personal-task.priority-high:hover,.task-card.priority-high:hover { outline-color:#c85e48; }

.personal-task.assignment-arriving { animation:assignment-arrive .3s cubic-bezier(.2,.7,.2,1) both; }
.personal-todos .assignment-updated b { display:inline-grid; place-items:center; animation:assignment-count .3s ease-out; }
@keyframes assignment-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes assignment-count { from { opacity:.35; transform:translateY(5px); background:#dce8fc; } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .personal-task.assignment-arriving,.personal-todos .assignment-updated b { animation:none; } }

/* Compact task detail dialog above the application header. */
#panel-root { position:relative; z-index:100; }
#modal-root { position:relative; z-index:200; }
.drawer { inset:24px 0; width:min(620px,calc(100vw - 32px)); height:min(900px,calc(100dvh - 48px)); max-height:calc(100dvh - 48px); border-radius:14px; }
.drawer-head { padding:18px 22px; flex-shrink:0; }
.drawer-head>.row>.icon-btn { width:30px; height:30px; }
.detail-heading-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.75fr); gap:20px; margin-top:12px; align-items:start; }
.drawer-head h2 { font-size:22px; line-height:1.4; margin:0 0 10px; overflow-wrap:anywhere; }
.detail-heading-grid .detail-meta { margin:2px 0 0; gap:10px; font-size:11px; }
.detail-heading-grid .detail-label { min-width:38px; flex-shrink:0; font-size:10px; }
.detail-heading-grid .avatar { width:23px; height:23px; font-size:9px; }
.detail-heading-grid .detail-meta>.row { gap:8px; }
.detail-heading-grid .detail-meta>.row:last-child>div { max-height:86px; overflow:auto; }
.drawer-content { padding:18px 22px; min-height:0; }
.drawer-content .description { font-size:12px; line-height:1.7; margin-bottom:16px; overflow-wrap:anywhere; }
.drawer-content>.btn { font-size:12px; padding:8px 12px; }
.drawer-content .divider { margin:18px 0; }
.drawer-content .section-title { font-size:12px; margin-bottom:10px; }
.drawer .status-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.drawer .status-actions .btn { width:100%; font-size:12px; padding:10px 6px; justify-content:center; }
.drawer .status-actions [data-action="write-report"] { grid-column:1 / -1; }
.drawer .thread-tabs { margin-top:20px; gap:18px; }
.drawer .thread-tab { font-size:11px; padding:10px 0; }
.drawer .entries { gap:14px; padding:16px 0; }
.drawer .composer { padding:12px 22px 16px; flex-shrink:0; }
.drawer .composer textarea { height:64px; min-height:64px; max-height:64px; resize:none; overflow-y:auto; border:0; border-radius:7px; }
.drawer .composer>.row { justify-content:flex-end; }
@media(max-width:480px) {
  .drawer { inset:12px 0; height:calc(100dvh - 24px); max-height:calc(100dvh - 24px); width:calc(100vw - 24px); }
  .drawer-head,.drawer-content { padding:16px; }
  .detail-heading-grid { grid-template-columns:minmax(0,1fr) minmax(120px,.8fr); gap:12px; }
  .drawer-head h2 { font-size:19px; }
  .drawer .composer { padding:12px 16px; }
}

.todo-slide { overflow:hidden; min-height:0; }
.personal-todos .fold-arrow { display:block; width:16px; height:16px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; transform-origin:center; transition:transform 260ms cubic-bezier(.22,.68,0,1); }
.personal-todos[data-expanded="false"] .fold-arrow { transform:rotate(0deg); }
.personal-todos[data-expanded="true"] .fold-arrow { transform:rotate(180deg); }
@media(prefers-reduced-motion:reduce) { .personal-todos .fold-arrow { transition:none; } }

.detail-membership { padding-left:46px; }
.detail-membership .btn { min-height:28px; padding:5px 8px; font-size:10px; border-radius:5px; gap:4px; }
.detail-membership .btn svg { width:12px; height:12px; }
.work-record-heading { font-size:13px; font-weight:550; margin:22px 0 0; }
.work-record-heading span { font-size:11px; color:var(--color-muted); margin-left:6px; }
.work-records { gap:10px; }
.work-record { padding:12px 14px; background:var(--color-paper); border-radius:9px; }
.work-record summary { list-style:none; cursor:pointer; }
.work-record summary::-webkit-details-marker { display:none; }
.work-record-person { display:flex; align-items:center; gap:9px; }
.work-record-person>div { min-width:0; flex:1; }
.work-record-person strong { display:block; font-size:12px; font-weight:550; }
.work-record-person time { display:block; color:var(--color-muted); font-size:10px; margin-top:3px; }
.work-record-status { color:var(--color-brand); font-size:11px; white-space:nowrap; }
.work-record-toggle { display:flex; justify-content:center; align-items:center; gap:5px; margin-top:10px; color:var(--color-muted); font-size:10px; }
.work-record-toggle svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .2s ease; }
.work-record[open] .work-record-toggle svg { transform:rotate(180deg); }
.work-record-body { margin-top:12px; padding-top:12px; border-top:1px solid var(--color-line); white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.8; }
.work-record-private,.work-record-empty { margin-top:10px; font-size:11px; color:var(--color-muted); }
.work-record-label { display:block; font-size:11px; font-weight:500; margin-bottom:8px; }

/* Two full compact records and a partial third hint at more history. */
.drawer .entries.work-records { display:flex; flex-direction:column; gap:8px; max-height:196px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; padding:0; margin-top:12px; }
.work-records::-webkit-scrollbar { display:none; width:0; height:0; }
.work-records .work-record { flex:none; min-height:72px; padding:10px 12px; border-radius:7px; }
.work-records .work-record-person { height:32px; gap:8px; }
.work-records .avatar { width:28px; height:28px; }
.work-records .work-record-person strong { font-size:11px; line-height:14px; }
.work-records .work-record-person time { margin-top:2px; font-size:9px; line-height:12px; }
.work-records .work-record-status { font-size:10px; }
.work-records .work-record-toggle { margin-top:6px; line-height:14px; }
.work-records .work-record-private { margin-top:6px; font-size:10px; line-height:14px; }
.work-records .work-record-body { margin-top:8px; padding-top:8px; }

.record-edit-icon { display:grid; place-items:center; flex-shrink:0; width:25px; height:25px; border:0; border-radius:5px; background:transparent; color:var(--color-muted); cursor:pointer; }
.record-edit-icon:hover { color:var(--color-brand); background:#eaf0fa; }
.record-edit-icon svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.work-record-edit { white-space:normal; }
.work-record-edit textarea { width:100%; min-height:100px; max-height:220px; padding:10px; border:0; border-radius:6px; background:white; font-size:12px; line-height:1.7; resize:vertical; }
.record-edit-actions { display:flex; justify-content:flex-end; gap:6px; margin-top:8px; }
.record-already { font-size:12px; color:var(--color-muted); }
.record-already span { display:block; font-size:10px; margin-top:5px; }
.drawer .status-actions.status-compact { gap:4px; margin:2px 0 10px; }
.drawer .status-actions.status-compact .btn { min-height:28px; padding:5px 3px; font-size:10px; border-radius:5px; }

/* The task description gets the main space; records follow in one scroll area. */
.drawer-head { height:184px; flex:0 0 184px; overflow:hidden; }
.drawer-head h2 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.detail-heading-grid .detail-meta>.row:nth-child(2)>div { max-height:40px; overflow-y:auto; }
.drawer-content { display:flex; flex-direction:column; min-height:0; overflow-y:auto; }
.drawer-content .description { flex:none; max-height:none; min-height:clamp(220px,45dvh,480px); overflow:visible; margin:0 0 28px; font-size:14px; line-height:1.85; }
.drawer-content .description:empty { display:none; }
.drawer-content .work-record-heading { flex:none; margin:0 0 10px; padding-top:20px; border-top:1px solid var(--color-line); }
.drawer .entries.work-records { flex:none; min-height:0; max-height:none; margin:0; padding:0 0 4px; overflow:visible; }
.drawer .composer { flex-shrink:0; }
@media(max-width:480px) { .drawer-head { height:184px; flex-basis:184px; } }

.detail-header-actions { display:flex; align-items:center; gap:8px; }
.task-edit-button { border:0; border-radius:5px; background:transparent; color:var(--color-brand); padding:5px 7px; font-size:10px; cursor:pointer; }
.task-edit-button:hover { background:var(--color-accent); }
.task-delete-button { border:0; border-radius:5px; background:transparent; color:#b45848; padding:5px 7px; font-size:10px; cursor:pointer; }
.task-delete-button:hover { background:#fff0ec; }
.task-delete-question { margin:20px 0 8px; font-size:14px; overflow-wrap:anywhere; }
.task-delete-note { color:var(--color-muted); font-size:12px; }
.task-delete-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:24px; }
.task-delete-confirm { background:#bd5847; color:white; border-color:transparent; }

.team-message-role { font-size:10px; font-weight:400; color:var(--color-muted); }
.team-message-role:empty { display:none; }

/* Approval requests stay attached to their participants, with a persistent private conversation. */
.person-node[data-request-user]{cursor:pointer;transition:box-shadow .2s,transform .2s}
.person-node[data-request-user]:hover{box-shadow:0 8px 28px #23355014;transform:translateY(-2px)}
.approval-unread,.approval-inbox-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:20px;background:#df654f;color:#fff;font-size:11px;line-height:1;font-weight:600;flex-shrink:0}
.approval-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;overflow-wrap:anywhere}
.approval-task{box-shadow:inset 2px 0 #7797c9}
.badge.approval-pending{background:#fff1db;color:#967022}
.badge.approval-approved{background:#eaf1ff;color:#3b68a9}
.badge.approval-rejected{background:#f7ecea;color:#985047}
.badge.approval-held{background:#f7f2e7;color:#806528}
.approval-task[data-approval-status="rejected"] .approval-card-status{color:#985047}
.approval-task[data-approval-status="held"] .approval-card-status{color:#806528}
.badge.approval-done{background:#e9f4ef;color:#438366}
.approval-inbox-item{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:0;border-radius:12px;background:#f6f7f9;text-align:left;color:inherit;cursor:pointer}
.approval-inbox-item+.approval-inbox-item{margin-top:10px}
.approval-inbox-item>span:first-child{flex:1;min-width:0}
.approval-inbox-item strong{display:block;overflow-wrap:anywhere}
.approval-inbox-item small{display:block;margin-top:7px;color:var(--color-muted)}
#approval-inbox-list{margin-top:20px;max-height:55dvh;overflow:auto;scrollbar-width:none}
#approval-inbox-list::-webkit-scrollbar{display:none}
.approval-empty{padding:30px 0;text-align:center;color:var(--color-muted)}
.approval-recipient{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.approval-recipient small{color:var(--color-muted);margin-left:4px}
#approval-create-form textarea{height:140px;resize:none}
.approval-modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;scrollbar-width:none}
.approval-modal::-webkit-scrollbar{display:none}
.approval-detail-top{display:flex;align-items:flex-start;gap:12px}
.approval-detail-top h3{flex:1;margin:0;font-size:20px;overflow-wrap:anywhere}
.approval-detail-top .badge{flex-shrink:0}
.approval-route{font-size:12px;color:var(--color-muted);margin:10px 0 20px}
.approval-request-body{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;background:#f6f7f9;border-radius:12px;max-height:30dvh;overflow:auto;scrollbar-width:none;line-height:1.65}
.approval-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:20px 0}
.approval-reject-open{border-color:#d7b7b2;color:#985047}
.approval-reject-submit{background:#985047;color:#fff;border-color:#985047}
.approval-reject-form{display:grid;gap:12px;padding:16px;border:1px solid #e7d5d2;border-radius:10px;background:#fcf9f8}
.approval-reject-form textarea{min-height:110px;resize:vertical}
.approval-reject-form>.btn{justify-self:end}
.approval-rejection-reason{margin-top:14px;padding:15px 16px;border-left:3px solid #b36a60;background:#faf4f2;border-radius:0 8px 8px 0;line-height:1.6}
.approval-rejection-reason strong{font-size:12px;color:#985047}
.approval-rejection-reason p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.approval-hold-open{border-color:#d9c9a4;color:#806528}
.approval-hold-submit{background:#806528;color:#fff;border-color:#806528}
.approval-decision-form,.approval-resubmit-form{display:grid;gap:12px;margin:14px 0;padding:16px;border:1px solid #e2e5ea;border-radius:10px;background:#fafbfc}
.approval-decision-form.is-hold{border-color:#e2d7bb;background:#fcfaf5}
.approval-decision-form.is-reject{border-color:#e7d5d2;background:#fcf9f8}
.approval-decision-form textarea,.approval-resubmit-form textarea{min-height:110px;resize:vertical}
.approval-decision-form>.btn,.approval-resubmit-form>.btn{justify-self:end}
.approval-hold-reason{margin-top:14px;padding:15px 16px;border-left:3px solid #b69a58;background:#faf7ee;border-radius:0 8px 8px 0;line-height:1.6}
.approval-hold-reason strong{font-size:12px;color:#806528}
.approval-hold-reason p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.approval-delete-zone{margin-top:22px;padding-top:14px;border-top:1px solid #e9ecf2;text-align:right}
.approval-delete-open{color:#985047;border-color:#e7d5d2}
.approval-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:12px;border-radius:8px;background:#fcf9f8;text-align:left}
.approval-delete-confirm p{margin:0;font-size:12px}
.approval-delete-confirm-button{background:#985047;color:#fff;border-color:#985047}
.approval-events{border-top:1px solid #e9ecf2;padding-top:10px;color:var(--color-muted);font-size:12px}
.approval-events time{display:block;font-size:11px;margin-top:4px}
.approval-completion{display:flex;gap:12px;padding:16px;margin:16px 0;border-radius:12px;background:#f3f8f5;font-size:13px}
.approval-completion p{font-size:12px;color:var(--color-muted);margin:7px 0}
.approval-completion summary{cursor:pointer}
.approval-chat-nav{display:flex;justify-content:space-between}
.approval-back,.approval-history{background:none;border:0;color:#4872ad;font-size:12px;padding:8px 0;cursor:pointer}
.approval-chat-log{height:clamp(150px,38dvh,340px);overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:0 4px}
.approval-chat-log::-webkit-scrollbar{display:none}
.approval-history{display:block;margin:0 auto 12px}
.approval-history:disabled{display:none}
.approval-message{margin:12px 0;max-width:88%;width:fit-content}
.approval-message p{margin:0;padding:10px 13px;border-radius:12px;background:#f2f4f8;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;font-size:14px}
.approval-message small{display:block;font-size:10px;color:var(--color-muted);margin-top:6px}
.approval-message.mine{margin-left:auto;text-align:right}
.approval-message.mine p{background:#edf3fd;text-align:left}
.approval-message.event{max-width:100%;width:100%;text-align:center;color:var(--color-muted)}
.approval-message.event p{background:none;padding:6px;font-size:12px}
#approval-chat-form{margin-top:16px;border-top:1px solid #e9ecf2;padding-top:14px}
#approval-chat-form textarea{width:100%;height:76px;min-height:76px;max-height:76px;resize:none;border:0;background:#f6f7f9;border-radius:12px;padding:12px;font:inherit;font-size:14px;color:inherit;overflow:auto;scrollbar-width:none}
#approval-chat-form textarea::-webkit-scrollbar{display:none}
.approval-chat-actions{display:flex;justify-content:flex-end;margin-top:8px}
@media(max-width:600px){.approval-detail-actions{flex-wrap:wrap}.approval-detail-actions>.btn{flex:1}.header-actions [data-approval-inbox]{font-size:12px;padding:8px}}
.approval-task,.approval-inbox-item{white-space:normal}
.approval-inbox-item .badge{white-space:nowrap}

/* Hallmark · component-scope: approval card · existing brand tokens
   Pre-emit critique: P5 H4 E4 S4 R5 V4 */
.personal-task.approval-task{width:100%;min-width:0;min-height:76px;padding:12px 14px;gap:12px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);box-shadow:none;transition:background-color var(--dur-fast),border-color var(--dur-fast)}
.approval-card-heading,.approval-card-footer{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;gap:12px}
.approval-task .approval-card-title{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;line-height:1.5;letter-spacing:-.15px}
.approval-card-arrow{width:14px;height:14px;color:var(--color-muted);flex-shrink:0}
.approval-card-person{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.5;color:var(--color-muted)}
.approval-card-status{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:10px;font-weight:500;line-height:1.5;white-space:nowrap;color:var(--color-warning)}
.approval-status-dot{width:4px;height:4px;flex-shrink:0;border-radius:50%;background:currentColor}
.approval-task[data-approval-status="approved"] .approval-card-status{color:var(--color-brand-dark)}
.approval-task[data-approval-status="done"] .approval-card-status{color:var(--color-muted)}
.approval-task[data-approval-status="done"] .approval-status-dot{width:7px;height:4px;border-left:1px solid currentColor;border-bottom:1px solid currentColor;border-radius:0;background:none;transform:rotate(-45deg);margin-bottom:2px}
.approval-task .approval-unread{height:15px;min-width:15px;padding:0 4px;margin-left:2px;font-size:9px;background:var(--color-danger);color:var(--color-surface)}
@media(hover:hover){.personal-task.approval-task:hover:not(:disabled){background:var(--color-paper);color:var(--color-ink);border-color:var(--color-strong)}}
.personal-task.approval-task:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}
.personal-task.approval-task:active:not(:disabled){background:var(--color-accent);color:var(--color-accent-ink)}
.personal-task.approval-task:disabled{opacity:.5;cursor:not-allowed}
.personal-task.approval-task[aria-busy="true"]{cursor:progress}
.approval-task[aria-busy="true"] .approval-card-arrow{animation:approval-card-pulse 1s ease-in-out infinite}
.personal-task.approval-task[aria-invalid="true"]{border-color:var(--color-danger)}
@keyframes approval-card-pulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.approval-task[aria-busy="true"] .approval-card-arrow{animation:none}}

/* Request date belongs to the routing metadata, without an empty footer. */
.approval-route{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:12px;row-gap:4px}
.approval-request-time{font-size:11px;white-space:nowrap}
.approval-modal .approval-detail-actions{margin-bottom:0}
.approval-modal .approval-error:empty{display:none}
.approval-detail-top{justify-content:flex-end}

/* Per-member approval inbox, anchored above the name card. */
.approval-person-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:center;gap:10px;min-height:32px;padding:7px 11px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);color:var(--color-muted);font-size:11px;font-weight:500;line-height:16px;box-shadow:var(--shadow-control);white-space:nowrap}
.approval-person-bubble::after{content:'';position:absolute;top:calc(100% - 3px);left:50%;width:6px;height:6px;transform:translateX(-50%) rotate(45deg);border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);background:inherit}
.approval-person-bubble:hover{border-color:var(--color-strong);color:var(--color-brand-dark)}
.approval-person-bubble:active{background:var(--color-accent)}
.approval-person-bubble:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}
.approval-person-bubble .approval-inbox-count{background:var(--color-danger);color:var(--color-surface);font-size:10px;min-width:17px;height:17px}
.approval-person-bubble .approval-inbox-count[hidden]{display:none}
.approval-modal-header #modal-title{flex:1;min-width:0}
.approval-modal-header .approval-list-back{margin-left:-8px;flex-shrink:0}
.person-node[data-approval-history]{cursor:pointer}
.person-node[data-approval-history]:hover{background:var(--color-paper)}
.person-node[data-approval-history]:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}

.approval-person-bubble[hidden]{display:none}
.approval-person-bubble:disabled{opacity:1;cursor:default;color:var(--color-muted)}
.approval-person-bubble:disabled:hover{border-color:var(--color-line);background:var(--color-surface)}
/* Keep browser scroll anchoring from competing with the card reveal/return. */
.organization .canvas{overflow-anchor:none}
/* Fit more of the director portrait inside the name area. */
.organization .person-node .person-portrait[src="/director-portrait.png"]{width:100px;height:100px;top:0;right:-8px}

/* Three focused queues share the right-hand work panel. */
.backlog-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;margin:0 0 22px;background:var(--color-paper);border-radius:8px}
.backlog-tabs button{border:0;background:transparent;color:var(--color-muted);min-width:0;min-height:36px;padding:7px 3px;border-radius:6px;font-size:11px;white-space:nowrap}
.backlog-tabs button[aria-selected="true"]{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-control);font-weight:600}
.backlog-tabs button:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}
.approval-panel-card{width:100%;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);padding:16px;text-align:left;white-space:normal;color:var(--color-ink)}
.approval-panel-card:hover{background:var(--color-paper)}
.approval-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.approval-panel-heading strong{min-width:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.approval-panel-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:11px;color:var(--color-muted)}
.approval-panel-meta .badge{font-size:10px;white-space:nowrap}
.person-node[data-created-by]{cursor:pointer}
.person-node[data-created-by]:hover{background:var(--color-paper)}
.person-node[data-created-by]:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}
.created-tasks-modal{width:min(560px,calc(100vw - 32px))}
.created-tasks-info{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:var(--color-muted);margin:16px 0}
.created-task-list{max-height:52dvh;overflow:auto;scrollbar-width:none;display:grid;gap:10px}
.created-task-list::-webkit-scrollbar{display:none}
.created-task-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;width:100%;border:0;border-radius:8px;background:var(--color-paper);text-align:left;white-space:normal}
.created-task-row strong{display:block;font-weight:550;font-size:14px;overflow-wrap:anywhere}
.created-task-row small{display:block;color:var(--color-muted);font-size:11px;margin-top:7px}
.created-task-row .badge{white-space:nowrap;flex-shrink:0;font-size:10px}
@media(max-width:480px){.backlog-tabs{gap:1px}.backlog-tabs button{font-size:10px}.created-tasks-info{flex-wrap:wrap}}
/* Tabs serve as the panel heading without a repeated title row. */
.backlog-tabs{margin-bottom:12px}
.backlog-tabs button{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;min-height:40px}
.backlog-tab-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border-radius:4px;background:var(--color-paper);color:var(--color-muted);font:10px var(--font-mono)}
@media(max-width:480px){.backlog-tabs button{font-size:10px;gap:3px}.backlog-tab-count{font-size:9px;min-width:15px}}

/* Overlay both request notices without moving the member card. */
.person-notices{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:6px}
.person-notices .approval-person-bubble{position:relative;bottom:auto;left:auto;transform:none;gap:6px;padding:7px 9px}
#received-task-requests{display:grid;gap:10px;margin-top:20px;max-height:55vh;overflow:auto;scrollbar-width:none}
#received-task-requests::-webkit-scrollbar{display:none}

/* Compact vertical spacing in the right-panel task cards. */
.backlog-card{padding-top:8px;padding-bottom:8px}
.backlog-card .task-top{margin-bottom:3px}
.backlog-card .backlog-bottom{margin-top:4px}

/* A folder label above a single task row. */
.backlog-card.task-file-card{position:relative;padding:7px 10px;margin-top:15px;border-radius:0 8px 8px 8px}
.task-folder-tab{position:absolute;bottom:100%;left:0;display:block;padding:3px 10px 2px;border-radius:6px 6px 0 0;background:var(--color-health-soft);color:var(--color-health);font-size:9px;line-height:13px;white-space:nowrap}
.task-folder-tab.physio{background:var(--color-physio-soft);color:var(--color-physio)}
.task-file-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:28px}
.task-file-row .backlog-title{display:block;flex:1;min-width:0;font-size:13px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-file-row .assignee-trigger{flex-shrink:0}
.task-file-row .compact-add{display:grid;place-items:center;flex-shrink:0;min-width:28px;min-height:28px;padding:4px;border:0;border-radius:5px;font-size:9px;white-space:nowrap;background:var(--color-accent);color:var(--color-brand-dark)}
.task-file-row .compact-add svg{width:14px;height:14px}
.task-file-card.joined .compact-add{background:transparent}

/* Approval requests share the compact folder-card layout. */
.approval-panel-card.approval-file-card{position:relative;margin-top:15px;padding:7px 10px;border-radius:0 8px 8px 8px;overflow:visible}
.approval-file-card .task-folder-tab{max-width:100%;overflow:hidden;text-overflow:ellipsis;background:var(--color-health-soft);color:var(--color-muted)}
.approval-file-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:28px}
.approval-file-row strong{flex:1;min-width:0;font-size:13px;font-weight:550;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.approval-file-row .badge{flex-shrink:0;font-size:9px;white-space:nowrap;padding:3px 5px}

.personal-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;grid-auto-rows:max-content;align-content:start}
.personal-list::-webkit-scrollbar{display:none}

.people-modal .select-options.member-select-overlay{position:fixed;z-index:100;max-width:calc(100vw - 16px)}
.people-modal .person-card:has(.select-trigger[aria-expanded="true"]){position:relative;z-index:36}

.assignee-list{display:flex;flex-direction:column;gap:12px}
.assignee-person{width:100%;min-width:0}
.assignee-person>div{min-width:0;flex:1}
.assignee-progress{margin-left:auto;flex-shrink:0}
.assignee-progress .badge{white-space:nowrap;font-size:10px}
.detail-participant-list{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.detail-participant-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.approval-inbox-time{display:block;margin-top:5px;font-size:11px;line-height:1.5;color:var(--color-muted);font-variant-numeric:tabular-nums}

/* Let five participants fit while keeping membership beside the business area. */
.drawer-head{height:auto;min-height:184px;flex:0 0 auto;overflow:visible}
.detail-area-membership{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.detail-area-membership .detail-membership{padding-left:0}
.detail-heading-grid .detail-meta>.row:nth-child(2)>.detail-participant-list{max-height:147px;overflow-y:auto;scrollbar-width:none}
.detail-participant-list::-webkit-scrollbar{display:none}
.detail-participant-row{min-height:23px;flex-shrink:0}
@media(max-width:480px){.drawer-head{height:auto;flex-basis:auto}.detail-area-membership{gap:6px}.detail-heading-grid{grid-template-columns:minmax(0,1fr)}.detail-heading-grid .detail-meta{margin-top:0}}

.drawer .detail-title-group .status-actions.status-compact{margin-top:18px}

.task-folder-tab.task-folder-mine{left:auto;right:0;background:#fbe5ee;color:#a3436b}

#received-task-requests,#approval-inbox-list{max-height:min(var(--request-list-height,55dvh),65dvh);overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain}
#received-task-requests::-webkit-scrollbar,#approval-inbox-list::-webkit-scrollbar{display:none}
#received-task-requests{grid-auto-rows:max-content;align-content:start}

.management-section{margin:30px auto 0;max-width:760px}
.management-section h2{font-size:12px;color:var(--color-muted);font-weight:500;text-align:center;margin-bottom:16px}
.management-nodes{display:flex;justify-content:center;gap:32px;flex-wrap:wrap}
.management-nodes .person-node strong{font-size:18px;line-height:1.4;word-break:keep-all}

/* Live chat activity occupies the existing notice layer, without moving cards. */
.chat-notice-host{display:contents}
.typing-dots{display:inline-flex;margin-left:2px}
.typing-dots i{font-style:normal;animation:typing-dot 1.1s ease-in-out infinite}
.typing-dots i:nth-child(2){animation-delay:.15s}
.typing-dots i:nth-child(3){animation-delay:.3s}
.notice-dot{width:6px;height:6px;border-radius:50%;background:var(--color-danger);flex:none}
.approval-result-list{display:grid;gap:10px;max-height:65dvh;overflow:auto;scrollbar-width:none}
.approval-result-list::-webkit-scrollbar{display:none}
@keyframes typing-dot{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.typing-dots i{animation:none;opacity:1}}
.created-task-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.direct-chat-modal{width:min(560px,calc(100vw - 32px))}
.direct-chat-nav,.direct-chat-history,.direct-chat-send{display:flex;align-items:center;justify-content:space-between;gap:12px}
.direct-chat-nav{font-size:11px;color:var(--color-muted);margin:16px 0}
.direct-chat-log{height:min(42dvh,360px);min-height:150px;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:8px 0}
.direct-chat-log::-webkit-scrollbar{display:none}
.direct-message{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:16px}
.direct-message.mine{align-items:flex-end}
.direct-message small{font-size:10px;color:var(--color-muted);margin-top:6px;line-height:1.5}
.direct-message p{max-width:90%;margin:0;padding:10px 13px;border-radius:10px;background:var(--color-bg);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.direct-message.mine p{background:var(--color-accent)}
.direct-chat-history{margin:8px 0 12px}
.direct-chat-send{margin-top:8px}
.team-chat>.chat-rooms{margin-top:0;flex-shrink:0}
.created-tasks-info .created-task-actions{display:flex;gap:12px;row-gap:10px;align-items:center;flex-wrap:wrap}
.created-tasks-info .created-task-actions>.btn{margin:0;flex:0 0 auto}

/* Approval result inbox and detail use the same header/content rhythm. */
.approval-results-modal{width:min(560px,calc(100vw - 32px))}
.approval-results-modal>.row,.approval-modal-header{gap:12px;align-items:center}
.approval-results-modal #modal-title,.approval-modal-header #modal-title{margin:0;line-height:1.3;min-width:0}
.approval-modal-header .approval-list-back{margin-left:0}
.approval-modal-header .icon-btn,.approval-results-modal>.row .icon-btn{width:36px;height:36px;flex:0 0 36px}
.approval-modal #approval-detail{padding-top:20px}
.approval-modal .approval-route{margin:0 0 20px;line-height:1.6;row-gap:6px}
.approval-modal .approval-detail-actions{gap:12px;flex-wrap:wrap}
.approval-modal .approval-work-status{margin:16px 0 0}
.approval-modal .approval-work-status+.approval-detail-actions{margin-top:16px}
.approval-result-list{margin-top:24px;overscroll-behavior:contain}
.approval-result-list .approval-inbox-item+.approval-inbox-item{margin-top:0}
.approval-result-list .approval-inbox-item>strong{flex:1;min-width:0;line-height:1.5}
.approval-result-list .badge{flex-shrink:0}
@media(max-width:480px){.approval-modal-header{gap:8px}.approval-modal-header #modal-title,.approval-results-modal #modal-title{font-size:22px}.approval-result-list{margin-top:20px}}

/* New bubbles enter once; unchanged realtime snapshots retain their DOM. */
.approval-person-bubble{animation:notice-appear 180ms cubic-bezier(.16,1,.3,1) both}
@keyframes notice-appear{from{opacity:0;translate:0 5px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@media(prefers-reduced-motion:reduce){.approval-person-bubble{animation:none}}

/* Stack activity above the card without widening or moving the card. */
.person-notices{width:100%;max-width:100%;flex-direction:column;align-items:center;gap:6px}
.person-notices .approval-person-bubble{max-width:100%;box-sizing:border-box;flex-shrink:0}
.person-notices .approval-person-bubble>span{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* Horizontal overlapping tabs stay inside their member card. */
.person-notices{flex-direction:row;justify-content:center;align-items:center;gap:0}
.person-notices .approval-person-bubble{z-index:var(--notice-layer,1);transition:box-shadow 130ms ease,border-color 130ms ease}
.person-notices .approval-person-bubble:hover,.person-notices .approval-person-bubble:focus-visible{z-index:20;box-shadow:0 4px 14px #23355026;border-color:var(--color-strong)}

.direct-chat-viewport{position:relative;margin-bottom:16px}
.direct-chat-send{justify-content:flex-end}
.direct-chat-send .form-error{flex:1;min-width:0}
.direct-chat-send button{margin-left:auto;flex-shrink:0}

.direct-conversation-name{display:flex!important;align-items:center;gap:8px}

.approval-top-actions{display:flex;justify-content:flex-end;margin:-4px 0 20px}

.direct-conversation-name{flex-wrap:wrap}
.direct-unread-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:400;color:var(--color-muted)}

.chat-outbox{display:grid;gap:6px;max-height:110px;overflow:auto;scrollbar-width:none;margin-top:8px}
.chat-outbox:empty{display:none}
.chat-outbox-entry{display:flex;gap:8px;align-items:center;padding:7px 10px;border-radius:8px;background:var(--color-paper);font-size:12px}
.chat-outbox-entry>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-outbox-entry>small{flex-shrink:0;color:var(--color-muted)}

/* Match the team-chat composer surface and send control. */
.direct-chat-send{margin-top:0;gap:12px;justify-content:flex-end}
.direct-chat-send button{width:30px;height:30px;color:var(--color-brand)}

.direct-chat-send .direct-photo-add{margin-right:auto;margin-left:0;color:var(--color-muted)}
.direct-photo-draft{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:11px;color:var(--color-muted)}
.direct-photo-draft[hidden]{display:none}
.direct-photo-draft img{width:42px;height:42px;object-fit:cover;border-radius:6px}
.direct-photo-draft span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.direct-photo img{display:block;max-width:100%;max-height:240px;border-radius:10px;margin-top:8px;object-fit:contain}

.approval-decision{font-size:12px;color:var(--color-muted);line-height:1.6;margin:14px 0}
.approval-decision time{display:block;font-size:11px;margin-top:4px}

.backlog-tabs button{font-weight:600}
.backlog-tab-count{width:24px;min-width:24px;flex:0 0 24px;padding:0;font-variant-numeric:tabular-nums}
@media(max-width:480px){.backlog-tab-count{width:22px;min-width:22px;flex-basis:22px}}

/* Show the request direction and the actual approving person. */
.approval-people{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:16px}
.approval-person-card{display:flex;align-items:center;gap:10px;min-width:0;min-height:62px;padding:10px 12px;border:1px solid transparent;border-radius:10px;background:#fff;box-shadow:0 2px 10px rgba(27,39,67,.08);text-align:left;color:var(--color-ink);font:inherit}
.approval-person-card .avatar{flex:0 0 36px;width:36px;height:36px}
.approval-person-info{display:flex;flex-direction:column;gap:3px;min-width:0;line-height:1.4;overflow-wrap:anywhere;word-break:keep-all}
.approval-person-info strong{font-size:14px}
.approval-person-info small,.approval-person-name>span{font-size:11px;color:var(--color-muted)}
.approval-person-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 7px}
.approval-people-arrow{width:20px;height:20px;fill:none;stroke:var(--color-muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.approval-person-unassigned{border:1px dashed #becbe1;background:#fff;box-shadow:none}
.approval-person-unassigned:not(:disabled){cursor:pointer}
.approval-person-unassigned:not(:disabled):hover{background:#edf3fd;border-color:var(--color-brand)}
.approval-person-unassigned:disabled{opacity:1;cursor:default}
.approval-person-question{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:10px;background:#edf2fa;color:var(--color-brand);font-size:22px}
@media(max-width:420px){.approval-people{gap:6px;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr)}.approval-person-card{padding:10px;gap:7px;flex-wrap:wrap}.approval-person-info strong{font-size:13px}}

.approval-person-card{flex-wrap:wrap}
.approval-person-info{flex:1}
.approval-person-chat{margin-left:auto;padding:5px 8px;font-size:11px;white-space:nowrap}

.approval-person-time{flex:0 0 100%;font-size:10px;line-height:1.4;color:var(--color-muted);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* Shared chat composer: team and direct chat stay visually identical. */
#team-chat-form,#direct-chat-form{padding:10px;background:var(--color-paper);border-radius:9px;flex-shrink:0}
#team-chat-form textarea,#direct-chat-form textarea{display:block;width:100%;height:48px;min-height:48px;max-height:48px;resize:none;overflow-y:auto;scrollbar-width:none;border:0;outline:0;border-radius:0;padding:2px;background:transparent;font:inherit;font-size:13px;line-height:1.6;color:inherit}
#team-chat-form.is-replying textarea{height:96px;min-height:96px;max-height:96px}
#team-chat-form textarea::-webkit-scrollbar,#direct-chat-form textarea::-webkit-scrollbar{display:none;width:0;height:0}

/* Decode the compact login background before revealing the complete screen. */
.auth-shell.auth-background-ready{background:#263b4c url('/login-mountain.webp') center/cover no-repeat fixed}
.auth-loading>.auth-clean-header,.auth-loading>.auth-main,.auth-loading>.auth-clean-footer{visibility:hidden}
.auth-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#e4eaf2;font-size:13px;letter-spacing:-.2px}
.auth-loader-spinner{width:28px;height:28px;border:2px solid #ffffff30;border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(max-width:1000px){.auth-shell.auth-background-ready{background-position:82% center}}
@media(prefers-reduced-motion:reduce){.auth-loader-spinner{animation:none}}
.auth-division{border:0;padding:0;margin:0;min-width:0}
.auth-instructor-choice{display:block;margin:0 0 18px;cursor:pointer}
.auth-instructor-choice input{position:absolute;opacity:0;width:1px;height:1px}
.auth-instructor-choice span{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:10px 14px;border:1px solid #ffffff55;border-radius:7px;background:#ffffff14;color:#f3f6fb;font-size:13px;font-weight:600}
.auth-instructor-choice span:after{content:'○';font-size:16px}
.auth-instructor-choice input:checked+span{background:#fff;color:#255aac;border-color:#fff}
.auth-instructor-choice input:checked+span:after{content:'✓'}
.auth-instructor-choice input:focus-visible+span{outline:2px solid #a9cbff;outline-offset:3px}
.auth-instructor-choice+fieldset input:disabled+span{cursor:default;opacity:.55}
.auth-division legend{font-size:12px;font-weight:500;margin-bottom:9px;color:#f3f6fb}
.auth-division-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.auth-division-grid label{position:relative;cursor:pointer}
.auth-division-grid input{position:absolute;opacity:0;width:1px;height:1px}
.auth-division-grid span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;border:1px solid #ffffff55;border-radius:7px;background:#ffffff14;font-size:13px;word-break:keep-all}
.auth-division-grid input:checked+span{background:#fff;color:#255aac;border-color:#fff;font-weight:600}
.auth-division-grid input:focus-visible+span{outline:2px solid #a9cbff;outline-offset:3px}
.approve-form input[name="job_title"]{min-width:0;width:100%;font-size:12px}

/* Tutorial uses a copy of the current workspace with isolated sample data. */
.tutorial-root{position:fixed;inset:0;z-index:10000;background:var(--color-paper);overflow:auto}
.tutorial-root>.shell{height:100dvh}
.tutorial-ring{position:fixed;z-index:10002;pointer-events:none;border:2px solid var(--color-brand);border-radius:12px;box-shadow:0 0 0 9999px #17213c88;transition:top .18s,left .18s,width .18s,height .18s}
.tutorial-coach{position:fixed;z-index:10004;padding:18px;background:white;border-radius:14px;box-shadow:0 12px 48px #17213c30;color:var(--color-ink)}
.tutorial-coach-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-brand)}
.tutorial-coach h3{margin:8px 0;font-size:17px}
.tutorial-coach p{font-size:13px;line-height:1.7;word-break:keep-all}
.tutorial-safety{display:block;margin-top:14px;color:var(--color-muted);font-size:11px}
.tutorial-coach>.btn{margin-top:14px}
.tutorial-target{outline:2px solid var(--color-brand);outline-offset:4px}
.tutorial-dialog{position:fixed;inset:0;display:grid;place-items:center;background:#17213c44;z-index:10001;padding:20px}
.tutorial-form-card{display:grid;gap:20px;width:min(460px,100%);max-height:85dvh;overflow:auto;padding:28px;background:white;border-radius:14px}
.tutorial-person-task{padding:18px;display:grid;gap:14px;font-size:13px;overflow-wrap:anywhere}
.tutorial-notice{margin:12px;background:var(--color-health-soft)}
.tutorial-success,.tutorial-message{padding:16px;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.tutorial-message.sent{background:var(--color-health-soft);border-radius:12px}
.tutorial-root .backlog-card{padding:18px;display:grid;gap:16px}
@media(prefers-reduced-motion:reduce){.tutorial-ring{transition:none}}
.tutorial-composer{padding:10px;background:var(--color-paper);border-radius:9px;flex-shrink:0}
.tutorial-composer textarea{display:block;width:100%;height:48px;min-height:48px;resize:none;border:0;padding:2px;background:transparent;font:inherit;font-size:13px;line-height:1.6}
.boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;font-size:20px}
.boot span{margin:0;font-size:14px;font-weight:400}
.boot .auth-loader-spinner{border-color:var(--color-line);border-top-color:var(--color-brand)}

.task-date-edit{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:4px 0;border-radius:4px;font-size:12px;line-height:20px}.task-date-edit:hover{background:var(--color-health-soft)}.task-date-edit svg{width:13px;height:13px;color:var(--color-muted)}

.detail-heading-grid .detail-meta>.detail-date-row{align-items:center}.detail-date-row>.detail-label{line-height:20px}
.work-date-field{min-width:0}.work-date-picker{font-weight:400;min-width:0}
.work-date-trigger{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;min-height:40px;padding:10px 12px;border:1px solid var(--color-line);border-radius:7px;background:var(--color-paper);font-size:12px}
.work-date-trigger::-webkit-details-marker{display:none}.work-date-trigger svg{width:15px;height:15px;color:var(--color-muted)}
.work-date-trigger.active{border-color:var(--color-brand)}
.work-date-calendar{margin-top:8px;padding:10px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface)}
.work-date-heading,.work-date-footer{display:flex;justify-content:space-between;align-items:center;gap:4px}.work-date-heading strong{font-size:12px;font-weight:500}.work-date-heading button{width:28px;height:28px;border:0;border-radius:5px;background:var(--color-paper);font-size:18px}
.work-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:8px 0;text-align:center}.work-date-grid>span{font-size:10px;color:var(--color-muted);padding:5px 0}.work-date-grid button{padding:0;height:28px;border:0;border-radius:5px;background:transparent;font-size:11px}.work-date-grid button:hover:not(:disabled){background:var(--color-health-soft)}.work-date-grid button[aria-current]{color:var(--color-brand);font-weight:600}.work-date-grid button[aria-pressed=true]{background:var(--color-brand);color:var(--color-surface)}.work-date-grid button:disabled{opacity:.25;cursor:default}
.work-date-footer{border-top:1px solid var(--color-line);padding-top:6px}.work-date-footer button{border:0;background:transparent;color:var(--color-muted);font-size:11px;padding:5px}.work-date-footer button:last-child{color:var(--color-brand)}
.work-date-range button:focus-visible,.work-date-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}


.work-date-range>.fields-two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.work-date-trigger{width:100%;text-align:left}.work-date-trigger.active{border-color:var(--color-brand)}.work-date-calendar[hidden]{display:none}.work-date-hint{font-size:11px;color:var(--color-muted);margin:0 0 10px}.work-date-grid button.in-range{background:var(--color-health-soft)}

.completed-tasks{margin-top:16px;border-top:1px solid var(--color-line);padding-top:12px;flex-shrink:0}
.completed-tasks>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:10px 8px;color:var(--color-muted);font-size:12px;border-radius:6px;background:var(--color-paper)}
.completed-tasks>summary::-webkit-details-marker{display:none}.completed-tasks>summary b{font-size:11px;font-weight:400;margin-left:6px}.completed-tasks>summary svg{width:14px;height:14px;transition:transform .15s}.completed-tasks[open]>summary svg{transform:rotate(180deg)}
.completed-task-list{display:flex;flex-direction:column;gap:6px;padding-top:8px}.completed-task{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;border:1px solid var(--color-line);border-radius:7px;background:var(--color-paper);color:var(--color-muted);font-size:12px}.completed-task>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.completed-task>small{font-size:10px;flex-shrink:0}.completed-task:hover{color:var(--color-ink);border-color:var(--color-strong)}.completed-task-list>p{font-size:11px;color:var(--color-muted);padding:12px 8px}

/* Per-message acknowledgements reuse the same member portraits as small cards. */
.chat-read-receipt{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:7px;min-height:20px}
.chat-read-receipt:empty{display:none}
.chat-read-label{font-size:10px;line-height:20px;color:var(--color-muted);margin-right:3px}
.chat-reader{display:inline-flex;align-items:center}
.chat-reader .avatar{width:20px;height:20px;min-width:20px;border-radius:50%;font-size:8px;overflow:hidden}
.chat-reader .avatar img{width:100%;height:100%;object-fit:cover}
.chat-message-meta{display:flex;align-items:center;gap:8px;margin-top:6px;max-width:100%;flex-wrap:wrap}
.direct-message .chat-message-meta small{margin-top:0}
.chat-message-meta>.chat-read-receipt,.team-message-author>.chat-read-receipt{margin-top:0}
.team-message [data-team-message-trigger],.direct-message [data-direct-message-trigger]{cursor:pointer}
.team-message [data-team-message-trigger]:focus-visible,.direct-message [data-direct-message-trigger]:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
.chat-delete-toggle{border:0;background:transparent;color:#6b778c;font:inherit;font-size:11px;cursor:pointer;padding:2px 4px}
.chat-delete-toggle:hover,.chat-delete-toggle:focus-visible{color:#b34a3e;text-decoration:underline}
.chat-delete-prompt{display:flex;align-items:center;gap:8px;margin:8px 0 12px;padding:8px 10px;border:1px solid #e0e5ed;border-radius:8px;background:#fff;font-size:11px;color:#4b5870}
.chat-delete-prompt[hidden]{display:none}
.chat-delete-prompt button{border:0;border-radius:5px;background:#f1f3f7;color:#4b5870;font:inherit;cursor:pointer;padding:5px 8px}
.chat-delete-prompt [data-confirm-chat-delete]{background:#f9eae7;color:#a43b31}
.chat-delete-prompt button:hover{filter:brightness(.97)}
.direct-message.mine .chat-message-meta>.chat-read-receipt,.team-message.mine .team-message-author>.chat-read-receipt{order:-1}
.team-message-author{max-width:100%;flex-wrap:wrap}

.inbox-switch [data-action="message-inbox"]{position:relative}
.message-inbox-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--color-danger);pointer-events:none}
.message-inbox-dot[hidden]{display:none}
.schedule-switch [data-action="agenda"]{position:relative}.schedule-switch [data-agenda-tab-dot]{top:3px;right:3px}.agenda-notice-bubble{cursor:pointer}
.report-view-switch{display:flex;gap:6px;padding:0 0 12px}
.report-view-switch button{flex:1;padding:9px 10px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);color:var(--color-muted);font:inherit;font-size:12px;cursor:pointer}
.report-view-switch button[aria-pressed="true"]{border-color:var(--color-health);background:var(--color-health-soft);color:var(--color-ink);font-weight:700}
.completion-report-card{width:100%;display:grid;gap:5px;text-align:left;padding:14px 16px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);color:var(--color-ink);margin-bottom:9px}
.backlog-tabs{display:flex;overflow-x:auto;scrollbar-width:thin}
.backlog-tabs button{flex:0 0 auto;padding-inline:9px}
.report-alert-count{position:absolute;top:-9px;right:-8px;min-width:17px;height:17px;padding:0 3px;display:grid;place-items:center;border-radius:9px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700}
.completion-report-card:hover,.completion-report-card:focus-visible{border-color:var(--color-health)}
.completion-report-card.is-unread{border-left:3px solid var(--color-health);background:var(--color-health-soft)}
.completion-report-title{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.completion-report-task,.completion-report-card small{font-size:11px;color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.completion-report-detail{display:grid;gap:18px;margin-top:18px;max-width:100%;overflow-wrap:anywhere}
.completion-report-text{white-space:pre-wrap;line-height:1.65}
.completion-report-detail a,.work-record-body a{color:var(--color-health);overflow-wrap:anywhere}
.completion-report-photo{display:grid;place-items:center;margin-top:16px;max-height:70vh;overflow:auto}
.completion-report-photo img{max-width:100%;max-height:68vh;object-fit:contain}
.work-record-body{white-space:pre-wrap}
.work-record-body p{margin:8px 0 12px}
.work-record-body .btn{margin-top:10px}
.work-record-edit label{display:grid;gap:6px;margin-bottom:12px;font-size:12px}
.work-record-edit input{width:100%;padding:9px 11px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink)}
