.alert.ok{background:color-mix(in oklab,var(--success),transparent 92%);border-color:color-mix(in oklab,var(--success),black 20%);color:var(--success)}.btn{align-items:center;background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;display:inline-flex;font-weight:600;height:44px;justify-content:center;padding:0 14px}.btn.primary{background:linear-gradient(180deg,color-mix(in oklab,var(--ring),transparent 0%),color-mix(in oklab,var(--ring),black 18%));border-color:transparent;color:#fff}.btn.primary[disabled]{cursor:not-allowed;opacity:.7}.btn:hover{filter:brightness(1.02)}.card{background:linear-gradient(180deg,color-mix(in oklab,var(--surface),white 2%),var(--surface));border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px #02061773;color:var(--text);max-width:440px;padding:28px;width:100%}.checkbox{align-items:center;color:var(--text);display:inline-flex;font-size:.95rem;gap:8px}.divider{align-items:center;color:var(--muted);display:grid;font-size:.875rem;gap:10px;grid-template-columns:1fr auto 1fr;margin:6px 0}.divider:before,.divider:after{background:var(--border);content:"";height:1px}.field{display:grid;gap:6px}.header{align-items:center;display:flex;gap:12px;margin-bottom:6px}.logo{background:linear-gradient(180deg,color-mix(in oklab,var(--ring),transparent 0%),color-mix(in oklab,var(--ring),black 18%));border-radius:10px;color:#fff;display:grid;font-weight:700;height:36px;letter-spacing:.5px;place-items:center;width:36px}.meta{color:var(--muted);font-size:.875rem;margin-top:14px;text-align:center}.meta a{text-decoration:underline;text-underline-offset:3px}.password-wrap{position:relative}.providers{display:grid;gap:10px;margin-top:2px}.row{align-items:center;display:flex;gap:12px}.row.between{justify-content:space-between}.subtitle{color:var(--muted);font-size:.9375rem;margin:0 0 16px}.title{font-size:1.25rem;font-weight:700;margin:0}.toggle-visibility{background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer;font-size:.9rem;inset-inline-end:8px;padding:6px 10px;position:absolute;top:50%;transform:translateY(-50%)}.toggle-visibility:focus{box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";margin:0}form{display:grid;gap:14px}html,body,#root{height:100%}input:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%)}input[type=text],input[type=password],input[type=email]{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:12px}label{font-size:.95rem;font-weight:600}.alert.error{background:color-mix(in oklab,var(--danger),transparent 90%);border-color:color-mix(in oklab,var(--danger),black 15%);color:var(--danger)}.alert.ok{background:color-mix(in oklab,var(--success),transparent 92%);border-color:color-mix(in oklab,var(--success),black 15%);color:var(--success)}.btn.primary{background:linear-gradient(180deg,color-mix(in oklab,var(--ring),transparent 0%),color-mix(in oklab,var(--ring),black 18%));border:none;border-radius:12px;color:#fff;cursor:pointer;font-weight:700;padding:12px 14px;width:100%}.btn.primary:focus{box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.page .wrap{background:transparent;border:0;border-radius:0;box-shadow:none;max-width:440px;padding:0;width:100%}.register-card{background:linear-gradient(180deg,color-mix(in oklab,var(--surface),white 2%),var(--surface));border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px #02061773;color:var(--text);max-width:440px;padding:28px;width:100%}.register-divider{align-items:center;color:var(--muted);display:grid;font-size:.9rem;gap:10px;grid-template-columns:1fr auto 1fr}.register-divider:before,.register-divider:after{background:var(--border);content:"";height:1px}.register-field{display:grid;gap:6px}.register-grid{display:grid;gap:12px;grid-template-columns:1fr}.register-header{align-items:center;display:flex;gap:12px;margin-bottom:8px}.register-hint{color:var(--muted);font-size:.9rem;margin:0}.register-input{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:1rem;padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;width:100%}.register-input::placeholder{color:color-mix(in oklab,var(--muted),transparent 20%)}.register-input:focus{border-color:color-mix(in oklab,var(--ring),black 10%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.register-logo{background:linear-gradient(135deg,color-mix(in oklab,var(--ring),transparent 0%),color-mix(in oklab,var(--ring),black 18%));border-radius:10px;color:#fff;display:grid;font-weight:700;height:36px;letter-spacing:.5px;place-items:center;width:36px}.register-providers{display:grid;gap:10px}.register-toggle{background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer;font-size:.9rem;padding:6px 10px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.register-toggle:focus{box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}@media (min-width: 520px){.register-grid{grid-template-columns:1fr}}.accordion{display:grid;gap:8px}.accordion details{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px}.accordion summary{border-radius:12px;cursor:pointer;font-weight:600;list-style:none;padding:10px 12px}.calendar-layout{display:grid;gap:16px;grid-template-columns:272px 1fr;min-height:70vh}.calendar-sidebar{display:grid;gap:16px;grid-auto-rows:max-content}.calendar-week{border:1px solid var(--border);border-radius:12px;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.day-col-body{background:linear-gradient(to bottom,color-mix(in oklab,var(--grid),transparent 65%) 2px,transparent 2px) 0 0 / 100% 48px;border-left:2px solid var(--grid);display:grid;grid-auto-rows:48px;min-height:1152px;position:relative}.day-col-body .slot{cursor:pointer}.day-col-body .slot:hover{background:color-mix(in oklab,var(--ring),transparent 95%)}.event-block{background:color-mix(in oklab,var(--ring),transparent 85%);border-radius:10px;display:grid;font-size:.9rem;gap:2px;left:4px;outline:2px solid color-mix(in oklab,var(--ring),transparent 30%);overflow:hidden;padding:6px 8px;position:absolute;right:4px}.event-block .meta{color:var(--muted);font-size:.8rem}.event-block .title{font-weight:600;line-height:1.2}.mini-cal{-webkit-user-select:none;user-select:none}.mini-cal .day{border:1px solid transparent;border-radius:8px;cursor:pointer;font-size:12px;padding:6px 0;text-align:center}.mini-cal .day.out{color:color-mix(in oklab,var(--muted),transparent 15%)}.mini-cal .day.selected{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 30%)}.mini-cal .day.today{outline:2px solid color-mix(in oklab,var(--ring),transparent 30%)}.mini-cal .day:hover{background:color-mix(in oklab,var(--surface),white 6%);border-color:var(--border)}.mini-cal .dow{color:var(--muted);font-size:.8rem;padding:6px 0;text-align:center}.mini-cal .grid{display:grid;gap:0px;grid-template-columns:repeat(7,1fr)}.mini-cal .nav{display:inline-flex;gap:6px}.mini-cal .nav button{background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;padding:6px 8px}.mini-cal .title-btn{background:transparent;border:1px solid var(--border);border-radius:10px;cursor:pointer;font-weight:600;padding:6px 10px}.mini-cal header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 60px #02061773;color:var(--text);max-height:86vh;overflow:auto;padding:16px;width:min(680px,92vw)}.modal-backdrop{background:#0206179e;display:grid;top:0;right:0;bottom:0;left:0;place-items:center;position:fixed;z-index:1000}.modal-body{display:grid;gap:10px}.modal-footer{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;margin-bottom:10px;padding-bottom:8px}.month-year-picker{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:8px}.month-year-picker select{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:8px 10px}.now-line{border-top:2px solid color-mix(in oklab,var(--ring),black 10%);height:0;left:64px;pointer-events:none;position:absolute;right:0}.panel{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;padding:12px}.panel .field{display:grid;gap:6px}.panel .hint{color:var(--muted);font-size:.85rem}.panel h3{font-size:1rem;margin:0 0 8px}.panel input[type=text],.panel input[type=date],.panel input[type=time]{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:.95rem;padding:10px 12px}.time-ruler{background:color-mix(in oklab,var(--surface),white 2%);border-right:1px solid var(--border);color:var(--muted);display:grid;grid-auto-rows:48px}.time-ruler .tick{align-items:flex-start;display:flex;font-size:.8rem;padding-inline:6px}.week-grid{display:grid;grid-template-columns:64px repeat(7,1fr);position:relative}.week-grid.scrollable{max-height:576px;overflow-y:auto;scrollbar-color:#9f9f9f var(--surface);scrollbar-gutter:stable;scrollbar-width:thin}.week-header{background:color-mix(in oklab,var(--surface),white 3%);border-bottom:1px solid var(--border);display:grid;grid-template-columns:64px repeat(7,1fr);width:99%}.week-header .day-col{border-left:1px solid var(--border);font-weight:600;padding:10px 8px;text-align:center}.week-header .day-col.today{background:color-mix(in oklab,var(--ring),transparent 92%)}.week-header .time-col{color:var(--muted);font-size:.85rem;padding:8px}.wrap-xl{background:var(--surface);border:1px solid var(--border);border-radius:16px;max-width:1280px;padding:16px;width:100%}@media (max-width: 1000px){.calendar-layout{grid-template-columns:1fr}}.av-badge{border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.75rem;margin-right:6px;padding:2px 8px}.av-badge.clean{background:color-mix(in oklab,var(--success),transparent 88%);border-color:color-mix(in oklab,var(--success),black 20%);color:var(--success)}.av-badge.error,.av-badge.unknown{background:color-mix(in oklab,var(--muted),transparent 92%);color:var(--muted)}.av-badge.infected{background:color-mix(in oklab,var(--danger),transparent 90%);border-color:color-mix(in oklab,var(--danger),black 25%);color:var(--danger)}.av-badge.pending{background:color-mix(in oklab,var(--warning),transparent 90%);border-color:color-mix(in oklab,var(--warning),black 25%);color:var(--warning)}.files-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.files-head h1{margin:0}.files-layout{display:grid;gap:16px;grid-template-columns:minmax(220px,256px) 1fr}.files-table tbody td,.versions-table tbody td{border-top:1px solid var(--border)}.files-table th,.files-table td,.versions-table th,.versions-table td{padding:6px 8px;text-align:left}.files-table,.versions-table{border-collapse:collapse;width:100%}.files-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.name-cell .sub{color:var(--muted);font-size:.9rem;margin-top:2px}.preview-cell img{display:block;height:100%;object-fit:cover;width:100%}.preview-cell,.preview-skel{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:6px;display:inline-block;height:48px;overflow:hidden;vertical-align:middle;width:72px}.upload-actions{align-items:center;display:flex;gap:10px}.upload-form{display:grid;gap:12px}.versions-wrap{display:grid;gap:10px}input[type=file].btn{align-items:center;background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;display:inline-flex;gap:8px;padding:13px 12px}input[type=file].btn.primary{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%);font-weight:600}@media (max-width: 1000px){.files-layout{grid-template-columns:1fr}}.add-task-form{display:grid;gap:8px}.add-task-notes{resize:vertical;width:100%}.btn-compact{padding:4px 8px}.count-pill{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.85rem;padding:2px 8px}.create-actions{align-items:center;display:flex;gap:10px}.create-form{display:grid;gap:12px}.expand-wrap{background:color-mix(in oklab,var(--surface),white 2%);border-top:1px dashed var(--border);margin-left:24px;padding:8px 12px}.inline-actions,.inline-edit{display:inline-flex;flex-wrap:wrap;gap:8px}.modal #task-summary{min-height:110px;resize:vertical}.modal #task-title,.modal #task-summary{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;font-size:.95rem;padding:10px 12px}.modal #task-title::placeholder,.modal #task-summary::placeholder{color:color-mix(in oklab,var(--muted),transparent 20%)}.modal #task-title:focus,.modal #task-summary:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.modal input[type=datetime-local],.panel input[type=datetime-local],.tasks-table input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;line-height:1.2;padding:10px 12px}.modal input[type=datetime-local]:focus,.panel input[type=datetime-local]:focus,.tasks-table input[type=datetime-local] :focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.name-cell{align-items:baseline;display:inline-flex;gap:8px}.name-cell .meta{color:var(--muted);font-size:.9rem}.panel input[type=datetime-local]{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:.95rem;padding:10px 12px}.panel input[type=datetime-local]:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.projects-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.projects-head h1{margin:0}.projects-layout{display:grid;gap:16px;grid-template-columns:minmax(220px,256px) 1fr}.projects-search{min-width:200px}.projects-table{border-collapse:collapse;width:100%}.projects-table tbody td{border-top:1px solid var(--border)}.projects-table th,.projects-table td{padding:6px 8px;text-align:left}.projects-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.row-clickable{cursor:pointer}.task-status{color:var(--muted);font-size:.9rem}.tasks-table{border-collapse:collapse;width:100%}.tasks-table input[type=datetime-local]{min-width:220px}.tasks-table tbody td{border-top:1px solid var(--border)}.tasks-table th,.tasks-table td{padding:6px 8px;text-align:left}@media (max-width: 1000px){.projects-layout{grid-template-columns:1fr}}.bubble{border:1px solid var(--border);border-radius:12px;display:grid;gap:4px;max-width:80%;padding:10px 12px}.bubble .role{color:var(--muted);font-size:.85rem;letter-spacing:.02em;margin-bottom:4px;text-transform:uppercase}.bubble.assistant{background:color-mix(in oklab,var(--surface),white 6%);border-top-left-radius:4px;border-top-right-radius:12px;justify-self:start}.bubble.user{background:color-mix(in oklab,var(--ring),transparent 85%);border-top-left-radius:12px;border-top-right-radius:4px;justify-self:end}.chat-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.chat-head h1{margin:0}.chat-meta{align-items:center;display:inline-flex;gap:8px}.chat-pill{border:1px solid var(--border);border-radius:8px;padding:2px 8px}.composer{display:grid;gap:8px;grid-template-columns:1fr auto;margin-top:10px}.composer textarea{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;padding:12px;resize:vertical}.messages-actions{display:flex;gap:8px}.messages-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.messages-list{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;max-height:440px;min-height:260px;overflow-y:auto;padding:8px}.session-btn{text-align:left;width:100%}.session-btn[aria-current=true]{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 30%)}.session-id{color:var(--muted)}.session-row{display:flex;gap:8px;justify-content:space-between}.sessions{display:grid;gap:8px}.sessions-actions{display:flex;gap:8px}.sessions-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.sessions-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.stream-actions{display:flex;gap:8px;margin-bottom:8px}.stream-box{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:10px;min-height:64px;padding:8px}.stream-head{margin-top:0}.stream-line .name{font-weight:600;margin-right:6px}.stream-line.error{color:var(--danger)}.stream-log{display:grid;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;gap:6px}.stream-session-hint{margin-bottom:8px}.badge{border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.75rem;margin-left:6px;padding:2px 8px}.badge.danger{background:color-mix(in oklab,var(--danger),transparent 90%);border-color:color-mix(in oklab,var(--danger),black 25%);color:var(--danger)}.badge.muted{background:color-mix(in oklab,var(--muted),transparent 92%);color:var(--muted)}.badge.success{background:color-mix(in oklab,var(--success),transparent 88%);border-color:color-mix(in oklab,var(--success),black 20%);color:var(--success)}.badge.warning{background:color-mix(in oklab,var(--warning),transparent 90%);border-color:color-mix(in oklab,var(--warning),black 25%);color:var(--warning)}.controls input[type=number]{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:10px 12px}.file-row{display:grid;gap:12px;grid-template-columns:auto 1fr}.file-thumb{display:flex;align-items:center;gap:8px;min-width:80px;flex-direction:column}.grid-3{grid-template-columns:repeat(3,1fr)}.preview-box img{display:block;height:100%;object-fit:cover;width:100%}.preview-box,.preview-skel{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:6px;display:inline-block;overflow:hidden}.stats{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.controls .control.checkbox input[type=checkbox]{height:18px;width:18px}.controls .hint{font-size:.85rem}.controls select{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:.95rem;padding:10px 12px}.controls select:disabled,.controls input[type=checkbox]:disabled+span{cursor:not-allowed;opacity:.6}.settings-status{margin-bottom:8px}.card-tools,.tools-inline{display:flex;flex-wrap:wrap;gap:8px}.code-block{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;margin:0;max-height:360px;overflow:auto;padding:10px 12px}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:16px}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-size:.95rem;margin-bottom:-2px;padding:10px 16px;transition:all .12s ease}.tab:hover{color:var(--text)}.tab.active{border-bottom-color:var(--ring);color:var(--text);font-weight:600}.tab-content{padding-top:8px}.segment-card{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;padding:14px 16px;transition:border-color .12s ease}.segment-card:hover{border-color:color-mix(in oklab,var(--ring),transparent 50%)}.segment-header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:12px}.segment-name{font-weight:600;font-size:1rem}.trend-icon{font-size:1.4rem;line-height:1}.trend-icon.up{color:var(--success)}.trend-icon.down{color:var(--danger)}.trend-icon.flat{color:var(--muted)}.segment-body{display:flex;gap:16px}.segment-size{display:flex;flex-direction:column;gap:2px}.segment-value{font-size:1.8rem;font-weight:700}.segment-label{color:var(--muted);font-size:.85rem}.forecast-card{display:grid;gap:16px}.stats-4{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-primary .stat-value{color:var(--ring)}.forecast-meta{display:flex;gap:16px;flex-wrap:wrap;padding-top:8px;border-top:1px dashed var(--border)}.demo-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.demo-card{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;padding:12px}.demo-header{align-items:center;display:flex;justify-content:space-between;gap:6px;margin-bottom:10px}.demo-demo{font-size:.9rem;font-weight:600}.demo-body{display:flex;gap:12px}.demo-stat{display:flex;flex-direction:column;gap:2px}.demo-value{font-size:1.2rem;font-weight:700}.demo-label{color:var(--muted);font-size:.75rem}.churn-dist{display:grid;gap:12px}.churn-dist h4{font-size:1rem;margin:0 0 8px}.dist-row{align-items:center;display:grid;gap:8px;grid-template-columns:80px 1fr 50px}.dist-label{font-size:.85rem;color:var(--muted)}.dist-bar-wrap{flex:1}.dist-count{font-size:.9rem;font-weight:600;text-align:right}.actions-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.action-card{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;display:flex;gap:12px;padding:14px 16px;transition:border-color .12s ease}.action-card:hover{border-color:color-mix(in oklab,var(--ring),transparent 50%)}.action-icon{font-size:2rem;line-height:1}.action-body{display:grid;gap:4px;flex:1}.action-title{font-weight:600;font-size:1rem}.action-reason{color:var(--muted);font-size:.88rem;line-height:1.4}.import-summary{display:grid;gap:10px}.import-row{align-items:center;display:flex;gap:12px}.import-label{color:var(--muted);font-size:.9rem;min-width:120px}@media (max-width: 900px){.stats-4{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.actions-grid{grid-template-columns:1fr}}@media (max-width: 600px){.stats-4{grid-template-columns:1fr}.dist-row{grid-template-columns:70px 1fr 40px}.tabs{overflow-x:auto}}.actions.end{justify-content:flex-end}.badge{align-items:center;border:1px solid var(--border);border-radius:999px;display:inline-flex;font-size:12px;gap:6px;line-height:1.6;padding:2px 8px}.badge.muted{background:color-mix(in oklab,var(--surface),white 8%);color:var(--muted)}.badge.subtle{background:color-mix(in oklab,var(--surface),white 6%);border-color:color-mix(in oklab,var(--border),black 8%);color:var(--muted)}.btn.small{font-size:.9rem;padding:6px 10px}.controls select,.controls input[type=text],.controls textarea{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:10px 12px}.controls select:focus,.controls input[type=text]:focus,.controls textarea:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%)}.delta{font-weight:600}.delta.down{color:color-mix(in oklab,var(--danger, #dc2626),black 10%)}.delta.flat{color:var(--muted)}.delta.up{color:color-mix(in oklab,var(--success, #16a34a),black 10%)}.list-title{align-items:center;display:flex;font-weight:600;gap:8px}.mkt-table thead th{background:color-mix(in oklab,var(--surface),white 6%);position:sticky;top:0;z-index:1}.modal-body{display:grid;gap:12px}.modal-sheet{max-height:90vh;max-width:95vw;overflow:auto;width:640px}.table-wrap{margin-top:12px;overflow-x:auto}.bar{background:color-mix(in oklab,var(--accent, #4f46e5),white 18%);border-radius:6px;height:10px}.bar-soft{background:linear-gradient(90deg,color-mix(in oklab,var(--accent, #4f46e5),white 30%),color-mix(in oklab,var(--accent, #4f46e5),white 5%))}.code-block{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;margin:0;max-height:420px;overflow:auto;padding:10px 12px}.controls select,.controls input[type=number]{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:10px 12px}.controls select:focus,.controls input[type=number]:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%)}.donut-text{fill:var(--text);font-size:16px;font-weight:600}.donut-track,.donut-fill{fill:none;r:42;stroke-width:12}.heatmap{align-items:stretch;display:grid;gap:6px}.heatmap-cell{border:1px solid color-mix(in oklab,var(--border),black 5%);border-radius:8px;color:#111;display:grid;min-height:44px;place-items:center}.heatmap-header{color:var(--muted);font-size:12px;text-align:center}.heatmap-rowlabel{align-items:center;color:var(--muted);display:flex;font-size:12px;padding-left:6px}.heatmap-val{font-size:12px;font-weight:600}.kpi-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.panel-subhead{display:grid;gap:2px;margin-bottom:6px;margin-top:16px}.panel-subhead h4{font-size:.95rem;margin:0}.sparkline-empty{color:var(--muted);font-size:12px}@media (max-width: 1100px){.grid-3,.grid-4,.kpi-grid{grid-template-columns:1fr}}.badge.status.accepted{background:color-mix(in oklab,var(--success),transparent 88%);border-color:color-mix(in oklab,var(--success),black 20%);color:var(--success)}.badge.status.dismissed{background:color-mix(in oklab,var(--muted),transparent 92%);color:var(--muted)}.badge.status.new{background:color-mix(in oklab,var(--ring),transparent 88%);border-color:color-mix(in oklab,var(--ring),black 25%)}.code-block{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;margin:0;max-height:220px;overflow:auto;padding:8px 10px;white-space:pre}.mkt-table th,.mkt-table td{padding:8px 10px;text-align:left;vertical-align:top}.badge.draft{background:color-mix(in oklab,var(--muted),transparent 92%);color:var(--muted)}.badge.scheduled{background:color-mix(in oklab,var(--ring),transparent 88%);border-color:color-mix(in oklab,var(--ring),black 25%)}.badge.sent{background:color-mix(in oklab,var(--success),transparent 88%);border-color:color-mix(in oklab,var(--success),black 20%);color:var(--success)}.controls select,.controls input[type=text],.controls input[type=datetime-local],.controls textarea{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:10px 12px}.controls select:focus,.controls input[type=text]:focus,.controls input[type=datetime-local]:focus,.controls textarea:focus{border-color:color-mix(in oklab,var(--ring),black 30%);box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%)}.expand-row td{background:var(--panel, color-mix(in oklab, var(--surface), white 4%));padding:0!important}.kv{display:grid;gap:4px;grid-template-columns:1fr}.kv .k{color:var(--muted);font-size:.8rem}.kv .v{font-size:.95rem}.mkt-col-fixed{grid-template-columns:1fr 280px!important}.mkt-table tbody tr:hover td{background:color-mix(in oklab,var(--surface),white 5%)}.mkt-table thead th{background:color-mix(in oklab,var(--surface),white 2%);position:sticky;top:0;z-index:1}.tools-inline,.actions{display:flex;flex-wrap:nowrap;gap:8px}@media (max-width: 900px){.mkt-col-fixed{grid-template-columns:1fr!important}}.grid{display:grid;gap:24px;margin-bottom:24px}.grid-2{display:grid;gap:24px;grid-template-columns:1fr 1fr}.stats-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}.stat{display:flex;flex-direction:column;justify-content:center;padding:0 8px}.stat-value{font-size:1.8rem;font-weight:700;color:var(--text-main);line-height:1.2}.stat-label{font-size:.85rem;color:var(--muted);font-weight:500;margin-top:4px}.stat-sub{font-size:.75rem;color:var(--muted);opacity:.8;margin-top:2px}.stat-success .stat-value{color:var(--success)}.stat-warning .stat-value{color:var(--warning)}.stat-danger .stat-value{color:var(--danger)}.risk-pulse-card{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--border);padding-left:16px}.risk-gauge-wrap{display:flex;flex-direction:column;align-items:center}.trends-stack{display:grid;gap:12px}.trend-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid color-mix(in oklab,var(--border),transparent 60%)}.trend-row:last-child{border-bottom:none}.trend-label{font-size:.95rem;color:var(--text-main)}.trend-val{font-weight:600;font-variant-numeric:tabular-nums}.trend-success{color:var(--success)}.trend-danger{color:var(--danger)}.trend-muted{color:var(--muted)}.scenario-preview{display:flex;flex-direction:column;gap:12px;height:100%}.sp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sp-name{font-weight:600;font-size:1.1rem}.sp-assumptions{margin-bottom:auto}.risk-alerts-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.risk-alert-card{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:8px;overflow:hidden;display:flex;position:relative;transition:border-color .2s}.risk-alert-card:hover{border-color:var(--ring)}.alert-stripe{width:4px;flex-shrink:0}.alert-stripe.high{background:var(--danger)}.alert-stripe.med{background:var(--warning)}.alert-stripe.low{background:var(--info, #3b82f6)}.alert-content{flex:1;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.alert-top{display:flex;justify-content:space-between;align-items:center}.alert-code{font-size:.85rem;font-weight:700;color:var(--text-main)}.alert-msg{font-size:.9rem;color:var(--text-secondary);line-height:1.4}.alert-action{display:flex;align-items:center;padding-right:8px}.link-sub{font-size:.85rem;color:var(--muted);text-decoration:none;transition:color .2s}.link-sub:hover{color:var(--primary)}.empty-sub-state{text-align:center;padding:24px;color:var(--muted);background:color-mix(in oklab,var(--surface),white 4%);border-radius:8px}@media (max-width: 900px){.grid-2{grid-template-columns:1fr}.stats-4{grid-template-columns:1fr 1fr;gap:24px}.risk-pulse-card{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:16px;margin-top:8px;grid-column:span 2}}@media (max-width: 600px){.stats-4{grid-template-columns:1fr}.risk-pulse-card{grid-column:span 1}.risk-alerts-list{grid-template-columns:1fr}}.risk-monitors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;padding-top:8px}.monitor-card{display:flex;flex-direction:column;position:relative;transition:box-shadow .2s,border-color .2s;padding:16px;background:var(--surface)}.monitor-card:hover{box-shadow:0 8px 24px #0000000f;border-color:var(--ring, #a5b4fc)}.monitor-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.monitor-titles h4{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.monitor-val-row{display:flex;align-items:baseline;gap:12px;margin-top:6px}.monitor-val{font-size:2rem;font-weight:700;line-height:1;color:var(--text-main);letter-spacing:-.02em}.monitor-val.text-danger{color:var(--danger)}.monitor-alert-badge{font-size:.7rem;font-weight:600;color:var(--danger);background:color-mix(in oklab,var(--danger),transparent 90%);padding:2px 8px;border-radius:999px;text-decoration:none;border:1px solid color-mix(in oklab,var(--danger),transparent 80%);display:flex;align-items:center;gap:4px}.monitor-chart{height:140px;margin:8px -16px 0;padding:0 8px}.monitor-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.mf-left{color:var(--text-secondary)}.mf-limit{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-main)}.severity-badge{text-transform:uppercase;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--muted)}.severity-badge.high{background:color-mix(in oklab,var(--danger),transparent 90%);color:var(--danger);border-color:color-mix(in oklab,var(--danger),transparent 70%)}.severity-badge.med{background:color-mix(in oklab,var(--warning),transparent 90%);color:var(--warning);border-color:color-mix(in oklab,var(--warning),transparent 70%)}.rm-modal-body{display:flex;flex-direction:column;gap:16px;padding:16px 20px 24px}.rm-filters{display:flex;gap:16px;align-items:center}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:.85rem;color:var(--muted);font-weight:500}.rm-date-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:.9rem;color:var(--text-main);font-family:inherit;transition:border-color .2s}.rm-date-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--primary),transparent 85%)}.icon-btn{padding:4px 8px;font-size:1.1rem;line-height:1;opacity:.6}.icon-btn:hover{opacity:1;background:var(--bg)}.risk-scenarios-grid{display:grid;gap:24px;grid-template-columns:1fr}@media (min-width: 1200px){.risk-scenarios-grid{grid-template-columns:1fr 1fr}}.scenario-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:0;display:flex;flex-direction:column;position:relative;transition:box-shadow .2s;overflow:hidden}.scenario-card:hover{box-shadow:0 4px 12px #0000000d}.scenario-head{padding:16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;background:color-mix(in oklab,var(--surface),white 2%)}.scenario-title-row{display:flex;align-items:center;gap:8px}.scenario-title-row h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text)}.scenario-meta{font-size:.85rem;color:var(--muted);margin-top:4px;display:flex;gap:12px}.scenario-actions{display:flex;gap:6px}.scenario-toolbar{padding:8px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--surface)}.view-toggles,.tab-toggles{display:flex;gap:4px;background:color-mix(in oklab,var(--surface),black 3%);padding:3px;border-radius:6px}.toggle-btn{border:none;background:transparent;padding:4px 10px;font-size:.75rem;border-radius:4px;cursor:pointer;color:var(--muted);font-weight:600;transition:all .15s;text-transform:uppercase}.toggle-btn:hover{color:var(--text)}.toggle-btn.active{background:var(--surface);color:var(--primary, #2563eb);box-shadow:0 1px 2px #0000001a}.scenario-body{padding:16px;height:320px;background:var(--surface)}.scenario-assumptions{background:color-mix(in oklab,var(--surface),black 2%);border-top:1px solid var(--border);padding:12px 16px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;font-size:.85rem}@media (min-width: 600px){.scenario-assumptions{grid-template-columns:repeat(4,1fr)}}.assumption-item strong{display:block;font-size:.75rem;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.modal-overlay{background:#00000059;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-sheet{background:transparent;width:440px;max-width:90vw}.modal-body-grid{display:grid;gap:16px;padding:16px}.modal-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.risk-alerts-layout{display:grid;gap:16px;grid-template-columns:minmax(240px,280px) 1fr}@media (max-width: 1100px){.risk-alerts-layout{grid-template-columns:1fr}}.ra-expansion-wrap{background:color-mix(in oklab,var(--surface),white 2%);border-top:1px dashed var(--border);margin-left:32px;padding:16px 20px}.ra-details-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}@media (max-width: 800px){.ra-details-grid{grid-template-columns:1fr}}.ra-mitigation-box{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px}.severity-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;border:1px solid transparent}.severity-badge.high{background:color-mix(in oklab,var(--danger),transparent 85%);color:var(--danger);border-color:color-mix(in oklab,var(--danger),transparent 70%)}.severity-badge.med{background:color-mix(in oklab,var(--warning),transparent 85%);color:var(--warning);border-color:color-mix(in oklab,var(--warning),transparent 70%)}.severity-badge.low{background:color-mix(in oklab,var(--success),transparent 85%);color:var(--success);border-color:color-mix(in oklab,var(--success),transparent 70%)}.ra-table{width:100%;border-collapse:collapse}.ra-table th{text-align:left;padding:10px 12px;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.ra-table td{padding:12px;border-top:1px solid var(--border);vertical-align:middle}.ra-row-clickable{cursor:pointer;transition:background .1s ease}.ra-row-clickable:hover{background:color-mix(in oklab,var(--surface),black 2%)}.ra-row-expanded{background:color-mix(in oklab,var(--primary),transparent 96%)}.ra-icon-arrow{display:inline-block;width:16px;color:var(--muted);font-size:10px;transition:transform .2s}.ra-status-text{font-size:.75rem;font-weight:500;color:var(--muted);text-transform:uppercase}.ra-modal-body{padding:16px;display:grid;gap:16px}.rf-modal-body{display:grid;gap:16px}.modal-overlay{align-items:center;background:#00000059;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:1000}.modal-sheet{max-height:90vh;max-width:95vw;overflow:auto;width:640px;background:transparent}.modal-sheet.wide{width:980px}.input-with-button{display:flex;gap:8px}.input-with-button>*:first-child{flex:1}.icon-badge{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:6px;font-size:.75rem;padding:2px 6px;color:var(--muted)}.action-card-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;height:100%}.status-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent}.status-badge.done{background:color-mix(in oklab,var(--success),transparent 85%);color:var(--success);border-color:color-mix(in oklab,var(--success),transparent 70%)}.status-badge.failed{background:color-mix(in oklab,var(--danger),transparent 85%);color:var(--danger);border-color:color-mix(in oklab,var(--danger),transparent 70%)}.status-badge.pending{background:color-mix(in oklab,var(--warning),transparent 85%);color:var(--warning);border-color:color-mix(in oklab,var(--warning),transparent 70%)}.brief-meta-row{display:flex;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.brief-table-container{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.brief-snippet{display:block;max-width:450px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.9rem}.brief-content.prose{line-height:1.7;color:var(--text)}.brief-content.prose h1,.brief-content.prose h2,.brief-content.prose h3{margin-top:1.5em;margin-bottom:.5em;font-weight:600}.brief-content.prose ul,.brief-content.prose ol{padding-left:1.25em;margin-bottom:1em}.brief-content.prose li{margin-bottom:.5em}.brief-content.prose hr{margin:2rem 0;border:0;border-top:1px solid var(--border)}.brief-editor-textarea{width:100%;min-height:500px;padding:16px;border:1px solid var(--border);border-radius:8px;background:color-mix(in oklab,var(--surface),white 4%);font-family:var(--font-mono, monospace);font-size:.95rem;line-height:1.5;resize:vertical;outline:none;transition:border-color .2s,box-shadow .2s}.brief-editor-textarea:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring),transparent 80%)}.brief-footer-actions{margin-top:24px;padding:16px;background:color-mix(in oklab,var(--surface),black 2%);border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;align-items:center}.donut-center{display:grid;place-items:center;position:absolute;text-align:center}.donut-sub{color:var(--muted);font-size:12px}.donut-svg{display:block}.donut-total{font-size:22px;font-weight:700}.donut-wrap{display:inline-grid;place-items:center;position:relative}.kv-grid{display:grid;gap:6px}.kv-head{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:8px;font-weight:600;grid-template-columns:2fr 100px 80px 80px 80px 80px;padding:6px 8px}.kv-row{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:8px;grid-template-columns:2fr 100px 80px 80px 80px 80px;padding:6px 8px}.mt10{margin-top:10px}.mt4{margin-top:4px}.mt8{margin-top:8px}.nspo-flex{align-items:center;display:grid;gap:12px;grid-template-columns:auto 1fr}.strong{font-weight:600}.subhead{color:var(--muted);font-weight:600;margin-top:8px}.ta-l{text-align:left}.ta-r{text-align:right}.c-actions{justify-content:flex-end}.c-project{justify-content:flex-start}.c-score{align-items:flex-end;flex-direction:column}.c-stage{justify-content:flex-start}.c-tags{flex-wrap:wrap;gap:6px}.c-title{gap:8px}.c-title .title .strong{font-weight:600}.c-updated{color:var(--muted);justify-content:flex-start}.expand{border-top:1px dashed var(--border);grid-column:1 / -1;margin-top:8px;padding-top:10px}.expand .subhead{color:var(--muted);font-weight:600;margin-bottom:6px}.expand .ul{margin:6px 0 0 18px}.expand-grid{display:grid;gap:12px;grid-template-columns:1.1fr 1fr 1fr}.kv.tinygap{align-items:center;display:grid;gap:6px 10px;grid-template-columns:1fr 1.5fr}.kv.tinygap .k{color:var(--muted);font-size:.9rem}.kv.tinygap .v select,.kv.tinygap .v input[type=text]{height:36px;padding:6px 8px}.row-toggle{border-radius:6px;font-size:16px;height:24px;line-height:24px;width:24px}.row-toggle:hover{background:color-mix(in oklab,var(--surface),white 6%)}.row.body{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.row.body.is-open{border-color:color-mix(in oklab,var(--ring),black 25%);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring),transparent 85%)}.row.head{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;font-weight:600;padding:8px 10px}.stage-archived{background:color-mix(in oklab,var(--muted),transparent 30%)}.stage-badge{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.78rem;padding:2px 8px;text-transform:capitalize}.stage-badge.stage-archived{background:color-mix(in oklab,var(--muted),transparent 88%);color:var(--muted)}.stage-badge.stage-define{background:#b2b45e59}.stage-badge.stage-design{background:#c6944959}.stage-badge.stage-develop{background:#ca7b5759}.stage-badge.stage-discover{background:#8dca8059}.stage-badge.stage-validate{background:color-mix(in oklab,var(--ring),transparent 85%)}.stage-chip{align-items:center;background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:999px;display:inline-flex;font-size:.85rem;gap:6px;padding:4px 8px}.stage-chip .dot{background:var(--grid);border-radius:999px;display:inline-block;height:10px;width:10px}.stage-define{background:#b2b45e}.stage-design{background:#c69449}.stage-develop{background:#ca7b57}.stage-discover{background:#8dca80}.stage-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.stage-validate{background:color-mix(in oklab,var(--ring),black 10%)}.table{display:grid;gap:8px}.th,.cell{align-items:center;display:flex}.thead .row.head,.tbody .row.body{display:grid;gap:8px;grid-template-columns:2fr 130px 120px 1.1fr 140px 1.3fr 1fr}@media (max-width: 1100px){.expand-grid{grid-template-columns:1fr}.thead .row.head,.tbody .row.body{grid-template-columns:2fr 110px 100px 1fr 120px 1fr 1fr}}.comp{align-items:start;display:grid;gap:8px;grid-template-columns:160px 1fr 1.2fr}.comp-table{display:grid;gap:6px}.comp.head{border-bottom:1px dashed var(--border);font-weight:600;padding-bottom:4px}.editor-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.editor-pane textarea{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;min-height:360px;padding:10px;resize:vertical;width:100%}.file-meta .file-name{font-weight:600}.files-card .file-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.files-card .file-row{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:10px;display:grid;gap:10px;grid-template-columns:1fr auto;padding:8px}.id-card .kv{align-items:center;display:grid;gap:6px 10px;grid-template-columns:auto 1fr}.id-card .kv .k{color:var(--muted)}.md-preview .md-gap{height:6px}.md-preview .md-li{margin-left:10px}.md-preview .md-note{background:color-mix(in oklab,var(--ring),transparent 88%);border-left:3px solid color-mix(in oklab,var(--ring),black 25%);font-style:italic;margin:4px 0;padding-left:8px}.md-preview h3{font-size:1.05rem;margin:6px 0}.md-preview h4{color:var(--muted);font-size:1rem;margin:6px 0}.nba-card{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;padding:10px}.nba-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr}.preview-pane .md-preview{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:10px;min-height:360px;padding:10px}.rice-card .rice-grid{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.rice-card .score{font-size:28px;font-weight:700;text-align:right}.rice-card .scorebox{align-items:center;display:grid;gap:6px}.tiny{font-size:12px}.top-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr 1.1fr;margin-bottom:4px}@media (max-width: 1100px){.comp,.editor-grid,.nba-grid{grid-template-columns:1fr}.rice-card .rice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-grid{grid-template-columns:1fr}}.deliverables-grid{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.dep-arrow{color:var(--muted);font-weight:800}.dep-list{display:grid;gap:8px}.dep-note{grid-column:1 / -1}.dep-row{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:10px;display:grid;gap:8px;grid-template-columns:20px 1fr;padding:8px}.kanban{display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr}.kcard{background:color-mix(in oklab,var(--surface),white 2%);border:1px solid var(--border);border-radius:10px;display:grid;gap:6px;padding:8px}.kcol{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;display:grid;grid-template-rows:auto 1fr}.keydates-card .ul{margin-top:2px}.khead{border-bottom:1px solid var(--border);font-weight:600;padding:8px 10px}.klist{display:grid;gap:8px;padding:10px}.ktitle{font-weight:600}.planner-top{display:grid;gap:12px;grid-template-columns:1.2fr 1fr}.planner-top .kv{align-items:center;display:grid;gap:6px 10px;grid-template-columns:auto 1fr}.res-bar{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;height:12px;overflow:hidden;position:relative}.res-fill{background:color-mix(in oklab,var(--ring),white 8%);height:100%}.res-table{display:grid;gap:6px}.res-table .head{border-bottom:1px dashed var(--border);display:grid;font-weight:600;gap:8px;grid-template-columns:120px 1fr 1.4fr;padding-bottom:4px}.res-table .res{align-items:center;display:grid;gap:8px;grid-template-columns:120px 1fr 1.4fr}.res-val{color:var(--text);display:grid;font-size:11px;top:0;right:0;bottom:0;left:0;place-items:center;position:absolute}.risk-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.small{font-size:.9rem}.stage-badge{border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.75rem;padding:2px 8px;text-transform:capitalize}.stage-design,.stage-develop{background:color-mix(in oklab,var(--ring),transparent 88%)}.stage-validate{background:color-mix(in oklab,var(--muted),transparent 90%)}.timeline{display:grid;gap:10px}.tl-bar{border:1px solid var(--border);border-radius:8px;color:var(--text);display:grid;font-size:12px;font-weight:600;height:30px;place-items:center;position:absolute;top:2px}.tl-bar.ok{background:color-mix(in oklab,var(--success),transparent 85%);border-color:color-mix(in oklab,var(--success),black 20%)}.tl-bar.risk{background:color-mix(in oklab,var(--danger),transparent 88%);border-color:color-mix(in oklab,var(--danger),black 25%)}.tl-bar.warn{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%)}.tl-col-head{color:var(--muted);font-size:.8rem;text-align:center}.tl-grid{background:repeating-linear-gradient(to right,color-mix(in oklab,var(--surface),white 4%) 0,color-mix(in oklab,var(--surface),white 4%) calc(10% - 1px),var(--grid) calc(10% - 1px),var(--grid) 10%);border:1px solid var(--border);border-radius:10px;height:34px;overflow:hidden;position:relative}.tl-grid-head{display:grid;gap:0;grid-template-columns:repeat(10,1fr)}.tl-header{align-items:center;display:grid;grid-template-columns:140px 1fr}.tl-lane{color:var(--muted);font-weight:600}.tl-lane-head{color:var(--muted);font-size:.85rem;padding-left:2px}.tl-row{align-items:center;display:grid;grid-template-columns:140px 1fr;min-height:34px}.tl-title{padding:0 8px;text-align:center}.ul{margin:0;padding-left:18px}.ul.compact li{margin:2px 0}@media (max-width: 1100px){.deliverables-grid,.kanban,.planner-top{grid-template-columns:1fr}.res-table .res,.res-table .head{grid-template-columns:100px 1fr 1fr}.risk-grid{grid-template-columns:1fr}}.chip.ghost{background:transparent}.explain{background:color-mix(in oklab,var(--surface),white 2%);border:1px dashed var(--border);border-radius:10px;display:grid;gap:6px;padding:8px}.insight-card{display:grid;gap:8px}.insight-card .head{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.insight-card .tight{margin:0}.insights-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.m-dot{background:color-mix(in oklab,var(--ring),white 8%);border:1px solid var(--border);border-radius:999px;height:12px;position:absolute;transform:translate(-50%,50%);width:12px}.m-dot.risk{background:color-mix(in oklab,var(--danger),transparent 85%);border-color:color-mix(in oklab,var(--danger),black 25%)}.m-dot.warn{background:color-mix(in oklab,var(--ring),transparent 85%)}.m-grid{background:linear-gradient(to right,transparent 49.8%,var(--grid) 50%,transparent 50.2%),linear-gradient(to top,transparent 49.8%,var(--grid) 50%,transparent 50.2%),color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:12px;height:220px;overflow:hidden;position:relative}.m-head,.m-foot{display:grid;grid-template-columns:1fr 1fr}.matrix{display:grid;gap:6px}.subhead{font-weight:600}.title-wrap{display:grid;gap:6px}@media (max-width: 1100px){.insights-grid{grid-template-columns:1fr}}*{box-sizing:border-box}:root{--bg: #212121;--border: #323a45;--danger: #ef4444;--grid: #323a45;--muted: #7c838e;--ring: #31599b;--success: #16a34a;--warning: #f59e0b;--surface: #2b303a;--text: #e5e7eb;--sidebar-w-closed: 72px;--sidebar-w-open: 240px}:root[data-theme=dark]{--bg: #212121;--border: #323a45;--danger: #ef4444;--grid: #323a45;--muted: #7c838e;--ring: #31599b;--success: #16a34a;--warning: #f59e0b;--surface: #2b303a;--text: #e5e7eb}:root[data-theme=light]{--bg: #f5f7fb;--border: #e5e7eb;--danger: #dc2626;--grid: #e5e7eb;--muted: #475569;--ring: #31599b;--success: #16a34a;--warning: #f59e0b;--surface: #ffffff;--text: #0f172a}@media (prefers-color-scheme: light){:root{--bg: #f5f7fb;--border: #e5e7eb;--danger: #dc2626;--grid: #e5e7eb;--muted: #475569;--ring: #31599b;--success: #16a34a;--warning: #f59e0b;--surface: #ffffff;--text: #0f172a}}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0}a{color:inherit;text-decoration:none}h1,h2{margin-top:0}img{max-width:100%;height:auto;display:block}.layout{display:grid;grid-template-columns:var(--sidebar-w-open) 1fr;min-height:100vh}.layout.is-collapsed{grid-template-columns:var(--sidebar-w-closed) 1fr}.page{background:radial-gradient(1200px 800px at 20% -10%,color-mix(in oklab,var(--ring),transparent 78%),transparent 60%),radial-gradient(800px 600px at 100% 0%,color-mix(in oklab,var(--success),transparent 82%),transparent 55%),var(--bg);display:grid;min-height:100%;padding:4vh 16px;place-items:center;align-content:space-between}.main{padding:0}.wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;max-width:720px;padding:24px;width:100%}.wrap-xl{margin:0 auto;max-width:1100px;padding:0 14px;width:100%}.grid{display:grid;align-items:end;gap:12px;padding-bottom:10px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid>*{height:100%}.panel{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:16px;padding:12px 12px 10px;overflow:hidden;width:100%}.panel-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.panel-head h3{font-size:1rem;margin:0}.panel-titles{display:grid;gap:4px}.list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.list-item{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;padding:10px 12px;min-width:324px}.list-title{font-weight:600}.list-meta{color:var(--muted);font-size:.9rem;margin-top:2px}.statusline{margin:8px 0}.badge{border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.75rem;padding:2px 8px;text-transform:capitalize}.badge.low{background:color-mix(in oklab,var(--muted),transparent 92%);color:var(--muted)}.btn{align-items:center;background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:10px;cursor:pointer;display:inline-flex;gap:8px;padding:8px 12px;min-width:72px}.btn .icon{display:inline-grid;height:18px;place-items:center;width:18px}.btn.block{justify-content:center;width:100%}.btn.primary{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%);font-weight:600}.btn.danger{background:color-mix(in oklab,var(--danger),transparent 88%);border-color:color-mix(in oklab,var(--danger),black 25%);color:var(--danger)}.btn.ghost{background:transparent}.small,.btn.small{font-size:.95rem;padding:6px 8px}.btn:focus,.icon-btn:focus,.navlink:focus,.controls select:focus,input:focus,select:focus{box-shadow:0 0 0 4px color-mix(in oklab,var(--ring),transparent 75%);outline:none}.icon-btn{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:10px;cursor:pointer}.actions,.tools-inline{display:flex;flex-wrap:wrap;gap:8px}.row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}input::placeholder{color:color-mix(in oklab,var(--muted),transparent 20%)}input[type=text],input[type=password],input[type=email],input[type=date],input[type=time],select{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:12px}.controls{display:grid;gap:12px}.controls .control{display:grid;gap:6px}.controls .control.checkbox{align-items:center;gap:8px;grid-auto-flow:column;justify-content:start}.controls select{background:color-mix(in oklab,var(--surface),white 4%);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;outline:none;padding:10px 12px}.controls textarea{resize:vertical}.controls-actions{display:flex;flex-wrap:wrap;gap:8px}.hint{color:var(--muted);font-size:.875rem}.hint.error{color:var(--danger)}.muted{color:var(--muted);font-size:.9rem}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums;text-align:right}.code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85rem}.stat{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center}.stat-value{font-size:1.4rem;font-weight:700}.stat-label{color:var(--muted);font-size:.85rem}.kpi{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;min-height:78px;padding:10px 12px;display:grid;gap:4px}.kpi-grid{display:grid;gap:10px}.kpi-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-label,.kpi-sub{color:var(--muted);font-size:12px}.kpi-value{font-size:22px;font-weight:600}.kpi-row{align-items:stretch;display:grid;gap:12px;grid-template-columns:1fr 380px;margin-bottom:12px}.kpi-side{align-items:stretch;display:grid;gap:12px;grid-template-rows:1fr 1fr}.alert{border:1px solid var(--border);border-radius:10px;margin-top:8px;padding:10px 12px}.alert.error{background:color-mix(in oklab,var(--danger),transparent 90%);border-color:color-mix(in oklab,var(--danger),black 25%);color:var(--danger)}.brand-link{align-items:center;display:inline-flex;flex:1;gap:10px;min-width:0}.brand-mark{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:10px;display:grid;font-weight:800;height:36px;letter-spacing:.3px;place-items:center;width:36px}.brand-text{font-weight:800;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navlink{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;display:flex;gap:12px;padding:8px 10px;white-space:nowrap}.navlink .icon{display:inline-grid;height:20px;place-items:center;width:20px}.navlink .label{overflow:hidden;text-overflow:ellipsis}.navlink.active{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%)}.navlink:hover{background:color-mix(in oklab,var(--surface),white 4%)}.navUser{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;display:flex;gap:12px;padding:8px 10px;white-space:nowrap}.topnav{display:none}.sidenav{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:8px;height:100vh;padding:10px;position:sticky;top:0;transition:width .16s ease;width:var(--sidebar-w-open)}.side-header{align-items:center;display:flex;gap:8px;padding:6px}.side-footer{display:grid;gap:8px;height:172px;margin-top:auto;padding:6px}.menu{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;overflow:auto;padding:4px}.sidenav .menu .group{list-style:none}.sidenav .menu .group>.group-toggle .spacer{flex:1 1 auto;min-width:8px}.sidenav .menu .group>.group-toggle .chev{display:inline-grid;height:16px;opacity:.8;place-items:center;transform-origin:50% 50%;width:16px}.sidenav .menu .group>.group-toggle.navlink{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text);cursor:pointer;display:flex;gap:12px;margin:0;padding:8px 10px;width:100%}.sidenav .menu .group>.group-toggle.navlink:hover{background:color-mix(in oklab,var(--surface),white 4%)}.sidenav .menu .group.active-parent>.group-toggle{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%)}.sidenav .menu .group.active-parent>.group-toggle .chev{transform:rotate(90deg)}.sidenav .menu .group .submenu{border-left:2px solid var(--border);margin:4px 0 2px 12px;padding:6px 0 6px 10px}.sidenav .menu .group .submenu .navlink.sub{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);display:flex;font-size:.93rem;gap:10px;margin:2px 8px 2px 0;padding:6px 10px 6px 8px}.sidenav .menu .group .submenu .navlink.sub:hover{background:color-mix(in oklab,var(--surface),white 4%);color:var(--text)}.sidenav .menu .group .submenu .navlink.sub.active{background:color-mix(in oklab,var(--ring),transparent 85%);border-color:color-mix(in oklab,var(--ring),black 25%);color:var(--text);font-weight:600}.sidenav.collapsed{width:var(--sidebar-w-closed)}.sidenav.collapsed .auth-info .muted,.sidenav.collapsed .brand-text,.sidenav.collapsed .label,.sidenav.collapsed .group .submenu{display:none!important}.sidenav.collapsed .brand-link,.sidenav.collapsed .btn.block{justify-content:center}.auth-actions{display:grid;gap:8px}.auth-info{display:grid;gap:8px;height:36px;line-height:36px}.auth-row{align-items:center;display:grid;gap:8px;grid-template-columns:24px 1fr auto}.chip{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;display:inline-block;font-size:.75rem;padding:2px 8px}.chips{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.cardlike{background:color-mix(in oklab,var(--surface),white 3%);border:1px solid var(--border);border-radius:12px;height:100%;padding:8px}.mkt-table{border-collapse:collapse;table-layout:fixed;width:100%}.mkt-table tbody td{border-top:1px solid var(--border)}.mkt-table th,.mkt-table td{padding:8px 10px;text-align:left;vertical-align:middle}.mkt-table th.num,.mkt-table td.num{text-align:right}.calendar-title{font-size:14px;font-weight:600}.caret{display:inline-block;width:1ch}.collapse-toggle{align-self:flex-end;display:grid;flex:0 0 auto;height:36px;margin-left:auto;padding:0;place-items:center;width:36px}.expand-box{border-top:1px dashed var(--border);margin-left:24px;padding:8px 12px}.expand-left .desc{line-height:1.4;white-space:pre-wrap}.expand-right{display:grid;gap:8px}.expand-two{display:grid;gap:12px;grid-template-columns:2fr 1fr}.expander-cell{align-items:baseline;cursor:pointer;display:flex;gap:8px;-webkit-user-select:none;user-select:none}.hbar{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.hbars{display:grid;gap:8px}.hfill{background:color-mix(in oklab,var(--ring),white 10%);height:100%}.kv .k{color:var(--muted);font-size:.9rem}.legend-dot{align-items:center;display:inline-flex;gap:6px}.preview-skel{color:var(--muted);line-height:48px;text-align:center}.radio{align-items:center;display:inline-flex;gap:6px}.scrollable{overflow:auto;scrollbar-color:var(--muted) var(--surface);scrollbar-gutter:stable;scrollbar-width:thin}.rz-modal_backdrop{background:#00000073;display:grid;top:0;right:0;bottom:0;left:0;place-items:center;position:fixed;z-index:50}.rz-modal_body{display:grid;gap:10px}.rz-modal_head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.btn_nav{align-items:center;background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;display:inline-flex;gap:8px;left:-8px;padding:8px 12px;position:relative}.tools-inline,.actions{display:flex;flex-wrap:wrap;gap:8px}.table-wrap{overflow-x:auto}.ver-tag{background:color-mix(in oklab,var(--surface),white 6%);border:1px solid var(--border);border-radius:999px;font-size:.8rem;margin-left:8px;padding:2px 6px}.brand-mark,.btn,.icon-btn,.navlink{transition:background .12s ease,border-color .12s ease}::file-selector-button{display:none}@media (max-width: 1100px){.grid-2,.grid-3{grid-template-columns:1fr}.grid-6{grid-template-columns:1fr 1fr}.kpi-grid.three,.kpi-row{grid-template-columns:1fr}}@media (max-width: 900px){.expand-two{grid-template-columns:1fr}}
