@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bowtie-surface: var(--surface-1);--bowtie-node-fill: var(--surface-1);--bowtie-border: var(--border-1);--bowtie-block-bg: var(--gray-50);--bowtie-grid-line: rgba(0, 0, 0, .04);--bowtie-line: var(--gray-900);--bowtie-heading: var(--gray-900);--bowtie-node-border: var(--gray-700);--bowtie-node-text: var(--gray-800);--bowtie-node-inner-border: var(--gray-200);--bowtie-threat-grad: linear-gradient(180deg, var(--blue-500) 0%, var(--blue-600) 50%, var(--blue-700) 100%);--bowtie-threat-accent: var(--blue-900);--bowtie-threat-shadow: 0 3px 8px rgba(37, 99, 235, .35);--bowtie-consequence-grad: linear-gradient(180deg, var(--red-500) 0%, var(--red-600) 50%, var(--red-700) 100%);--bowtie-consequence-accent: #7f1d1d;--bowtie-consequence-shadow: 0 3px 8px rgba(220, 38, 38, .35);--bowtie-hazard-stripe: #fbbf24;--bowtie-event-grad: radial-gradient(circle at 40% 40%, #ff8c42, #ff6347 50%, #e53e3e);--bowtie-event-border: #c05621;--bowtie-event-inner-border: #333333;--bowtie-event-shadow: 0 4px 12px rgba(255, 99, 71, .45);--bowtie-title: var(--gray-800);--bowtie-event-label: var(--gray-500);--bowtie-empty: var(--gray-400)}[data-theme=dark]{--bowtie-node-fill: #ffffff;--bowtie-grid-line: rgba(255, 255, 255, .05);--bowtie-line: rgba(255, 255, 255, .32)}[data-theme=dark] .bowtie-viz-threat-box,[data-theme=dark] .bowtie-viz-consequence-box,[data-theme=dark] .bowtie-viz-barrier-box,[data-theme=dark] .bowtie-viz-hazard-box,[data-theme=dark] .bowtie-viz-top-event{outline:1px solid rgba(255,255,255,.15);outline-offset:0}.bowtie-viz-canvas-wrapper{width:100%;height:560px;overflow:hidden;position:relative;background-color:var(--bowtie-surface);background-image:linear-gradient(var(--bowtie-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--bowtie-grid-line) 1px,transparent 1px);background-size:24px 24px;border-radius:var(--radius-md);margin-bottom:var(--space-6);cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid var(--bowtie-border)}.bowtie-viz-canvas-wrapper:active{cursor:grabbing}.bowtie-viz-canvas{display:flex;flex-direction:row;align-items:center;min-height:480px;min-width:1280px;padding:var(--space-12) var(--space-10);position:relative;overflow:visible;isolation:isolate}.bowtie-viz-left{flex:1;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:var(--space-7)}.bowtie-viz-threat-row{display:flex;flex-direction:row;align-items:center;gap:0;position:relative}.bowtie-viz-threat-box{background:var(--bowtie-threat-grad);border-radius:var(--radius-md);width:180px;height:72px;min-width:180px;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:var(--bowtie-threat-shadow);position:relative}.bowtie-viz-threat-box span{background:var(--bowtie-node-fill);border:2px solid var(--bowtie-threat-accent);width:88%;height:82%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-align:center;color:var(--bowtie-threat-accent);line-height:var(--leading-snug)}.bowtie-viz-barrier-box{background:var(--bowtie-node-fill);border:2px solid var(--bowtie-node-border);color:var(--bowtie-node-text);width:110px;height:68px;min-width:110px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;font-size:var(--text-xs);font-weight:var(--font-weight-medium);text-align:center;padding:var(--space-1) var(--space-1);box-shadow:var(--shadow-xs)}.bowtie-viz-barrier-box span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}.bowtie-viz-barrier-box:before{content:"";position:absolute;bottom:-14px;left:50%;width:2px;height:14px;background:var(--bowtie-line);transform:translate(-50%);z-index:1}.bowtie-viz-barrier-box:after{content:"";position:absolute;bottom:-20px;left:50%;width:18px;height:12px;background:var(--bowtie-line);transform:translate(-50%);z-index:1}.bowtie-viz-center{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:0;position:relative;z-index:10;padding:0 4rem}.bowtie-viz-hazard-box{position:relative;width:180px;height:88px;display:flex;align-items:center;justify-content:center;margin-bottom:0}.bowtie-viz-hazard-stripe{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,var(--bowtie-line) 0px,var(--bowtie-line) 8px,var(--bowtie-hazard-stripe) 8px,var(--bowtie-hazard-stripe) 16px);border-radius:6px;z-index:1}.bowtie-viz-hazard-stripe:after{content:"";position:absolute;bottom:-36px;left:50%;transform:translate(-50%);width:2px;height:36px;background:var(--bowtie-line);z-index:1}.bowtie-viz-hazard-label{position:relative;background:var(--bowtie-node-fill);border:2px solid var(--bowtie-node-border);border-radius:var(--radius-xs);width:160px;height:68px;display:flex;align-items:center;justify-content:center;z-index:2;padding:var(--space-1) var(--space-2);text-align:center;font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--bowtie-heading);overflow:hidden}.bowtie-viz-hazard-label span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.bowtie-viz-top-event{background:var(--bowtie-event-grad);border:4px solid var(--bowtie-event-border);border-radius:50%;width:164px;height:164px;display:flex;align-items:center;justify-content:center;box-shadow:var(--bowtie-event-shadow);position:relative}.bowtie-viz-top-event span{background:var(--bowtie-node-fill);border:2px solid var(--bowtie-event-inner-border);border-radius:var(--radius-xs);width:76%;height:56%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--bowtie-heading);padding:var(--space-1) var(--space-1);overflow:hidden}.bowtie-viz-right{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-7)}.bowtie-viz-consequence-row{display:flex;flex-direction:row;align-items:center;gap:0;position:relative}.bowtie-viz-consequence-box{background:var(--bowtie-consequence-grad);border-radius:var(--radius-md);width:180px;height:72px;min-width:180px;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:var(--bowtie-consequence-shadow);position:relative}.bowtie-viz-consequence-box span{background:var(--bowtie-node-fill);border:2px solid var(--bowtie-consequence-accent);width:88%;height:82%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-align:center;color:var(--bowtie-consequence-accent);line-height:var(--leading-snug)}.bowtie-viz-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.bowtie-viz-svg-line{stroke:var(--bowtie-line);stroke-width:2}.bowtie-viz-section-title{font:var(--type-heading-3);color:var(--bowtie-title);margin:0 0 var(--space-3) 0;text-align:center}.bowtie-viz-event-label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--bowtie-event-label);text-align:center;margin-bottom:var(--space-2)}.bowtie-viz-diagram-block{padding:var(--space-5) var(--space-6)}.bowtie-viz-empty{text-align:center;padding:var(--space-12);color:var(--bowtie-empty);font-size:var(--text-base)}.bowtie-viz-muted{color:var(--bowtie-empty);font-size:var(--text-sm)}.bowtie-viz-top-event-wrapper{position:relative;margin-top:36px;display:inline-flex}.bowtie-add-node-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:var(--radius-full);border:2px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;box-shadow:var(--shadow-xs);overflow:visible}.bowtie-add-node-btn:hover{border-color:var(--text-1);color:var(--text-1);background:var(--gray-50);box-shadow:var(--shadow-sm)}.bowtie-add-node-btn .bw-tooltip{opacity:0}.bowtie-add-node-btn:hover .bw-tooltip{opacity:1}.bowtie-add-node-btn--left{left:-14px}.bowtie-add-node-btn--right{right:-14px}.bowtie-inline-form{position:absolute;top:50%;transform:translateY(-50%);width:240px;background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);padding:var(--space-4);z-index:100;display:flex;flex-direction:column;gap:var(--space-2)}.bowtie-inline-form--threat{right:calc(100% + 10px)}.bowtie-inline-form--consequence{left:calc(100% + 10px)}.bowtie-inline-form-label{font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--text-1);margin:0}.bowtie-inline-form-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2);font-size:var(--text-sm);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.bowtie-inline-form-textarea:focus{outline:none;border-color:var(--text-3)}.bowtie-inline-form-error{font-size:var(--text-xs);color:var(--red-600);margin:0}.bowtie-inline-form-actions{display:flex;justify-content:flex-end;gap:var(--space-1-5)}.bowtie-barrier-connector{flex-shrink:0;width:32px;position:relative;display:flex;align-items:center;justify-content:center;align-self:stretch;z-index:5}.bowtie-barrier-connector-line{position:absolute;top:50%;left:0;right:0;height:2px;background:var(--bowtie-line);transform:translateY(-50%)}.bowtie-barrier-conn-btn{position:relative;z-index:6;width:20px;height:20px;border-radius:var(--radius-full);border:1.5px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s,color .12s,box-shadow .12s;box-shadow:var(--shadow-xs)}.bowtie-barrier-conn-btn:hover{border-color:var(--text-1);color:var(--text-1);box-shadow:var(--shadow-sm)}.bowtie-barrier-inline-form{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);width:220px;z-index:200}.bowtie-barrier-inline-form--connector{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.bowtie-svg-barrier-form{position:absolute;z-index:200;width:220px}.bowtie-barrier-form-label{font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--text-1);margin:0}.bowtie-barrier-form-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-1-5) var(--space-2);font-size:var(--text-sm);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.bowtie-barrier-form-textarea:focus{outline:none;border-color:var(--text-3)}.bowtie-barrier-form-error{font-size:var(--text-xs);color:var(--red-600);margin:0}.bowtie-barrier-form-actions{display:flex;justify-content:flex-end;gap:var(--space-1-5)}.bowtie-add-row{padding:var(--space-2) var(--space-6) var(--space-4);display:flex}.bowtie-add-btn{display:inline-flex;align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-2);background:var(--surface-1);border:1.5px dashed var(--border-1);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.bowtie-add-btn:hover{border-color:var(--text-3);color:var(--text-1);background:var(--gray-50)}.node-card-icon--hazard{background:var(--orange-50);color:var(--orange-600)}.bowtie-add-hazard-row{padding:var(--space-3) 0 0;margin-bottom:var(--space-4);display:flex;justify-content:flex-start}.bowtie-add-hazard-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-2);background:var(--surface-1);border:1.5px dashed var(--border-1);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.bowtie-add-hazard-btn:hover{border-color:var(--text-3);color:var(--text-1);background:var(--gray-50)}.bw-tooltip-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.bw-tooltip{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:var(--text-1);color:var(--surface-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);white-space:nowrap;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity .12s;z-index:300}.bw-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--text-1)}.bw-tooltip-wrap:hover .bw-tooltip{opacity:1}.bowtie-drag-handle{position:absolute;top:50%;left:4px;transform:translateY(-50%);color:var(--text-3);cursor:grab;opacity:0;transition:opacity .12s;display:flex;align-items:center;z-index:10;padding:2px;border-radius:3px}.bowtie-drag-handle--barrier{top:4px;left:50%;transform:translate(-50%);rotate:90deg}.bowtie-viz-threat-box:hover .bowtie-drag-handle,.bowtie-viz-consequence-box:hover .bowtie-drag-handle,.bowtie-viz-barrier-box:hover .bowtie-drag-handle{opacity:1}.bowtie-drag-handle:hover{color:var(--text-2);background:#0000000f}.bowtie-drag-handle:active{cursor:grabbing}.bowtie-drag-grip{display:block;flex-shrink:0}.bowtie-dragging{opacity:.35}.bowtie-drag-ghost{position:absolute;pointer-events:none;z-index:500;background:var(--surface-1);border:2px dashed var(--gray-500);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-1);text-align:center;box-shadow:var(--shadow-lg);opacity:.85}.bowtie-drag-ghost span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}.bowtie-row-drop-indicator{height:4px;border-radius:2px;background:var(--blue-500);flex-shrink:0;pointer-events:none;margin:13px 0}.bowtie-row-drop-indicator--threat{align-self:flex-end;width:80%}.bowtie-row-drop-indicator--consequence{align-self:flex-start;width:80%}.bowtie-barrier-drop-indicator{width:4px;height:68px;margin:0 15px;background:var(--blue-500);border-radius:2px;flex-shrink:0;pointer-events:none}.bowtie-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.bowtie-modal{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-xl);width:480px;max-width:calc(100vw - 2rem);box-shadow:var(--shadow-modal)}.bowtie-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5) var(--space-3);border-bottom:1px solid var(--border-1)}.bowtie-modal-title{font:var(--type-heading-4);color:var(--text-1);margin:0}.bowtie-modal-close{background:none;border:none;cursor:pointer;color:var(--text-2);padding:var(--space-0-5);display:flex;border-radius:var(--radius-xs);transition:color .15s,background .15s}.bowtie-modal-close:hover{color:var(--text-1);background:var(--gray-100)}.bowtie-modal-body{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column}.bowtie-modal-label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-1);margin-bottom:var(--space-1-5)}.bowtie-modal-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.bowtie-modal-textarea:focus{outline:none;border-color:var(--text-3)}.bowtie-modal-error{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--red-600)}.bowtie-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--border-1)}.bowtie-inline-edit-host{position:relative}.bowtie-node-editing{z-index:200;overflow:visible}.bowtie-node-edit-panel{position:absolute;top:-6px;left:-6px;width:calc(100% + 12px);min-width:220px;min-height:calc(100% + 12px);background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1-5);z-index:10}.bowtie-node-edit-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-1-5);font-size:var(--text-xs);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s;min-height:64px}.bowtie-node-edit-textarea:focus{outline:none;border-color:var(--gray-400)}.bowtie-node-edit-saving{font-size:var(--text-xs);color:var(--text-3);margin:0}.bowtie-node-edit-actions{display:flex;justify-content:flex-end;gap:var(--space-1-5)}.bowtie-inline-edit-pencil{position:absolute;top:-10px;right:-10px;display:none;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border-1);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--text-2);cursor:pointer;padding:0;z-index:10;box-shadow:0 1px 3px #0000001f;transition:color .1s,background .1s,border-color .1s}.bowtie-inline-edit-host:hover .bowtie-inline-edit-pencil{display:flex}.bowtie-inline-edit-pencil:hover{color:var(--text-1);background:var(--surface-1);border-color:var(--text-3)}.bowtie-inline-delete-btn{position:absolute;top:-10px;right:14px;display:none;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border-1);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--red-500);cursor:pointer;padding:0;z-index:10;box-shadow:0 1px 3px #0000001f;transition:color .1s,background .1s,border-color .1s}.bowtie-inline-edit-host:hover .bowtie-inline-delete-btn{display:flex}.bowtie-inline-delete-btn:hover{color:var(--red-600);background:var(--red-50);border-color:var(--red-300)}.bowtie-viz-barrier-box .bowtie-inline-delete-btn{top:auto;bottom:-10px;right:-10px}.bowtie-confirm-modal{max-width:420px}.bowtie-confirm-icon{display:flex;align-items:center;justify-content:center;color:var(--red-500);margin-bottom:var(--space-2)}.bowtie-confirm-text{font-size:var(--text-sm);color:var(--text-2);margin:0 0 var(--space-3) 0;text-align:center}.bowtie-add-context-btn{position:absolute;top:-10px;right:14px;display:none;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border-1);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--color-primary);cursor:pointer;padding:0;z-index:10;box-shadow:var(--shadow-sm);transition:color .1s,background .1s,border-color .1s}.bowtie-inline-edit-host:hover .bowtie-add-context-btn{display:flex}.bowtie-add-context-btn:hover{background:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}:root{--tb-surface: var(--surface-1);--tb-node-fill: var(--surface-1);--tb-border: var(--border-1);--tb-empty: var(--gray-400);--tb-line: var(--gray-500);--tb-line-chain: #9333ea;--tb-line-causation: var(--gray-400);--tb-stripe-dark: #000000;--tb-stripe-amber: #fbbf24;--tb-agent-border: var(--gray-900);--tb-event: var(--red-600);--tb-event-border: #991b1b;--tb-target: var(--green-600);--tb-target-border: #14532d;--tb-node-inner-border: var(--gray-200);--tb-node-id: var(--color-primary);--tb-node-label: var(--gray-800);--tb-cnode-barrier: var(--gray-600);--tb-cnode-barrier-border: var(--gray-700);--tb-cnode-ic: var(--gray-400);--tb-cnode-ic-border: var(--gray-500);--tb-cnode-pc: var(--color-primary);--tb-cnode-pc-border: var(--blue-700);--tb-cnode-uc: #eab308;--tb-cnode-uc-border: #a16207;--tb-text: var(--gray-700);--tb-text-muted: var(--gray-500);--tb-chip-bg: var(--gray-100);--tb-accent: var(--color-primary)}[data-theme=dark]{--tb-node-fill: #ffffff;--tb-line: rgba(255, 255, 255, .32);--tb-line-causation: rgba(255, 255, 255, .2);--tb-line-chain: #c084fc;--tb-text: var(--text-1);--tb-text-muted: var(--text-2);--tb-chip-bg: var(--surface-3)}[data-theme=dark] .tb-node,[data-theme=dark] .tb-cnode-barrier,[data-theme=dark] .tb-cnode-immediate-cause,[data-theme=dark] .tb-cnode-precondition,[data-theme=dark] .tb-cnode-underlying-cause{outline:1px solid rgba(255,255,255,.15);outline-offset:0}.tb-visualization{position:relative;width:100%;height:600px;overflow:hidden;background:var(--tb-surface);border:1px solid var(--tb-border);border-radius:var(--radius-md);cursor:grab;-webkit-user-select:none;user-select:none}.tb-dragging{cursor:grabbing}.tb-node-draggable{cursor:grab}.tb-node-dragging,.tb-node-dragging .tb-node-draggable{cursor:grabbing}.tb-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--tb-empty);font-style:italic;font-size:var(--text-base)}.tb-canvas{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0}.tb-canvas .tb-node{pointer-events:auto}.tb-svg{position:absolute;top:0;left:0;overflow:visible}.tb-line{stroke:var(--tb-line);stroke-width:2;fill:none;pointer-events:none}.tb-line-chain{stroke:var(--tb-line-chain);stroke-width:1.5;stroke-dasharray:6 3;fill:none;pointer-events:none}.tb-line-causation{stroke:var(--tb-line-causation);stroke-width:1.5;stroke-dasharray:4 3;fill:none;pointer-events:none}.tb-node{position:absolute;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .15s,transform .15s;display:flex;align-items:center;justify-content:center;z-index:10;overflow:visible}.tb-node:hover,.tb-node-hovered{box-shadow:var(--shadow-md);transform:scale(1.04);z-index:100}.tb-node-agent{background:repeating-linear-gradient(45deg,var(--tb-stripe-dark),var(--tb-stripe-dark) 10px,var(--tb-stripe-amber) 10px,var(--tb-stripe-amber) 20px);border:2px solid var(--tb-agent-border)}.tb-node-event{background-color:var(--tb-event);border:2px solid var(--tb-event-border)}.tb-node-target{background-color:var(--tb-target);border:2px solid var(--tb-target-border)}.tb-node-event-agent{border:2px solid var(--tb-agent-border)}.tb-node-event-agent:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);background:linear-gradient(to right,var(--tb-event) 0%,var(--tb-event) 50%,transparent 50%),repeating-linear-gradient(45deg,var(--tb-stripe-dark) 0px,var(--tb-stripe-dark) 10px,var(--tb-stripe-amber) 10px,var(--tb-stripe-amber) 20px);z-index:0}.tb-node-event-target{border:2px solid var(--tb-target-border)}.tb-node-event-target:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);background:linear-gradient(to right,var(--tb-event) 50%,var(--tb-target) 50%);z-index:0}.tb-node-target-agent{border:2px solid var(--tb-agent-border)}.tb-node-target-agent:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);background:linear-gradient(to right,var(--tb-target) 0%,var(--tb-target) 50%,transparent 50%),repeating-linear-gradient(45deg,var(--tb-stripe-dark) 0px,var(--tb-stripe-dark) 10px,var(--tb-stripe-amber) 10px,var(--tb-stripe-amber) 20px);z-index:0}.tb-node-target-agent .tb-node-inner,.tb-node-event-agent .tb-node-inner,.tb-node-event-target .tb-node-inner{position:relative;z-index:1}.tb-node-inner{background:var(--tb-node-fill);width:calc(100% - 14px);height:calc(100% - 14px);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2-5);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid var(--tb-node-inner-border);overflow:hidden}.tb-node-id{font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--tb-node-id);margin-bottom:var(--space-1);letter-spacing:.04em}.tb-node-label{font-size:var(--text-xs);color:var(--tb-node-label);line-height:var(--leading-snug);overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;word-break:break-word}.tb-node-edit-btn{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:var(--radius-full);border:2px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:var(--shadow-xs);transition:border-color .15s,color .15s,background .15s,box-shadow .15s;z-index:30}.tb-node-edit-btn:hover{border-color:var(--text-1);color:var(--text-1);background:var(--gray-50);box-shadow:var(--shadow-sm)}.tb-node-extend-btn{position:absolute;top:50%;right:-14px;transform:translateY(-50%);width:24px;height:24px;border-radius:var(--radius-full);border:2px solid var(--tb-accent);background:var(--surface-1);color:var(--tb-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:var(--shadow-xs);transition:background .15s,box-shadow .15s;z-index:30}.tb-node-extend-btn:hover{background:var(--gray-50);box-shadow:var(--shadow-sm)}.tb-node-extend-btn--upstream{right:auto;left:-14px}.tb-node-delete-btn{position:absolute;top:-10px;left:-10px;width:22px;height:22px;border-radius:var(--radius-full);border:2px solid var(--red-400);background:var(--surface-1);color:var(--red-600);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:var(--shadow-xs);transition:background .15s,box-shadow .15s,color .15s;z-index:31}.tb-node-delete-btn:hover{background:var(--red-50);color:var(--red-700);box-shadow:var(--shadow-sm)}.tb-cnode-delete-btn{position:absolute;top:-10px;right:-10px;width:18px;height:18px;border-radius:var(--radius-full);border:2px solid var(--red-400);background:var(--surface-1);color:var(--red-600);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:var(--shadow-xs);transition:background .15s,box-shadow .15s,color .15s;z-index:31}.tb-cnode-delete-btn:hover{background:var(--red-50);color:var(--red-700);box-shadow:var(--shadow-sm)}.tb-node-context-btn,.tb-cnode-context-btn{position:absolute;bottom:-10px;right:-10px;width:22px;height:22px;border-radius:var(--radius-full);border:2px solid var(--color-primary);background:var(--surface-1);color:var(--color-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:var(--shadow-xs);transition:background .15s,box-shadow .15s,color .15s;z-index:31}.tb-cnode-context-btn{width:18px;height:18px}.tb-node-context-btn:hover,.tb-cnode-context-btn:hover{background:var(--color-primary);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.tb-trio-bbox{position:absolute;border:2px dashed var(--red-400);background:color-mix(in srgb,var(--red-500) 7%,transparent);border-radius:var(--radius-lg);pointer-events:none;z-index:1}.tb-confirm-modal{max-width:420px}.tb-confirm-icon{width:48px;height:48px;border-radius:var(--radius-full);background:var(--red-50);color:var(--red-600);display:flex;align-items:center;justify-content:center}.tb-confirm-text{font-size:var(--text-sm);color:var(--text-2);line-height:var(--leading-normal);margin:0}.tb-confirm-actions{margin-top:var(--space-5)}.tb-node-editing{z-index:220;overflow:visible}.tb-node-edit{position:absolute;top:-6px;left:-6px;width:calc(100% + 12px);min-height:calc(100% + 12px);background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1-5)}.tb-node-edit-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-1-5);font-size:var(--text-xs);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.tb-node-edit-textarea:focus{outline:none;border-color:var(--gray-400)}.tb-node-edit-select{width:100%;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-1-5);font-size:var(--text-xs);color:var(--text-1);background:var(--surface-1);font-family:inherit;box-sizing:border-box}.tb-node-edit-actions{display:flex;justify-content:flex-end;gap:var(--space-1-5)}.tb-trio-form-sublabel{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-2);margin:0}.tb-cnode{z-index:12}.tb-cnode-add-btn{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:20px;height:20px;border-radius:var(--radius-full);border:2px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;box-shadow:var(--shadow-xs);z-index:30}.tb-cnode-add-btn--bottom{top:auto;bottom:-12px}.tb-cnode-collapsible{cursor:pointer}.tb-cnode-collapsed{border-style:dashed}.tb-cnode-collapse-toggle{position:absolute;top:-10px;left:-10px;width:20px;height:20px;border-radius:var(--radius-full);border:2px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs);pointer-events:none;z-index:31}.tb-cnode-collapse-toggle--bottom{top:auto;bottom:-10px}.tb-cnode-collapsible:hover .tb-cnode-collapse-toggle{border-color:var(--text-1);color:var(--text-1)}.tb-cnode-add-btn:hover{border-color:var(--text-1);color:var(--text-1);background:var(--gray-50);box-shadow:var(--shadow-sm)}.tb-cnode-barrier{background-color:var(--tb-cnode-barrier);border:2px solid var(--tb-cnode-barrier-border)}.tb-cnode-immediate-cause{background-color:var(--tb-cnode-ic);border:2px solid var(--tb-cnode-ic-border)}.tb-cnode-precondition{background-color:var(--tb-cnode-pc);border:2px solid var(--tb-cnode-pc-border)}.tb-cnode-underlying-cause{background-color:var(--tb-cnode-uc);border:2px solid var(--tb-cnode-uc-border)}.tb-tooltip{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:var(--tb-surface);border:2px solid var(--tb-accent);border-radius:var(--radius-md);padding:var(--space-2-5) var(--space-3-5);box-shadow:var(--shadow-dropdown);z-index:200;min-width:260px;max-width:360px;pointer-events:none;white-space:normal}.tb-tooltip-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1-5);padding-bottom:var(--space-1-5);border-bottom:1px solid var(--tb-border);font-size:var(--text-sm)}.tb-tooltip-type{font-size:var(--text-xs);color:var(--tb-text-muted);background:var(--tb-chip-bg);padding:var(--space-px) var(--space-1-5);border-radius:var(--radius-xs);text-transform:capitalize}.tb-tooltip-body{font-size:var(--text-sm);color:var(--tb-text);line-height:var(--leading-normal)}.tb-trio-label{width:5rem;position:absolute;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--tb-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);pointer-events:none;z-index:2}.tb-zoom-controls{position:absolute;top:var(--space-3);right:var(--space-3);z-index:50;display:flex;align-items:center;gap:var(--space-1);background:var(--tb-surface);border:1px solid var(--tb-border);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);box-shadow:var(--shadow-xs)}.tb-zoom-btn{background:none;border:none;cursor:pointer;font-size:var(--text-base);color:var(--tb-text);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);transition:background .1s;padding:0}.tb-zoom-btn:hover{background:var(--tb-chip-bg)}.tb-zoom-reset{font-size:var(--text-base);color:var(--tb-text-muted);border-left:1px solid var(--tb-border);padding-left:var(--space-1);margin-left:var(--space-0-5)}.tb-zoom-label{font-size:var(--text-xs);color:var(--tb-text-muted);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.tb-legend-wrap{position:absolute;top:var(--space-3);left:var(--space-3);z-index:50;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1-5)}.tb-legend-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);border:1px solid var(--tb-border);background:var(--tb-surface);box-shadow:var(--shadow-xs);cursor:pointer;color:var(--tb-text-muted);padding:0;transition:color .15s,border-color .15s}.tb-legend-toggle:hover{color:var(--tb-accent);border-color:var(--tb-accent)}.tb-legend{display:flex;flex-direction:column;gap:var(--space-2);background:var(--tb-surface);border:1px solid var(--tb-border);border-radius:var(--radius-md);padding:var(--space-2-5) var(--space-3-5);box-shadow:var(--shadow-xs)}.tb-legend-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--tb-text)}.tb-legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}.tb-legend-agent{background:repeating-linear-gradient(45deg,var(--tb-stripe-dark),var(--tb-stripe-dark) 4px,var(--tb-stripe-amber) 4px,var(--tb-stripe-amber) 8px);border:1px solid var(--tb-agent-border)}.tb-legend-event{background:var(--tb-event);border:1px solid var(--tb-event-border)}.tb-legend-target{background:var(--tb-target);border:1px solid var(--tb-target-border)}.tb-legend-event-agent{background:linear-gradient(to right,var(--tb-event) 0%,var(--tb-event) 50%,transparent 50%),repeating-linear-gradient(45deg,var(--tb-stripe-dark) 0px,var(--tb-stripe-dark) 4px,var(--tb-stripe-amber) 4px,var(--tb-stripe-amber) 8px);border:1px solid var(--tb-agent-border)}.tb-legend-event-target{background:linear-gradient(to right,var(--tb-event) 50%,var(--tb-target) 50%);border:1px solid var(--tb-target-border)}.tb-legend-target-agent{background:linear-gradient(to right,var(--tb-target) 0%,var(--tb-target) 50%,transparent 50%),repeating-linear-gradient(45deg,var(--tb-stripe-dark) 0px,var(--tb-stripe-dark) 4px,var(--tb-stripe-amber) 4px,var(--tb-stripe-amber) 8px);border:1px solid var(--tb-agent-border)}.tb-legend-cnode-barrier{background:var(--tb-cnode-barrier);border:1px solid var(--tb-cnode-barrier-border)}.tb-legend-cnode-immediate-cause{background:var(--tb-cnode-ic);border:1px solid var(--tb-cnode-ic-border)}.tb-legend-cnode-precondition{background:var(--tb-cnode-pc);border:1px solid var(--tb-cnode-pc-border)}.tb-legend-cnode-underlying-cause{background:var(--tb-cnode-uc);border:1px solid var(--tb-cnode-uc-border)}.tb-line-hit{stroke:transparent;stroke-width:20px;cursor:default;pointer-events:all}.tb-line-add-wrap{position:absolute;display:flex;align-items:center;justify-content:center;z-index:20;pointer-events:auto}.tb-line-add-btn{width:28px;height:28px;border-radius:var(--radius-full);border:2px solid var(--gray-400);background:var(--surface-1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;box-shadow:var(--shadow-xs)}.tb-line-add-btn:hover{border-color:var(--text-1);color:var(--text-1);background:var(--gray-50);box-shadow:var(--shadow-sm)}.tb-barrier-inline-form{position:absolute;width:240px;background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);padding:var(--space-4);z-index:200;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:auto}.tb-barrier-form-label{font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--text-1);margin:0}.tb-barrier-form-textarea{width:100%;resize:vertical;border:1px solid var(--border-1);border-radius:var(--radius-sm);padding:var(--space-2);font-size:var(--text-sm);color:var(--text-1);background:var(--surface-1);line-height:var(--leading-normal);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.tb-barrier-form-textarea:focus{outline:none;border-color:var(--gray-400)}.tb-barrier-form-error{font-size:var(--text-xs);color:var(--red-600);margin:0}.tb-barrier-form-actions{display:flex;justify-content:flex-end;gap:var(--space-1-5)}.dp-root{position:relative;display:inline-block}.dp-trigger{display:flex;align-items:center;gap:var(--space-2);height:var(--height-input-md);padding:0 var(--space-3);background:var(--surface-1);border:1px solid var(--border-input);border-radius:var(--radius-md);color:var(--text-1);font:var(--type-body-sm);cursor:pointer;min-width:160px;transition:border-color .15s,box-shadow .15s}.dp-trigger:hover{border-color:var(--border-2)}.dp-trigger--open{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.dp-icon{color:var(--text-3);flex-shrink:0}.dp-placeholder{color:var(--text-3)}.dp-value{color:var(--text-1)}.dp-popover{position:absolute;top:calc(100% + var(--space-1-5));left:0;z-index:200;background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-dropdown);padding:var(--space-4);min-width:260px}.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.dp-month-label{font:var(--type-label);color:var(--text-1)}.dp-nav{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-2);cursor:pointer;transition:background .12s,color .12s}.dp-nav:hover{background:var(--surface-hover);color:var(--text-1)}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-weekday{font:var(--type-label-xs);color:var(--text-3);text-align:center;padding:var(--space-1) 0;text-transform:uppercase;letter-spacing:var(--tracking-wide)}.dp-day{display:flex;align-items:center;justify-content:center;height:32px;border-radius:var(--radius-sm);font:var(--type-body-sm);color:var(--text-1);background:transparent;border:none;cursor:pointer;transition:background .12s,color .12s}.dp-day:hover:not(.dp-day--disabled):not(.dp-day--selected){background:var(--surface-hover)}.dp-day--empty{visibility:hidden;pointer-events:none}.dp-day--today{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.dp-day--selected{background:var(--color-primary);color:var(--text-inverse);font-weight:var(--font-weight-medium)}[data-theme=dark] .dp-day--selected{color:#fff}.dp-day--disabled{color:var(--text-disabled);cursor:not-allowed}.dp-footer{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-1);display:flex;justify-content:flex-end}.dp-clear{font:var(--type-body-sm);color:var(--text-2);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color .12s,background .12s}.dp-clear:hover{color:var(--color-danger);background:var(--color-danger-bg)}:root{--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--blue-900: #1e3a8a;--indigo-50: #eef2ff;--indigo-100: #e0e7ff;--indigo-200: #c7d2fe;--indigo-300: #a5b4fc;--indigo-400: #818cf8;--indigo-500: #6366f1;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--indigo-900: #312e81;--teal-50: #f0fdfa;--teal-100: #ccfbf1;--teal-200: #99f6e4;--teal-300: #5eead4;--teal-400: #2dd4bf;--teal-500: #14b8a6;--teal-600: #0d9488;--teal-700: #0f766e;--teal-800: #115e59;--teal-900: #134e4a;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--green-50: #f0fdf4;--green-100: #dcfce7;--green-200: #bbf7d0;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-200: #fde68a;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--orange-50: #fff7ed;--orange-100: #ffedd5;--orange-500: #f97316;--orange-600: #ea580c;--violet-50: #faf5ff;--violet-100: #ede9fe;--violet-200: #e9d5ff;--violet-300: #c4b5fd;--violet-600: #7c3aed;--navy-700: #334155;--navy-800: #1e293b;--navy-900: #0f172a;--color-primary: var(--blue-600);--color-primary-hover: var(--blue-700);--color-primary-active: var(--blue-800);--color-primary-light: var(--blue-50);--color-primary-muted: var(--blue-100);--color-primary-text: var(--blue-600);--color-secondary: var(--indigo-600);--color-secondary-hover: var(--indigo-700);--color-secondary-light: var(--indigo-50);--color-secondary-muted: var(--indigo-100);--color-accent: var(--teal-600);--color-accent-hover: var(--teal-700);--color-accent-light: var(--teal-50);--color-success: var(--green-600);--color-success-bg: var(--green-50);--color-success-muted: var(--green-100);--color-success-text: var(--green-700);--color-danger: var(--red-600);--color-danger-bg: var(--red-50);--color-danger-muted: var(--red-100);--color-danger-text: var(--red-700);--color-warning: var(--amber-600);--color-warning-bg: var(--amber-50);--color-warning-muted: var(--amber-100);--color-warning-text: var(--amber-700);--color-info: var(--blue-500);--color-info-bg: var(--blue-50);--color-info-muted: var(--blue-100);--color-info-text: var(--blue-700);--surface-app: var(--gray-50);--surface-1: #ffffff;--surface-2: var(--gray-50);--surface-3: var(--gray-100);--surface-hover: var(--gray-50);--surface-active: var(--blue-50);--surface-premium: var(--navy-800);--surface-overlay: rgba(0, 0, 0, .4);--border-1: var(--gray-200);--border-2: var(--gray-300);--border-input: var(--gray-200);--border-focus: var(--blue-500);--text-1: var(--gray-900);--text-2: var(--gray-600);--text-3: var(--gray-400);--text-disabled: var(--gray-300);--text-inverse: #ffffff;--text-primary: var(--blue-600);--text-link: var(--blue-600);--chart-1: var(--blue-500);--chart-2: var(--indigo-500);--chart-3: var(--teal-500);--chart-4: var(--amber-500);--chart-5: var(--red-400, #f87171);--chart-6: var(--orange-500);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", Consolas, "Courier New", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-4xl: 30px;--text-5xl: 36px;--text-6xl: 48px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tighter: -.03em;--tracking-tight: -.01em;--tracking-normal: 0em;--tracking-wide: .02em;--tracking-wider: .05em;--tracking-widest: .1em;--type-metric-lg: var(--font-weight-bold) var(--text-5xl)/var(--leading-none) var(--font-sans);--type-metric-md: var(--font-weight-bold) var(--text-4xl)/var(--leading-none) var(--font-sans);--type-metric-sm: var(--font-weight-bold) var(--text-3xl)/var(--leading-tight) var(--font-sans);--type-heading-1: var(--font-weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-sans);--type-heading-2: var(--font-weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);--type-heading-3: var(--font-weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);--type-heading-4: var(--font-weight-semibold) var(--text-base)/var(--leading-snug) var(--font-sans);--type-body-lg: var(--font-weight-regular) var(--text-lg)/var(--leading-normal) var(--font-sans);--type-body: var(--font-weight-regular) var(--text-base)/var(--leading-normal) var(--font-sans);--type-body-sm: var(--font-weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);--type-label: var(--font-weight-medium) var(--text-sm)/var(--leading-tight) var(--font-sans);--type-label-xs: var(--font-weight-medium) var(--text-xs)/var(--leading-tight) var(--font-sans);--type-overline: var(--font-weight-semibold) var(--text-xs)/var(--leading-tight) var(--font-sans);--overline-letter-spacing: var(--tracking-widest);--type-caption: var(--font-weight-regular) var(--text-xs)/var(--leading-normal) var(--font-sans);--type-code: var(--font-weight-regular) var(--text-sm)/var(--leading-relaxed) var(--font-mono);--space-0: 0px;--space-px: 1px;--space-0-5: 2px;--space-1: 4px;--space-1-5: 6px;--space-2: 8px;--space-2-5: 10px;--space-3: 12px;--space-3-5: 14px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-none: 0px;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 20px;--radius-full: 9999px;--sidebar-width: 240px;--sidebar-collapsed-width: 56px;--topbar-height: 60px;--content-padding: var(--space-6);--card-padding: var(--space-5);--card-padding-sm: var(--space-4);--height-btn-sm: 32px;--height-btn-md: 36px;--height-btn-lg: 42px;--height-input-md: 36px;--shadow-none: none;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .08), 0 1px 2px -1px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .18);--shadow-card: var(--shadow-sm);--shadow-card-hover: var(--shadow-md);--shadow-modal: var(--shadow-xl);--shadow-dropdown: var(--shadow-lg);--shadow-sidebar: 1px 0 0 0 var(--gray-200);--shadow-focus: 0 0 0 3px rgba(37, 99, 235, .2);--shadow-focus-danger: 0 0 0 3px rgba(220, 38, 38, .2);--shadow-focus-success: 0 0 0 3px rgba(22, 163, 74, .2)}[data-theme=dark]{--surface-app: var(--navy-900);--surface-1: var(--navy-800);--surface-2: var(--navy-900);--surface-3: var(--navy-700);--surface-hover: #243044;--surface-active: rgba(37, 99, 235, .18);--surface-premium: var(--navy-700);--surface-overlay: rgba(0, 0, 0, .6);--border-1: var(--navy-700);--border-2: #3b4a63;--border-input: var(--navy-700);--border-focus: var(--blue-400);--text-1: var(--gray-100);--text-2: var(--gray-400);--text-3: var(--gray-500);--text-disabled: var(--gray-600);--text-inverse: var(--gray-900);--text-primary: var(--blue-400);--text-link: var(--blue-400);--color-primary: var(--blue-500);--color-primary-hover: var(--blue-400);--color-primary-active: var(--blue-300);--color-primary-light: rgba(37, 99, 235, .16);--color-primary-muted: rgba(37, 99, 235, .24);--color-primary-text: var(--blue-400);--color-secondary: var(--indigo-500);--color-secondary-hover: var(--indigo-400);--color-secondary-light: rgba(79, 70, 229, .16);--color-secondary-muted: rgba(79, 70, 229, .24);--color-accent: var(--teal-500);--color-accent-hover: var(--teal-400);--color-accent-light: rgba(13, 148, 136, .16);--color-success: var(--green-500);--color-success-bg: rgba(34, 197, 94, .16);--color-success-muted: rgba(34, 197, 94, .24);--color-success-text: var(--green-500);--color-danger: var(--red-500);--color-danger-bg: rgba(239, 68, 68, .16);--color-danger-muted: rgba(239, 68, 68, .24);--color-danger-text: var(--red-400);--color-warning: var(--amber-500);--color-warning-bg: rgba(245, 158, 11, .16);--color-warning-muted: rgba(245, 158, 11, .24);--color-warning-text: var(--amber-500);--color-info: var(--blue-400);--color-info-bg: rgba(59, 130, 246, .16);--color-info-muted: rgba(59, 130, 246, .24);--color-info-text: var(--blue-300);--chart-1: var(--blue-400);--chart-2: var(--indigo-400);--chart-3: var(--teal-400);--chart-4: var(--amber-500);--chart-5: var(--red-400);--chart-6: var(--orange-500);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px -1px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .45), 0 2px 4px -2px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .35);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .55), 0 8px 10px -6px rgba(0, 0, 0, .35);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .7);--shadow-sidebar: 1px 0 0 0 var(--navy-700);--shadow-focus: 0 0 0 3px rgba(96, 165, 250, .3);--shadow-focus-danger: 0 0 0 3px rgba(248, 113, 113, .3);--shadow-focus-success: 0 0 0 3px rgba(34, 197, 94, .3)}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,select,textarea,optgroup{font:inherit;letter-spacing:inherit}.ds-metric-lg{font:var(--type-metric-lg);letter-spacing:var(--tracking-tight)}.ds-metric-md{font:var(--type-metric-md);letter-spacing:var(--tracking-tight)}.ds-metric-sm{font:var(--type-metric-sm);letter-spacing:var(--tracking-tight)}.ds-h1{font:var(--type-heading-1)}.ds-h2{font:var(--type-heading-2)}.ds-h3{font:var(--type-heading-3)}.ds-h4{font:var(--type-heading-4)}.ds-body-lg{font:var(--type-body-lg)}.ds-body{font:var(--type-body)}.ds-body-sm{font:var(--type-body-sm)}.ds-label{font:var(--type-label)}.ds-label-xs{font:var(--type-label-xs)}.ds-overline{font:var(--type-overline);letter-spacing:var(--overline-letter-spacing);text-transform:uppercase}.ds-caption{font:var(--type-caption)}.ds-code{font:var(--type-code)}.ds-table{width:100%;border-collapse:collapse;font:var(--type-body);color:var(--text-1)}.ds-table.ds-table-sm{font-size:var(--text-sm)}.ds-table thead th{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--text-2);text-transform:uppercase;letter-spacing:var(--tracking-wider);text-align:left;white-space:nowrap}.ds-table tbody td{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-1);vertical-align:middle}.ds-page{padding:var(--content-padding)}.ds-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-3);font:var(--type-body)}.ds-card{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--card-padding)}.ds-card-sm{padding:var(--card-padding-sm)}.ds-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.ds-card-body{padding:var(--card-padding)}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1-5);height:var(--height-btn-md);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font:var(--type-label);white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.ds-btn:disabled{opacity:.5;cursor:not-allowed}.ds-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ds-btn-primary{background:var(--color-primary);color:var(--text-inverse)}.ds-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.ds-btn-secondary{background:var(--surface-1);border-color:var(--border-2);color:var(--text-1)}.ds-btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.ds-btn-danger{background:var(--color-danger);color:var(--text-inverse)}.ds-btn-danger:hover:not(:disabled){background:var(--red-700)}.ds-btn-danger:focus-visible{box-shadow:var(--shadow-focus-danger)}.ds-btn-success{background:var(--color-success);color:var(--text-inverse)}.ds-btn-success:hover:not(:disabled){background:var(--green-700)}.ds-btn-success:focus-visible{box-shadow:var(--shadow-focus-success)}.ds-btn-ghost{background:transparent;color:var(--color-primary)}.ds-btn-ghost:hover:not(:disabled){background:var(--color-primary-light)}.ds-btn-outline-danger{background:var(--surface-1);border-color:var(--red-200);color:var(--color-danger)}.ds-btn-outline-danger:hover:not(:disabled){background:var(--color-danger-bg)}.ds-btn-outline-danger:focus-visible{box-shadow:var(--shadow-focus-danger)}.ds-btn-sm{height:var(--height-btn-sm);padding:0 var(--space-3);font:var(--type-label-xs)}.ds-btn-lg{height:var(--height-btn-lg);padding:0 var(--space-5)}.ds-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--height-btn-sm);height:var(--height-btn-sm);border:1px solid var(--border-2);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-2);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.ds-icon-btn:hover:not(:disabled){border-color:var(--color-danger);color:var(--color-danger)}.ds-icon-btn:disabled{opacity:.45;cursor:not-allowed}.ds-icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ds-form-field{display:flex;flex-direction:column;gap:var(--space-1-5)}.ds-label{font:var(--type-label);color:var(--text-2)}.ds-input,.ds-select,.ds-textarea{width:100%;background:var(--surface-1);color:var(--text-1);border:1px solid var(--border-input);border-radius:var(--radius-md);padding:0 var(--space-3);font:var(--type-body);transition:border-color .15s ease,box-shadow .15s ease}.ds-input,.ds-select{height:var(--height-input-md)}.ds-textarea{min-height:96px;padding:var(--space-2) var(--space-3);resize:vertical;line-height:var(--leading-normal)}.ds-input:focus,.ds-select:focus,.ds-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.ds-input:disabled,.ds-select:disabled,.ds-textarea:disabled{background:var(--surface-2);color:var(--text-disabled);cursor:not-allowed}.ds-input::placeholder,.ds-textarea::placeholder{color:var(--text-3)}.ds-badge{display:inline-flex;align-items:center;gap:var(--space-1-5);padding:var(--space-0-5) var(--space-2-5);border-radius:var(--radius-full);font:var(--type-label-xs);white-space:nowrap}.ds-badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.ds-badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.ds-badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.ds-badge-info{background:var(--color-info-bg);color:var(--color-info-text)}.ds-badge-neutral{background:var(--surface-3);color:var(--text-2)}.ds-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2-5)}.ds-modal-danger{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3)}.ds-progress{width:100%;height:var(--space-2);background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.ds-progress-bar{height:100%;width:var(--ds-progress-value, 0%);background:var(--ds-progress-color, var(--color-primary));border-radius:inherit;transition:width .3s ease}.ds-score{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-0-5) var(--space-2-5);border-radius:var(--radius-md);font:var(--type-label);font-variant-numeric:tabular-nums}.ds-score-success{background:var(--color-success-bg);color:var(--color-success-text)}.ds-score-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.ds-score-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.ds-score-neutral{background:var(--surface-3);color:var(--text-2)}.ds-text-center{text-align:center}.ds-text-mono{font-family:var(--font-mono)}.ds-text-muted{color:var(--text-3)}.ds-shrink-0{flex-shrink:0}.ds-min-w-0{min-width:0}.ds-hidden{display:none}.ds-text-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.auth-page-wrap{min-height:100vh;background:linear-gradient(135deg,var(--blue-900),var(--blue-600));display:flex;flex-direction:column}.auth-top-header{padding:2rem}.auth-logo{color:#fff;font-size:var(--text-xl)}.auth-main{flex:1;display:flex;align-items:flex-start;justify-content:flex-start;padding-left:2rem;padding-right:2rem}.login-main{padding-top:calc(55vh - 180px)}.register-main{padding-top:calc(50vh - 280px);padding-bottom:2rem}.auth-content{width:100%;max-width:28rem}.auth-heading{color:#fff;font-size:var(--text-6xl);font-weight:var(--font-weight-regular);margin-bottom:.75rem;line-height:1.2}.auth-subtext{color:#ffffffe6;font-size:var(--text-lg);margin-bottom:2rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-input{width:100%;background:var(--surface-1);color:var(--text-1);border:none;outline:none;border-radius:.375rem;padding:1rem;font-size:var(--text-lg);box-sizing:border-box}.auth-input::placeholder{color:var(--text-3)}.auth-input-wrap{position:relative}.auth-input-wrap .auth-input{padding-right:3rem}.auth-eye-btn{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-3);padding:0;display:flex;align-items:center;line-height:0}.auth-eye-btn:hover{color:var(--text-2)}.auth-error-msg{color:#fecaca;font-size:var(--text-base)}.auth-actions{display:flex;gap:1rem;padding-top:.5rem}.auth-btn-primary{flex:1;background:var(--surface-3);color:var(--text-1);border:none;border-radius:.375rem;padding:1rem;font-size:var(--text-lg);cursor:pointer;transition:background .15s}.auth-btn-primary:hover:not(:disabled){background:var(--surface-hover)}.auth-btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-btn-secondary{flex:1;background:var(--surface-1);color:var(--text-1);border:none;border-radius:.375rem;padding:1rem;font-size:var(--text-lg);cursor:pointer;transition:background .15s}.auth-btn-secondary:hover{background:var(--surface-2)}.auth-bottom-footer{padding:2rem;display:flex;justify-content:flex-end}.auth-version{color:#fff9;font-size:var(--text-base)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--surface-app);color:var(--text-1);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column;padding:0}.header{background:var(--color-primary);box-shadow:var(--shadow-md)}.header-inner{margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;gap:.75rem}.header-title{color:#fff;font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:.025em}.header-title-link{color:inherit;text-decoration:none}.header-subtitle{color:#bfdbfe;font-size:var(--text-xs)}.header-session{margin-left:auto;display:flex;align-items:center;gap:.5rem}.session-label{color:#bfdbfe;font-size:var(--text-xs)}.session-badge{background:var(--color-primary-hover);color:#fff;font-size:var(--text-xs);padding:.125rem .5rem;border-radius:.25rem;font-family:var(--font-mono)}.new-session-btn{font-size:var(--text-xs);color:#bfdbfe;background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.new-session-btn:hover{color:#fff}.header-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:var(--height-btn-sm);height:var(--height-btn-sm);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#bfdbfe;cursor:pointer;transition:background .15s,color .15s}.header-theme-toggle:hover{background:#ffffff29;color:#fff}.main-upload{flex:1;display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem 2rem;gap:1.5rem}.upload-panel{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:1rem}.drop-zone{height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-2);border-radius:var(--radius-xl);padding:2.5rem 2rem;text-align:center;transition:border-color .2s,background .2s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--color-primary);background:var(--color-primary-light)}.drop-icon{width:3rem;height:3rem;color:var(--text-3);margin:0 auto .75rem;display:block}.drop-title{font-size:var(--text-md);font-weight:var(--font-weight-medium);color:var(--text-2)}.drop-hint{font-size:var(--text-xs);color:var(--text-3);margin-top:.375rem}.file-preview{border:1px solid var(--border-1);border-radius:.75rem;background:var(--surface-1);padding:1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-sm)}.file-icon{width:2rem;height:2rem;color:var(--color-primary);flex-shrink:0}.file-info{min-width:0;flex:1}.file-name{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:var(--text-xs);color:var(--text-3)}.file-clear{background:none;border:none;cursor:pointer;color:var(--text-3);padding:.25rem;line-height:0;margin-left:auto;flex-shrink:0;transition:color .15s}.file-clear:hover{color:var(--color-danger)}.analyze-btn{width:100%;padding:.75rem;border-radius:.75rem;font-weight:var(--font-weight-semibold);font-size:var(--text-md);background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .2s;box-shadow:var(--shadow-sm)}.analyze-btn:hover:not(:disabled){background:var(--color-primary-hover)}.analyze-btn:disabled{opacity:.4;cursor:not-allowed}.btn-spinner{width:1em;height:1em;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.events-feed{width:100%;max-width:1000px;padding:1.5rem;background:var(--surface-1);border:1px solid var(--border-1);border-radius:1rem;overflow:hidden;box-shadow:var(--shadow-sm)}.events-header{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-1)}.events-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-1)}.spinner{width:.875rem;height:.875rem;border:2px solid var(--border-1);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.events-list{list-style:none;max-height:480px;overflow-y:auto;padding:.5rem 0}.event-item{font-size:var(--text-xs);padding:.3rem 1rem;border-left:2px solid transparent;color:var(--text-2);word-break:break-word}.event-info{color:var(--text-1)}.event-tool_call{border-color:var(--indigo-500);color:var(--color-secondary)}.event-tool_result{border-color:var(--color-success);color:var(--color-success-text)}.event-reasoning{border-color:var(--text-disabled);color:var(--text-3)}.event-text{color:var(--text-1)}.event-error{border-color:var(--color-danger);color:var(--color-danger-text)}.event-notice{border-color:var(--color-warning);color:var(--color-warning-text);background:var(--color-warning-bg)}.event-image{border-color:var(--indigo-500);padding:.5rem 1rem}.event-image img.event-image,img.event-image{display:block;max-width:100%;max-height:320px;border-radius:.5rem;border:1px solid var(--border-1);margin:.25rem 0}.done-empty{text-align:center;color:var(--text-2);font-size:var(--text-base)}.worksheet-section{width:100%;padding:0 1.5rem}.worksheet-card{background:var(--surface-1);border-radius:1rem;border:1px solid var(--border-1);box-shadow:var(--shadow-sm);overflow:hidden;padding:0 1rem;margin-top:1rem}.worksheet-toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1.5rem 0 1rem;margin-bottom:1.5rem;background:var(--surface-app);border-bottom:1px solid var(--border-1)}.worksheet-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border-1);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.worksheet-title-group{display:flex;align-items:center;gap:.5rem}.worksheet-title-group h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-1)}.worksheet-count{font-size:var(--text-xs);color:var(--text-3)}.worksheet-actions{display:flex;align-items:center;gap:.5rem}.export-btn,.new-analysis-btn{display:flex;align-items:center;gap:.375rem;font-size:var(--text-xs);font-weight:var(--font-weight-medium);border-radius:.5rem;padding:.375rem .75rem;cursor:pointer;transition:background .2s}.export-btn{color:var(--color-primary);border:1px solid var(--color-primary-muted);background:none}.export-btn:hover{background:var(--color-primary-light)}.new-analysis-btn{color:#fff;background:var(--color-primary);border:none}.new-analysis-btn:hover{background:var(--color-primary-hover)}.new-analysis-btn:disabled{opacity:.45;cursor:not-allowed}.new-analysis-btn:disabled:hover{background:var(--color-primary)}.btn-tooltip-wrap{position:relative;display:inline-flex}.btn-tooltip-wrap .btn-tooltip{position:absolute;top:calc(100% + 8px);right:0;white-space:nowrap;background:#1f2937;color:#fff;font-size:var(--text-xs);font-weight:var(--font-weight-regular);padding:.375rem .625rem;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:100}.btn-tooltip-wrap .btn-tooltip:after{content:"";position:absolute;bottom:100%;right:.625rem;border:5px solid transparent;border-bottom-color:var(--text-1)}.btn-tooltip-wrap:hover .btn-tooltip{opacity:1}.token-limit-notice{font-size:var(--text-base);color:var(--color-warning-text);background:var(--color-warning-bg);border:1px solid var(--color-warning-muted);border-radius:6px;padding:.5rem .75rem;margin-bottom:.75rem}.view-diagram-btn{display:flex;align-items:center;gap:.375rem;padding:.3rem .65rem;border-radius:6px;font-size:var(--text-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .2s;color:var(--violet-600);border:1px solid var(--color-secondary-muted);background:none}.view-diagram-btn:hover{background:var(--color-secondary-light)}.diagram-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.diagram-modal{background:var(--surface-1);border-radius:var(--radius-lg);max-width:90vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-modal)}.diagram-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-1);font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--text-1)}.diagram-close-btn{background:none;border:none;cursor:pointer;color:var(--text-2);padding:.25rem;border-radius:4px;display:flex;align-items:center}.diagram-close-btn:hover{background:var(--surface-3);color:var(--text-1)}.diagram-modal-body{overflow:auto;padding:1rem}.diagram-img{display:block;max-width:100%;height:auto}.table-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 15rem)}.node-card-list{display:flex;flex-direction:column;gap:.75rem}.node-card{background:var(--surface-1);border-radius:.875rem;border:1px solid var(--border-1);box-shadow:var(--shadow-sm);overflow:hidden}.node-card-header-row{display:flex;align-items:stretch}.node-card-header-row .node-edit-btn{flex-shrink:0;margin:var(--space-2) var(--space-2) var(--space-2) 0;opacity:0;transition:opacity .15s}.node-card-header-row:hover .node-edit-btn{opacity:1}.node-card-header{flex:1;display:flex;align-items:center;gap:.875rem;padding:.875rem 1.125rem;border:none;background:transparent;cursor:pointer;text-align:left;width:100%}.node-card-header:hover{background:var(--surface-hover)}.node-card-icon{width:2.125rem;height:2.125rem;border-radius:.625rem;background:var(--color-secondary-light);color:var(--color-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-card-titles{flex:1;min-width:0}.node-card-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-card-desc{font-size:var(--text-xs);color:var(--text-3);margin-top:.0625rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-card-badges{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.node-badge{padding:.125rem .5rem;border-radius:9999px;background:var(--surface-3);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-2);white-space:nowrap}.node-badge-high{background:var(--color-danger-bg);color:var(--color-danger-text)}.node-card-chevron{display:flex;color:var(--text-3);transition:transform .2s ease;margin-left:.125rem}.node-card-chevron.open{transform:rotate(180deg)}.node-card-body{border-top:1px solid var(--border-1);overflow-x:auto}.node-card-empty{padding:1rem 1.125rem;font-size:var(--text-sm);color:var(--text-3)}.hazop-table{width:100%;font-size:var(--text-sm);text-align:left;border-collapse:collapse}.hazop-table thead tr{background:var(--surface-2)}.hazop-table th{padding:.625rem .75rem;border-bottom:2px solid var(--border-1);color:var(--text-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:sticky;top:0;z-index:1;background:var(--surface-2)}.hazop-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-1);vertical-align:top;color:var(--text-1);font-size:var(--text-sm)}.node-cell{border-right:2px solid var(--border-1);font-weight:var(--font-weight-semibold);color:var(--text-1);white-space:normal;word-break:break-word;width:8rem;min-width:6rem;max-width:10rem;background:var(--surface-2)}.node-id{color:var(--text-3);font-weight:var(--font-weight-regular);font-size:var(--text-xs);margin-top:.125rem}.param-cell{border-right:1px solid var(--border-1);font-weight:var(--font-weight-semibold);color:var(--text-1);white-space:nowrap;vertical-align:middle}.row-high{background:var(--color-warning-bg)}.guide-word{font-weight:var(--font-weight-medium);color:var(--color-secondary);white-space:nowrap}.guide-word-cell{vertical-align:middle}.guide-word-chip{display:inline-block;padding:.125rem .5rem;border-radius:.375rem;background:var(--color-secondary-light);color:var(--color-secondary);font-weight:var(--font-weight-bold);font-size:var(--text-xs);white-space:nowrap}.risk-cell{text-align:center;white-space:nowrap}.risk-badge{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.risk-high{background:var(--color-danger-bg);color:var(--color-danger-text);border:1px solid var(--color-danger-muted)}.risk-medium{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-muted)}.risk-low{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-muted)}.risk-unknown{background:var(--surface-3);color:var(--text-2)}.bullet-list{list-style:disc;padding-left:1rem}.bullet-list li+li{margin-top:.125rem}.empty{color:var(--text-disabled)}.chat-float-root{position:fixed;bottom:0;left:var(--sidebar-w, 4rem);right:0;z-index:200;display:flex;flex-direction:column;align-items:stretch;pointer-events:none;transition:left .3s ease}.chat-float-root>*{pointer-events:auto}.chat-fab{position:fixed;bottom:1.25rem;right:1.75rem;z-index:201;width:3rem;height:3rem;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:background .15s,transform .15s}.chat-fab:hover{background:var(--color-primary-hover);transform:scale(1.07)}.chat-fab-open{background:var(--color-primary-hover)}.chat-fab-open:hover{background:var(--color-primary-active);transform:scale(1.04) rotate(90deg)}.chat-fab-badge{position:absolute;top:-3px;right:-3px;background:var(--color-danger);color:var(--text-inverse);font-size:var(--text-xs);font-weight:var(--font-weight-bold);border-radius:var(--radius-full);min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 3px;border:2px solid white}.chat-float-panel{position:fixed;bottom:5.5rem;right:1.75rem;z-index:201;width:380px;max-width:calc(100vw - var(--sidebar-w, 4rem) - 3.5rem);height:540px;max-height:calc(100vh - 8rem);background:var(--surface-1);border:1px solid var(--border-1);border-radius:14px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;animation:chat-slide-up .18s ease}@keyframes chat-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chat-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-1);flex-shrink:0}.online-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);flex-shrink:0}.chat-header-icon{width:1.75rem;height:1.75rem;border-radius:.5rem;background:var(--color-secondary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-header-titles{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.chat-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-1)}.chat-subtitle{font-size:var(--text-xs);color:var(--text-3)}.chat-collapse-btn{background:none;border:none;cursor:pointer;color:var(--text-3);padding:.2rem;display:flex;align-items:center;border-radius:.25rem;transition:color .15s}.chat-collapse-btn:hover{color:var(--text-1)}.chat-log{flex:1;min-height:80px;overflow-y:auto;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.625rem}.chat-empty{font-size:var(--text-xs);color:var(--text-3);text-align:center;padding:.5rem 0}.msg{max-width:82%;border-radius:.75rem;padding:.5rem .875rem;font-size:var(--text-sm);line-height:1.5;word-break:break-word}.msg pre{font-family:inherit;white-space:pre-wrap;margin:0}.msg-user{align-self:flex-end;background:var(--color-primary);color:#fff;border-bottom-right-radius:.25rem}.msg-agent{align-self:flex-start;background:var(--color-primary-light);color:var(--color-primary-text);border-bottom-left-radius:.25rem}.msg-agent-wrap{align-self:flex-start;display:flex;flex-direction:column;gap:.375rem;max-width:88%}.msg-system{align-self:center;font-size:var(--text-xs);color:var(--text-3);font-style:italic}.progress-wrap{background:var(--surface-2);border:1px solid var(--border-1);border-radius:.75rem;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.25rem}.progress-step{display:flex;align-items:flex-start;gap:.5rem;font-size:var(--text-xs);color:var(--text-2);border-left:2px solid transparent;padding:.125rem 0 .125rem .5rem}.step-tool{border-color:var(--indigo-500);color:var(--color-secondary)}.step-result{border-color:var(--green-500);color:var(--color-success)}.step-reasoning{border-color:var(--border-2);color:var(--text-3)}.step-error{border-color:var(--red-500);color:var(--color-danger-text)}.step-icon{flex-shrink:0;display:inline-flex;align-items:center;margin-top:1px}.step-label{font-weight:var(--font-weight-semibold)}.step-body{word-break:break-word}.chat-input-row{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--surface-3);flex-shrink:0}.chat-input{flex:1;border:1px solid var(--border-input);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:var(--text-sm);outline:none;font-family:inherit;color:var(--text-1);background:var(--surface-2);transition:border-color .15s,background .15s}.chat-input:focus{border-color:var(--color-primary);background:var(--surface-1)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--text-3)}.send-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:var(--color-primary);color:#fff;border:none;border-radius:.5rem;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s;flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--color-primary-hover)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-context-row{display:flex;flex-wrap:wrap;gap:.375rem;padding:.5rem 1rem;border-top:1px solid var(--surface-3);flex-shrink:0}.chat-ref-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:var(--surface-2);border:1px solid var(--border-input);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-1)}.chat-ref-chip-sm{font-size:var(--text-xs);padding:0 .375rem}.chat-ref-remove{display:inline-flex;align-items:center;border:none;background:none;cursor:pointer;color:var(--text-3);line-height:1;padding:0}.chat-ref-remove:hover{color:var(--color-danger)}.chat-msg-refs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.375rem}.chat-proposal{border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--surface-1);overflow:hidden;margin:.25rem 0}.chat-proposal-head{padding:.5rem .75rem;font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-2);background:var(--surface-2);border-bottom:1px solid var(--surface-3)}.chat-proposal-body{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.5rem}.chat-diff{font-size:var(--text-xs);border-left:3px solid var(--border-input);padding-left:.5rem}.chat-diff-add{border-left-color:var(--color-success)}.chat-diff-delete{border-left-color:var(--color-danger)}.chat-diff-update{border-left-color:var(--color-primary)}.chat-diff-reorder{border-left-color:var(--color-warning)}.chat-diff-summary{font-weight:var(--font-weight-medium);color:var(--text-1)}.chat-diff-sign{display:inline-flex;align-items:center;justify-content:center;width:1rem;vertical-align:-.15em}.chat-diff-before{color:var(--color-danger);text-decoration:line-through;white-space:pre-wrap}.chat-diff-after{color:var(--color-success);white-space:pre-wrap}.chat-diff-rationale{color:var(--text-3);font-style:italic;margin-top:.125rem}.chat-proposal-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:.5rem .75rem;border-top:1px solid var(--surface-3)}.chat-proposal-status{padding:.5rem .75rem;font-size:var(--text-xs);color:var(--text-3)}.chat-proposal-applied{color:var(--color-success)}.chat-proposal-error{padding:0 .75rem .5rem;font-size:var(--text-xs);color:var(--color-danger)}.chat-pending-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-top:1px solid var(--surface-3);background:var(--surface-2);flex-shrink:0}.chat-pending-count{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-1)}.chat-pending-actions{display:flex;gap:.375rem}.chat-newconv-btn{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-3);padding:.25rem;border-radius:var(--radius-sm)}.chat-newconv-btn:hover{color:var(--color-primary);background:var(--surface-2)}.footer{text-align:center;font-size:var(--text-xs);color:var(--text-3);padding:1.5rem 0}.header-nav{display:flex;align-items:center;gap:1rem;margin-left:1.5rem}.nav-link{color:#bfdbfe;text-decoration:none;font-size:var(--text-base);font-weight:var(--font-weight-medium);transition:color .15s}.nav-link:hover{color:#fff}.user-email{font-size:var(--text-xs);color:#bfdbfe}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-2)}.sessions-main{max-width:900px;margin:0 auto;padding:2rem 1.5rem;flex:1}.sessions-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.sessions-title{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--text-1)}.sessions-new-btn{padding:.5rem 1rem;font-size:var(--text-base)}.sessions-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem 0;color:var(--text-3)}.sessions-empty-icon{color:var(--text-disabled)}.sessions-empty-text{font-size:var(--text-md)}.sessions-table-wrap{border:1px solid var(--border-1);border-radius:.75rem;overflow:hidden}.sessions-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.sessions-table thead{background:var(--surface-2)}.sessions-table th{text-align:left;padding:.75rem 1rem;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-1)}.sessions-row{transition:background .1s}.sessions-row:not(:last-child) td{border-bottom:1px solid var(--border-1)}.sessions-row:hover{background:var(--surface-2)}.sessions-table td{padding:.875rem 1rem}.session-title-cell{font-weight:var(--font-weight-medium);color:var(--text-1);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-date-cell{color:var(--text-2);font-size:var(--text-sm)}.session-count-cell{color:var(--text-1);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.session-action-cell{text-align:right}.loading-inline{padding:3rem 0;text-align:center;color:var(--text-3);font-size:var(--text-base)}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:9999px;font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-done,.status-completed{background:var(--color-success-bg);color:var(--color-success-text)}.status-ready,.status-rag_built{background:var(--color-secondary-light);color:var(--color-secondary)}.status-running{background:var(--color-info-bg);color:var(--color-info-text)}.status-annotated{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-pending{background:var(--surface-3);color:var(--text-2)}.status-failed{background:var(--color-danger-bg);color:var(--color-danger-text)}.view-btn{padding:.3125rem .875rem;border:1px solid var(--border-2);border-radius:.5rem;background:var(--surface-1);color:var(--text-1);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color .15s,color .15s}.view-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.view-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-group{display:inline-flex;align-items:center;gap:.375rem;justify-content:center}.delete-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--border-2);border-radius:.5rem;background:var(--surface-1);color:var(--text-2);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.delete-btn:hover:not(:disabled){border-color:var(--color-danger);color:var(--color-danger)}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.confirm-modal{max-width:400px;padding:2rem 1.75rem 1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem}.confirm-modal-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:var(--color-danger-bg);margin-bottom:.25rem}.confirm-modal-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--text-1);margin:0}.confirm-modal-body{font-size:var(--text-base);color:var(--text-2);margin:0;line-height:1.5}.confirm-modal-actions{display:flex;gap:.625rem;margin-top:.5rem;width:100%;justify-content:center}.confirm-delete-btn{padding:.4375rem 1.25rem;border:none;border-radius:.5rem;background:var(--color-danger);color:#fff;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s}.confirm-delete-btn:hover:not(:disabled){background:var(--red-700)}.confirm-delete-btn:disabled{opacity:.5;cursor:not-allowed}.sessions-list-table .session-title-cell{max-width:none;white-space:normal;vertical-align:middle}.sessions-list-table tbody tr:hover{background:var(--surface-2)}.sessions-list-table thead th,.sessions-list-table tbody td{padding-top:1rem;padding-bottom:1rem}.sessions-list-table thead th:first-child,.sessions-list-table tbody td:first-child{padding-left:1.5rem}.sessions-list-table thead th:not(:first-child),.sessions-list-table tbody td:not(:first-child){text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--surface-1);border-radius:1rem;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-1);flex-shrink:0}.modal-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--text-1)}.modal-close-btn{background:none;border:none;font-size:var(--text-lg);color:var(--text-3);cursor:pointer;padding:.25rem;line-height:1;transition:color .15s}.modal-close-btn:hover{color:var(--text-1)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-events-list{max-height:360px;overflow-y:auto}.modal-done{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;text-align:center}.modal-done-icon{width:3rem;height:3rem;border-radius:50%;background:var(--color-success-bg);color:var(--color-success-text);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:var(--font-weight-bold)}.modal-done-text{font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--text-1)}.modal-done-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.modal-error{padding:1rem 0}.result-nav{display:flex;align-items:baseline;gap:1.5rem;padding-bottom:0}.result-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-1)}.back-link{font-size:var(--text-base);color:var(--color-primary);text-decoration:none}.back-link:hover{text-decoration:underline}.dash-root{height:100vh;display:flex;background:var(--surface-app);font-family:var(--font-sans)}.dash-sidebar{width:var(--sidebar-width);height:100vh;position:sticky;top:0;z-index:400;background:var(--surface-1);border-right:1px solid var(--border-1);display:flex;flex-direction:column;flex-shrink:0;transition:width .2s ease;overflow:visible}.dash-sidebar-collapsed{width:var(--sidebar-collapsed-width)}.dash-logo{padding:40px 24px;border-bottom:1px solid var(--surface-3);display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2-5);height:var(--topbar-height)}.dash-sidebar-collapsed .dash-logo{padding:var(--space-2-5) 0;justify-content:center}.dash-logo-mark{width:34px;height:34px;border-radius:var(--radius-lg);background:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s;color:var(--text-inverse)}.dash-logo-mark-system{background:var(--navy-800);color:var(--gray-100)}.dash-logo-text{min-width:0}.dash-logo-title{font:var(--type-heading-4);color:var(--text-1);letter-spacing:var(--tracking-tight)}.dash-logo-sub{font:var(--type-caption);color:var(--text-3)}.dash-logo-sub-system{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.dash-collapse-btn{position:absolute;right:-12px;top:52px;width:24px;height:24px;border-radius:var(--radius-full);border:1px solid var(--border-1);background:var(--surface-1);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);z-index:50;box-shadow:var(--shadow-sm);padding:0;transition:background .15s ease}.dash-collapse-btn:hover{background:var(--surface-3)}.dash-nav{flex:1;padding:var(--space-2-5) var(--space-2);overflow-y:auto;overflow-x:hidden}.dash-sidebar-collapsed .dash-nav{padding:var(--space-2-5) var(--space-1);overflow:visible}.dash-nav-divider{height:1px;background:var(--border-1);margin:var(--space-2) var(--space-1) var(--space-2-5)}.dash-group{margin-bottom:var(--space-1-5)}.dash-group-label{font:var(--type-overline);color:var(--text-3);letter-spacing:var(--tracking-wider);padding:var(--space-1) var(--space-3) 5px;text-transform:uppercase;display:flex;align-items:center;gap:var(--space-1)}.dash-group-label-danger{color:var(--color-danger);font-weight:var(--font-weight-bold)}.dash-group-divider{height:1px;background:var(--surface-3);margin:var(--space-1) var(--space-1) var(--space-1-5)}.dash-navitem-wrap{position:relative}.dash-navitem{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);justify-content:flex-start;border-radius:var(--radius-md);border:none;cursor:pointer;background:transparent;color:var(--text-1);font:var(--type-body-sm);text-align:left;transition:background .1s,color .1s}.dash-sidebar-collapsed .dash-navitem{gap:0;padding:var(--space-2) 0;justify-content:center}.dash-navitem:hover{background:var(--surface-2)}.dash-navitem-active{background:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.dash-navitem-active:hover{background:var(--color-primary-light)}.dash-navitem-icon{display:flex;color:var(--text-3);flex-shrink:0}.dash-navitem-active .dash-navitem-icon{color:var(--color-primary)}.dash-navitem-label{flex:1;white-space:nowrap;overflow:hidden}.dash-navitem-chevron{color:var(--color-primary);flex-shrink:0}.dash-navitem-expand{color:var(--text-3);flex-shrink:0;transition:transform .15s ease}.dash-navitem-expand-open{transform:rotate(180deg)}.dash-navitem-active .dash-navitem-expand{color:var(--color-primary)}.dash-navitem-children{display:flex;flex-direction:column;gap:1px;margin-top:1px}.dash-navitem-child{width:100%;display:flex;align-items:center;padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-md);border:none;cursor:pointer;background:transparent;color:var(--text-2);font:var(--type-body-sm);text-align:left;white-space:nowrap;overflow:hidden;transition:background .1s,color .1s}.dash-navitem-child:hover{background:var(--surface-2);color:var(--text-1)}.dash-navitem-child-active{background:var(--surface-3);color:var(--text-1);font-weight:var(--font-weight-semibold)}.dash-navitem-child-active:hover{background:var(--surface-3)}.dash-navitem-tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) scale(.96);background:var(--navy-900);color:var(--gray-100);font:var(--type-label-xs);font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);border:1px solid var(--border-1);white-space:nowrap;z-index:500;pointer-events:none;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .15s ease,transform .15s ease}.dash-navitem-tooltip:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--border-1)}.dash-navitem-tooltip:after{content:"";position:absolute;right:calc(100% - 1px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--navy-900)}.dash-sidebar-collapsed .dash-navitem-wrap:hover .dash-navitem-tooltip{opacity:1;transform:translateY(-50%) scale(1)}.dash-footer{border-top:1px solid var(--border-1);padding:var(--space-2-5) var(--space-3)}.dash-sidebar-collapsed .dash-footer{padding:var(--space-2-5) var(--space-1)}.dash-footer-collapsed{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.dash-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--color-primary);display:flex;align-items:center;justify-content:center;color:var(--text-inverse);font:var(--type-label);flex-shrink:0}.dash-avatar-lg{width:34px;height:34px}.dash-user{display:flex;align-items:center;gap:9px;padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);margin-bottom:var(--space-2-5)}.dash-user-info{flex:1;min-width:0}.dash-user-email{font:var(--type-label);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-user-role{font:var(--type-caption);color:var(--text-3)}.dash-mode-btn{width:100%;margin-bottom:var(--space-2);padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-md);border:1px solid var(--border-1);background:var(--surface-1);color:var(--text-2);font:var(--type-label);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-1-5);transition:background .15s,border-color .15s,color .15s}.dash-mode-btn:hover{background:var(--surface-2);color:var(--text-1)}.dash-mode-btn-active{border-color:var(--red-200);background:var(--color-danger-bg);color:var(--color-danger)}.dash-iconbtn{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-1);background:var(--surface-2);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);transition:background .15s,border-color .15s,color .15s}.dash-iconbtn-active{border-color:var(--red-200);background:var(--color-danger-bg);color:var(--color-danger)}.dash-signout{width:100%;padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-md);border:1px solid var(--border-1);background:var(--surface-1);color:var(--text-2);font:var(--type-label);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-1-5);transition:background .15s,color .15s}.dash-signout:hover{background:var(--surface-2);color:var(--text-1)}.dash-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.dash-topbar{display:flex;align-items:center;justify-content:space-between;padding:40px 24px;height:var(--topbar-height);background:var(--surface-1);border-bottom:1px solid var(--border-1);flex-shrink:0;position:relative;z-index:600}.dash-topbar-title{font:var(--type-heading-3);color:var(--text-1);margin:0}.dash-topbar-sub{font:var(--type-caption);color:var(--text-3);margin-top:1px}.dash-topbar-actions{display:flex;align-items:center;gap:var(--space-2)}.dash-bell{position:relative;width:var(--height-btn-md);height:var(--height-btn-md);border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border-1);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2)}.dash-bell-dot{position:absolute;top:9px;right:9px;width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-danger);border:1.5px solid var(--surface-1)}.dash-content{flex:1;min-height:0;overflow:auto;display:block;margin-bottom:1.5rem}.dash-content-noscroll{overflow:hidden;display:flex;flex-direction:column}.metric-card-row{padding:var(--space-6) var(--space-6) var(--space-6);display:flex;gap:var(--space-4);flex-wrap:wrap}.metric-card{flex:1;min-width:180px;background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--card-padding);display:flex;align-items:center;gap:var(--space-3-5)}.metric-icon{width:42px;height:42px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.metric-icon-primary{background:var(--color-primary-light);color:var(--color-primary)}.metric-icon-success{background:var(--color-success-muted);color:var(--color-success)}.metric-icon-secondary{background:var(--color-secondary-light);color:var(--color-secondary)}.metric-icon-warning{background:var(--color-warning-muted);color:var(--color-warning)}.metric-icon-info{background:var(--color-primary-muted);color:var(--color-primary)}.metric-icon-violet{background:var(--violet-100);color:var(--violet-600)}[data-theme=dark] .metric-icon-violet{background:#7c3aed2e;color:var(--violet-300)}.metric-text{min-width:0}.metric-value{font:var(--type-metric-sm);color:var(--text-1);letter-spacing:var(--tracking-tight)}.metric-label{font:var(--type-body-sm);color:var(--text-2);margin-top:var(--space-0-5)}.rss-tabs{display:flex;gap:var(--space-1);padding:var(--space-4) var(--space-8) 0;border-bottom:1px solid var(--border-1);background:var(--surface-1)}.rss-tab{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md) var(--radius-md) 0 0;border:none;border-bottom:2px solid transparent;font:var(--type-label);font-weight:var(--font-weight-semibold);cursor:pointer;background:transparent;color:var(--text-3);transition:color .15s,border-color .15s}.rss-tab-active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.rss-body{padding:var(--space-8)}.rss-toolbar-end{display:flex;justify-content:flex-end;margin-bottom:var(--space-5)}.rss-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.rss-filter-group{display:flex;align-items:center;gap:var(--space-3)}.rss-select-auto{width:auto}.rss-error{color:var(--color-danger);font:var(--type-body);margin-bottom:var(--space-4)}.rss-loading{color:var(--text-2);font:var(--type-body)}.rss-note{color:var(--text-2);font:var(--type-body);margin:0}.rss-meta-sm{font:var(--type-body-sm);color:var(--text-3)}.rss-help{cursor:help}.rss-iconbtn{display:inline-flex;align-items:center;padding:var(--space-1-5);border-radius:var(--radius-md);border:1px solid var(--border-1);background:var(--surface-1);color:var(--text-3);cursor:pointer}.rss-iconbtn-on{color:var(--color-success)}.rss-iconbtn-danger{border-color:var(--red-200);color:var(--color-danger)}.rss-confirm{display:flex;gap:var(--space-1-5);align-items:center}.rss-confirm-label{font:var(--type-body-sm);color:var(--text-1)}.rss-btn-yes{padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);border:none;background:var(--color-danger);color:var(--text-inverse);font:var(--type-label-xs);cursor:pointer}.rss-btn-no{padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--surface-1);color:var(--text-1);font:var(--type-label-xs);cursor:pointer}.rss-empty{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-12);text-align:center;box-shadow:var(--shadow-card)}.rss-empty-title{color:var(--text-1);font-weight:var(--font-weight-semibold)}.rss-empty-sub{color:var(--text-3);font:var(--type-body);margin-top:var(--space-1)}.rss-empty-cta{margin-top:var(--space-4)}.rss-list{display:flex;flex-direction:column;gap:var(--space-3)}.rss-source-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-card)}.rss-source-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.rss-source-main{flex:1;min-width:0}.rss-source-title-row{display:flex;align-items:center;gap:var(--space-2-5)}.rss-source-name{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-1);margin:0}.rss-source-url{color:var(--text-2);font:var(--type-body-sm);margin-top:var(--space-1);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.rss-source-url:hover{color:var(--color-primary)}.rss-source-meta{display:flex;gap:var(--space-5);margin-top:var(--space-2);flex-wrap:wrap}.rss-source-meta-item{font:var(--type-label-xs);color:var(--text-3)}.rss-source-meta-item strong{color:var(--text-2);font-weight:var(--font-weight-semibold)}.rss-source-actions{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.rss-modal{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-7);width:100%;max-width:28rem;box-shadow:var(--shadow-modal);transition:max-width .2s ease;display:flex;flex-direction:column;max-height:90vh}.rss-modal-wide{max-width:42rem}.rss-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.rss-modal-head-start{align-items:flex-start}.rss-modal-title{font:var(--type-heading-3);color:var(--text-1);margin:0}.rss-modal-sub{font:var(--type-body-sm);color:var(--text-2);margin-top:var(--space-1)}.rss-modal-close{border:none;background:transparent;cursor:pointer;color:var(--text-3);display:flex}.rss-modal-body{flex:1;overflow-y:auto}.rss-form{display:flex;flex-direction:column;gap:var(--space-4)}.rss-form-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1-5)}.rss-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1)}.rss-test-trigger{font:var(--type-label-xs);color:var(--color-primary);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-1)}.rss-test-trigger:disabled{opacity:.4;cursor:not-allowed}.rss-link{color:var(--color-primary);flex-shrink:0;display:flex;align-items:center}.rss-test-box{margin-top:var(--space-3);border:1px solid var(--border-1);border-radius:var(--radius-md);overflow:hidden}.rss-test-head{display:flex;align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-bottom:1px solid var(--green-200);color:var(--color-success)}.rss-test-head-text{font:var(--type-body-sm);color:var(--color-success);font-weight:var(--font-weight-medium)}.rss-test-list{max-height:14rem;overflow-y:auto}.rss-test-item{padding:var(--space-2-5) var(--space-3);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);border-bottom:1px solid var(--surface-3)}.rss-test-item:last-child{border-bottom:none}.rss-test-item-title{margin:0;font:var(--type-body-sm);font-weight:var(--font-weight-medium);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rss-test-item-date{margin:var(--space-0-5) 0 0;font:var(--type-caption);color:var(--text-3)}.rss-test-error{display:flex;align-items:center;gap:var(--space-1-5);margin-top:var(--space-1-5);color:var(--color-danger)}.rss-test-error-text{font:var(--type-body-sm);color:var(--color-danger)}.rss-entries{display:flex;flex-direction:column;gap:var(--space-3)}.rss-entries-count{font:var(--type-body-sm);color:var(--text-3);margin:0}.rss-entry{border-bottom:1px solid var(--surface-3);padding-bottom:var(--space-3)}.rss-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.rss-entry-title{font-weight:var(--font-weight-semibold);color:var(--text-1);font:var(--type-body);margin:0;flex:1}.rss-entry-summary{color:var(--text-2);font:var(--type-body-sm);margin-top:var(--space-1)}.rss-entry-date{color:var(--text-3);font:var(--type-caption);margin-top:var(--space-1)}.rss-table-wrap{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.rss-table-wrap thead tr{background:var(--surface-2);border-bottom:1px solid var(--border-1)}.rss-table-wrap th{padding:var(--space-3) var(--space-4)}.rss-table-wrap td{padding:var(--space-3-5) var(--space-4)}.rss-table-wrap tbody tr{border-bottom:1px solid var(--surface-3)}.rss-table-wrap tbody tr:last-child{border-bottom:none}.rss-table-wrap tbody tr:hover{background:var(--surface-2)}.rss-cell-title{color:var(--text-1);font-weight:var(--font-weight-medium);max-width:28rem}.rss-cell-title-main{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rss-cell-title-sub{display:block;color:var(--text-3);font:var(--type-body-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:var(--space-0-5)}.rss-cell-source{color:var(--color-secondary);font-weight:var(--font-weight-medium);white-space:nowrap}.rss-cell-date{color:var(--text-3);white-space:nowrap;font:var(--type-body-sm)}.rss-cell-nowrap{white-space:nowrap}.rss-pager{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4)}.rss-pager-info{font:var(--type-body-sm);color:var(--text-3)}.rss-pager-btns{display:flex;gap:var(--space-2)}.alert-card{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.alert-card-inner{padding:var(--space-5) var(--space-6)}.alert-card-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.alert-card-main{flex:1;min-width:0}.alert-meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1-5);flex-wrap:wrap}.alert-date{font:var(--type-caption);color:var(--text-3)}.alert-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-1);margin:0}.alert-actions{display:flex;gap:var(--space-2);flex-shrink:0;align-items:center}.alert-detail{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3-5);border-top:1px solid var(--surface-3);padding-top:var(--space-4)}.alert-section-label{font:var(--type-overline);color:var(--text-2);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-1)}.alert-section-text{color:var(--text-1);font:var(--type-body);margin:0}.alert-list{margin:0;padding-left:var(--space-5);font:var(--type-body);color:var(--text-1);display:flex;flex-direction:column;gap:var(--space-1)}.alert-recs{display:flex;flex-direction:column;gap:var(--space-2)}.rec-item{border:1px solid var(--border-1);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.rec-row{display:flex;align-items:flex-start;gap:var(--space-2-5)}.rec-badge{flex-shrink:0;margin-top:.1rem}.rec-desc{margin:0;font:var(--type-body);color:var(--text-1);flex:1}.rec-citation-wrap{margin-top:var(--space-2);padding-left:var(--space-1)}.rec-citation-btn{display:flex;align-items:center;gap:var(--space-1);font:var(--type-label-xs);color:var(--color-primary);background:transparent;border:none;cursor:pointer;padding:0}.rec-citation{margin:var(--space-1-5) 0 0;font:var(--type-body-sm);color:var(--text-1);background:var(--color-success-bg);border:1px solid var(--green-200);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.cmp-cell-name{color:var(--text-1);font-weight:var(--font-weight-medium)}.cmp-actions{display:flex;align-items:center;gap:var(--space-2)}.cmp-select{margin-bottom:var(--space-5)}.cmp-modal{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-8);width:100%;max-width:32rem;box-shadow:var(--shadow-modal)}.cmp-steps{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);align-items:center}.cmp-step-group{display:flex;align-items:center;gap:var(--space-2)}.cmp-step-dot{width:1.5rem;height:1.5rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font:var(--type-label-xs);font-weight:var(--font-weight-bold);background:var(--surface-3);color:var(--text-3)}.cmp-step-dot-active{background:var(--color-primary);color:var(--text-inverse)}.cmp-step-line{width:2rem;height:2px;background:var(--surface-3)}.cmp-step-line-active{background:var(--color-primary)}.cmp-step-label{margin-left:var(--space-2);font:var(--type-body-sm);color:var(--text-2);font-weight:var(--font-weight-medium)}.cmp-modal-title{font-weight:var(--font-weight-bold);font-size:var(--text-lg);margin-bottom:var(--space-2);color:var(--text-1)}.cmp-modal-text{color:var(--text-2);font:var(--type-body);margin-bottom:var(--space-5)}.cmp-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.cmp-warn{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);font:var(--type-body);margin-bottom:var(--space-5)}.cmp-warn-icon{display:inline;margin-right:var(--space-1-5);vertical-align:middle}.cmp-dropzone{border:2px dashed var(--border-2);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;background:var(--surface-2);margin-bottom:var(--space-4);transition:all .15s}.cmp-dropzone-active{border-color:var(--color-primary);background:var(--color-primary-light)}.cmp-dropzone-text{color:var(--text-2);font:var(--type-body);margin-bottom:var(--space-2)}.cmp-browse{padding:var(--space-1-5) var(--space-3-5);border-radius:var(--radius-md);border:1px solid var(--border-2);background:var(--surface-1);color:var(--text-1);font:var(--type-body-sm);font-weight:var(--font-weight-medium);cursor:pointer}.cmp-dropzone-hint{color:var(--text-3);font:var(--type-caption);margin-top:var(--space-2)}.cmp-filelist{max-height:10rem;overflow-y:auto;margin-bottom:var(--space-4);border:1px solid var(--border-1);border-radius:var(--radius-md)}.cmp-fileitem{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--surface-3)}.cmp-fileitem:last-child{border-bottom:none}.cmp-filename{font:var(--type-body-sm);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:20rem}.cmp-file-remove{background:none;border:none;color:var(--text-3);cursor:pointer;padding:var(--space-0-5);display:flex}.cmp-result{text-align:center;padding:var(--space-4) 0}.cmp-result-icon{display:flex;justify-content:center;margin-bottom:var(--space-4)}.cmp-result-icon-primary{color:var(--color-primary)}.cmp-result-icon-danger{color:var(--color-danger)}.cmp-result-icon-success{color:var(--color-success)}.cmp-result-title{font-weight:var(--font-weight-bold);font-size:var(--text-lg);color:var(--text-1);margin-bottom:var(--space-2)}.cmp-result-error{color:var(--color-danger);font:var(--type-body);margin-bottom:var(--space-5)}.cmp-result-score{margin-bottom:var(--space-5)}.cmp-result-score-label{color:var(--text-2);font:var(--type-body-sm);margin-top:var(--space-2)}.cmp-result-actions{display:flex;justify-content:center;gap:var(--space-2)}.cmp-spin{animation:spin 1s linear infinite}.cmp-progress-wrap{text-align:left;margin-top:var(--space-4)}.cmp-progress-head{display:flex;justify-content:space-between;font:var(--type-body-sm);color:var(--text-2);margin-bottom:var(--space-1-5)}.cmp-progress{margin-bottom:var(--space-2-5)}.cmp-progress-req{font:var(--type-caption);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-6);border-bottom:2px solid var(--border-1)}.doc-tab{padding:var(--space-2-5) var(--space-5);border:none;background:none;cursor:pointer;font:var(--type-label);font-weight:var(--font-weight-semibold);color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-2px}.doc-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.doc-upload-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);margin-bottom:var(--space-5)}.doc-upload-title{font-weight:var(--font-weight-semibold);color:var(--text-1);font-size:var(--text-md);margin-bottom:var(--space-1-5)}.doc-upload-desc{color:var(--text-2);font:var(--type-body);margin-bottom:var(--space-4)}.doc-upload-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--text-inverse);font:var(--type-label);cursor:pointer}.doc-upload-btn-busy{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}.doc-upload-error{color:var(--color-danger);font:var(--type-body);margin-top:var(--space-2)}.doc-table-wrap{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.doc-table-wrap>table>thead>tr{background:var(--surface-2);border-bottom:1px solid var(--border-1)}.doc-table-wrap>table>thead>tr>th{padding:var(--space-3) var(--space-4)}.doc-row>td{padding:var(--space-3-5) var(--space-4)}.doc-row:hover{background:var(--surface-2)}.doc-cell-name{color:var(--text-1);font-weight:var(--font-weight-medium)}.doc-cell-version{color:var(--text-2)}.doc-cell-date{color:var(--text-3);white-space:nowrap}.doc-actions{display:flex;gap:var(--space-1-5);align-items:center}.doc-act-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border-2);background:var(--surface-1);color:var(--text-1);cursor:pointer;font:var(--type-label-xs)}.doc-act-add{padding:var(--space-1-5);border-color:var(--blue-200);color:var(--color-primary)}.doc-act-add:disabled{cursor:not-allowed;opacity:.6}.doc-act-extract{padding:var(--space-1-5) var(--space-2);border-color:var(--violet-200);color:var(--violet-600)}.doc-act-extract-open{border-color:var(--violet-300);background:var(--violet-50)}.doc-act-del{display:flex;align-items:center;padding:var(--space-1-5);border-radius:var(--radius-md);border:1px solid var(--red-200);background:var(--surface-1);color:var(--color-danger);cursor:pointer}.doc-panel{padding:0 var(--space-4) var(--space-3) var(--space-10);background:var(--surface-2);border-bottom:1px solid var(--border-1)}.doc-panel-loading{color:var(--text-2);font:var(--type-body-sm);padding:var(--space-2) 0}.ver-th{padding:var(--space-1) var(--space-2)}.ver-cell{padding:var(--space-1) var(--space-2);color:var(--text-1)}.ver-cell-date{padding:var(--space-1) var(--space-2);color:var(--text-3);white-space:nowrap}.ver-latest{margin-left:var(--space-1-5);font:var(--type-label-xs);background:var(--color-success-bg);color:var(--color-success-text);border-radius:var(--radius-xs);padding:.1rem .35rem}.ver-actions{display:flex;gap:var(--space-1-5)}.ver-restore{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--green-200);background:var(--surface-1);color:var(--color-success);font:var(--type-label-xs);cursor:pointer}.ver-restore:disabled{cursor:not-allowed;opacity:.6}.gov-extract-panel{padding:0 var(--space-4) var(--space-4) var(--space-10);background:var(--surface-2);border-bottom:1px solid var(--border-1)}.gov-extract-progress{padding-top:var(--space-3);max-width:28rem}.gov-extract-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1-5)}.gov-extract-progress-label{color:var(--violet-600);font:var(--type-body-sm);font-weight:var(--font-weight-semibold)}.gov-extract-progress-count{color:var(--text-2);font:var(--type-label-xs)}.gov-extract-progress-found{color:var(--text-3);font:var(--type-label-xs);margin-top:var(--space-1-5)}.gov-extract-track{background:var(--surface-3)}.gov-extract-done{padding-top:var(--space-3)}.gov-extract-done-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2-5)}.gov-extract-done-count{color:var(--text-1);font:var(--type-body-sm);font-weight:var(--font-weight-semibold)}.gov-extract-reextract{font:var(--type-label-xs);color:var(--violet-600);background:none;border:none;cursor:pointer;text-decoration:underline}.gov-extract-empty-row{padding-top:var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.gov-extract-empty-text{color:var(--text-2);font:var(--type-body-sm)}.gov-extract-btn{display:flex;align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3-5);border-radius:var(--radius-md);border:none;background:var(--violet-600);color:var(--text-inverse);font:var(--type-label);cursor:pointer}.gov-extract-btn:disabled{cursor:not-allowed;opacity:.6}.gov-req-table th{border-bottom:1px solid var(--border-2);padding:var(--space-1) var(--space-2)}.gov-req-table tbody tr{border-bottom:1px solid var(--border-1)}.gov-req-cell{padding:var(--space-2);color:var(--text-1);max-width:28rem}.gov-req-cell-2{padding:var(--space-2);color:var(--text-1);max-width:20rem}.gov-req-cell-muted{padding:var(--space-2);color:var(--text-2)}.gov-req-cell-page{padding:var(--space-2);color:var(--text-3)}.gov-req-cell-party{padding:var(--space-2);white-space:nowrap}.action-party-onsite{background:var(--color-primary-light);color:var(--color-primary)}.action-party-mgmt{background:var(--color-success-bg);color:var(--color-success)}.cmpd-page{padding:var(--space-8);flex:1;min-height:0;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.cmpd-back{align-self:flex-start;margin-bottom:var(--space-6);flex-shrink:0}.cmpd-loading{padding:var(--space-8);display:flex;align-items:center;gap:var(--space-2);color:var(--text-2)}.cmpd-error-back{margin-top:var(--space-4)}.cmpd-summary{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);display:flex;gap:var(--space-8);align-items:center;flex-wrap:wrap;flex-shrink:0}.cmpd-summary-main{flex:1;min-width:12rem}.cmpd-summary-title{font-weight:var(--font-weight-bold);font-size:var(--text-lg);color:var(--text-1);margin-bottom:var(--space-1)}.cmpd-summary-date{color:var(--text-2);font:var(--type-body);margin-bottom:var(--space-2)}.cmpd-summary-met{color:var(--text-1);font:var(--type-body)}.cmpd-summary-actions{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-end;min-width:12rem}.cmpd-summary-btns{display:flex;flex-direction:row;gap:var(--space-2);align-items:center}.cmpd-rerun-btn{display:flex;align-items:center;gap:var(--space-1-5);height:var(--height-btn-md);padding:0 var(--space-4);border-radius:var(--radius-md);border:none;background:var(--blue-200);color:var(--blue-700);font:var(--type-label);cursor:pointer}.cmpd-rerun-btn:disabled{background:var(--surface-3);color:var(--text-3);cursor:not-allowed}.cmpd-rerun-progress{width:100%}.cmpd-rerun-progress-head{display:flex;justify-content:space-between;font:var(--type-label-xs);color:var(--text-2);margin-bottom:var(--space-1)}.cmpd-rerun-error{color:var(--color-danger);font:var(--type-label-xs)}.cmpd-score-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:7rem;height:7rem;border-radius:var(--radius-full);border:6px solid var(--border-1);background:var(--surface-2)}.cmpd-score-circle-success{border-color:var(--green-200);background:var(--surface-1)}.cmpd-score-circle-warning{border-color:var(--amber-200);background:var(--surface-1)}.cmpd-score-circle-danger{border-color:var(--red-200);background:var(--surface-1)}.cmpd-score-pending{font:var(--type-body-sm);color:var(--text-3);font-weight:var(--font-weight-semibold)}.cmpd-score-value{font-size:var(--text-3xl);font-weight:var(--font-weight-bold)}.cmpd-score-value-success{color:var(--color-success)}.cmpd-score-value-warning{color:var(--color-warning)}.cmpd-score-value-danger{color:var(--color-danger)}.cmpd-score-caption{font:var(--type-label-xs);color:var(--text-3)}.cmpd-split{display:flex;gap:var(--space-6);flex:1;min-height:0;overflow:hidden}.cmpd-main-col{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;gap:var(--space-4)}.cmpd-results-col{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.cmpd-section-title{font-weight:var(--font-weight-bold);font-size:var(--text-md);color:var(--text-1);margin-bottom:var(--space-3);flex-shrink:0}.cmpd-results-wrap{background:var(--surface-1);border:1px solid var(--border-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.cmpd-results-scroll{overflow-y:auto;max-height:26rem}.cmpd-results-table thead th{padding:var(--space-2-5) var(--space-3-5);position:sticky;top:0;background:var(--surface-2);z-index:1}.cmpd-results-table thead tr{border-bottom:1px solid var(--border-1)}.cmpd-results-table tbody tr{border-bottom:1px solid var(--surface-3)}.cmpd-results-table tbody tr:last-child{border-bottom:none}.cmpd-row-failed,.cmpd-row-pass,.cmpd-row-fail{background:var(--surface-1)}.cmpd-cell-icon{padding:var(--space-3) var(--space-3-5);vertical-align:middle;text-align:center}.cmpd-row-failed .cmpd-cell-icon{background:var(--color-warning-bg)}.cmpd-row-pass .cmpd-cell-icon{background:var(--color-success-bg)}.cmpd-row-fail .cmpd-cell-icon{background:var(--color-danger-bg)}.cmpd-cell-req{padding:var(--space-3) var(--space-3-5);color:var(--text-1);width:18%;vertical-align:top}.cmpd-cell-comment{padding:var(--space-3) var(--space-3-5);color:var(--text-1);width:54%;vertical-align:top}.cmpd-cell-comment-failed{color:var(--color-warning-text)}.cmpd-cell-evidence{padding:var(--space-3) var(--space-3-5);width:18%;vertical-align:top}.cmpd-icon-warn{color:var(--color-warning)}.cmpd-icon-pass{color:var(--color-success)}.cmpd-icon-fail{color:var(--color-danger)}.cmpd-evidence-list{display:flex;flex-direction:column;gap:var(--space-1)}.cmpd-evidence-item{font:var(--type-label-xs);color:var(--color-primary);display:flex;align-items:center;gap:var(--space-1)}.cmpd-evidence-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:10rem}.cmpd-sidebar{width:22rem;flex-shrink:0;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.cmpd-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-card)}.cmpd-card-mb{margin-bottom:var(--space-3)}.cmpd-card-title{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--text-1);margin-bottom:var(--space-2-5)}.cmpd-card-desc{font:var(--type-label-xs);color:var(--text-2);margin-bottom:var(--space-3)}.cmpd-evidence-files{display:flex;flex-direction:column;gap:var(--space-2);min-height:20rem;max-height:30rem;overflow-y:auto}.cmpd-evidence-file{display:flex;align-items:center;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-1)}.cmpd-evidence-file-icon{color:var(--text-2);flex-shrink:0}.cmpd-evidence-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmpd-upload-status{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.cmpd-spin-primary{color:var(--color-primary);flex-shrink:0}.cmpd-upload-status-text{font:var(--type-body-sm);color:var(--text-1)}.cmpd-dropzone{border:2px dashed var(--border-2);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;background:var(--surface-2);cursor:pointer;transition:all .15s}.cmpd-dropzone-active{border-color:var(--color-primary);background:var(--color-primary-light)}.cmpd-dropzone-icon{color:var(--text-3);margin-bottom:var(--space-1-5)}.cmpd-dropzone-text{font:var(--type-label-xs);color:var(--text-2)}.cmpd-upload-error{color:var(--color-danger);font:var(--type-label-xs);margin-top:var(--space-2)}.usage-page{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.usage-filters{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.usage-filter-label{display:flex;align-items:center;gap:var(--space-2);font:var(--type-body);color:var(--text-1)}.usage-date{border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:var(--space-1-5) var(--space-2-5);font:var(--type-body);color:var(--text-1)}.usage-clear{font:var(--type-body-sm);color:var(--text-2);background:none;border:none;cursor:pointer;text-decoration:underline}.usage-stats{display:flex;gap:var(--space-4);flex-wrap:wrap}.usage-stat{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-card);flex:1;min-width:140px}.usage-stat-label{color:var(--text-2);font:var(--type-body-sm);margin-bottom:var(--space-1)}.usage-stat-value{color:var(--text-1);font-size:var(--text-3xl);font-weight:var(--font-weight-semibold)}.usage-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-card)}.usage-card-title{font-weight:var(--font-weight-medium);color:var(--text-1);margin-bottom:var(--space-4)}.usage-scroll-x{overflow-x:auto}.usage-meters{display:flex;flex-direction:column;gap:var(--space-3-5)}.usage-meter-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1)}.usage-meter-label{font:var(--type-body);color:var(--text-1);font-weight:var(--font-weight-medium)}.usage-meter-sublabel{font:var(--type-label-xs);color:var(--text-3);margin-left:var(--space-1)}.usage-meter-used{font:var(--type-body);color:var(--text-2)}.usage-meter-pct{font:var(--type-body-sm);font-variant-numeric:tabular-nums}.usage-tone-primary{color:var(--color-primary)}.usage-tone-warning{color:var(--color-warning)}.usage-tone-danger{color:var(--color-danger)}.usage-meter-amount{font:var(--type-body-sm);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:var(--space-4)}.usage-meter-warn{margin-top:var(--space-2);font:var(--type-body-sm);color:var(--color-warning)}.usage-meter-over{margin-top:var(--space-2);font:var(--type-body-sm);color:var(--color-danger)}.usage-th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-2);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.usage-th-center{text-align:center}.usage-th-right{text-align:right}.usage-col-user{width:280px}.usage-col-org{width:160px}.usage-table-wrap{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.usage-table-wrap thead tr{background:var(--surface-2);border-bottom:1px solid var(--border-1)}.usage-thead-line{border-bottom:1px solid var(--border-1)}.usage-td{padding:var(--space-3) var(--space-4);color:var(--text-1)}.usage-td-center{text-align:center}.usage-td-num{text-align:center;font-variant-numeric:tabular-nums}.usage-td-muted{color:var(--text-2)}.usage-td-rowspan{vertical-align:middle;border-right:1px solid var(--surface-3)}.usage-row{border-bottom:1px solid var(--surface-3)}.usage-row:hover{background:var(--surface-2)}.usage-feature{background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-0-5) var(--space-2);font:var(--type-body-sm);font-weight:var(--font-weight-medium)}.usage-user-name{font-weight:var(--font-weight-medium);color:var(--text-1)}.usage-user-email{display:block;font:var(--type-label-xs);color:var(--text-3)}.usage-feature-cell{text-transform:capitalize;font-weight:var(--font-weight-medium)}.usage-empty{padding:var(--space-8);text-align:center;color:var(--text-3)}.usage-loading{color:var(--text-3);font:var(--type-body)}.dashboard-page{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.dashboard-kpis{display:flex;gap:var(--space-4);flex-wrap:wrap}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);text-align:center;color:var(--text-3)}.dashboard-empty-title{font:var(--type-body-lg);font-weight:var(--font-weight-medium);color:var(--text-1)}.dashboard-empty-sub{font:var(--type-body-sm);color:var(--text-2)}.dashboard-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.dashboard-card-head .usage-card-title{margin-bottom:0}.dashboard-range{display:inline-flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-lg)}.dashboard-range-btn{padding:var(--space-1) var(--space-3);border:none;background:transparent;cursor:pointer;color:var(--text-2);font:var(--type-body-sm);border-radius:var(--radius-md);transition:background .12s,color .12s}.dashboard-range-btn:hover{color:var(--text-1)}.dashboard-range-btn-active{background:var(--surface-1);color:var(--text-1);box-shadow:var(--shadow-card)}.dashboard-chart-loading{opacity:.5;transition:opacity .12s}.reg-empty-icon{color:var(--color-success);margin:0 auto var(--space-4);display:block}.reg-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-3)}.reg-card-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-2)}.reg-name{font-weight:var(--font-weight-semibold);color:var(--text-1);font-size:var(--text-md)}.reg-email{color:var(--text-2);font:var(--type-body)}.reg-org{color:var(--color-secondary);font:var(--type-body-sm);margin-top:var(--space-1);font-weight:var(--font-weight-medium)}.reg-org-slug{color:var(--text-3);font-weight:var(--font-weight-regular)}.reg-date{color:var(--text-3);font:var(--type-label-xs);margin-top:var(--space-1)}.reg-role{display:inline-block;margin-top:var(--space-1)}.reg-role-new{background:var(--violet-100);color:var(--violet-600)}.reg-role-member{background:var(--blue-100);color:var(--color-info-text)}.reg-actions{display:flex;gap:var(--space-2);flex-shrink:0}.reg-note-italic{font:var(--type-label-xs);color:var(--text-3);flex-shrink:0;font-style:italic}.reg-reject{display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--surface-3);padding-top:var(--space-3)}.reg-reject-actions{display:flex;gap:var(--space-2)}.adm-table-wrap{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.adm-table-wrap thead tr{background:var(--surface-2);border-bottom:1px solid var(--border-1)}.adm-table-wrap th{padding:var(--space-3) var(--space-4);white-space:nowrap}.adm-table-wrap td{padding:var(--space-3-5) var(--space-4)}.adm-table-wrap tbody tr{border-bottom:1px solid var(--surface-3)}.adm-table-wrap tbody tr:last-child{border-bottom:none}.adm-row-link{cursor:pointer}.adm-row-link:hover,.adm-row-hover:hover{background:var(--surface-2)}.adm-th-center,.adm-td-center{text-align:center}.adm-cell-name{color:var(--text-1);font-weight:var(--font-weight-medium)}.adm-cell-strong{color:var(--text-1);font-weight:var(--font-weight-semibold)}.adm-cell-muted{color:var(--text-2)}.adm-cell-org{color:var(--color-secondary);font-weight:var(--font-weight-medium)}.adm-cell-date{color:var(--text-3);white-space:nowrap}.adm-cell-mono{color:var(--text-3);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.adm-cell-mono-sm{color:var(--text-2);font-family:var(--font-mono);font-size:var(--text-sm)}.adm-cell-desc{color:var(--text-2);font:var(--type-body-sm)}.adm-cell-url{color:var(--text-2);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-link-muted{color:var(--text-2);text-decoration:none}.adm-dash{color:var(--text-3);font:var(--type-body-sm)}.adm-actions{display:flex;gap:var(--space-1-5)}.adm-act{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--surface-1);color:var(--text-1);font:var(--type-label-xs);cursor:pointer}.adm-act:disabled{opacity:.7;cursor:not-allowed}.adm-act-enable{border-color:var(--green-200);background:var(--color-success-bg);color:var(--color-success)}.adm-act-del{border-color:var(--red-200);color:var(--color-danger)}.adm-cap{text-transform:capitalize}.adm-role-admin{background:var(--violet-100);color:var(--violet-600)}.adm-role-member{background:var(--blue-100);color:var(--color-info-text)}.adm-filter-bar{margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.adm-back-link{display:flex;align-items:center;gap:var(--space-1-5);margin-bottom:var(--space-5);background:none;border:none;cursor:pointer;color:var(--color-secondary);font:var(--type-body);font-weight:var(--font-weight-medium);padding:0}.adm-detail-head{margin-bottom:var(--space-5)}.adm-detail-title{font:var(--type-heading-2);color:var(--text-1);margin:0}.adm-detail-sub{font:var(--type-body);color:var(--text-2);margin:var(--space-1) 0 0}.adm-detail-sub a{color:var(--color-secondary)}.adm-article-cell{color:var(--text-1);max-width:480px}.adm-article-link{color:var(--color-secondary);text-decoration:none;display:flex;align-items:flex-start;gap:var(--space-1-5)}.adm-article-link>span{flex:1}.adm-article-icon{flex-shrink:0;margin-top:.2rem;color:var(--text-3)}.prof-page{padding:var(--space-8);max-width:42rem;margin:0 auto}.prof-card{background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);margin-bottom:var(--space-5)}.prof-card-title{font-size:var(--text-md);font-weight:var(--font-weight-bold);color:var(--text-1);margin:0 0 var(--space-4)}.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.prof-grid-full{grid-column:1 / -1}.prof-label{font:var(--type-overline);color:var(--text-2);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-1)}.prof-value{font-size:var(--text-md);color:var(--text-1);font-weight:var(--font-weight-medium)}.prof-value-mono{font:var(--type-body);color:var(--text-2);font-family:var(--font-mono)}.prof-admins{display:flex;flex-direction:column;gap:var(--space-3)}.prof-admin{display:flex;flex-direction:column}.prof-admin-name{font-size:var(--text-md);color:var(--text-1);font-weight:var(--font-weight-medium)}.prof-admin-email{font:var(--type-body-sm);color:var(--text-2)}.prof-empty{color:var(--text-3);font:var(--type-body)}.prof-form{display:flex;flex-direction:column;gap:var(--space-5)}.prof-card-desc{color:var(--text-2);font:var(--type-body);margin-bottom:var(--space-4)}.prof-success{color:var(--color-success);font:var(--type-body)}.prof-actions{display:flex;justify-content:flex-end}.job-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-5)}.job-list{display:flex;flex-direction:column;gap:var(--space-3)}.job-card{background:var(--surface-1);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden;transition:opacity .2s}.job-card-paused{opacity:.75}.job-card-head{padding:var(--space-5) var(--space-6);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.job-info{flex:1;min-width:0}.job-id-row{display:flex;align-items:center;gap:var(--space-2-5)}.job-id{font-weight:var(--font-weight-semibold);color:var(--text-1);font-size:var(--text-md);font-family:var(--font-mono)}.job-paused-badge{display:inline-flex;align-items:center;gap:var(--space-1);font:var(--type-label-xs);padding:.15rem var(--space-2);border-radius:var(--radius-full);background:var(--color-warning-bg);color:var(--color-warning-text);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.job-next{color:var(--text-3);font:var(--type-body-sm);margin-top:var(--space-1)}.job-controls{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.job-toggle-group{display:flex;align-items:center;gap:var(--space-2)}.job-toggle-label{font:var(--type-body-sm);color:var(--text-2);-webkit-user-select:none;user-select:none}.job-trigger-msg{font:var(--type-body-sm)}.job-trigger-msg-ok{color:var(--color-success)}.job-trigger-msg-err{color:var(--color-danger)}.job-toggle{position:relative;display:inline-flex;align-items:center;width:2.5rem;height:1.375rem;border-radius:var(--radius-full);border:none;background:var(--border-2);cursor:pointer;transition:background .2s;flex-shrink:0}.job-toggle-on{background:var(--color-primary)}.job-toggle:disabled{opacity:.6;cursor:not-allowed}.job-toggle-knob{position:absolute;width:1rem;height:1rem;border-radius:var(--radius-full);background:var(--surface-1);box-shadow:var(--shadow-sm);left:.2rem;transition:left .2s}.job-toggle-knob-on{left:1.25rem}.job-exec-wrap{border-top:1px solid var(--surface-3);overflow-x:auto}.job-exec-msg{color:var(--text-3);padding:var(--space-4);font:var(--type-body)}.job-exec-error{color:var(--color-danger)}.inv-stepper{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.inv-step{display:flex;align-items:center;gap:var(--space-3)}.inv-step-dot{width:28px;height:28px;border-radius:var(--radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-3);transition:background .3s}.inv-step-dot-done{background:var(--color-success)}.inv-step-dot-active{background:var(--color-primary)}.inv-step-pending-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-3)}.inv-step-spinner{width:14px;height:14px;border-width:2px;border-top-color:#fff;border-color:#ffffff4d}.inv-step-label{font:var(--type-body);color:var(--text-3);transition:color .3s}.inv-step-label-done{color:var(--color-success)}.inv-step-label-active{color:var(--text-1);font-weight:var(--font-weight-semibold)}.inv-modal-col{display:flex;flex-direction:column;gap:var(--space-4)}.inv-file-list{display:flex;flex-direction:column;gap:var(--space-2)}.inv-file-preview{margin:0}.inv-dropzone{cursor:pointer}.inv-modal-error{color:var(--color-danger);font:var(--type-body);margin:0}.inv-generating{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-2)}.inv-busy{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-2)}.inv-busy-text{color:var(--text-1);font:var(--type-body);margin:0}.inv-busy-sub{color:var(--text-3);font:var(--type-body-sm);margin:0}.inv-col-title{width:20rem}.inv-th-left{text-align:left}.inv-desc-cell{max-width:20rem;color:var(--text-2);text-align:left}.inv-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.inv-desc-card{margin-bottom:var(--space-4);padding:var(--space-5) var(--space-6)}.inv-desc-label{font:var(--type-overline);color:var(--text-2);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.inv-desc-text{color:var(--text-1);line-height:var(--leading-relaxed);font:var(--type-body);margin:0;text-align:justify}.inv-diagram-card{margin-top:var(--space-6)}.inv-diagram-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--surface-3);display:flex;align-items:center;gap:var(--space-3)}.inv-auto-arrange-btn{margin-left:auto}.inv-diagram-title{margin:0}.inv-diagram-count{font:var(--type-body-sm);color:var(--text-2);margin-left:var(--space-3)}.inv-diagram-body{padding:var(--space-4) var(--space-6) var(--space-6)}.inv-thinking{color:var(--text-3);font-style:italic}.inv-thinking-spinner{width:12px;height:12px;border-width:2px;display:inline-block;margin-right:var(--space-2)}.inv-modal-error-actions{margin-top:var(--space-4)}.confirm-modal-icon{color:var(--color-danger)}.result-error{margin-top:var(--space-4)}.result-save-error{margin:var(--space-3) var(--space-4) 0}.hazop-table .guide-word-cell,.hazop-table .risk-cell{text-align:center}.hazop-table th.actions-col{width:72px}.hazop-table td.actions-cell{text-align:center;white-space:nowrap;padding:var(--space-2)}.row-actions{display:inline-flex;gap:var(--space-1);align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;color:var(--text-3);transition:background .15s,color .15s}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text-1)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-danger:hover:not(:disabled){background:var(--color-danger-bg);color:var(--color-danger)}.delete-confirm-chip{display:inline-flex;gap:var(--space-1);align-items:center}.node-add-btn{display:flex;align-items:center;gap:var(--space-1-5);color:var(--color-primary);background:none;border:1px dashed var(--color-primary);border-radius:var(--radius-md);padding:var(--space-1-5) var(--space-3);cursor:pointer;font:var(--type-label);margin:var(--space-2) var(--space-3) var(--space-3);transition:background .15s}.node-add-btn:hover:not(:disabled){background:var(--color-primary-light)}.node-add-btn:disabled{opacity:.4;cursor:not-allowed}.worksheet-add-node-btn{margin:var(--space-3) 0 0;justify-content:center}.add-node-form{display:flex;flex-direction:column;gap:var(--space-4)}.add-node-field{display:flex;flex-direction:column;gap:var(--space-1-5)}.worksheet-saving{font:var(--type-label-xs);color:var(--text-3)}.add-deviation-row{background:var(--color-primary-light)}.add-deviation-row td{vertical-align:top;height:128px}.inline-cell{padding:var(--space-3) var(--space-2)!important}.inline-input{min-width:80px;border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word}.inline-dropdown{position:relative;width:100%}.inline-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;min-height:40px;padding:var(--space-2) var(--space-3);background:var(--surface-1);border:1px solid var(--border-input);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font:var(--type-body-sm);color:var(--text-1);transition:border-color .15s}.inline-dropdown-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.inline-dropdown-trigger:hover{border-color:var(--color-primary)}.inline-dropdown-placeholder{color:var(--text-3)}.inline-dropdown-chevron{flex-shrink:0;color:var(--text-3);transition:transform .15s}.inline-dropdown-chevron.open{transform:rotate(180deg)}.inline-dropdown-list{z-index:9999;min-width:180px;background:var(--surface-1);border:1px solid var(--border-input);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);padding:var(--space-1) 0;margin:0;list-style:none;max-height:220px;overflow-y:auto;box-sizing:border-box}.inline-dropdown-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);font:var(--type-body-sm);color:var(--text-1);cursor:pointer;gap:var(--space-2)}.inline-dropdown-option:hover{background:var(--surface-2)}.inline-dropdown-option.selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.inline-dropdown-option.selected svg{color:var(--color-primary);flex-shrink:0}.icon-btn-confirm:not(:disabled){color:var(--color-success)}.icon-btn-confirm:hover:not(:disabled){background:var(--color-success-bg);color:var(--color-success)}.job-exec-table thead tr{background:var(--surface-2)}.job-exec-table th{padding:var(--space-2-5) var(--space-4);white-space:nowrap}.job-exec-row{border-top:1px solid var(--surface-3)}.job-exec-row-alt{background:var(--surface-2)}.job-exec-td{padding:var(--space-2-5) var(--space-4)}.job-exec-td-center{padding:var(--space-2-5) var(--space-4);text-align:center;white-space:nowrap;color:var(--text-1)}.job-exec-td-muted{padding:var(--space-2-5) var(--space-4);color:var(--text-2);white-space:nowrap}.job-meta-chips{display:flex;flex-wrap:nowrap;gap:var(--space-1-5)}.job-meta-chip{background:var(--surface-3);border-radius:var(--radius-sm);padding:.125rem var(--space-2);font:var(--type-label-xs);color:var(--text-1);white-space:nowrap}.job-error-row{display:flex;align-items:center;gap:var(--space-1-5)}.job-error-text{color:var(--color-danger);font:var(--type-label-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12rem}.job-error-view{flex-shrink:0;display:flex;align-items:center;padding:.2rem;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-2);cursor:pointer}.job-error-view:hover{color:var(--color-primary)}.trace-modal{--trace-bg: var(--navy-900);--trace-border: rgba(255, 255, 255, .08);--trace-btn-border: rgba(255, 255, 255, .15);--trace-fg-dim: rgba(255, 255, 255, .65);--trace-code: #e2e8f0;--trace-ok: #4ade80;background:var(--trace-bg);border-radius:var(--radius-xl);width:100%;max-width:52rem;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl)}.trace-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--trace-border)}.trace-title{color:var(--red-400);font-weight:var(--font-weight-semibold);font:var(--type-body)}.trace-actions{display:flex;gap:var(--space-2)}.trace-btn{display:flex;align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--trace-btn-border);background:transparent;color:var(--trace-fg-dim);font:var(--type-body-sm);cursor:pointer;transition:color .15s}.trace-btn-copied{color:var(--trace-ok)}.trace-close{display:flex;align-items:center;justify-content:center;padding:var(--space-1-5);border-radius:var(--radius-sm);border:1px solid var(--trace-btn-border);background:transparent;color:var(--trace-fg-dim);cursor:pointer}.trace-body{flex:1;overflow-y:auto;margin:0;padding:var(--space-5);color:var(--trace-code);font-size:var(--text-sm);line-height:var(--leading-relaxed);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word}
