:root{--ink:#243d33;--body:#48634e;--muted:#5d7d64;--link:#3a5040;--border:#c8d8cc;--border-soft:#e4ebe6;--sage-50:#f4f7f5;--green:#4a9a3c;--blue:#2868b0;--gray-fill:#eef1ef;--gray-icon:#a9b5ad;--disabled-bg:#c8d8cc;--disabled-fg:#5d7d64;color:var(--ink);font-family:Outfit,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--sage-50);-webkit-font-smoothing:antialiased}button,select,input{font:inherit;color:inherit}a{color:inherit}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--border-soft);background:#fff;align-items:center;gap:16px;height:74px;padding:0 40px;display:flex}.brand{align-items:center;gap:16px;font-size:16px;font-weight:600;display:flex}.brand img{object-fit:contain;width:28px;height:30px}.spacer{flex:1}.org-select{appearance:none;border:1px solid var(--border);cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%233a5040'/%3E%3C/svg%3E") right 14px center no-repeat;border-radius:8px;padding:9px 36px 9px 16px;font-size:14px;font-weight:500}.cycle-label{color:var(--muted);font-size:14px}.avatar{background:var(--border);width:34px;height:34px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.menu{border:1px solid var(--border-soft);z-index:20;background:#fff;border-radius:12px;min-width:190px;padding:8px;position:absolute;top:66px;right:40px;box-shadow:0 12px 32px #243d3324}.menu .who{color:var(--muted);padding:8px 12px;font-size:13px}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:9px 12px;font-size:14px;display:block}.menu button:hover{background:var(--sage-50)}.hero{border-bottom:1px solid var(--border-soft);background:#fff;padding:40px 48px 36px}.hero h1{letter-spacing:-.2px;margin:0;font-size:28px;font-weight:600}.hero .sub{color:var(--body);margin:8px 0 0;font-size:15px}.legend{color:var(--body);gap:24px;margin:28px 0;font-size:13px;display:flex}.legend span{align-items:center;gap:8px;display:inline-flex}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.dot.complete{background:var(--green)}.dot.attention{background:var(--blue)}.dot.progress{border:1.6px solid var(--blue);background:#fff}.dot.none{border:1.6px solid var(--gray-icon);background:#fff}.tracks{gap:16px;margin-top:8px;display:grid}.track{border:1px solid var(--border-soft);background:#fff;border-radius:16px;padding:16px 24px 14px}.track-head{flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:14px;display:flex}.track-head b{color:var(--ink);letter-spacing:.2px;font-size:13.5px;font-weight:600}.track-head span{color:var(--muted);font-size:12.5px}.timeline{align-items:flex-start;padding:0 0 4px;display:flex;overflow-x:auto}.node{cursor:pointer;text-align:center;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;width:176px;padding:0;display:flex}.node:focus-visible .badge-wrap{outline-offset:4px;outline:3px solid #2868b059}.node .title{color:var(--ink);margin-top:12px;font-size:14px;font-weight:600}.node .subtitle{color:var(--body);min-height:15px;margin-top:8px;font-size:12px}.node.in-progress .subtitle,.node.needs-attention .subtitle{color:var(--blue);font-weight:500}.node.not-started .title,.node.not-started .subtitle{color:#8fa496;font-weight:500}.node.not-started .title{color:var(--muted)}.connector{background:var(--border);flex:none;width:32px;height:2px;margin-top:31px}.connector.done{background:var(--green)}.badge-wrap{width:64px;height:64px;position:relative}.badge{border-radius:50%;place-items:center;width:64px;height:64px;display:grid;position:relative}.badge.complete{background:var(--green);color:#fff}.badge.not-started{background:var(--gray-fill);border:1.6px dashed var(--border);color:var(--gray-icon)}.badge.needs-attention{border:1.6px solid var(--border);color:var(--blue);background:#fff}.badge.in-progress{background:conic-gradient(var(--blue) calc(var(--p,.5) * 360deg), var(--border) 0);color:var(--link)}.badge.in-progress:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:4px}.badge.in-progress svg{position:relative}.notif{background:var(--blue);border:2.5px solid #fff;border-radius:50%;width:15px;height:15px;position:absolute;top:1px;right:1px}.below{flex:1;padding:28px 48px 60px}.activity h2{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;margin:0 0 12px;font-size:14px;font-weight:600}.activity ul{gap:8px;max-width:640px;margin:0;padding:0;list-style:none;display:grid}.activity li{border:1px solid var(--border-soft);color:var(--body);background:#fff;border-radius:12px;justify-content:space-between;gap:16px;padding:12px 16px;font-size:14px;display:flex}.activity li b{color:var(--ink);font-weight:600}.activity .when{color:var(--muted);white-space:nowrap;font-size:12px}.activity .empty{color:var(--muted);font-size:14px}.scrim{z-index:50;background:#243d3375;place-items:center;padding:24px;animation:.15s fade;display:grid;position:fixed;inset:0;overflow-y:auto}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:20px;width:480px;max-width:100%;padding:28px 32px;animation:.18s rise;box-shadow:0 24px 60px #243d3347}.modal.narrow{width:440px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-icon{border:1.5px solid var(--border);width:48px;height:48px;color:var(--link);background:#fff;border-radius:14px;place-items:center;display:grid}.modal-icon.back{cursor:pointer}.modal-icon.back:hover{background:var(--sage-50)}.close{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:18px}.close:hover{background:var(--sage-50)}.modal h2{margin:0 0 12px;font-size:20px;font-weight:600}.modal p{color:var(--body);margin:0 0 18px;font-size:13.5px;line-height:1.55}.modal .note{color:var(--muted);text-align:center;margin:14px 0 0;font-size:12px;line-height:1.5}.modal .error{color:#b3261e;margin:12px 0 0;font-size:13px}.modal .done-msg{color:#2f6b25;background:#eaf4e6;border-radius:12px;margin:0 0 16px;padding:12px 14px;font-size:13px}.card{background:var(--sage-50);border-radius:14px;margin-bottom:18px;padding:4px 18px}.row{justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:13.5px;display:flex}.row+.row{border-top:1px solid var(--border-soft)}.row .l{align-items:center;gap:10px;font-weight:500;display:flex}.row .v{color:var(--body)}.row .v.strong{color:var(--ink);font-weight:600}.row .v.green{color:var(--green);font-weight:600}.row .v.blue{color:var(--blue);font-weight:600}.section-label{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);justify-content:space-between;margin:0 0 8px;font-size:11.5px;font-weight:600;display:flex}.section-label .tag-ok{color:var(--green);letter-spacing:0;text-transform:none;font-size:12px;font-weight:500}.section-label .tag-attn{color:var(--blue);letter-spacing:0;text-transform:none;font-size:12px;font-weight:500}.progress{margin:4px 0 18px}.progress .meta{color:var(--body);justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.progress .meta b{color:var(--blue);font-weight:600}.bar{background:var(--border);border-radius:99px;height:8px;overflow:hidden}.bar>i{background:var(--blue);border-radius:99px;height:100%;display:block}.quiet-link{color:var(--link);text-underline-offset:3px;font-size:13.5px;font-weight:500;text-decoration:underline;display:inline-block}.btn-row{gap:12px;margin-top:4px;display:flex}.btn{cursor:pointer;border:1.5px solid var(--border);height:46px;color:var(--link);background:#fff;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--sage-50)}.btn.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.btn.primary:hover{background:#3f8733}.btn.review{color:var(--blue)}.btn.armed{background:#b3261e;border-color:#b3261e}.btn.armed:hover{background:#9c2019}.btn:disabled,.btn.primary:disabled{background:var(--disabled-bg);border-color:var(--disabled-bg);color:var(--disabled-fg);cursor:not-allowed}.pending-card{background:var(--sage-50);border-radius:14px;gap:16px;margin-bottom:18px;padding:18px;display:grid}.pending-card h3{align-items:center;gap:10px;margin:0 0 10px;font-size:14px;font-weight:500;display:flex}.pending-card ul{border-top:1px solid var(--border-soft);color:var(--body);gap:8px;margin:0 0 12px;padding:12px 0 0;font-size:13px;list-style:none;display:grid}.pending-card ul li:before{content:"•";margin-right:8px}.pending-card .detail{color:var(--body);margin:0 0 10px 20px;font-size:13px}.pending-block+.pending-block{border-top:1px solid var(--border-soft);padding-top:16px}.auth{background:var(--sage-50);place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{background:#fff;border-radius:20px;width:400px;max-width:100%;padding:36px 32px 32px;box-shadow:0 16px 48px #243d331f}.auth-card img{object-fit:contain;width:44px;height:47px;margin:0 auto 18px;display:block}.auth-card h1{text-align:center;margin:0 0 6px;font-size:22px;font-weight:600}.auth-card .sub{text-align:center;color:var(--body);margin:0 0 24px;font-size:14px;line-height:1.5}.field{gap:6px;margin-bottom:16px;display:grid}.field label{color:var(--link);font-size:13px;font-weight:500}.field input,.field select{border:1.5px solid var(--border);background:#fff;border-radius:10px;outline:none;padding:11px 14px;font-size:14.5px}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2868b024}.auth-card .btn{flex:none;width:100%;margin-top:4px}.auth-card .error{color:#b3261e;text-align:center;margin:0 0 12px;font-size:13px}.hint{color:var(--muted);text-align:center;margin:16px 0 0;font-size:12px;line-height:1.5}.auth-card .code{letter-spacing:.35em;text-align:center;font-size:20px}.auth-card .links{justify-content:center;gap:16px;margin:14px 0 0;display:flex}.text-link{color:var(--link);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.dev{color:#e8efe9;z-index:40;background:#1f2b26;border-radius:14px;gap:8px;width:250px;padding:12px 14px;font-size:12px;display:grid;position:fixed;bottom:16px;left:16px;box-shadow:0 10px 30px #0000004d}.dev strong{letter-spacing:1px;text-transform:uppercase;color:#9fb7a6;font-size:11px}.dev select,.dev button{color:#e8efe9;cursor:pointer;background:#2a3a33;border:1px solid #3d5247;border-radius:8px;padding:7px 9px;font-size:12px}.dev button:hover{background:#34493f}.dev .small{color:#9fb7a6;line-height:1.4}@media (width<=900px){.topbar,.hero,.below{padding-left:20px;padding-right:20px}.menu{right:20px}}.live-banner{color:#1f4f8c;background:#e8f0fa;border-bottom:1px solid #c9dcf2;padding:10px 48px;font-size:13.5px}@media (width<=900px){.live-banner{padding-left:20px;padding-right:20px}}.roster-check{gap:8px;margin:0 0 16px;display:grid}.roster-check details{background:var(--sage-50);color:var(--body);border-radius:12px;padding:10px 14px;font-size:13px}.roster-check summary{cursor:pointer;color:var(--ink);justify-content:space-between;align-items:center;gap:12px;font-weight:500;list-style-position:inside;display:flex}.roster-check summary b{color:var(--blue);font-weight:600}.roster-check ul{border-top:1px solid var(--border-soft);gap:4px;margin:10px 0 0;padding:10px 0 0 18px;display:grid}.roster-check li span{color:var(--muted)}.roster-check p{color:var(--muted);margin:10px 0 0;font-size:12.5px;line-height:1.5}
