.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);background:var(--paper)}@media (max-width: 1023px){.login{grid-template-columns:1fr}}.login-side{background:var(--paper-soft);border-right:1px solid var(--border);padding:var(--space-3xl) var(--space-3xl) var(--space-3xl) var(--space-4xl);display:flex;align-items:center;position:relative;overflow:hidden}.login-side:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to bottom,transparent calc(2rem - 1px),rgba(5,30,70,.05) calc(2rem - 1px),rgba(5,30,70,.05) 2rem,transparent 2rem);background-size:100% 2rem;pointer-events:none;opacity:.6}.login-side-inner{position:relative;z-index:1;max-width:520px;display:flex;flex-direction:column;gap:var(--space-2xl)}@media (max-width: 1023px){.login-side{padding:var(--space-2xl) var(--space-xl);border-right:none;border-bottom:1px solid var(--border)}.login-side-inner{gap:var(--space-lg)}}@media (max-width: 639px){.login-side{padding:var(--space-xl) var(--space-lg)}}.login-mark{font-family:var(--font-sans);font-weight:700;font-size:var(--font-5xl);letter-spacing:-.05em;color:var(--ink);line-height:1}.login-mark-dot{color:var(--accent)}.login-headline{font-size:var(--font-4xl);font-weight:600;line-height:1.05;letter-spacing:-.025em;color:var(--ink)}@media (max-width: 1023px){.login-headline{font-size:var(--font-3xl)}}.login-lead{font-size:var(--font-md);line-height:var(--line-relaxed);color:var(--ink-soft);max-width:42ch}.login-meta{display:grid;grid-template-columns:repeat(3,auto);gap:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--border);margin-top:var(--space-lg)}.login-meta dt{font-size:var(--font-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-2xs)}.login-meta dd{font-family:var(--font-mono);font-size:var(--font-sm);color:var(--ink);font-weight:500}@media (max-width: 639px){.login-meta{grid-template-columns:1fr 1fr;gap:var(--space-md)}}.login-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-2xl)}@media (max-width: 639px){.login-panel{padding:var(--space-2xl) var(--space-lg)}}.login-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--space-lg)}.login-form-head{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.login-form-eyebrow{font-size:var(--font-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong)}.login-form-title{font-size:var(--font-2xl);font-weight:600;color:var(--ink);letter-spacing:-.018em;line-height:1.2}.login-form-sub{font-size:var(--font-md);color:var(--ink-muted);line-height:var(--line-normal)}.login-submit{width:100%;margin-top:var(--space-sm)}.login-hint{font-size:var(--font-xs);color:var(--ink-muted);text-align:center;padding-top:var(--space-md);border-top:1px solid var(--border-soft);margin-top:var(--space-sm)}.login-toggle{background:transparent;border:none;color:var(--accent-strong);font-weight:600;cursor:pointer;padding:0;font-size:inherit;font-family:inherit}.login-toggle:hover{text-decoration:underline}.login-toggle:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-xs)}.modal{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-xl);padding:0;box-shadow:var(--shadow-4);color:var(--ink);width:100%;max-width:520px;max-height:calc(100vh - var(--space-2xl));margin:auto;opacity:1;transform:translateY(0) scale(1);transition:opacity var(--dur-base) var(--ease-out-quart),transform var(--dur-base) var(--ease-out-expo),overlay var(--dur-base) allow-discrete,display var(--dur-base) allow-discrete}.modal[open]{opacity:1;transform:translateY(0) scale(1)}.modal:not([open]){opacity:0;transform:translateY(8px) scale(.98)}@starting-style{.modal[open]{opacity:0;transform:translateY(8px) scale(.98)}}.modal::backdrop{background-color:#051e464d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background-color var(--dur-base) var(--ease-out-quart),backdrop-filter var(--dur-base) var(--ease-out-quart),overlay var(--dur-base) allow-discrete,display var(--dur-base) allow-discrete}@starting-style{.modal[open]::backdrop{background-color:#051e4600;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.modal--sm{max-width:380px}.modal--md{max-width:520px}.modal--lg{max-width:720px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-xl) var(--space-xl) var(--space-md)}.modal-title{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.012em;line-height:1.25}.modal-desc{margin-top:var(--space-xs);font-size:var(--font-md);color:var(--ink-muted);line-height:var(--line-normal)}.modal-close{flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--ink-muted);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart)}.modal-close:hover{background:var(--paper-warm);color:var(--ink)}.modal-close:focus-visible{outline:2px solid var(--ink-muted);outline-offset:1px;background:var(--paper-warm);color:var(--ink)}.modal-body{padding:0 var(--space-xl) var(--space-xl)}.modal--destructive .modal-title{color:#8a0012;color:oklch(.4 .18 25)}@media (prefers-reduced-motion: reduce){.modal,.modal::backdrop{transition-duration:.01ms}}.ram-root{display:inline-flex}.ram-trigger{display:inline-flex;align-items:center;justify-content:center;height:1.9rem;width:1.9rem;padding:0;border-radius:var(--radius-md);border:1px solid transparent;background-color:transparent;color:var(--ink-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.ram-trigger:hover,.ram-trigger:focus-visible{background-color:var(--paper-soft);border-color:var(--border);color:var(--ink);outline:none}.ram-menu{position:fixed;margin:0;inset:unset;padding:6px;list-style:none;background-color:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);min-width:200px;max-width:260px;z-index:1000}.ram-item{list-style:none;margin:0}.ram-item-button{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;text-align:left;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:13px;color:var(--ink);transition:background-color .12s ease}.ram-item-button:hover:not(:disabled),.ram-item-button:focus-visible:not(:disabled){background-color:var(--paper-soft);outline:none}.ram-item-button:disabled{cursor:not-allowed;color:var(--ink-muted)}.ram-item-icon{flex-shrink:0;margin-top:1px}.ram-item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ram-item-label{font-size:13px;line-height:var(--line-tight)}.ram-item-reason{font-size:11px;color:var(--ink-muted);line-height:var(--line-snug)}.ram-danger .ram-item-label,.ram-danger .ram-item-icon{color:var(--danger)}.ram-danger .ram-item-button:hover:not(:disabled),.ram-danger .ram-item-button:focus-visible:not(:disabled){background-color:var(--danger-soft)}.ram-separator{height:1px;margin:6px 4px;background-color:var(--border);list-style:none}.dashboard{display:flex;flex-direction:column;gap:var(--space-2xl);max-width:var(--content-max-width);margin:0 auto;width:100%}.dashboard-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-xl)}@media (max-width: 639px){.dashboard-head{flex-direction:column;align-items:flex-start;gap:var(--space-lg)}}.dashboard-eyebrow{display:inline-block;font-size:var(--font-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:var(--space-xs)}.dashboard-title{font-size:var(--font-3xl);font-weight:600;color:var(--ink);letter-spacing:-.022em;line-height:1.1}.dashboard-sub{margin-top:var(--space-sm);color:var(--ink-soft);font-size:var(--font-md);line-height:var(--line-relaxed);max-width:56ch}.dashboard-stats{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--paper-soft);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--ink-soft)}.dashboard-stat{display:inline-flex;align-items:baseline;gap:var(--space-xs)}.dashboard-stat-value{font-size:var(--font-md);font-weight:600;color:var(--ink)}.dashboard-stat-label{color:var(--ink-muted)}.dashboard-stat-sep{color:var(--ink-muted);-webkit-user-select:none;user-select:none}.dashboard-table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper)}@media (max-width: 1023px){.dashboard-table-wrap{overflow-x:auto}}.dashboard-table{min-width:960px}.dashboard-table thead th{background:var(--paper-soft);border-bottom:1px solid var(--border)}.dashboard-row{cursor:pointer}.dashboard-row:focus-visible{outline:none;box-shadow:inset var(--shadow-focus);background:var(--accent-tint)}.dashboard-row-name{font-weight:500;color:var(--ink)}.dashboard-cell-name{min-width:240px}.dashboard-cell-date{color:var(--ink-soft);font-size:var(--font-xs);white-space:nowrap}.dashboard-cell-role{color:var(--ink-soft)}.dashboard-col-progress{width:200px}.dashboard-col-pcc{text-align:right;width:60px}.dashboard-progress{display:flex;align-items:center;gap:var(--space-md)}.dashboard-progress-bar{flex:1;height:4px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.dashboard-progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width var(--dur-slow) var(--ease-out-quart)}.dashboard-progress-label{font-size:var(--font-xs);color:var(--ink-soft);font-weight:500;white-space:nowrap;min-width:36px}.dashboard-empty{padding:var(--space-4xl) var(--space-2xl);text-align:center;border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--paper-soft);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.dashboard-empty h2{font-size:var(--font-xl);color:var(--ink);font-weight:600;letter-spacing:-.012em}.dashboard-empty p{color:var(--ink-soft);font-size:var(--font-md);line-height:var(--line-relaxed);max-width:48ch;margin-bottom:var(--space-md)}.modal-form{display:flex;flex-direction:column;gap:var(--space-lg)}.modal-form-head{display:flex;flex-direction:column;gap:var(--space-xs)}.modal-form-title{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.012em}.modal-form-sub{font-size:var(--font-md);color:var(--ink-muted);line-height:var(--line-normal)}.modal-form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.dashboard-col-actions{width:1%;white-space:nowrap;text-align:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.avatar.presence-avatar{color:#fff;font-weight:700}.avatar.presence-avatar--inactivo{opacity:.55}.avatar.presence-overflow{background:var(--paper-warm);color:var(--ink-soft);font-weight:600}.risk-matrix{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:var(--space-2xs);align-items:center;font-size:var(--font-2xs)}.risk-matrix-axis-y{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;color:var(--ink-muted);font-size:var(--font-2xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase;grid-row:1;grid-column:1;padding-right:var(--space-xs)}.risk-matrix-grid{display:flex;flex-direction:column;gap:2px;grid-row:1;grid-column:2}.risk-matrix-row{display:flex;align-items:center;gap:2px}.risk-matrix-row-label,.risk-matrix-col-label{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted);font-size:var(--font-2xs);font-weight:500;width:16px;flex-shrink:0}.risk-matrix-cell{flex:1;aspect-ratio:1;border:1px solid transparent;border-radius:var(--radius-xs);background:var(--paper-warm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--dur-instant) var(--ease-out-quart),box-shadow var(--dur-instant) var(--ease-out-quart);position:relative;padding:0}.risk-matrix-cell-value{font-size:10px;color:var(--ink-soft);font-weight:500}.risk-matrix-cell--low{background:var(--success-soft)}.risk-matrix-cell--medium{background:var(--warning-soft)}.risk-matrix-cell--high{background:var(--danger-soft)}.risk-matrix-cell--low .risk-matrix-cell-value{color:#146720}.risk-matrix-cell--medium .risk-matrix-cell-value{color:#974c00;color:oklch(.5 .14 55)}.risk-matrix-cell--high .risk-matrix-cell-value{color:#a20519}.risk-matrix-cell:hover:not(:disabled){transform:scale(1.06);box-shadow:var(--shadow-2)}.risk-matrix-cell.is-active{border-color:var(--ink);border-width:2px;box-shadow:var(--shadow-focus),var(--shadow-2)}.risk-matrix-cell.is-active .risk-matrix-cell-value{color:var(--ink);font-weight:700}.risk-matrix-cell:disabled{cursor:default}.risk-matrix-axis-x{display:flex;gap:2px;align-items:center;margin-top:2px}.risk-matrix-axis-x-label{grid-row:2;grid-column:2;text-align:center;color:var(--ink-muted);font-size:var(--font-2xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-top:var(--space-2xs)}.risk-matrix--sm{width:140px}.risk-matrix--md{width:220px}.risk-matrix--3 .risk-matrix-cell{min-width:32px}.risk-matrix--5 .risk-matrix-cell{min-width:22px}.integrity-badge{display:inline-flex;align-items:center;gap:var(--space-xs);height:26px;padding:0 var(--space-md);border-radius:var(--radius-full);background:var(--paper-soft);border:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--font-2xs);font-weight:500;color:var(--ink-soft);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart),border-color var(--dur-instant) var(--ease-out-quart)}.integrity-badge:hover{background:var(--paper-warm)}.integrity-badge:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.integrity-badge-count{font-weight:600}.integrity-badge--ok{color:#146720;border-color:#b6d9b6;background:var(--success-soft)}.integrity-badge--warning{color:#974c00;color:oklch(.5 .14 55);border-color:#f1c4a0;background:var(--warning-soft)}.integrity-badge--error{color:#a20519;border-color:#f3bfba;background:var(--danger-soft)}.integrity-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-2xl);color:#146720;text-align:center}.integrity-list{list-style:none;padding:0;margin:0 0 var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);max-height:50vh;overflow-y:auto}.integrity-group{display:flex;flex-direction:column;gap:var(--space-xs)}.integrity-group-head{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);padding-bottom:var(--space-2xs);border-bottom:1px solid var(--border-soft)}.integrity-issues{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1px}.integrity-issue{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--paper-soft);font-size:var(--font-sm);color:var(--ink)}.integrity-issue-dot{width:6px;height:6px;border-radius:var(--radius-full);flex-shrink:0}.integrity-issue--warning .integrity-issue-dot{background:var(--warning)}.integrity-issue--error .integrity-issue-dot{background:var(--danger)}.integrity-issue-msg{flex:1;line-height:var(--line-snug)}.collab-invite{margin-bottom:var(--space-md)}.collab-invite-row{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center;margin-top:var(--space-xs)}.collab-invite-row .field-input{flex:1 1 200px;width:auto;min-width:0}select.collab-role-select{width:120px;flex:0 0 auto}.collab-invite-row .btn{flex:0 0 auto}.collab-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:340px;overflow-y:auto;margin-bottom:var(--space-md);border-top:1px solid var(--border-soft);padding-top:var(--space-md)}.collab-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--paper)}.collab-avatar{background:var(--presence-2)}.collab-item-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.collab-item-name{font-size:var(--font-sm);font-weight:500;color:var(--ink)}.collab-item-email{font-size:var(--font-2xs);color:var(--ink-muted)}.plan-shell{height:100vh;display:grid;grid-template-rows:var(--topbar-height) 1fr;background:var(--paper);overflow:hidden}@media (max-width: 1023px){.plan-shell{grid-template-rows:var(--topbar-height-mobile) 1fr}}.plan-topbar{display:flex;align-items:center;gap:var(--space-md);padding:0 var(--space-lg);border-bottom:1px solid var(--border);background:var(--paper);z-index:30;min-height:var(--topbar-height)}.plan-topbar-back{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--ink-soft);transition:background-color var(--dur-instant) var(--ease-out-quart)}.plan-topbar-back:hover{background:var(--paper-warm);color:var(--ink)}.plan-topbar-divider{width:1px;height:24px;background:var(--border)}.plan-topbar-breadcrumb{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex:0 1 auto}.plan-topbar-state{flex-shrink:0}.plan-topbar-title{font-size:var(--font-md);font-weight:600;color:var(--ink);letter-spacing:-.012em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.plan-topbar-version{font-size:var(--font-2xs);color:var(--ink-muted);font-weight:500;flex-shrink:0}.plan-topbar-spacer{flex:1}.plan-body{display:grid;grid-template-columns:256px 1fr;min-height:0;overflow:hidden}@media (max-width: 1023px){.plan-body{grid-template-columns:220px 1fr}}@media (max-width: 639px){.plan-body{grid-template-columns:1fr}.plan-sidebar{display:none}}.plan-sidebar{border-right:1px solid var(--border);background:var(--paper-soft);display:flex;flex-direction:column;min-height:0;overflow:hidden}.plan-sidebar-head{padding:var(--space-2xl) var(--space-lg) var(--space-lg);border-bottom:1px solid var(--border-soft);display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0}.plan-sidebar-eyebrow{font-size:var(--font-2xs);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);line-height:1}.plan-sidebar-progress{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.plan-sidebar-progress-counter{font-size:var(--font-xl);font-weight:500;color:var(--ink);letter-spacing:-.014em;line-height:1}.plan-sidebar-progress-total{color:var(--ink-muted);font-weight:400}.plan-sidebar-progress-pct{font-size:var(--font-2xs);color:var(--ink-muted);font-weight:500}.plan-sidebar-progress-bar{height:3px;background:var(--border-soft);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-xs)}.plan-sidebar-progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width var(--dur-slow) var(--ease-out-quart);opacity:.85}.plan-sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-sm);display:flex;flex-direction:column;gap:var(--space-lg)}.plan-sidebar-phase{display:flex;flex-direction:column;gap:var(--space-xs)}.plan-sidebar-phase-head{display:flex;align-items:center;gap:var(--space-xs);padding:0 var(--space-sm);font-size:var(--font-2xs);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-2xs)}.plan-sidebar-phase.is-active-phase .plan-sidebar-phase-head{color:var(--accent-strong)}.plan-sidebar-phase-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.7}.plan-sidebar-phase.is-active-phase .plan-sidebar-phase-icon{opacity:1}.plan-sidebar-phase-name{flex:1;display:inline-flex;align-items:baseline;gap:var(--space-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-sidebar-phase-num{color:var(--ink-muted);font-weight:400;font-size:var(--font-2xs);letter-spacing:0}.plan-sidebar-phase.is-active-phase .plan-sidebar-phase-num{color:var(--accent-strong)}.plan-sidebar-phase-dot{width:5px;height:5px;border-radius:var(--radius-full);flex-shrink:0;opacity:.85}.plan-sidebar-phase-dot--done{background:var(--success)}.plan-sidebar-phase-dot--progress{background:var(--warning)}.plan-sidebar-phase-dot--pending{background:var(--ink-muted);opacity:.3}.plan-sidebar-steps{list-style:none;display:flex;flex-direction:column;gap:1px;padding:0;margin:0}.plan-sidebar-step{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:6px var(--space-sm);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--ink-soft);font-size:var(--font-sm);text-align:left;cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart),color var(--dur-instant) var(--ease-out-quart);position:relative}.plan-sidebar-step:hover:not(.is-active){background:var(--paper-warm);color:var(--ink)}.plan-sidebar-step:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.plan-sidebar-step.is-active{background:var(--paper-warm);color:var(--ink);font-weight:600}.plan-sidebar-step-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:18px;background:transparent;color:var(--ink-muted);font-size:var(--font-2xs);font-weight:500;flex-shrink:0;font-family:var(--font-mono);letter-spacing:0}.plan-sidebar-step-mark>span{display:inline-block;text-align:right}.plan-sidebar-step--completa .plan-sidebar-step-mark{color:var(--success)}.plan-sidebar-step--en-progreso .plan-sidebar-step-mark{color:#ac5700;color:oklch(.55 .14 55)}.plan-sidebar-step.is-active .plan-sidebar-step-mark{color:var(--accent-strong);font-weight:700}.plan-sidebar-step-name{flex:1;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-sidebar-step.is-active .plan-sidebar-step-name{color:var(--ink)}.plan-sidebar-step--completa .plan-sidebar-step-name{color:var(--ink-soft)}.plan-sidebar-foot{border-top:1px solid var(--border);padding:var(--space-sm);display:flex;flex-direction:column;gap:1px;flex-shrink:0}.plan-sidebar-foot-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:transparent;border:none;color:var(--ink-soft);font-size:var(--font-sm);text-align:left;cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart)}.plan-sidebar-foot-btn:hover{background:var(--paper-warm);color:var(--ink)}.plan-sidebar-foot-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.plan-workspace{overflow-y:auto;padding:var(--space-2xl) var(--space-xl) var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-2xl);min-width:0}.plan-workspace.is-full-bleed{padding:0;overflow:hidden;position:relative}@media (max-width: 1023px){.plan-workspace{padding:var(--space-xl) var(--space-lg) var(--space-3xl)}}.plan-workspace-head{max-width:var(--content-max-width);margin:0 auto;width:100%}.plan-workspace-eyebrow{font-size:var(--font-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.plan-workspace-title{margin-top:var(--space-xs);font-size:var(--font-3xl);font-weight:600;color:var(--ink);letter-spacing:-.022em;line-height:1.1}.plan-workspace-desc{margin-top:var(--space-sm);color:var(--ink-soft);font-size:var(--font-md);line-height:var(--line-relaxed);max-width:64ch}.plan-workspace>*:not(.plan-workspace-head):not(.plan-workspace.is-full-bleed){max-width:var(--content-max-width);margin-left:auto;margin-right:auto;width:100%}.blocked-stage{max-width:560px;margin:var(--space-2xl) auto;width:100%}.blocked-stage-card{background:var(--paper);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-2xl);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.blocked-stage-icon{width:44px;height:44px;border-radius:var(--radius-full);background:var(--paper-warm);color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center}.blocked-stage-title{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.012em}.blocked-stage-desc{font-size:var(--font-md);color:var(--ink-soft);line-height:var(--line-relaxed);max-width:48ch}.blocked-stage-checklist{list-style:none;display:flex;flex-direction:column;gap:var(--space-2xs);padding:0;margin:var(--space-md) 0;width:100%;max-width:420px}.blocked-stage-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--paper-soft);font-size:var(--font-sm);text-align:left}.blocked-stage-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--font-2xs);font-weight:600;flex-shrink:0;border:1px solid var(--border)}.blocked-stage-item.is-done .blocked-stage-mark{background:var(--success);color:var(--accent-contrast);border-color:var(--success)}.blocked-stage-item.is-pending .blocked-stage-mark{color:var(--ink-muted)}.blocked-stage-name{flex:1;color:var(--ink);font-weight:500}.blocked-stage-item.is-done .blocked-stage-name{color:var(--ink-soft)}.blocked-stage-status{font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.blocked-stage-item.is-done .blocked-stage-status{color:#146720}.blocked-stage-cta{margin-top:var(--space-sm)}.etapa1-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.etapa1-count{font-size:var(--font-size-xs);color:var(--color-ink-muted);background:var(--color-bg-soft);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);white-space:nowrap}.etapa1-miembros{display:flex;flex-direction:column;gap:var(--spacing-lg)}.etapa1-miembro{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.etapa1-miembro-header{display:flex;justify-content:space-between;align-items:center}.etapa1-miembro-num{font-size:var(--font-size-xs);font-weight:600;color:var(--color-moss-dark);background:var(--color-moss-bg);padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em}.etapa1-add-btn{width:100%;justify-content:center;border-style:dashed}.etapa1-actions{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0}.etapa1-status{font-size:var(--font-size-xs);color:var(--color-ink-muted)}.etapa-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.etapa-form-actions{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0}.etapa-form-status{font-size:var(--font-size-xs);color:var(--color-ink-muted)}.etapa-item-block{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.etapa-item-block-header{display:flex;justify-content:space-between;align-items:center}.etapa-item-tag{font-size:var(--font-size-xs);font-weight:600;color:var(--color-moss-dark);background:var(--color-moss-bg);padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em}.etapa-count-badge{font-size:var(--font-size-xs);color:var(--color-ink-muted);background:var(--color-bg-soft);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);white-space:nowrap}.etapa-add-btn{width:100%;justify-content:center;border-style:dashed}.etapa-checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-sm)}.etapa-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);font-size:var(--font-size-sm)}.etapa-checkbox:hover{background:var(--color-bg-hover)}.etapa-checkbox input{accent-color:var(--color-moss);width:16px;height:16px}.etapa-checkbox input:checked+span{color:var(--color-moss-dark);font-weight:500}.etapa-radio-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.etapa-radio{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.etapa-radio:hover{background:var(--color-bg-hover)}.etapa-radio input{accent-color:var(--color-moss)}.haccp-node{--node-border: var(--border);--node-border-width: 1px;--node-bg: var(--paper);--node-rotation: 0deg;background:var(--node-bg);border:var(--node-border-width) solid var(--node-border);color:var(--ink);font-family:var(--font-sans);font-size:var(--font-sm);font-weight:500;padding:var(--space-sm) var(--space-md);display:inline-flex;align-items:center;gap:var(--space-sm);min-width:140px;max-width:320px;position:relative;transform:rotate(var(--node-rotation));transition:box-shadow var(--dur-instant) var(--ease-out-quart)}.haccp-node:hover{box-shadow:var(--shadow-2)}.haccp-node.is-selected{box-shadow:none}.haccp-node-label{flex:1;text-align:center;white-space:normal;line-height:var(--line-snug);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;-webkit-user-select:none;user-select:none;cursor:default;outline:none;border-radius:var(--radius-xs);padding:1px 3px;margin:-1px -3px}.haccp-node-label.is-editing{background:var(--paper);outline:1.5px solid var(--accent);outline-offset:1px;-webkit-user-select:text;user-select:text;cursor:text;display:block;-webkit-line-clamp:unset;text-align:center;white-space:pre-wrap;word-break:break-word}.haccp-node[data-rotation="180"] .haccp-node-label{transform:rotate(180deg)}.haccp-node--start,.haccp-node--end{--node-border-width: 1.5px;border-radius:var(--radius-full);padding:var(--space-sm) var(--space-lg);min-width:100px;font-weight:600}.haccp-node--start{--node-border: var(--success);background:var(--success-soft)}.haccp-node--end{--node-border: var(--ink);background:var(--paper-warm)}.haccp-node-pill-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.haccp-node-pill-dot--start{background:var(--success)}.haccp-node-pill-dot--end{background:var(--ink)}.haccp-node--process{border-radius:var(--radius-md)}.haccp-node--pcc{--node-border: var(--accent);--node-border-width: 2px;border-radius:var(--radius-md);padding-top:var(--space-md)}.haccp-node-pcc-tag{position:absolute;top:-10px;right:var(--space-sm);background:var(--accent);color:var(--accent-contrast);padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-2xs);font-weight:700;letter-spacing:.04em;line-height:1;height:18px;display:inline-flex;align-items:center;z-index:2}.haccp-node--pcc-codex .haccp-node-pcc-tag{background:var(--accent-strong);box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--accent)}.haccp-node--pcc-codex .haccp-node-pcc-tag:before{content:"↻ ";font-weight:700;margin-right:1px}.haccp-node--text{--node-border: transparent;--node-border-width: 0;--node-bg: transparent;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);min-width:60px;min-height:28px;font-weight:500;color:var(--ink);display:flex;align-items:center;justify-content:center}.haccp-node--text:hover{box-shadow:0 0 0 1px var(--border-soft)}.haccp-node--text.is-selected{box-shadow:none}.haccp-node--text .haccp-node-label{text-align:center;display:block;-webkit-line-clamp:unset;white-space:pre-wrap;word-break:break-word;flex:1}.haccp-node--text .haccp-node-label.is-editing{background:var(--paper);outline:1.5px solid var(--accent);outline-offset:2px}.haccp-node--decision{min-width:160px;min-height:100px;background:transparent;border:none;padding:0;display:flex;align-items:center;justify-content:center}.haccp-node--decision:not([style*=width]){width:160px}.haccp-node--decision:not([style*=height]){height:100px}.haccp-node-decision-shape{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--warning-soft);border:1.5px solid var(--warning);transform:rotate(45deg) scale(.72);border-radius:var(--radius-md);z-index:0}.haccp-node--decision .haccp-node-label{position:relative;z-index:1;font-size:var(--font-xs);font-weight:600;padding:0 var(--space-md);color:#834100;color:oklch(.45 .14 55);max-width:60%}.haccp-node--decision .haccp-node-label.is-editing{background:var(--paper);color:var(--ink);max-width:75%}.haccp-node--decision:hover .haccp-node-decision-shape{filter:brightness(.97)}.haccp-handle{width:8px!important;height:8px!important;background:var(--paper)!important;border:1.5px solid var(--ink-muted)!important;opacity:0;transition:opacity var(--dur-fast) var(--ease-out-quart),background-color var(--dur-instant) var(--ease-out-quart),border-color var(--dur-instant) var(--ease-out-quart);z-index:5}.haccp-handle:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.react-flow__node:hover .haccp-handle{opacity:.7}.react-flow__node.selected .haccp-handle{opacity:0}.haccp-handle:hover,.react-flow__handle-connecting,.react-flow__handle-valid{background:var(--accent)!important;border-color:var(--accent)!important;opacity:1!important}.react-flow.react-flow--connecting .haccp-handle{opacity:.85}.react-flow__edge-path{stroke:#6c7278!important;stroke-width:1.75!important}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:var(--accent)!important;stroke-width:2.5!important}.react-flow__arrowhead{fill:#6c7278}.react-flow__connection-path{stroke:var(--accent)!important;stroke-width:2.5!important;stroke-dasharray:5 4}.react-flow__background{background:var(--paper-soft)}.react-flow__background-pattern{fill:#cfcdca!important}.node-frame{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;z-index:10}.node-frame-border{position:absolute;top:0;right:0;bottom:0;left:0;border:1px dashed var(--accent);border-radius:inherit;pointer-events:none}.node-frame-rotate-line{position:absolute;top:-16px;left:50%;width:1px;height:12px;background:var(--accent);transform:translate(-50%);pointer-events:none;opacity:.7}.node-frame-rotate{position:absolute;top:-22px;left:50%;width:9px;height:9px;border-radius:var(--radius-full);background:var(--paper);border:1.5px solid var(--accent);transform:translate(-50%);cursor:grab;pointer-events:auto;transition:background-color var(--dur-instant) var(--ease-out-quart)}.node-frame-rotate:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:var(--radius-full)}.node-frame-rotate:hover{background:var(--accent)}.node-frame-rotate:active{cursor:grabbing;background:var(--accent)}.node-frame-resize{position:absolute;width:8px;height:8px;background:var(--paper);border:1.5px solid var(--accent);border-radius:2px;pointer-events:auto;transition:background-color var(--dur-instant) var(--ease-out-quart)}.node-frame-resize:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.node-frame-resize:hover{background:var(--accent)}.node-frame-resize--tl{top:-4px;left:-4px;cursor:nwse-resize}.node-frame-resize--tr{top:-4px;right:-4px;cursor:nesw-resize}.node-frame-resize--bl{bottom:-4px;left:-4px;cursor:nesw-resize}.node-frame-resize--br{bottom:-4px;right:-4px;cursor:nwse-resize}.node-frame-resize--t{top:-4px;left:50%;transform:translate(-50%);cursor:ns-resize}.node-frame-resize--b{bottom:-4px;left:50%;transform:translate(-50%);cursor:ns-resize}.node-frame-resize--l{top:50%;left:-4px;transform:translateY(-50%);cursor:ew-resize}.node-frame-resize--r{top:50%;right:-4px;transform:translateY(-50%);cursor:ew-resize}.node-frame-delete{position:absolute;top:-22px;right:-4px;width:18px;height:18px;border-radius:var(--radius-full);background:var(--paper);border:1.5px solid var(--danger);color:var(--danger);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;padding:0;transition:background-color var(--dur-instant) var(--ease-out-quart),color var(--dur-instant) var(--ease-out-quart)}.node-frame-delete:hover{background:var(--danger);color:var(--paper)}@media (prefers-reduced-motion: reduce){.haccp-node,.haccp-handle,.node-frame-rotate,.node-frame-resize,.node-frame-delete{transition:none}}.diagram-editor{position:relative;width:100%;background:var(--paper-soft);overflow:hidden}.diagram-editor.is-fill-height{height:100%;min-height:0}.collab-cursors{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;overflow:hidden}.collab-cursor{position:absolute;top:0;left:0;display:flex;align-items:flex-start;gap:2px;will-change:transform;transition:transform 80ms linear}.collab-cursor svg{flex:none;filter:drop-shadow(0 1px 1px rgb(0 0 0 / .25))}.collab-cursor-label{margin-top:10px;padding:2px 7px;border-radius:999px;background:var(--cursor-color);color:#fff;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;box-shadow:0 1px 3px #0003}.diagram-toolbar{position:absolute;top:var(--space-md);left:var(--space-md);display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);z-index:10}.diagram-toolbar-label{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:0 var(--space-sm) 0 var(--space-md);font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);border-right:1px solid var(--border-soft);height:28px}.diagram-tool{display:inline-flex;align-items:center;gap:var(--space-xs);height:28px;padding:0 var(--space-sm);border-radius:var(--radius-sm);background:transparent;border:none;color:var(--ink-soft);font-size:var(--font-xs);font-weight:500;cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart),color var(--dur-instant) var(--ease-out-quart)}.diagram-tool:hover:not(:disabled){background:var(--paper-warm);color:var(--ink)}.diagram-tool:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.diagram-tool:disabled{opacity:.4;cursor:not-allowed}.diagram-tool--pcc{color:var(--accent-strong)}.diagram-tool--pcc:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-strong)}.diagram-tool-kbd{display:inline-flex;align-items:center;justify-content:center;height:16px;min-width:16px;padding:0 4px;margin-left:var(--space-2xs);border-radius:var(--radius-xs);background:var(--paper-warm);color:var(--ink-muted);font-size:9px;font-weight:600;border:1px solid var(--border);letter-spacing:0}.diagram-toolbar-divider{width:1px;height:16px;background:var(--border-soft);margin:0 var(--space-2xs)}.diagram-sync{position:absolute;top:var(--space-md);right:var(--space-md);display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--font-2xs);color:var(--ink-soft);box-shadow:var(--shadow-2);z-index:10}.diagram-sync-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--success)}.diagram-sync-dot.is-connecting{background:var(--warning);animation:diagram-sync-pulse 1.4s ease-in-out infinite}@keyframes diagram-sync-pulse{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.diagram-sync-dot.is-connecting{animation:none;opacity:.85}}.diagram-lock-banner{position:absolute;top:var(--space-md);left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-2xs);font-weight:500;background:var(--paper);border:1px solid var(--border);box-shadow:var(--shadow-2);z-index:11;--lock-color: var(--accent)}.diagram-lock-banner.is-mine{background:color-mix(in oklch,var(--accent) 12%,var(--paper));border-color:color-mix(in oklch,var(--accent) 35%,transparent);color:var(--accent-strong, var(--accent))}.diagram-lock-banner.is-mine.is-warning{background:color-mix(in oklch,var(--warning) 14%,var(--paper));border-color:color-mix(in oklch,var(--warning) 50%,transparent);color:var(--warning);animation:diagram-lock-pulse 1.4s ease-in-out infinite}@keyframes diagram-lock-pulse{0%,to{box-shadow:var(--shadow-2)}50%{box-shadow:0 0 0 4px color-mix(in oklch,var(--warning) 25%,transparent),var(--shadow-2)}}@media (prefers-reduced-motion: reduce){.diagram-lock-banner.is-mine.is-warning{animation:none}}.diagram-lock-banner.is-other{background:color-mix(in oklch,var(--lock-color) 14%,var(--paper));border-color:color-mix(in oklch,var(--lock-color) 40%,transparent);color:var(--lock-color)}.diagram-lock-banner.is-free{color:var(--ink-soft)}.diagram-lock-action{display:inline-flex;align-items:center;gap:4px;margin-left:var(--space-xs);padding:3px 8px;border-radius:var(--radius-sm);background:var(--paper);border:1px solid currentColor;color:inherit;font-size:var(--font-2xs);font-weight:500;cursor:pointer;transition:background-color .15s ease}.diagram-lock-action:hover{background:color-mix(in oklch,currentColor 8%,var(--paper))}.diagram-validate{position:absolute;bottom:var(--space-md);right:var(--space-md);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);z-index:10;overflow:hidden;min-width:240px;max-width:320px}.diagram-validate.has-errors{border-color:#f3bfba}.diagram-validate.is-valid{border-color:#bad7ba}.diagram-validate-toggle{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);width:100%;background:transparent;border:none;text-align:left;font-size:var(--font-sm);font-weight:500;color:var(--ink);cursor:pointer}.diagram-validate-toggle:hover{background:var(--paper-warm)}.diagram-validate-toggle>span:nth-child(2){flex:1}.diagram-validate.has-errors .diagram-validate-toggle svg:first-child{color:var(--danger)}.diagram-validate.is-valid .diagram-validate-toggle svg:first-child{color:var(--success)}.diagram-validate-body{padding:var(--space-md);border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:var(--space-sm);background:var(--paper-soft)}.diagram-validate-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2xs);padding:0;margin:0;font-size:var(--font-xs)}.diagram-validate-list li{display:flex;justify-content:space-between;color:var(--ink-soft);padding:2px 0}.diagram-validate-list li>span{font-family:var(--font-mono);font-weight:600;color:var(--ink)}.diagram-validate-list li.has-error{color:var(--danger)}.diagram-validate-list li.has-error>span{color:var(--danger)}.diagram-validate-errors{list-style:none;padding:var(--space-sm) var(--space-md);margin:0;background:var(--danger-soft);border-radius:var(--radius-md);font-size:var(--font-xs);color:#8a0012;color:oklch(.4 .18 25);display:flex;flex-direction:column;gap:var(--space-xs)}.diagram-validate-errors li{line-height:var(--line-snug)}.diagram-zoom-panel{margin:var(--space-md)!important}.zoom-controls{display:inline-flex;align-items:center;gap:1px;padding:2px;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);height:28px}.zoom-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--ink-soft);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart)}.zoom-btn:hover{background:var(--paper-warm);color:var(--ink)}.zoom-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.zoom-pct{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:24px;padding:0 var(--space-xs);background:transparent;border:none;font-size:var(--font-2xs);font-weight:500;color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--dur-instant) var(--ease-out-quart)}.zoom-pct:hover{background:var(--paper-warm);color:var(--ink)}.zoom-divider{width:1px;height:14px;background:var(--border);margin:0 2px}.cascade-impact-list{list-style:none;padding:var(--space-md) var(--space-lg);margin:0 0 var(--space-md);background:var(--warning-soft);border:1px solid oklch(.85 .07 60);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-md);color:#6f3600;color:oklch(.4 .14 55)}.cascade-impact-list li{display:flex;align-items:baseline;gap:var(--space-sm)}.cascade-impact-list .mono{font-weight:700;color:var(--ink)}.diagram-tool--icon{width:28px;padding:0;justify-content:center}.diagram-tool--icon span{display:none}.edge-delete{position:absolute;pointer-events:all;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--paper);color:var(--ink-muted);cursor:pointer;transition:color .12s ease,border-color .12s ease,background-color .12s ease}.edge-delete:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.etapa4-fullbleed{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--paper-soft)}.ai-suggest-intro{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-soft)}.ai-suggest-cta{margin-top:var(--space-sm)}.ai-suggest-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:420px;overflow-y:auto;margin:0 0 var(--space-md);padding:0;list-style:none}.ai-suggest-item{border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-md);background:var(--paper);display:flex;flex-direction:column;gap:var(--space-sm)}.ai-suggest-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.ai-suggest-cat{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-2xs);font-weight:500;border:1px solid currentColor}.ai-suggest-cat--bio{color:var(--presence-3)}.ai-suggest-cat--quim{color:var(--presence-5)}.ai-suggest-cat--fis{color:var(--presence-2)}.ai-suggest-cat--alg{color:var(--presence-1)}.ai-suggest-conf{font-size:var(--font-2xs);color:var(--ink-muted)}.ai-suggest-desc{font-size:var(--font-sm);color:var(--ink);margin:0;line-height:1.4}.ai-suggest-meta{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:var(--space-sm);background:color-mix(in oklch,var(--paper) 90%,var(--ink) 10%);border-radius:var(--radius-sm)}.ai-suggest-meta div{display:flex;flex-direction:column;gap:2px}.ai-suggest-meta dt{font-size:var(--font-2xs);font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.ai-suggest-meta dd{margin:0;font-size:var(--font-2xs);color:var(--ink);line-height:1.4}.ai-suggest-actions{display:flex;gap:var(--space-xs);justify-content:flex-end}.matriz-config-card{background:var(--paper-soft)}.matriz-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper);overflow:hidden;flex-shrink:0}.matriz-toggle-btn{padding:var(--space-xs) var(--space-md);background:transparent;border:none;font-family:var(--font-mono);font-size:var(--font-2xs);font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart),color var(--dur-instant) var(--ease-out-quart)}.matriz-toggle-btn:hover:not(.is-active){background:var(--paper-warm);color:var(--ink)}.matriz-toggle-btn.is-active{background:var(--accent);color:var(--accent-contrast)}.matriz-legend{display:flex;flex-wrap:wrap;gap:var(--space-lg);font-size:var(--font-xs);color:var(--ink-soft)}.matriz-legend-item{display:inline-flex;align-items:center;gap:var(--space-xs)}.matriz-legend-dot{width:10px;height:10px;border-radius:var(--radius-xs)}.matriz-legend-dot--low{background:var(--success-soft);border:1px solid oklch(.85 .06 145)}.matriz-legend-dot--medium{background:var(--warning-soft);border:1px solid oklch(.85 .07 60)}.matriz-legend-dot--high{background:var(--danger-soft);border:1px solid oklch(.85 .06 25)}.paso-card{border-color:var(--border-soft)}.paso-title{display:inline-flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.paso-num{font-size:var(--font-md);font-weight:500;color:var(--ink-muted)}.paso-badge{margin-left:var(--space-xs)}.peligros-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.peligros-actions{display:flex;gap:var(--spacing-md)}.peligros-actions .btn{flex:1}.peligro-header-tags{display:flex;gap:var(--spacing-sm);align-items:center}.peligro-tag{font-size:var(--font-size-2xs);font-weight:600;padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em}.peligro-tag-bio{background:#fde8e8;color:#b91c1c}.peligro-tag-quim{background:#fef3c7;color:#92400e}.peligro-tag-fis{background:#dbeafe;color:#1e40af}.peligro-tag-alg{background:#fce7f3;color:#9d174d}.peligro-significancia{font-size:var(--font-size-2xs);font-weight:600;padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em}.significativo-si{background:var(--color-red-soft);color:var(--color-red)}.significativo-no{background:var(--color-border-soft);color:var(--color-ink-muted)}.codex-shell{display:grid;grid-template-columns:280px 1fr;gap:var(--space-xl);align-items:start;width:100%}@media (max-width: 1023px){.codex-shell{grid-template-columns:1fr}}.codex-sidebar{background:var(--paper-soft);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md);position:sticky;top:var(--space-lg);max-height:calc(100vh - 220px);overflow-y:auto}.codex-sidebar-head{padding:var(--space-xs) var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-soft);margin-bottom:var(--space-sm);display:flex;flex-direction:column;gap:2px}.codex-sidebar-eyebrow{font-size:var(--font-2xs);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}.codex-sidebar-count{font-size:var(--font-md);color:var(--ink);font-weight:500}.codex-sidebar-list{list-style:none;display:flex;flex-direction:column;gap:1px;padding:0;margin:0}.codex-peligro{width:100%;display:flex;gap:var(--space-sm);padding:var(--space-sm);background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart)}.codex-peligro:hover:not(.is-selected){background:var(--paper-warm)}.codex-peligro.is-selected{background:var(--accent-tint)}.codex-peligro-status{width:22px;height:22px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--paper);border:1px solid var(--border);color:var(--ink-muted)}.codex-peligro-status--PCC{background:var(--success-soft);border-color:#b6d9b6;color:#146720}.codex-peligro-status--PC{background:var(--paper-warm);border-color:var(--border);color:var(--ink-soft)}.codex-peligro-status--REDISEÑO{background:var(--danger-soft);border-color:#f3bfba;color:#a20519}.codex-peligro-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.codex-peligro-tag{font-size:var(--font-2xs);letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:var(--ink-muted)}.codex-peligro-desc{font-size:var(--font-sm);color:var(--ink);line-height:var(--line-snug);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.codex-peligro.is-selected .codex-peligro-desc{font-weight:600}.codex-peligro-override{font-size:var(--font-2xs);color:#974c00;color:oklch(.5 .14 55);font-weight:500;font-style:italic}.codex-main{display:flex;flex-direction:column;gap:var(--space-xl)}.codex-main-head{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-soft)}.codex-main-eyebrow{font-size:var(--font-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.codex-main-title{font-size:var(--font-2xl);font-weight:600;color:var(--ink);letter-spacing:-.018em}.codex-main-meta{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.codex-main-desc{color:var(--ink-soft);font-size:var(--font-md)}.codex-question{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-2xl);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg)}.codex-question-tag{display:inline-block;padding:2px var(--space-sm);background:var(--accent-soft);color:var(--accent-strong);border-radius:var(--radius-full);font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;width:fit-content}.codex-question-text{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.014em;line-height:1.3;max-width:56ch}.codex-question-help{font-size:var(--font-md);color:var(--ink-soft);line-height:var(--line-relaxed);max-width:56ch}.codex-question-actions{display:flex;gap:var(--space-md);margin-top:var(--space-md)}.codex-question-actions .btn{min-width:140px}.codex-question-kbd{display:inline-flex;align-items:center;justify-content:center;height:18px;min-width:18px;padding:0 5px;margin-left:var(--space-xs);border-radius:var(--radius-xs);background:#ffffff2e;color:inherit;font-size:10px;font-weight:600;border:1px solid oklch(1 0 0 / .25);letter-spacing:0}.btn-secondary .codex-question-kbd{background:var(--paper-warm);border-color:var(--border);color:var(--ink-muted)}.codex-trail{padding:var(--space-md) var(--space-lg);background:var(--paper-soft);border:1px solid var(--border-soft);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-sm)}.codex-trail-label{font-size:var(--font-2xs);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}.codex-trail-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-md);padding:0;margin:0}.codex-trail-item{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-sm)}.codex-trail-q{color:var(--ink-muted);font-weight:500}.codex-trail-a{font-weight:600}.codex-trail-a--yes{color:#146720}.codex-trail-a--no{color:#974c00;color:oklch(.5 .14 55)}.codex-result{display:flex;flex-direction:column;gap:var(--space-md)}.codex-result-card{display:flex;gap:var(--space-md);padding:var(--space-xl);border:1.5px solid;border-radius:var(--radius-lg);background:var(--paper)}.codex-result-card--PCC{border-color:var(--success);background:var(--success-soft)}.codex-result-card--PC{border-color:var(--border);background:var(--paper-soft)}.codex-result-card--REDISEÑO{border-color:var(--danger);background:var(--danger-soft)}.codex-result-icon{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center}.codex-result-card--PCC .codex-result-icon{background:var(--success);color:var(--accent-contrast)}.codex-result-card--PC .codex-result-icon{background:var(--paper);color:var(--ink-soft);border:1px solid var(--border)}.codex-result-card--REDISEÑO .codex-result-icon{background:var(--danger);color:var(--accent-contrast)}.codex-result-eyebrow{font-size:var(--font-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.codex-result-title{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.014em;margin-top:2px}.codex-result-desc{margin-top:var(--space-xs);color:var(--ink-soft);font-size:var(--font-md);line-height:var(--line-relaxed)}.codex-result-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.codex-audit{padding:var(--space-md) var(--space-lg);border:1px solid oklch(.85 .07 60);background:var(--warning-soft);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-sm)}.codex-audit-head{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#974c00;color:oklch(.5 .14 55)}.codex-audit-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.codex-audit-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-xs);flex-wrap:wrap}.codex-audit-from{color:var(--ink-muted);text-decoration:line-through}.codex-audit-to{color:var(--accent-strong);font-weight:600}.codex-audit-reason{color:var(--ink);font-style:italic}.codex-audit-by{color:var(--ink-muted);font-size:var(--font-2xs);margin-left:auto}.codex-override-options{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-xs)}.codex-override-opt{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:var(--paper);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--ink);cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart),border-color var(--dur-instant) var(--ease-out-quart)}.codex-override-opt:hover{background:var(--paper-warm)}.codex-override-opt.is-active{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong);font-weight:600}.etapa-pager{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-xl);border-top:1px solid var(--border);margin-top:var(--space-lg)}@media (max-width: 639px){.etapa-pager{flex-direction:column-reverse;gap:var(--space-md)}.etapa-pager .btn{width:100%}}.topbar{display:flex;align-items:center;gap:var(--space-lg);height:var(--topbar-height);padding:0 var(--space-xl);border-bottom:1px solid var(--border);background:var(--paper);position:sticky;top:0;z-index:50}@media (max-width: 1023px){.topbar{height:var(--topbar-height-mobile);padding:0 var(--space-lg)}}@media (max-width: 639px){.topbar{padding:0 var(--space-md)}}.topbar-spacer{flex:1}.topbar-brand{display:inline-flex;align-items:baseline;gap:var(--space-sm);color:var(--ink);text-decoration:none}.topbar-brand:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.topbar-brand-mark{font-family:var(--font-sans);font-weight:700;font-size:22px;letter-spacing:-.04em;line-height:1;color:var(--ink)}.topbar-brand-dot{color:var(--accent)}.topbar-brand-name{font-size:var(--font-sm);font-weight:500;color:var(--ink-soft);letter-spacing:-.005em}@media (max-width: 639px){.topbar-brand-name{display:none}}.topbar-user-menu{position:relative}.topbar-user-trigger{display:inline-flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);background:transparent}.topbar-user-trigger:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.topbar-user-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:left}@media (max-width: 639px){.topbar-user-info{display:none}}.topbar-user-name{font-size:var(--font-sm);font-weight:500;color:var(--ink)}.topbar-user-email{font-family:var(--font-mono);font-size:var(--font-2xs);color:var(--ink-muted);margin-top:1px}.topbar-user-popover{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:220px;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-xs);display:flex;flex-direction:column;gap:1px;z-index:60;animation:popover-in var(--dur-fast) var(--ease-out-quart)}@keyframes popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.topbar-user-popover-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--ink);background:transparent;text-align:left;cursor:pointer;transition:background-color var(--dur-instant) var(--ease-out-quart)}.topbar-user-popover-item:hover{background:var(--paper-warm)}.topbar-user-popover-item.is-danger{color:var(--danger)}.topbar-user-popover-item.is-danger:hover{background:var(--danger-soft)}.topbar-user-popover-divider{height:1px;background:var(--border-soft);margin:var(--space-xs) 0}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}.app-content{flex:1;width:100%;padding:var(--space-2xl) var(--space-xl) var(--space-4xl)}@media (max-width: 1023px){.app-content{padding:var(--space-xl) var(--space-lg) var(--space-3xl)}}@media (max-width: 639px){.app-content{padding:var(--space-lg) var(--space-md) var(--space-2xl)}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--ink: #051e46;--ink-soft: #34465f;--ink-muted: #6b7890;--paper: #ffffff;--paper-soft: #f5faf8;--paper-warm: #eefaf4;--border: #e2e8e6;--border-soft: #eef3f1;--accent: #1ed493;--accent-strong: #14b87c;--accent-soft: #c9f3e3;--accent-tint: #eefcf6;--accent-contrast: #051e46;--success: oklch(.62 .13 145);--success-soft: oklch(.96 .04 145);--warning: oklch(.72 .14 55);--warning-soft: oklch(.96 .05 60);--danger: oklch(.55 .18 25);--danger-soft: oklch(.96 .04 25);--info: oklch(.55 .1 240);--info-soft: oklch(.96 .03 240);--presence-1: oklch(.55 .13 25);--presence-2: oklch(.62 .13 222);--presence-3: oklch(.55 .13 145);--presence-4: oklch(.55 .13 195);--presence-5: oklch(.55 .13 250);--presence-6: oklch(.55 .13 300);--presence-7: oklch(.55 .13 350);--presence-8: oklch(.55 .07 90);--font-sans: "Inter Tight", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", monospace;--font-2xs: .6875rem;--font-xs: .75rem;--font-sm: .8125rem;--font-md: .875rem;--font-lg: 1rem;--font-xl: 1.1875rem;--font-2xl: 1.4375rem;--font-3xl: 1.8125rem;--font-4xl: 2.25rem;--font-5xl: 2.8125rem;--line-tight: 1.2;--line-snug: 1.35;--line-normal: 1.45;--line-relaxed: 1.6;--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--space-4xl: 64px;--space-5xl: 96px;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 999px;--shadow-1: 0 1px 0 oklch(.92 .008 80 / .5);--shadow-2: 0 1px 2px oklch(.3 .02 80 / .06), 0 1px 1px oklch(.3 .02 80 / .04);--shadow-3: 0 4px 12px oklch(.3 .02 80 / .08), 0 2px 4px oklch(.3 .02 80 / .06);--shadow-4: 0 12px 32px oklch(.3 .02 80 / .12), 0 4px 8px oklch(.3 .02 80 / .08);--shadow-focus: 0 0 0 3px rgba(30, 212, 147, .3);--shadow-focus-danger: 0 0 0 3px oklch(.55 .18 25 / .2);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out-quart: cubic-bezier(.76, 0, .24, 1);--dur-instant: 80ms;--dur-fast: .16s;--dur-base: .22s;--dur-slow: .32s;--transition-fast: var(--dur-instant) var(--ease-out-quart);--transition-base: var(--dur-fast) var(--ease-out-quart);--topbar-height: 56px;--topbar-height-mobile: 52px;--rail-width: 64px;--subnav-height: 44px;--content-max-width: 1280px;--sidebar-width: 240px;--bp-mobile: 640px;--bp-tablet: 1024px;--bp-desktop: 1280px;--bp-desktop-lg: 1536px;--color-bg: var(--paper);--color-bg-soft: var(--paper-soft);--color-bg-hover: var(--paper-warm);--color-ink: var(--ink);--color-ink-soft: var(--ink-soft);--color-ink-muted: var(--ink-muted);--color-border: var(--border);--color-border-soft: var(--border-soft);--color-shadow: oklch(.3 .02 80 / .06);--color-shadow-strong: oklch(.3 .02 80 / .12);--color-moss: var(--accent);--color-moss-dark: var(--accent-strong);--color-moss-soft: var(--accent);--color-moss-tint: var(--accent-soft);--color-moss-bg: var(--accent-tint);--color-success: var(--success);--color-success-soft: var(--success-soft);--color-amber: var(--warning);--color-amber-soft: var(--warning-soft);--color-warning: var(--warning);--color-red: var(--danger);--color-red-soft: var(--danger-soft);--color-danger: var(--danger);--color-sidebar-bg: var(--ink);--color-sidebar-fg: var(--paper);--color-sidebar-fg-muted: var(--ink-muted);--color-sidebar-hover: oklch(.28 .012 250);--color-sidebar-active: var(--accent);--shadow-sm: var(--shadow-2);--shadow-md: var(--shadow-3);--shadow-lg: var(--shadow-4);--font-body: var(--font-sans);--font-size-2xs: var(--font-2xs);--font-size-xs: var(--font-xs);--font-size-sm: var(--font-sm);--font-size-md: var(--font-md);--font-size-lg: var(--font-lg);--font-size-xl: var(--font-xl);--font-size-2xl: var(--font-2xl);--font-size-3xl: var(--font-3xl);--font-size-4xl: var(--font-4xl);--spacing-2xs: var(--space-2xs);--spacing-xs: var(--space-xs);--spacing-sm: var(--space-sm);--spacing-md: var(--space-md);--spacing-lg: var(--space-lg);--spacing-xl: var(--space-xl);--spacing-2xl: var(--space-2xl);--spacing-3xl: var(--space-3xl);--spacing-4xl: var(--space-4xl)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 1,"ss01" 1}body{font-family:var(--font-sans);font-size:var(--font-sm);line-height:var(--line-normal);color:var(--ink);background-color:var(--paper);min-height:100vh}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--line-tight);letter-spacing:-.01em}.mono,.tabular{font-family:var(--font-mono);font-feature-settings:"tnum" 1,"zero" 1}.mono{font-size:.92em}.uppercase{text-transform:uppercase;letter-spacing:.04em;font-size:var(--font-2xs);font-weight:600}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);height:36px;padding:0 var(--space-xl);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-sm);font-weight:500;letter-spacing:-.005em;cursor:pointer;white-space:nowrap;border:1px solid transparent;background:transparent;color:inherit;transition:background-color var(--dur-instant) var(--ease-out-quart),border-color var(--dur-instant) var(--ease-out-quart),color var(--dur-instant) var(--ease-out-quart)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{height:28px;padding:0 var(--space-lg);font-size:var(--font-xs);gap:var(--space-xs)}.btn-lg{height:44px;padding:0 var(--space-2xl);font-size:var(--font-md)}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-secondary{background:var(--paper);color:var(--ink);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--paper-warm)}.btn-ghost{color:var(--ink-soft)}.btn-ghost:hover:not(:disabled){background:var(--paper-warm);color:var(--ink)}.btn-outline{background:transparent;color:var(--ink);border-color:var(--border)}.btn-outline:hover:not(:disabled){background:var(--paper-warm);border-color:var(--ink-muted)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger-solid:hover:not(:disabled){background:#ac1922;border-color:#ac1922}.btn-link{height:auto;padding:0;background:transparent;color:var(--accent-strong);border:none;text-decoration:none;font-weight:500}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-icon{width:36px;height:36px;padding:0;flex-shrink:0}.btn-icon.btn-sm{width:28px;height:28px}.field{display:flex;flex-direction:column;gap:var(--space-xs)}.field-label{font-size:var(--font-sm);font-weight:500;color:var(--ink-soft);letter-spacing:-.005em}.field-label-required:after{content:"*";color:var(--accent);font-weight:600;margin-left:3px}.field-input,.field-select,.field-textarea{background:var(--paper);border:1px solid var(--border);padding:0 var(--space-md);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--ink);font-family:inherit;height:36px;width:100%;outline:none;transition:border-color var(--dur-instant) var(--ease-out-quart),box-shadow var(--dur-instant) var(--ease-out-quart)}.field-textarea{height:auto;min-height:80px;padding:var(--space-sm) var(--space-md);resize:vertical;line-height:var(--line-normal)}.field-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236c7770' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right var(--space-md) center;padding-right:var(--space-xl)}.field-input::placeholder,.field-textarea::placeholder{color:var(--ink-muted)}.field-input:hover:not(:disabled,:focus),.field-select:hover:not(:disabled,:focus),.field-textarea:hover:not(:disabled,:focus){border-color:#cfcdca}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.field-input:disabled,.field-select:disabled,.field-textarea:disabled{background:var(--paper-soft);color:var(--ink-muted);cursor:not-allowed}.field-error{color:var(--danger);font-size:var(--font-xs)}.field-hint{color:var(--ink-muted);font-size:var(--font-xs)}.field-input.has-error,.field-select.has-error,.field-textarea.has-error{border-color:var(--danger)}.field-input.has-error:focus,.field-select.has-error:focus,.field-textarea.has-error:focus{box-shadow:var(--shadow-focus-danger)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.field-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}@media (max-width: 640px){.field-row,.field-row-3{grid-template-columns:1fr}}.card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.card-title{font-size:var(--font-xl);font-weight:600;color:var(--ink);letter-spacing:-.012em}.card-desc{font-size:var(--font-md);color:var(--ink-muted);margin-top:2px;line-height:var(--line-normal)}.alert{display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-md);line-height:var(--line-normal);border:1px solid transparent;align-items:flex-start}.alert-info{background:var(--info-soft);color:var(--ink);border-color:#c1dcf0}.alert-success{background:var(--success-soft);color:var(--ink);border-color:#c4e1c4}.alert-warning{background:var(--warning-soft);color:var(--ink);border-color:#fbcdaa}.alert-danger{background:var(--danger-soft);color:var(--ink);border-color:#fdc9c4}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);height:22px;padding:0 var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-2xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;border:1px solid transparent}.badge-neutral{background:var(--paper-warm);color:var(--ink-soft);border-color:var(--border)}.badge-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge-success{background:var(--success-soft);color:#005813;color:oklch(.4 .13 145)}.badge-warning{background:var(--warning-soft);color:#834100;color:oklch(.45 .14 55)}.badge-danger{background:var(--danger-soft);color:#8a0012;color:oklch(.4 .18 25)}.badge-info{background:var(--info-soft);color:#004d74;color:oklch(.4 .1 240)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-sm)}.table thead th{text-align:left;font-size:var(--font-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);background:var(--paper);position:sticky;top:0;z-index:1}.table tbody td{padding:var(--space-md);border-bottom:1px solid var(--border-soft);color:var(--ink);vertical-align:middle}.table tbody tr{transition:background-color var(--dur-instant) var(--ease-out-quart)}.table tbody tr:nth-child(2n){background:var(--paper-soft)}.table tbody tr:hover{background:var(--paper-warm)}.table tbody tr.is-selected{background:var(--accent-tint);position:relative}.table tbody tr.is-selected td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.table-numeric{font-family:var(--font-mono);font-feature-settings:"tnum" 1;text-align:right}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-weight:600;color:var(--accent-contrast);letter-spacing:.02em;background:var(--accent);-webkit-user-select:none;user-select:none;flex-shrink:0}.avatar-xs{width:18px;height:18px;font-size:8px}.avatar-sm{width:24px;height:24px;font-size:var(--font-2xs)}.avatar-md{width:32px;height:32px;font-size:var(--font-xs)}.avatar-lg{width:48px;height:48px;font-size:var(--font-md)}.avatar-stack{display:inline-flex}.avatar-stack>.avatar{border:2px solid var(--paper);margin-left:-8px}.avatar-stack>.avatar:first-child{margin-left:0}.loading-shell,.error-shell,.empty-shell{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--ink-muted);font-size:var(--font-sm)}.error-shell h2{color:var(--danger);margin-bottom:var(--space-sm);font-size:var(--font-lg)}
