.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--bg: #0f172a;--surface: #ffffff;--surface-2: #f8fafc;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--primary: #2563eb;--primary-hover: #1d4ed8;--error-bg: #fef2f2;--error-fg: #b91c1c;--info-bg: #eff6ff;--info-fg: #1d4ed8;--shadow: 0 10px 30px rgba(15, 23, 42, .12);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:linear-gradient(135deg,#eef2ff,#f8fafc 60%);color:var(--text)}.centered-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;box-shadow:var(--shadow);width:100%;max-width:420px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form h1{margin:0;font-size:22px}.auth-form label{display:flex;flex-direction:column;font-size:13px;color:var(--muted);gap:6px}.auth-form input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--text)}.auth-form input:focus{outline:2px solid var(--primary);outline-offset:1px}.btn{border:none;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn.primary:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.ghost{background:transparent;color:var(--text)}.divider{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.alert{padding:8px 10px;border-radius:6px;font-size:13px}.alert.error{background:var(--error-bg);color:var(--error-fg)}.alert.info{background:var(--info-bg);color:var(--info-fg)}.muted{color:var(--muted);margin:0;font-size:13px}.auth-links{text-align:center;font-size:13px}.auth-links a{color:var(--primary);text-decoration:none}.auth-links a:hover{text-decoration:underline}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--border)}.app-header nav{display:flex;gap:14px;align-items:center}.brand{font-weight:800;font-size:22px;color:var(--text)}.brand span{color:var(--primary)}.app-main{padding:28px;display:grid;place-items:start center}.app-main .card{max-width:760px}.chips{list-style:none;padding:0;display:flex;gap:8px;flex-wrap:wrap}.chip{padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;font-weight:600}.permissions{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.permissions code{font-size:12px;color:var(--muted)}.hr-shell{min-height:100vh;display:flex;flex-direction:column}.hr-body{display:grid;grid-template-columns:220px 1fr;flex:1}.hr-side{background:var(--surface);border-right:1px solid var(--border);padding:18px 12px}.hr-side-title{font-weight:800;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:0 8px 10px}.hr-side ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.hr-side a{display:block;padding:8px 12px;border-radius:8px;color:var(--text);text-decoration:none;font-size:14px}.hr-side a:hover{background:var(--surface-2)}.hr-side a.active{background:var(--primary);color:#fff;font-weight:600}.hr-main{padding:24px 28px;max-width:1280px;width:100%}.brand a{color:inherit;text-decoration:none}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}.page-header h1{margin:0;font-size:22px}.page-header .actions{display:flex;gap:8px;align-items:center}.card{margin-bottom:18px;max-width:none}.btn.small{padding:4px 10px;font-size:12px;margin-right:4px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg button{background:var(--surface);border:none;padding:6px 12px;font-size:13px;cursor:pointer}.seg button.active{background:var(--primary);color:#fff}.hr-grid{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start}.hr-filters label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px;margin-bottom:12px}.hr-filters input,.hr-filters select{border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:13px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.employee-card{display:flex;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);transition:transform .1s,box-shadow .1s}.employee-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.employee-card .info .name{font-weight:600}.avatar{width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700;flex-shrink:0}.avatar.lg{width:64px;height:64px;font-size:24px}.small{font-size:11px}.center{text-align:center;padding:24px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.chip.status-active{background:#dcfce7;color:#166534;border-color:#bbf7d0}.chip.status-on_leave{background:#fef3c7;color:#92400e;border-color:#fde68a}.chip.status-terminated,.chip.status-resigned{background:#fee2e2;color:#991b1b;border-color:#fecaca}.chip.status-pending{background:#fef3c7;color:#92400e;border-color:#fde68a}.chip.status-approved,.chip.status-completed{background:#dcfce7;color:#166534;border-color:#bbf7d0}.chip.status-rejected,.chip.status-cancelled{background:#fee2e2;color:#991b1b;border-color:#fecaca}.chip.status-draft{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.chip.status-submitted{background:#cffafe;color:#155e75;border-color:#a5f3fc}.chip.status-acknowledged{background:#dcfce7;color:#166534;border-color:#bbf7d0}.chip.status-processing{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.chip.status-enrolled,.chip.status-in_progress{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.form-card{padding:20px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-form label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}.grid-form input,.grid-form select,.grid-form textarea{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}.grid-form .full{grid-column:1 / -1}.row-form{display:grid;grid-template-columns:1fr 140px 140px 1fr 100px;gap:8px;align-items:center;margin-bottom:12px}.profile-header{display:flex;gap:18px;align-items:center}.profile-header h1{margin:0;font-size:22px}.tabs{display:flex;gap:6px;margin:12px 0}.tab{background:transparent;border:none;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.tab.active{background:var(--primary);color:#fff}dl.kv{display:grid;grid-template-columns:200px 1fr;gap:6px 16px;font-size:13px}dl.kv dt{color:var(--muted)}.org-chart-wrap{overflow:auto;padding:24px}.org-node{display:flex;flex-direction:column;align-items:center}.org-card{display:flex;gap:10px;align-items:center;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);min-width:200px;box-shadow:0 2px 6px #0f172a0f}.org-card.org-virtual{background:var(--primary);color:#fff;border-color:var(--primary)}.org-card .info .name{font-weight:600;font-size:13px}.org-children{display:flex;gap:24px;padding-top:24px;position:relative;flex-wrap:nowrap}.org-children:before{content:"";position:absolute;top:0;left:50%;width:1px;height:12px;background:var(--border)}.org-children>.org-node{position:relative}.org-children>.org-node:before{content:"";position:absolute;top:-12px;left:50%;width:1px;height:12px;background:var(--border)}.heatmap{display:grid;grid-template-columns:repeat(31,minmax(20px,1fr));gap:3px;margin:12px 0}.hm-cell{width:100%;aspect-ratio:1;border-radius:4px;background:var(--surface-2);display:grid;place-items:center;font-size:9px;color:var(--muted)}.hm-cell.lvl-1{background:#c7d2fe;color:#1e3a8a}.hm-cell.lvl-2{background:#93c5fd;color:#1e3a8a}.hm-cell.lvl-3{background:#60a5fa;color:#fff}.hm-cell.lvl-4{background:#2563eb;color:#fff}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-head{padding:6px 4px;text-align:center;font-weight:600}.cal-cell{aspect-ratio:1;border-radius:8px;padding:6px;background:var(--surface-2);display:flex;flex-direction:column;justify-content:space-between}.cal-cell.lvl-1{background:#e0e7ff}.cal-cell.lvl-2{background:#c7d2fe}.cal-cell.lvl-3{background:#93c5fd}.cal-cell.lvl-4{background:#60a5fa;color:#fff}.cal-cell .day{font-weight:700;font-size:13px}.balance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.balance-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid #94a3b8;border-radius:10px;padding:12px 14px}.balance-card .name{font-weight:600;font-size:13px}.balance-card .big{font-size:28px;font-weight:800;color:var(--text);margin:4px 0}.wizard{display:flex;gap:12px;margin-bottom:18px}.wstep{display:flex;gap:8px;align-items:center;padding:10px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:13px;color:var(--muted)}.wstep.active{border-color:var(--primary);color:var(--text);font-weight:600}.wstep.done{background:#e0e7ff;color:#3730a3}.wnum{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:700}.wstep.active .wnum{background:var(--primary);color:#fff}.wstep.done .wnum{background:#3730a3;color:#fff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.review-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.review-list li{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.review-list .row{display:flex;gap:8px;align-items:center;margin-bottom:4px}.coa-cat{margin-bottom:18px}.coa-cat h3{border-left:4px solid #94a3b8;padding-left:10px;margin:12px 0 8px;font-size:14px}.coa-list{list-style:none;padding-left:12px;margin:0}.coa-list li{padding:4px 0;font-size:13px}.acc-code{display:inline-block;min-width:56px;font-family:ui-monospace,monospace;color:var(--muted);font-size:12px;margin-right:8px}.acc-name{font-weight:500}.je-grid input,.je-grid select{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:4px;font:inherit;font-size:13px}.je-grid td.balanced{color:#16a34a;font-weight:600}.je-grid td.unbalanced{color:#dc2626;font-weight:600}.je-grid .num{text-align:right}.ledger-summary{display:flex;gap:18px;padding-bottom:8px;font-size:13px}.budget-grid input{width:100px;padding:4px 6px;text-align:right}.add-line{padding-top:8px}.add-line label{display:flex;gap:8px;align-items:center;font-size:13px}.add-line select{padding:6px 8px;border:1px solid var(--border);border-radius:6px}.bvsa{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.bvsa-row{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:center}.bvsa-label{font-size:12px;color:var(--muted)}.bvsa-bars{display:flex;flex-direction:column;gap:3px}.bvsa-bar{padding:3px 8px;color:#fff;font-size:11px;font-weight:600;border-radius:4px;min-width:30px}.bvsa-bar.bg-budget{background:#94a3b8}.bvsa-bar.bg-actual{background:#2563eb}.cashflow-bars{margin-top:14px;display:flex;flex-direction:column;gap:8px}.cf-row{display:grid;grid-template-columns:60px 1fr;gap:12px;align-items:center}.cf-label{font-size:12px;color:var(--muted)}.cf-bars{display:flex;flex-direction:column;gap:3px}.cf-bar{height:14px;border-radius:4px;min-width:4px}.cf-bar.bg-inflow{background:#16a34a}.cf-bar.bg-outflow{background:#ea580c}.report-table{font-size:13px}.report-table .indent{padding-left:24px}.report-table .report-group td{background:var(--surface-2);font-weight:600;padding-top:10px}.report-table .report-group-sub td{font-style:italic;color:var(--muted)}.report-table .report-subtotal td{background:#e0e7ff;color:#1e3a8a;padding:10px}.report-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.report-net{padding:14px;font-size:16px;background:var(--surface-2);border-radius:8px;margin-top:12px;line-height:1.6}.positive{color:#16a34a}.negative,.danger{color:#dc2626}.warn{color:#ea580c}.data-table .num{text-align:right}.bell{position:relative}.bell-btn{background:transparent;border:1px solid transparent;color:var(--text);padding:6px 8px;border-radius:8px;cursor:pointer;position:relative}.bell-btn:hover{background:var(--surface-2);border-color:var(--border)}.bell-badge{position:absolute;top:-2px;right:-2px;background:#dc2626;color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:14px}.bell-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:360px;max-height:480px;overflow:hidden;display:flex;flex-direction:column;margin:0;padding:0;z-index:50}.bell-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border)}.bell-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.bell-list li{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer}.bell-list li:hover{background:var(--surface-2)}.bell-list li.unread{background:#eff6ff}.bell-list a{color:var(--text);text-decoration:none;display:block}.notif-title{font-weight:600;font-size:13px}.notif-body,.notif-meta{margin-top:2px}.bell-foot{padding:10px 14px;text-align:center;border-top:1px solid var(--border)}@keyframes bellPulse{0%{box-shadow:0 0 #dc262699}50%{box-shadow:0 0 0 8px #dc262600}to{box-shadow:0 0 #dc262600}}.bell-btn.pulse{animation:bellPulse 1s ease-out 2}.approvals{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}.approval-card .approval-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.approval-card .actions{display:flex;gap:6px;justify-content:flex-end;margin-top:10px}.danger-btn{color:#dc2626}.timeline{list-style:none;padding:0;margin:0;position:relative}.timeline:before{content:"";position:absolute;left:9px;top:4px;bottom:4px;width:2px;background:var(--border)}.timeline li{position:relative;padding-left:30px;padding-bottom:14px}.tl-dot{position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:var(--surface-2);border:2px solid var(--border)}.timeline li.tl-approved .tl-dot{background:#16a34a;border-color:#16a34a}.timeline li.tl-rejected .tl-dot{background:#dc2626;border-color:#dc2626}.timeline li.tl-pending .tl-dot{background:#2563eb;border-color:#2563eb;animation:pulse 1.6s ease-in-out infinite}.timeline li.tl-skipped .tl-dot{background:var(--surface-2)}@keyframes pulse{0%,to{box-shadow:0 0 #2563eb66}50%{box-shadow:0 0 0 8px #2563eb00}}.tl-content{display:flex;flex-direction:column;gap:2px}.tl-content strong{margin-right:8px}.ctx-pre{background:var(--surface-2);padding:10px;border-radius:8px;font-size:12px;overflow:auto;max-height:240px}.builder{display:grid;grid-template-columns:1fr 360px;gap:14px;align-items:start}.builder-canvas{padding:0;overflow:hidden}.builder-canvas .btn{margin:8px}.builder-inspector{padding:16px}.builder-inspector h3{margin-top:0}.cond-row{display:grid;grid-template-columns:30px 1fr 40px 130px 70px 30px;gap:6px;align-items:center;margin-bottom:6px;font-size:12px}.cond-row input,.cond-row select{padding:4px 6px;border:1px solid var(--border);border-radius:4px;font:inherit;font-size:12px}.checkbox-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px;color:var(--text)}.checkbox-row input{width:auto}.notif-list{list-style:none;padding:0;margin:0}.notif-list li{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:12px;border-bottom:1px solid var(--border)}.notif-list li.unread{background:#eff6ff}.notif-icon{display:grid;place-items:center;font-size:16px;color:var(--muted)}.notif-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.notif-list .actions{display:flex;gap:6px;margin-top:4px}.switch{position:relative;display:inline-block;width:36px;height:20px}.switch input{display:none}.switch span{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:10px;transition:background .15s}.switch span:before{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:before{transform:translate(16px)}.project-card{display:block;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);transition:transform .1s,box-shadow .1s}.project-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.proj-key{display:inline-block;padding:2px 8px;background:var(--primary);color:#fff;border-radius:6px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700;margin-bottom:6px}.proj-name{font-weight:600;font-size:15px}.proj-stats{display:flex;gap:14px;align-items:center;margin-top:12px}.kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:flex-start}.kcol{background:var(--surface-2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:200px}.kcol-over{background:#e0e7ff;outline:2px dashed var(--primary)}.kcol-over-wip{box-shadow:inset 0 0 0 2px #fee2e2}.kcol header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px}.kcol-name{font-weight:700;font-size:13px;border-left:4px solid #94a3b8;padding:2px 8px}.kcol-count{background:var(--surface);border:1px solid var(--border);padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.kcol-count.over{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.kcol-empty{padding:20px;text-align:center;font-size:12px}.kcol-body{display:flex;flex-direction:column;gap:8px}.issue-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--text)}.issue-card:hover{border-color:var(--primary)}.issue-card.dragging{box-shadow:0 8px 24px #0f172a2e;cursor:grabbing}.issue-card header{display:flex;align-items:center;gap:6px;font-size:11px}.issue-card header code{font-size:11px;color:var(--muted)}.issue-card .issue-title{font-weight:600;font-size:13px}.issue-card footer{display:flex;gap:6px;align-items:center;font-size:11px;flex-wrap:wrap}.issue-type{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;font-size:10px;font-weight:700;color:#fff}.issue-type.t-story{background:#16a34a}.issue-type.t-task{background:#2563eb}.issue-type.t-bug{background:#dc2626}.issue-type.t-improvement{background:#9333ea}.issue-type.t-spike{background:#f59e0b}.issue-type.t-subtask{background:#94a3b8}.prio-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#94a3b8;margin:0 4px}.prio-dot.prio-critical,.chip.prio-critical{background:#b91c1c;color:#fff}.prio-dot.prio-high,.chip.prio-high{background:#ea580c;color:#fff}.prio-dot.prio-medium,.chip.prio-medium{background:#f59e0b;color:#fff}.prio-dot.prio-low,.chip.prio-low{background:#64748b;color:#fff}.avatar.tiny{width:22px;height:22px;font-size:11px}.issue-list{list-style:none;padding:0;margin:0}.issue-list li{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:8px 4px;border-bottom:1px solid var(--border);align-items:center;font-size:13px}.issue-list a{color:var(--text);text-decoration:none}.capacity-card{display:grid;grid-template-columns:1fr 320px auto;gap:16px;align-items:center}.capacity-bar .cap-track{background:var(--surface-2);border-radius:8px;height:14px;overflow:hidden;border:1px solid var(--border);margin-top:4px}.capacity-bar .cap-fill{height:100%;transition:width .2s}.cap-meta{display:flex;gap:10px;align-items:center;font-size:13px}.issue-detail .grid-2{grid-template-columns:1fr 320px}.rich-input{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;font-family:inherit;font-size:13px}.desc{white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.55;margin:0}.comment-list{list-style:none;padding:0;margin:0}.comment-list li{padding:10px 0;border-bottom:1px solid var(--border)}.comment-list header{display:flex;gap:10px;margin-bottom:4px;align-items:center}.comment-form{margin-top:12px}.comment-form textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;font:inherit;font-size:13px}.worklog-list{list-style:none;padding:0;margin:0}.worklog-list li{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.dep-list{list-style:none;padding:0;margin:0}.dep-list li{display:flex;gap:6px;align-items:center;padding:4px 0;font-size:13px}.dep-list a{color:var(--text);text-decoration:none}.trace-list{list-style:none;padding:0;margin:0}.trace-list li{padding:4px 0;font-size:13px}.trace-summary{margin-bottom:12px}.suite-list,.case-list{list-style:none;padding:0;margin:0}.suite-list li{padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.suite-list li:hover{background:var(--surface-2)}.suite-list li.active{background:var(--primary);color:#fff}.case-list li{padding:8px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:8px}.qa-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:18px}.stat{padding:14px;background:var(--surface-2);border-radius:10px;border:1px solid var(--border)}.stat-value{font-size:26px;font-weight:800}.stat-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.donut-wrap{display:flex;gap:24px;align-items:center}.legend{list-style:none;padding:0;margin:0;font-size:13px;display:flex;flex-direction:column;gap:4px}.legend li{display:flex;align-items:center;gap:8px}.legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.release-issue-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin:10px 0}.deploy-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.readiness-row{display:flex;gap:14px}.r-donut{display:flex;flex-direction:column;align-items:center;gap:2px}.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:10px 0}.vendor-pick{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-size:13px}.vendor-pick.picked{border-color:var(--primary);background:#eff6ff}.vendor-pick input{width:auto}.score-bar{position:relative;background:var(--surface-2);border-radius:6px;height:18px;min-width:80px;overflow:hidden}.score-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#60a5fa,#2563eb)}.score-bar span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;font-weight:700;color:#0f172a}.score-bar.inline{height:14px}.comparison tr.winner td{background:#dcfce7}.comparison tr.winner .chip{margin-left:6px}.low-stock{background:#fef2f2}.low-stock td.danger{color:#b91c1c;font-weight:600}.scorecard h3{margin-top:0}.score-row{display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center;font-size:13px;margin:6px 0}.user-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px}.user-pill.sm{font-size:11px}.up-avatar{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:11px}.user-pill.sm .up-avatar{width:18px;height:18px;font-size:10px}.up-name{font-weight:600;color:var(--text)}.up-tag{padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.up-more{padding:1px 6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:10px;color:var(--muted);cursor:default}.tag-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:6px;vertical-align:middle}.org-card .chips{margin-top:4px}.org-dim{opacity:.45}.btn.ghost.active{background:#e0e7ff;color:#1e3a8a}.kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:18px}.kpi{padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.kpi-value{font-size:22px;font-weight:800;margin-top:4px}.kpi-value.positive{color:#16a34a}.kpi-value.negative{color:#dc2626}.kpi-value.warn{color:#ea580c}.big-stat{font-size:36px;font-weight:800}.perm-matrix{display:flex;flex-direction:column;gap:10px}.perm-group h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;color:var(--muted)}.perm-row{display:flex;flex-wrap:wrap;gap:4px}.perm-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;cursor:pointer;background:var(--surface-2);border:1px solid var(--border);font-size:11px;-webkit-user-select:none;user-select:none}.perm-pill input{display:none}.perm-pill.on{background:#2563eb;color:#fff;border-color:#2563eb}.cal-nav{display:flex;gap:6px;align-items:center;margin-top:4px}.event-pill{display:block;width:100%;text-align:left;background:var(--primary);color:#fff;border:0;padding:2px 6px;border-radius:4px;font-size:10px;margin-top:2px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-pill.type-internal{background:#2563eb}.event-pill.type-project{background:#9333ea}.event-pill.type-external{background:#ea580c}.event-pill.type-training{background:#16a34a}.event-pill.type-meeting{background:#f59e0b}.stage-bar{display:flex;gap:4px;margin:12px 0 18px;align-items:center}.stage-step{display:flex;flex-direction:column;align-items:center;flex:1;font-size:11px;color:var(--muted);position:relative}.stage-step .dot{width:14px;height:14px;border-radius:50%;background:var(--surface-2);border:2px solid var(--border);position:relative;z-index:1}.stage-step:after{content:"";position:absolute;top:7px;left:50%;right:-50%;height:2px;background:var(--border);z-index:0}.stage-step:last-child:after{display:none}.stage-step.done .dot{background:#2563eb;border-color:#2563eb}.stage-step.done:after{background:#2563eb}.stage-step.active .dot{background:#2563eb;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb2e}.stage-step.active span{color:var(--text);font-weight:600}.stage-step span{margin-top:6px}.chip.type-call{background:#dbeafe;color:#1e3a8a}.chip.type-email{background:#ede9fe;color:#5b21b6}.chip.type-meeting{background:#fef3c7;color:#92400e}.chip.type-note{background:#f1f5f9;color:#334155}.chip.type-stage_change{background:#dcfce7;color:#166534}.chip.type-task{background:#fee2e2;color:#991b1b}.dms-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 64px)}.dms-tree{background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}.dms-tree ul{list-style:none;margin:0;padding:8px 0}.dms-tree li{padding:6px 12px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.dms-tree li:hover{background:var(--surface-2)}.dms-tree li.active{background:var(--primary);color:#fff}.dms-main{padding:24px 28px;transition:background .1s;position:relative}.dms-main.dropping{background:#eff6ff;outline:2px dashed var(--primary);outline-offset:-8px}.dms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.dms-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;text-align:center}.dms-card:hover{border-color:var(--primary)}.dms-icon{font-size:36px}.dms-card .name{font-weight:600;font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dms-side{padding:24px 24px 24px 0;min-width:280px}.dms-preview{background:var(--surface);border:1px solid var(--border);border-radius:10px;height:calc(100vh - 220px);overflow:hidden;display:grid;place-items:center}.dms-preview iframe{width:100%;height:100%;border:0}.dms-preview img{max-width:100%;max-height:100%}.version-list{list-style:none;margin:0;padding:0}.version-list li{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.version-list .row{display:flex;justify-content:space-between;align-items:center}.activity-feed h3{margin:0 0 8px;font-size:14px}.activity-feed ol{list-style:none;padding:0;margin:0;position:relative;max-height:360px;overflow-y:auto}.activity-feed ol:before{content:"";position:absolute;left:9px;top:4px;bottom:4px;width:2px;background:var(--border)}.activity-feed li{position:relative;padding:6px 0 6px 30px;font-size:13px;display:flex;flex-direction:column;gap:2px}.activity-feed li.live{animation:highlight 1.6s ease-out}.activity-feed .dot{position:absolute;left:4px;top:12px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:2px solid var(--surface)}.activity-feed .row{display:flex;justify-content:space-between;gap:6px}.activity-feed .body{display:flex;flex-direction:column;gap:2px}.xs{font-size:10px}@keyframes highlight{0%{background:#dbeafe}to{background:transparent}}.mention-input{position:relative}.mention-input textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;font:inherit;font-size:13px;resize:vertical}.mention-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);list-style:none;padding:4px;margin:4px 0 0;z-index:20}.mention-dropdown li{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.mention-dropdown li:hover,.mention-dropdown li.active{background:var(--primary);color:#fff}.mention-dropdown li.active .muted{color:#fffc}.mention-chip{display:inline-block;padding:1px 6px;border-radius:4px;background:#dbeafe;color:#1e3a8a;font-weight:600}.messenger-newmsg{position:absolute;left:50%;transform:translate(-50%);bottom:68px;z-index:5;padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--primary);color:#fff;font-size:12px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.messenger-newmsg:hover{background:var(--primary-hover)}.messenger-thread{display:flex;flex-direction:column;max-height:480px;position:relative;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.messenger-error{margin:0;padding:8px 12px;font-size:13px;color:var(--error-fg);background:var(--error-bg)}.messenger-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px}.messenger-placeholder{color:var(--muted);font-size:13px;margin:auto 0;text-align:center;padding:24px 0}.messenger-day{align-self:center;margin:12px 0 6px;padding:2px 10px;font-size:11px;font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px}.messenger-row{display:flex;gap:8px;padding:1px 4px;border-radius:6px}.messenger-row:not(.grouped){margin-top:8px}.messenger-row .messenger-gutter{width:32px;flex-shrink:0;display:flex;justify-content:flex-end;align-items:flex-start}.messenger-row .messenger-gutter .avatar{width:32px;height:32px;font-size:13px}.messenger-content{flex:1;min-width:0}.messenger-meta{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.messenger-name{font-weight:600;color:var(--text);font-size:13px}.messenger-row.mine .messenger-name{color:var(--primary)}.messenger-you{color:var(--muted);font-weight:400;font-size:11px}.messenger-time{color:var(--muted);font-size:11px}.messenger-grouptime{visibility:hidden;font-size:10px;color:var(--muted);line-height:20px}.messenger-row.grouped:hover .messenger-grouptime{visibility:visible}.messenger-body{color:var(--text);font-size:14px;line-height:1.45}.messenger-composer{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface)}.messenger-send{align-self:flex-end;min-height:44px;flex-shrink:0;white-space:nowrap}.messenger-composer .mention-dropdown{top:auto;bottom:100%;right:auto;width:min(360px,100%);margin:0 0 4px}.messenger-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin:auto 0;padding:28px 16px;text-align:center}.messenger-empty-icon{font-size:28px;line-height:1}.messenger-empty-title{margin:0;font-weight:600;color:var(--text)}.messenger-empty-sub{margin:0;font-size:13px;color:var(--muted);max-width:40ch}.messenger-loadolder{align-self:center;margin:2px 0 8px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--primary);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;cursor:pointer}.messenger-loadolder:hover:not(:disabled){background:var(--info-bg)}.messenger-loadolder:disabled{opacity:.6;cursor:default}.messenger-app{display:flex;gap:12px;align-items:stretch;padding:16px;height:calc(100vh - 66px);min-height:480px}.messenger-sidebar{width:240px;flex-shrink:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px;overflow-y:auto}.messenger-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}.messenger-main .messenger-thread{flex:1;min-height:0;max-height:none}.messenger-conv-title{margin:0;padding:0 2px;font-size:18px;color:var(--text)}.messenger-side-head{display:flex;align-items:center;justify-content:space-between;margin:14px 0 4px}.messenger-side-head:first-child{margin-top:0}.messenger-side-head h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.messenger-side-add{width:22px;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;line-height:1;color:var(--text)}.messenger-newchannel{display:flex;gap:4px;margin-bottom:6px}.messenger-newchannel input{flex:1;min-width:0;border:1px solid var(--border);border-radius:6px;padding:4px 6px;font:inherit;font-size:13px}.messenger-channel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.messenger-channel-list li{display:flex;align-items:center;gap:4px;border-radius:6px}.messenger-channel-list li.active{background:var(--surface-2)}.messenger-channel-btn{flex:1;min-width:0;text-align:left;background:none;border:none;padding:5px 8px;cursor:pointer;color:var(--text);font:inherit;font-size:14px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messenger-channel-btn:hover{background:var(--surface-2)}.messenger-join-btn{font-size:11px;color:var(--primary);background:none;border:none;cursor:pointer;padding:2px 6px}.messenger-side-empty{color:var(--muted);font-size:12px;padding:4px 8px}.messenger-unread-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.messenger-search{margin-bottom:8px}.messenger-search input{width:100%;border:1px solid var(--border);border-radius:6px;padding:6px 8px;font:inherit;font-size:13px}.messenger-search-results{list-style:none;margin:4px 0 0;padding:0;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.messenger-search-result{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);padding:6px 8px;cursor:pointer}.messenger-search-result:hover{background:var(--surface-2)}.messenger-search-ch{font-size:11px;font-weight:600;color:var(--primary)}.messenger-search-body{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messenger-dm-search{margin-bottom:6px}.messenger-dm-search input{width:100%;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font:inherit;font-size:13px}@media (max-width: 720px){.messenger-app{flex-direction:column;height:auto;padding:12px}.messenger-sidebar{width:auto;max-height:40vh}.messenger-main .messenger-thread{flex:none;height:70vh}}.messenger-reactions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px}.messenger-reaction{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;cursor:pointer;line-height:1.6}.messenger-reaction.mine{border-color:var(--primary);background:var(--info-bg)}.messenger-reaction-count{color:var(--muted)}.messenger-reaction.mine .messenger-reaction-count{color:var(--primary)}.messenger-react-add{position:relative;display:inline-flex}.messenger-react-btn{padding:0 6px;border-radius:999px;border:1px solid transparent;background:none;cursor:pointer;color:var(--muted);font-size:15px;line-height:1.5}.messenger-react-btn:hover{border-color:var(--border);background:var(--surface-2)}.messenger-react-picker{position:absolute;bottom:100%;left:0;margin-bottom:4px;display:flex;gap:2px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);z-index:10}.messenger-react-picker button{border:none;background:none;cursor:pointer;font-size:16px;padding:2px 4px;border-radius:6px}.messenger-react-picker button:hover{background:var(--surface-2)}.messenger-typing{padding:2px 12px;font-size:12px;color:var(--muted);font-style:italic}.messenger-attach-btn{align-self:flex-end;min-height:44px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);cursor:pointer;font-size:16px}.messenger-attach-btn:disabled{opacity:.6;cursor:default}.messenger-attachment{display:inline-flex;align-items:center;gap:4px;margin-top:3px;padding:3px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:13px;color:var(--primary);text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messenger-attachment:hover{background:var(--info-bg)}.messenger-share{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--border)}.messenger-share-btn{font-size:12px;color:var(--primary);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;cursor:pointer}.messenger-share select{font:inherit;font-size:12px;border:1px solid var(--border);border-radius:6px;padding:2px 4px}.messenger-share-msg{font-size:12px;color:var(--muted)}.messenger-entity-card{display:inline-flex;flex-direction:column;gap:1px;margin-top:3px;padding:6px 10px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;background:var(--surface-2);text-decoration:none;max-width:100%}.messenger-entity-card:hover{background:var(--info-bg)}.messenger-entity-type{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.messenger-entity-label{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 900px){.hr-body{grid-template-columns:1fr}.hr-side{display:none}.hr-grid,.grid-form,.grid-2,.row-form,.builder{grid-template-columns:1fr}}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:2px}.chip{font-weight:600;color:#0f172a}.status-active,.status-released,.status-approved,.status-passed,.status-done{color:#064e3b!important;background:#d1fae5}.status-pending,.status-draft,.status-in_progress{color:#78350f!important;background:#fef3c7}.status-rejected,.status-failed,.status-error{color:#7f1d1d!important;background:#fee2e2}.hamburger-btn{display:none;background:transparent;border:1px solid transparent;padding:8px;cursor:pointer;color:#0f172a;border-radius:4px}.hamburger-btn:hover{background:#f1f5f9}@media (max-width: 768px){.hamburger-btn{display:inline-flex;align-items:center;justify-content:center}}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:9000}.mobile-nav-drawer{position:fixed;top:0;left:0;bottom:0;width:min(280px,80vw);background:#fff;z-index:9001;box-shadow:2px 0 24px #0000002e;display:flex;flex-direction:column}.mobile-nav-drawer header{padding:16px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.mobile-nav-drawer nav{display:flex;flex-direction:column;padding:8px;gap:2px;overflow-y:auto}.mobile-nav-drawer nav a{padding:12px 14px;border-radius:6px;color:#0f172a;text-decoration:none;font-weight:500}.mobile-nav-drawer nav a:hover,.mobile-nav-drawer nav a:focus-visible{background:#f1f5f9}.mobile-nav-drawer nav a.active{background:#dbeafe;color:#1e40af}body.no-scroll{overflow:hidden}.live-region{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}
