:root{--color-primary:#0b2545;--color-primary-dark:#071830;--color-primary-light:#1b3f6e;--color-accent:#c9a227;--color-accent-dark:#a8841c;--color-danger:#c0392b;--color-success:#2e7d5b;--color-bg:#f6f7f9;--color-bg-alt:#ebedf2;--color-text:#1c2b3a;--color-text-muted:#5b6675;--color-white:#fff;--font-main:"Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;--et-process:#0b2545;--et-activity:#3d5a80;--et-role:#c9a227;--et-practice:#2e7d5b;--et-approach:#8e5be0;--et-product:#c0392b;--radius-sm:8px;--radius-md:16px;--radius-lg:28px;--shadow-sm:0 2px 8px #0b254514;--shadow-md:0 8px 24px #0b25451f;--shadow-lg:0 16px 40px #0b254533;--transition:.2s ease;--sidebar-width:240px;--topbar-height:64px}*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,p,ul{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font:inherit}body{font-family:var(--font-main);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,h4{color:var(--color-text);font-weight:600;line-height:1.25}h1{font-size:1.7rem;font-weight:700}h2{font-size:1.3rem}h3{font-size:1.05rem}p{color:var(--color-text-muted)}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--color-primary-dark);color:#ffffffd9;flex-direction:column;flex-shrink:0;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{align-items:center;gap:10px;padding:0 8px 20px;display:flex}.sidebar-logo img{width:auto;height:32px}.sidebar-logo span{color:var(--color-white);font-size:1rem;font-weight:700;line-height:1.2}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-nav a{color:#ffffffbf;transition:background var(--transition), color var(--transition);border-radius:999px;padding:11px 16px;font-weight:500;display:block}.sidebar-nav a:hover{color:var(--color-white);background:#ffffff14}.sidebar-nav a.active{background:var(--color-accent);color:var(--color-primary-dark);font-weight:600}.sidebar-admin-status{border-radius:var(--radius-sm);color:#ffffffb3;background:#ffffff0f;margin-top:16px;padding:10px 14px;font-size:.8rem}.sidebar-admin-status strong{color:var(--color-accent)}.sidebar-back{color:#ffffffa6;transition:color var(--transition);border-top:1px solid #ffffff1f;align-items:center;gap:8px;margin-top:auto;padding:12px 16px;font-size:.9rem;font-weight:500;display:flex}.sidebar-back:hover{color:var(--color-accent)}.content-area{flex-direction:column;flex-grow:1;min-width:0;display:flex}.topbar{height:var(--topbar-height);background:var(--color-white);box-shadow:var(--shadow-sm);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 28px;display:flex}.topbar-brand{letter-spacing:-.5px;color:var(--color-primary);margin-left:auto;font-size:1.25rem;font-weight:800}.topbar-brand .brand-ai{color:var(--color-accent)}.topbar h1{font-size:1.2rem}.topbar .topbar-actions{align-items:center;gap:10px;display:flex}.page-content{flex-direction:column;flex-grow:1;min-height:0;display:flex}.page-content.padded{padding:32px;overflow-y:auto}.btn{transition:transform var(--transition), box-shadow var(--transition), background var(--transition);border-radius:999px;align-items:center;gap:6px;padding:9px 18px;font-size:.88rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-light);box-shadow:var(--shadow-sm)}.btn-accent{background:var(--color-accent);color:var(--color-primary-dark)}.btn-accent:hover{background:var(--color-accent-dark)}.btn-outline{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0;padding:7.5px 16px}.btn-outline:hover{background:var(--color-primary);color:var(--color-white)}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-danger:hover{opacity:.88}.btn-sm{padding:5px 12px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.explorer{flex:1;min-height:0;display:flex}.control-panel{background:var(--color-white);border-right:1px solid var(--color-bg-alt);flex-direction:column;flex-shrink:0;gap:22px;width:280px;padding:20px;display:flex;overflow-y:auto}.control-group h3{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:12px;font-size:.78rem}.search-input{border-radius:var(--radius-sm);background:var(--color-bg);border:1.5px solid #2d343626;width:100%;padding:9px 13px}.search-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0b25451a}.layer-toggle{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.layer-toggle:hover{background:var(--color-bg)}.layer-toggle input{display:none}.layer-swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.layer-toggle .layer-name{text-transform:capitalize;flex:1;font-size:.9rem;font-weight:500}.layer-toggle .layer-count{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.layer-toggle.off{opacity:.4}.layout-switch{border:1.5px solid var(--color-bg-alt);background:var(--color-bg);border-radius:999px;gap:0;padding:3px;display:flex}.layout-opt{color:var(--color-text-muted);transition:background var(--transition), color var(--transition);border-radius:999px;flex:1;padding:7px 10px;font-size:.84rem;font-weight:600}.layout-opt.active{background:var(--color-primary);color:var(--color-white)}.toggle-switch{cursor:pointer;align-items:center;gap:10px;font-size:.9rem;font-weight:500;display:flex}.toggle-switch input{width:16px;height:16px;accent-color:var(--color-primary)}.legend-item{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:6px;font-size:.82rem;display:flex}.legend-line{border-top-style:solid;border-top-width:3px;flex-shrink:0;width:22px;height:0}.graph-stage{background:radial-gradient(circle at 50% 40%,#fff,#eef1f5);flex:1;min-width:0;position:relative}.graph-stage.is-timeline{flex-direction:column;display:flex}.graph-empty{color:var(--color-text-muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.graph-hint{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:var(--color-text-muted);box-shadow:var(--shadow-sm);background:#ffffffd9;border-radius:999px;padding:6px 12px;font-size:.78rem;position:absolute;bottom:14px;left:16px}.timeline-bar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-md);width:min(720px,100% - 40px);box-shadow:var(--shadow-md);z-index:6;background:#fffffff0;flex-shrink:0;align-items:center;gap:16px;margin:4px auto 14px;padding:12px 18px;display:flex}.timeline-play{background:var(--color-primary);width:40px;height:40px;color:var(--color-white);transition:background var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;display:flex}.timeline-play:hover{background:var(--color-primary-light)}.timeline-slider-wrap{flex:1;min-width:0}.timeline-stage-label{align-items:center;gap:8px;margin-bottom:6px;font-size:.9rem;display:flex}.timeline-stage-label strong{color:var(--color-text)}.timeline-step{min-width:30px;height:20px;color:var(--color-white);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:.72rem;font-weight:700;display:inline-flex}.timeline-count{color:var(--color-text-muted);margin-left:auto;font-size:.76rem}.timeline-range{width:100%;accent-color:var(--color-accent);cursor:pointer}.timeline-ticks{justify-content:space-between;margin-top:4px;display:flex}.timeline-tick{letter-spacing:.02em;color:var(--color-text-muted);transition:color var(--transition), background var(--transition);border-radius:6px;padding:2px 4px;font-size:.68rem;font-weight:700}.timeline-tick:hover{color:var(--color-primary)}.timeline-tick.past{color:var(--color-accent-dark)}.timeline-tick.active{color:var(--color-white);background:var(--color-accent)}.timeline-mode{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.timeline-mode-opt{color:var(--color-text-muted);background:var(--color-bg-alt);transition:background var(--transition), color var(--transition);border-radius:999px;padding:5px 10px;font-size:.74rem;font-weight:600}.timeline-mode-opt.active{background:var(--color-primary);color:var(--color-white)}.timeline-reset{color:var(--color-primary-dark);background:var(--color-accent);transition:background var(--transition);border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:.74rem;font-weight:600}.timeline-reset:hover{background:var(--color-accent-dark)}.detail-panel{background:var(--color-white);border-left:1px solid var(--color-bg-alt);flex-direction:column;flex-shrink:0;width:360px;display:flex;overflow-y:auto}.detail-header{border-bottom:1px solid var(--color-bg-alt);padding:20px 20px 16px;position:relative}.detail-close{color:var(--color-text-muted);font-size:1.2rem;line-height:1;position:absolute;top:14px;right:14px}.detail-type-chip{text-transform:uppercase;letter-spacing:.04em;color:var(--color-white);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.detail-header h2{margin-top:10px;font-size:1.25rem}.detail-meta{color:var(--color-text-muted);margin-top:4px;font-size:.82rem}.detail-body{padding:16px 20px}.detail-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:16px 0 8px;font-size:.76rem}.related-row{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);align-items:center;gap:10px;padding:9px 10px;display:flex}.related-row:hover{background:var(--color-bg)}.code-pill{width:26px;height:26px;color:var(--color-white);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}.related-row .related-name{flex:1;font-size:.88rem}.related-row .related-sub{color:var(--color-text-muted);font-size:.74rem}.confidence-flag{border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.confidence-indicative{color:var(--color-accent-dark);background:#c9a22729}.confidence-confirmed{color:var(--color-success);background:#2e7d5b24}.card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.stat-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px 22px}.stat-card .stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:.78rem;font-weight:600}.stat-card .stat-value{color:var(--color-primary);font-size:1.8rem;font-weight:700}.form-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.form-field label{font-size:.85rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);border:1.5px solid #2d343626;padding:9px 13px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0b25451f}.form-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-backdrop{z-index:100;background:#0b254559;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:90vh;padding:28px;overflow-y:auto}.modal-panel h2{margin-bottom:16px}.muted{color:var(--color-text-muted);font-size:.88rem}.banner{border-radius:var(--radius-sm);color:var(--color-accent-dark);background:#c9a2271f;border:1px solid #c9a2274d;padding:12px 16px;font-size:.85rem}.prose{max-width:760px}.prose p{color:var(--color-text);margin-bottom:12px}.prose h2{margin:24px 0 10px}.prose ul.bullets{margin-bottom:12px;padding-left:20px;list-style:outside}.prose ul.bullets li{margin-bottom:6px}.admin-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.lifecycle-wrap{flex:1;padding:28px 32px;overflow:auto}.lifecycle-intro{max-width:900px;margin-bottom:20px}.lifecycle-intro h2{margin:0 0 6px}.time-arrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);align-items:center;gap:10px;margin:8px 0 14px;font-size:.78rem;font-weight:700;display:flex}.time-arrow .line{background:linear-gradient(90deg, var(--color-bg-alt), var(--color-primary));border-radius:2px;flex:1;height:2px}.swimlane-grid{grid-template-columns:150px repeat(4,minmax(170px,1fr));align-items:stretch;gap:12px;min-width:900px;display:grid}.phase-header{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-white);text-align:center;padding:10px 12px;font-size:.9rem;font-weight:600}.phase-header .phase-note{opacity:.8;text-transform:none;margin-top:2px;font-size:.7rem;font-weight:500;display:block}.phase-header.repeats{background:var(--color-primary-light)}.lane-label{border-radius:var(--radius-sm);color:var(--color-white);flex-direction:column;justify-content:center;padding:12px;font-size:.9rem;font-weight:700;display:flex}.lane-label small{opacity:.85;margin-top:2px;font-size:.72rem;font-weight:500}.lane-directing{background:var(--et-process)}.lane-managing{background:#3d5a80}.lane-delivering{background:#6b7f96}.lane-cell{border-radius:var(--radius-sm);background:var(--color-white);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;min-height:88px;padding:8px;display:flex}.lane-cell.empty{box-shadow:none;background:repeating-linear-gradient(45deg,#f4f6f9,#f4f6f9 8px,#eef1f5 8px 16px)}.process-card{text-align:left;border-radius:var(--radius-sm);border:1.5px solid var(--color-bg-alt);background:var(--color-white);width:100%;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.process-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.process-card.active{border-color:var(--color-accent);box-shadow:0 0 0 2px #c9a2274d}.process-card .pc-code{letter-spacing:.04em;color:var(--color-white);background:var(--et-process);border-radius:999px;align-self:flex-start;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.process-card .pc-name{color:var(--color-text);font-size:.92rem;font-weight:600}.process-card .pc-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.74rem;display:flex}.pc-repeat{color:var(--color-accent-dark);font-weight:700}.dp-bar{border-color:var(--et-process);background:#0b254508;border-width:2px}.lifecycle-detail{margin-top:26px}.activity-flow{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.activity-step{border-radius:var(--radius-sm);background:var(--color-white);box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:10px 14px;display:flex;position:relative}.activity-step .step-num{background:var(--et-process);width:24px;height:24px;color:var(--color-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:flex}.activity-step .step-name{font-size:.86rem}.activity-step:not(:last-child):after{content:"→";color:var(--color-text-muted);font-weight:700;position:absolute;right:-12px}@media (width<=1100px){.control-panel{width:240px}.detail-panel{width:300px}}.tl-swim{flex:1;padding:22px 26px 28px;overflow:auto}.tl-legend{border-bottom:1px solid var(--color-bg-alt);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:7px 16px;min-width:820px;margin-bottom:16px;padding-bottom:12px;font-size:.78rem;display:flex}.tl-leg-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.tl-leg-sw{border-radius:3px;flex:none;width:13px;height:13px}.tl-leg-dot{border:1px solid #fff9;border-radius:50%;flex:none;width:11px;height:11px;box-shadow:0 0 0 1px #0b25451f}.tl-leg-hint{margin-left:auto;font-style:italic}.tl-grid{align-items:stretch;gap:10px;min-width:820px;display:grid}.tl-corner{text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-dark);align-items:flex-end;padding:4px 2px;font-size:.7rem;font-weight:700;display:flex}.tl-colhead{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-white);text-align:center;padding:9px 12px;font-size:.86rem;font-weight:600}.tl-lanehead{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-white);flex-direction:column;justify-content:center;padding:12px 14px;font-size:.88rem;font-weight:700;display:flex}.tl-lanehead small{color:var(--color-accent);margin-top:3px;font-size:.68rem;font-weight:500}.tl-cell{border-radius:var(--radius-sm);background:var(--color-bg-alt);flex-direction:column;gap:8px;min-height:74px;padding:8px;display:flex}.tl-proc{cursor:pointer;text-align:left;background:var(--color-primary);color:var(--color-white);transition:transform var(--transition), box-shadow var(--transition), opacity var(--transition);border:1.5px solid #0000;border-radius:10px;padding:9px 11px}.tl-proc:hover{box-shadow:var(--shadow-sm);border-color:var(--color-accent);transform:translateY(-1px)}.tl-proc-head{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.tl-proc-code{letter-spacing:.04em;background:var(--color-accent);color:var(--color-primary-dark);border-radius:999px;padding:1px 6px;font-size:.62rem;font-weight:700}.tl-proc-name{font-size:.82rem;font-weight:600;line-height:1.25}.tl-acts{flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;display:flex}.tl-act{cursor:pointer;width:11px;height:11px;transition:transform var(--transition);border:1px solid #ffffff8c;border-radius:50%;padding:0}.tl-act:hover{transform:scale(1.4)}.tl-acts-count{color:#ffffffb3;margin-left:2px;font-size:.64rem}.tl-bands{flex-direction:column;gap:8px;min-width:820px;margin-top:18px;display:flex}.tl-band{align-items:stretch;gap:10px;display:flex}.tl-band-label{color:var(--color-white);border-radius:var(--radius-sm);flex:0 0 150px;justify-content:space-between;align-items:center;gap:8px;padding:7px 11px;font-size:.78rem;font-weight:700;display:flex}.tl-band-count{background:#ffffff47;border-radius:10px;padding:0 7px;font-size:.7rem}.tl-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.tl-chip{cursor:pointer;border:1.4px solid var(--chip,#999);color:var(--chip,#333);background:var(--color-white);transition:transform var(--transition), box-shadow var(--transition), opacity var(--transition);border-radius:14px;padding:3px 10px;font-size:.74rem;font-weight:500}.tl-chip:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.tl-dim{opacity:.24}.tl-sel{opacity:1!important;box-shadow:0 0 0 3px #c9a227d9!important}.tl-proc.tl-sel{border-color:var(--color-accent)}.mobile-controls-toggle,.mobile-drawer-backdrop{display:none}@media (width<=820px){.app-shell{flex-direction:column;height:auto;min-height:100dvh;overflow-x:hidden}.sidebar{gap:6px;width:100%;height:auto;padding:10px 12px;position:static;overflow:visible}.sidebar-logo{padding:0 4px 6px}.sidebar-nav{flex-flow:row;gap:6px;padding-bottom:2px;overflow-x:auto}.sidebar-nav a{white-space:nowrap;padding:8px 14px;font-size:.9rem}.sidebar-admin-status{display:none}.sidebar-back{border-top:none;margin-top:0;padding:4px 8px;font-size:.85rem}.topbar{padding:0 14px}.topbar h1,.topbar-brand{font-size:1.05rem}.page-content.padded{padding:20px 16px}.explorer{flex-direction:column}.graph-stage{min-height:72vh}.control-panel{z-index:50;width:min(310px,88vw);box-shadow:var(--shadow-lg);position:fixed;top:0;bottom:0;left:0;transform:translate(-104%)}.explorer.controls-open .control-panel{transform:translate(0)}.mobile-controls-toggle{z-index:52;background:var(--color-primary);color:var(--color-white);box-shadow:var(--shadow-md);border-radius:999px;align-items:center;gap:6px;padding:10px 16px;font-size:.85rem;font-weight:600;display:inline-flex;position:fixed;bottom:16px;left:12px}.mobile-drawer-backdrop{z-index:49;background:#0b254573;display:block;position:fixed;inset:0}.detail-panel{z-index:55;border-left:none;width:100%;position:fixed;inset:0}}
