:root{--font-sans: "Noto Sans Arabic", "Segoe UI", "Tahoma", system-ui, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-surface-muted: #f1f4f9;--color-border: #e5e7eb;--color-text: #0b1220;--color-muted: #6b7280;--color-primary: #2563eb;--color-primary-contrast: #ffffff;--color-danger: #dc2626;--color-danger-bg: #fee2e2;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-warning: #d97706;--color-warning-bg: #fef3c7;--color-info: #0284c7;--color-info-bg: #e0f2fe;--color-sidebar-bg: #f8fafc;--color-sidebar-text: #0f172a;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--table-row-height: 54px;--table-cell-px: 16px;--table-cell-py: 12px;--kanban-card-padding: 12px;--kanban-card-gap: 8px}:root[data-density=compact]{--table-row-height: 44px;--table-cell-px: 12px;--table-cell-py: 8px;--kanban-card-padding: 10px;--kanban-card-gap: 6px}:root[data-density=comfortable]{--table-row-height: 54px;--table-cell-px: 16px;--table-cell-py: 12px;--kanban-card-padding: 12px;--kanban-card-gap: 8px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;color:inherit}.dir-rtl{direction:rtl}.dir-ltr{direction:ltr}.ltr{direction:ltr;text-align:left;font-variant-numeric:tabular-nums}.app-shell{display:flex;min-height:100%;height:100%;background:var(--color-bg);overflow:hidden}.sidebar{width:220px;background:var(--color-sidebar-bg, #f8fafc);color:var(--color-sidebar-text, #0f172a);border-inline-end:1px solid rgba(148,163,184,.4);padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-4);position:sticky;top:0;height:100vh;box-shadow:0 10px 24px #0f172a14;z-index:5;flex-shrink:0}.sidebar-brand{font-weight:700;font-size:16px;color:var(--color-sidebar-text, #0f172a);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-logo{width:180px;height:48px;max-width:100%;display:block;object-fit:contain}.sidebar-close{display:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-4)}.sidebar-footer{margin-top:auto;font-size:12px;color:var(--color-muted);opacity:.85;padding:10px;text-align:start}.nav-section{display:flex;flex-direction:column;gap:var(--space-2)}.nav-section-title{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#475569e6;padding-inline:6px}.nav-section-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;background:#94a3b84d;border-radius:6px;font-size:11px;color:#1e293bf2}.sidebar-nav a{display:flex;align-items:center;gap:10px;justify-content:flex-start;text-align:start;padding:10px 12px;border-radius:12px;border:1px solid transparent;font-size:14px;color:var(--color-sidebar-text, #0f172a);transition:background .2s ease,border-color .2s ease,color .2s ease;position:relative}.sidebar-nav a.active{background:#bfdbfeb3;border-color:#93c5fdb3;color:#0f172a}.sidebar-nav a.active:before{content:"";position:absolute;inset-block:8px;inset-inline-start:0;width:3px;border-radius:999px;background:#3b82f6}.sidebar-nav a:hover{background:#94a3b840}.nav-icon{width:28px;height:28px;min-width:28px;min-height:28px;flex-shrink:0;display:inline-flex!important;align-items:center;justify-content:center;background:#94a3b859;border-radius:8px;color:#1e293bf2;line-height:1;visibility:visible!important;opacity:1!important;position:relative;z-index:1}.nav-icon svg{width:16px;height:16px;display:block}.nav-unread-dot{position:absolute;inset-block-start:-3px;inset-inline-start:-3px;width:8px;height:8px;border-radius:999px;background:var(--color-danger);box-shadow:0 0 0 2px var(--color-sidebar-bg, #f8fafc)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto;overflow-x:hidden}.topbar{display:grid;grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;box-shadow:var(--shadow-sm)}.topbar-title-group{display:flex;flex-direction:column;gap:2px;min-width:0}.topbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.topbar-breadcrumb{font-size:12px;color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title{font-weight:600;font-size:16px}.topbar-search{width:100%;max-width:520px;justify-self:center;display:flex}.topbar-search .input{width:100%;min-width:0;border-radius:999px;background:var(--color-surface-muted)}.topbar-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-self:end}.topbar-notifications{position:relative}.notifications-button{position:relative;width:36px;height:36px;padding:0;border-radius:50%}.notification-badge{position:absolute;top:-4px;inset-inline-end:-4px;background:var(--color-danger);color:#fff;font-size:11px;line-height:1;padding:4px 6px;border-radius:999px}.notifications-panel{position:absolute;top:calc(100% + 8px);inset-inline-end:0;width:320px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-3);z-index:20;text-align:start}.notifications-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);font-size:13px;font-weight:600}.notifications-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:320px;overflow:auto}.notification-item{text-align:start;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid transparent;background:var(--color-surface-muted);cursor:pointer}.notification-item.unread{border-color:var(--color-primary);background:#3b82f614}.notification-title{font-weight:600;font-size:13px;margin-bottom:2px}.notification-body{font-size:12px;color:var(--color-muted);margin-bottom:4px}.notification-time{font-size:11px;color:var(--color-muted)}.topbar-chip{font-size:12px}.user-menu-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-size:13px}.user-menu-name{font-weight:600}.user-caret{color:var(--color-muted);font-size:12px}.content{padding:var(--space-6)}.sidebar-toggle,.sidebar-overlay{display:none}@media (max-width: 960px){.app-shell{display:block}.sidebar{width:min(82vw,320px);position:fixed;left:0;inset-block:0;inset-inline-start:0;height:100%;padding:var(--space-3);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));transform:translate(-100%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .2s ease;z-index:1301;isolation:isolate}[dir=rtl] .sidebar{right:0;left:auto;transform:translate(100%)}.sidebar.open{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);width:36px;height:36px;cursor:pointer}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:1300;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-overlay.open{opacity:1;pointer-events:auto}.topbar-search{display:none}.topbar{grid-template-columns:minmax(0,1fr) auto;padding:var(--space-3);gap:var(--space-2)}.topbar-breadcrumb{display:none}.topbar-title{font-size:15px}.topbar-meta{flex-wrap:nowrap;gap:6px}.topbar-chip,.user-menu-name,.user-caret{display:none}.user-menu-trigger{padding:4px;border-radius:10px}.notifications-panel{width:min(92vw,360px);inset-inline-end:-6px}.content{padding:var(--space-3)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:radial-gradient(900px circle at 10% 20%,#e0f2fe 0%,transparent 55%),radial-gradient(700px circle at 90% 10%,#fef3c7 0%,transparent 55%),var(--color-bg)}.auth-card{width:min(420px,100%)}.auth-title{margin:0 0 var(--space-2);font-size:22px}.auth-subtitle{margin:0 0 var(--space-4);color:var(--color-muted);font-size:13px}.auth-error{color:var(--color-danger);font-size:13px}.auth-hint{margin-top:var(--space-4);color:var(--color-muted);font-size:12px}.admin-page{padding:var(--space-6);font-family:var(--font-sans);text-align:start}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.page-title{margin:0;font-size:22px;font-weight:700}.page-subtitle{margin:4px 0 0;color:var(--color-muted);font-size:13px}.page-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.admin-nav{display:flex;gap:var(--space-3);margin-block:var(--space-4) var(--space-6);flex-wrap:wrap}.admin-nav a{text-decoration:none;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text)}.admin-nav a.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.filter-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3)}.toolbar-layout{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.toolbar-section{display:flex;align-items:center;gap:var(--space-2);flex:1 1 0;min-width:0}.toolbar-right{justify-content:flex-end}.toolbar-center{justify-content:center;flex:2 1 0;flex-wrap:wrap}.toolbar-left,[dir=rtl] .toolbar-right{justify-content:flex-start}[dir=rtl] .toolbar-left{justify-content:flex-end}.toolbar-search{width:320px;max-width:100%}.kpi-toolbar .toolbar-section{flex:0 0 auto}.kpi-toolbar .toolbar-center{flex:1 1 auto;justify-content:center;flex-wrap:wrap}.kpi-toolbar .toolbar-right,[dir=rtl] .kpi-toolbar .toolbar-right{justify-content:flex-end}[dir=rtl] .kpi-toolbar .toolbar-left{justify-content:flex-start}.kpi-toolbar .group-by-control{display:inline-flex;align-items:center;gap:8px}[dir=rtl] .kpi-toolbar .group-by-control{flex-direction:row-reverse}.kpi-toolbar .input,.kpi-toolbar .select,.kpi-toolbar .button{height:36px;padding-block:6px;border-radius:var(--radius-sm)}.kpi-toolbar .button{padding-inline:14px}.kpi-toolbar .toolbar-search{width:320px;height:36px}.kpi-toolbar{flex-wrap:wrap;gap:var(--space-2);padding-block:var(--space-2)}.toolbar-label{font-size:12px;color:var(--color-muted);white-space:nowrap}.group-by-control{display:inline-flex;align-items:center;gap:8px}[dir=rtl] .group-by-control,[dir=ltr] .group-by-control{flex-direction:row}.toolbar-cluster{display:inline-flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-2);border-inline-start:1px solid var(--color-border)}.toolbar-cluster:first-child{border-inline-start:0;padding-inline-start:0}.toolbar-compact .toggle{padding:4px 8px;font-size:12px}.toolbar-compact .toolbar-center .button{padding:6px 10px}.toolbar-compact .toggle-helper{margin-inline-start:6px}.filter-button{position:relative}.filter-button--active:after{content:"";position:absolute;top:6px;inset-inline-end:6px;width:6px;height:6px;border-radius:999px;background:var(--color-primary)}@media (max-width: 1024px){.toolbar-layout{flex-direction:column;align-items:stretch}.toolbar-section{width:100%;justify-content:flex-start}.toolbar-center{justify-content:flex-start}.toolbar-search{width:100%}.kpi-toolbar{flex-wrap:wrap}}.toggle-stack{display:flex;flex-direction:column;gap:4px}.toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:13px}.toggle-input{width:36px;height:20px;accent-color:var(--color-primary)}.toggle-helper{font-size:12px}.saved-views-toolbar{justify-content:flex-start}.input{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:220px;background:var(--color-surface);text-align:start;transition:border-color .15s ease,box-shadow .15s ease}.select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);text-align:start;transition:border-color .15s ease,box-shadow .15s ease}.kpi-textarea{resize:none;min-height:36px}.task-textarea{display:block;width:100%;min-width:0;resize:none;min-height:36px}.task-date-input{width:100%;min-width:0;max-width:220px}.tag-select{height:36px;padding:0 12px;border-radius:10px;font-weight:600;width:fit-content;max-width:100%;min-width:140px}.tag-select--wide{min-width:220px}.new-task-checklist{display:flex;flex-direction:column;gap:8px}.new-task-checklist-input{display:flex;align-items:center;gap:8px}.new-task-checklist-input .input{flex:1;min-width:0}.new-task-checklist-list{display:flex;flex-direction:column;gap:6px}.new-task-checklist-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:13px}.new-task-checklist-remove{margin-inline-start:auto;background:transparent;border:none;color:var(--color-muted);font-size:12px;cursor:pointer}.button{padding:9px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-contrast);cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.button:disabled{opacity:.6;cursor:not-allowed}.button:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-1px)}.button-ghost{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.input:focus,.select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.table{width:100%;margin:0;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--color-surface);direction:inherit;border:none;border-radius:0;overflow:visible;box-shadow:none}.table-scroll{width:100%;overflow-x:auto;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--color-surface)}.table-scroll.grouped{background:var(--color-surface-muted)}.table-scroll.has-sticky-actions{padding:0}.table-tasks{width:100%;min-width:1040px}.table-kpis{width:100%;min-width:980px}.table th,.table td{border-bottom:1px solid var(--color-border);text-align:start;padding:10px var(--table-cell-px);font-size:13px;height:var(--table-row-height);vertical-align:middle}.kpi-page .table th,.kpi-page .table td{padding:8px 12px;height:44px}.kpi-page .table th{height:40px}.table th{background:var(--color-surface-muted);font-weight:600;position:static}.table tbody tr:nth-child(2n):not(.row-overdue){background:#0f172a05}.table tbody tr:hover:not(.row-overdue){background:#2563eb0f}.table-row-clickable{cursor:pointer}.task-name-button{display:block;width:100%;max-width:100%;text-align:start;background:transparent;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;overflow:hidden}.task-name-row{display:flex;align-items:center;gap:8px;width:100%;max-width:100%;min-width:0;overflow:hidden}.task-name-title{display:block;font-weight:600;min-width:0;flex:1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-name-meta{margin-inline-start:auto;font-size:11px;color:var(--color-muted)}.unread-dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:#ef4444;margin-inline-start:6px;vertical-align:middle;box-shadow:0 0 0 2px var(--color-surface)}[dir=rtl] .task-name-row{flex-direction:row-reverse}[dir=rtl] .task-name-row .task-name-meta{margin-inline-start:0;margin-inline-end:auto}.person-cell{display:flex;align-items:center;gap:8px}.person-name{font-weight:600;font-size:13px}.person-meta{font-size:12px;color:var(--color-muted)}.assignee-list{display:flex;flex-direction:column;gap:8px}.assignee-multi{display:grid;gap:6px;max-height:180px;overflow-y:auto;padding-block:4px}.assignee-option{display:flex;align-items:center;gap:8px;font-size:13px}.assignee-option input{margin:0}.assignee-avatar-stack{display:inline-flex;align-items:center;gap:6px;min-height:24px}.assignee-avatar-item{display:inline-flex;align-items:center;justify-content:center}.assignee-tooltip{position:relative}.assignee-tooltip:after{content:attr(data-tooltip);position:absolute;right:50%;bottom:calc(100% + 8px);transform:translate(50%);max-width:220px;padding:6px 10px;border-radius:8px;background:#0f172a;color:#f8fafc;font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap;box-shadow:0 10px 24px #0f172a3d;opacity:0;visibility:hidden;z-index:20;pointer-events:none}.assignee-tooltip:before{content:"";position:absolute;right:50%;bottom:calc(100% + 3px);transform:translate(50%);border:5px solid transparent;border-top-color:#0f172a;opacity:0;visibility:hidden;z-index:20;pointer-events:none}.assignee-tooltip:hover:after,.assignee-tooltip:hover:before,.assignee-tooltip:focus-visible:after,.assignee-tooltip:focus-visible:before{opacity:1;visibility:visible}.assignee-avatar-more{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#94a3b838;color:#475569;font-size:12px;font-weight:700}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.inline-select{padding-block:4px;min-height:32px;font-size:12px}.pill-button{background:transparent;border:none;padding:0;cursor:pointer}.pill-button:focus-visible{outline:2px solid rgba(37,99,235,.4);outline-offset:2px;border-radius:999px}.col-title{min-width:240px}.table-tasks .col-title{min-width:340px;width:36%}.table-tasks td.col-title,.table-tasks th.col-title{overflow:hidden}.col-select{width:28px;min-width:28px;max-width:28px;padding-inline:4px}.col-assignee,.col-created,.col-owner{min-width:180px}.table-tasks .col-assignee{min-width:104px;width:104px}.table-tasks .col-created{min-width:132px;width:132px}.col-status,.col-priority,.col-progress{min-width:140px}.table-tasks .col-status,.table-tasks .col-priority{min-width:118px;width:118px}.col-date,.col-variance{min-width:120px}.table-tasks .col-date{min-width:108px;width:108px}.col-frequency{min-width:100px}.quick-add-row input{width:100%}.quick-add-row td{padding:6px 10px!important;height:44px!important;vertical-align:middle}.quick-add-row{height:44px!important}.quick-add-row input{height:32px!important}.notes-toolbar{display:flex;justify-content:flex-start;margin-bottom:var(--space-2)}.table th.actions,.table td.actions{width:44px;min-width:44px;max-width:44px;white-space:nowrap;position:sticky;inset-inline-end:0;text-align:end;background:inherit!important;padding-inline:6px;z-index:3}.table th.actions{background:var(--color-surface-muted);z-index:3}.table td.actions{z-index:2}.table.table-kpi-approvals th.actions,.table.table-kpi-approvals td.actions{width:280px;min-width:280px;max-width:280px;position:static;inset-inline-end:auto;padding-inline:10px}.table tbody tr:nth-child(2n):not(.row-overdue) td.actions{background:#f8fafc}.table tbody tr:hover:not(.row-overdue) td.actions{background:#eef2ff}.group-row td.actions,.group-row td.sticky,.group-row td[style*="position: sticky"]{background:var(--color-surface-muted)!important;position:static}.row-overdue td.actions{background:#fff5f5}.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-2);opacity:0;pointer-events:none;transition:opacity .15s ease}.table tbody tr:hover .row-actions,.table tbody tr:focus-within .row-actions{opacity:1;pointer-events:auto}@media (hover: none){.row-actions{opacity:1;pointer-events:auto}}.tag{display:inline-block;padding:2px 8px;background:var(--color-surface-muted);border-radius:999px;font-size:12px;margin-inline-end:6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--color-surface-muted);color:var(--color-text);white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);font-size:12px;font-weight:600}.status-pill{display:inline-flex;align-items:center;height:28px;padding-inline:10px;border-radius:10px;font-size:13px;font-weight:700;letter-spacing:.2px;gap:8px;border:none;text-transform:uppercase}.status-pill__icon{width:16px;height:16px;border-radius:50%;background:#ffffff2e;border:2px solid rgba(255,255,255,.8);position:relative;flex:0 0 auto}.status-pill__label{text-transform:uppercase}.status-pill--neutral{background:#6b5b52;color:#fff}.status-pill--success{background:#3f7f5b;color:#fff}.status-pill--warning{background:#b56a2a;color:#fff}.status-pill--danger{background:#c23b3b;color:#fff}.status-pill--info{background:#2f6fed;color:#fff}.status-pill--success .status-pill__icon:after{content:"";position:absolute;width:7px;height:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg);top:5px;left:4px}.status-pill--info .status-pill__icon:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:2px solid #ffffff;border-radius:50%}.status-pill--warning .status-pill__icon:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:2px solid #ffffff;border-radius:50%;background:transparent}.status-pill--neutral .status-pill__icon{border-style:dotted}.status-pill--danger .status-pill__icon:after{content:"";position:absolute;width:7px;height:2px;background:#fff;top:6px;left:3px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#2563eb1f;color:var(--color-primary);font-weight:700;font-size:12px}.icon-button{width:36px;height:36px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.dropdown{position:relative}.dropdown-trigger{display:inline-flex;align-items:center}.dropdown-menu{position:fixed;min-width:160px;max-height:70vh;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;z-index:1200}.dropdown-item{width:100%;text-align:start;background:transparent;border:none;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.dropdown-item:hover{background:var(--color-surface-muted)}.dropdown-item.active{background:#2563eb1f;font-weight:600;position:relative}.dropdown-item.active:after{content:"✓";position:absolute;inset-inline-end:10px;color:var(--color-primary)}.dropdown-label{padding:6px 10px;font-size:11px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.dropdown-divider{height:1px;background:var(--color-border);margin:6px 4px}.badge-status-new{background:var(--color-info-bg);color:#0c4a6e}.badge-status-in_progress{background:var(--color-warning-bg);color:var(--color-warning)}.badge-status-done{background:var(--color-success-bg);color:var(--color-success)}.badge-status-blocked,.badge-priority-high{background:var(--color-danger-bg);color:var(--color-danger)}.badge-priority-medium{background:#e0e7ff;color:#3730a3}.badge-priority-low{background:#e2e8f0;color:#475569}.badge-overdue{background:var(--color-danger-bg);color:var(--color-danger)}.badge-kpi-green{background:#dcfce7;color:#166534;border:1px solid #86efac}.badge-kpi-yellow{background:#fef9c3;color:#92400e;border:1px solid #facc15}.badge-kpi-red{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.badge-actual-draft{background:#e2e8f0;color:#475569}.badge-actual-submitted{background:#e0f2fe;color:#0c4a6e}.badge-actual-approved{background:#dcfce7;color:#166534}.badge-actual-rejected{background:#fee2e2;color:#991b1b}.badge-locked{background:#f1f5f9;color:#475569;border:1px solid #cbd5f5}.row-overdue{background:#fff5f5}.progress{width:100%;height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.progress span{display:block;height:100%;background:var(--color-primary)}.progress--danger span{background:var(--color-danger)}.progress--success span{background:var(--color-success)}.progress-label{font-size:11px;color:var(--color-muted);margin-top:4px}.kpi-progress-block{margin-top:8px}.kpi-progress-block .progress-label{margin-top:0;margin-bottom:6px}.value-positive{color:var(--color-success);font-weight:600}.value-negative{color:var(--color-danger);font-weight:600}.value-neutral{color:var(--color-muted);font-weight:600}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.tabs{display:flex;gap:6px;flex-wrap:wrap;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.tab{padding:6px 12px;border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--color-muted)}.tab.active{background:var(--color-primary);color:var(--color-primary-contrast)}.muted{color:var(--color-muted);font-size:12px}.error-panel{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);text-align:center}.error-boundary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-md);max-width:520px;width:100%}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:1000}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:stretch;justify-content:flex-start;z-index:1000}.drawer{background:var(--color-surface);height:100%;border-inline-end:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);width:min(var(--drawer-width, 420px),90vw);max-width:90vw}.drawer-start{margin-inline-end:auto}.drawer-end{margin-inline-start:auto}@media (max-width: 768px){.drawer{width:100%!important;max-width:100%!important;border-radius:0}}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.drawer-header-main{display:flex;flex-direction:column;gap:4px}.drawer-header-title{font-size:18px;font-weight:700}.drawer-header-subtitle{font-size:12px;color:var(--color-muted)}.drawer-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.drawer-header-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.drawer-body{flex:1;overflow:auto;display:flex;flex-direction:column;gap:var(--space-3)}.modal{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-4);min-width:320px;max-width:540px;width:95%;border:1px solid var(--color-border);box-shadow:var(--shadow-md);max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.modal-body{display:flex;flex-direction:column;gap:12px;overflow:auto}.modal pre{background:#f7f7f7;border-radius:6px;padding:8px;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap}.form-row{display:flex;flex-direction:column;gap:var(--space-2)}.form-row label{font-size:13px;color:var(--color-text);text-align:start}.row-inline{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.row-inline>*{min-width:140px}.checkbox{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text)}.checkbox input{margin:0}.form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.toast-container{position:fixed;inset-block-start:var(--space-4);inset-inline-end:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:1200}.toast{padding:10px 12px;border-radius:var(--radius-md);color:#fff;font-size:14px;box-shadow:var(--shadow-sm)}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger)}.toast-info{background:var(--color-info)}.pagination{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-3)}.pagination-label{display:inline-flex;align-items:center;gap:6px}.pagination-arrow{font-size:12px}.toolbar-group{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.bulk-toolbar{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2)}.bulk-dropdown{display:flex;justify-content:flex-start;margin-bottom:var(--space-3)}.bulk-panel{margin-top:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:var(--shadow-sm)}.kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-3)}.kanban-column{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600}.kanban-column-body{display:flex;flex-direction:column;gap:var(--kanban-card-gap)}.kanban-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--kanban-card-padding);background:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-2);box-shadow:var(--shadow-sm)}.kanban-card-header{display:flex;align-items:center;justify-content:space-between;font-size:12px}.kanban-card-title{font-weight:600}.kanban-card-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--color-muted)}.kanban-card-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.task-detail{display:flex;flex-direction:column;gap:var(--space-3)}.task-drawer,.task-modal-layout{display:flex;gap:var(--space-4);align-items:stretch}.task-drawer-main,.task-modal-main{flex:1;display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.task-drawer-side,.task-modal-sidebar{width:280px;display:flex;flex-direction:column;gap:var(--space-2);min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-sm)}.task-modal-layout{display:grid;grid-template-columns:420px minmax(0,1fr);grid-template-areas:"side main";gap:var(--space-3)}.task-modal-center{grid-area:main;min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}.task-modal-side{grid-area:side;min-width:360px;display:flex;flex-direction:column}.task-modal-activity{min-width:380px;display:flex;flex-direction:column}.task-meta-list{display:flex;flex-direction:column;gap:8px}.task-meta-row{display:grid;grid-template-columns:20px auto 1fr;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);min-height:38px}.task-meta-icon{width:18px;height:18px;color:var(--color-muted)}.task-meta-label{font-size:12px;color:var(--color-muted);white-space:nowrap}.task-meta-value{display:flex;align-items:center;gap:var(--space-2);justify-content:flex-start;min-width:0}.task-description-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-2);aspect-ratio:2 / 1;width:100%;min-height:220px;max-height:520px;overflow:hidden}.task-description-header{font-size:12px;color:var(--color-muted);font-weight:600}.task-description-text{font-size:14px;line-height:1.7;white-space:pre-wrap;color:var(--color-text);flex:1;overflow:auto;padding:0!important;border:none!important;border-radius:0!important;background:transparent!important}.description-empty{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface-muted)}.task-no{font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}.task-title-input{font-size:16px;font-weight:600}.task-detail-header-title{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.task-sidebar-list{display:flex;flex-direction:column;gap:6px}.task-sidebar-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:36px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.task-sidebar-label{font-size:12px;color:var(--color-muted);white-space:nowrap}.task-sidebar-value{display:flex;align-items:center;gap:var(--space-2)}.activity-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.activity-panel--full{flex:1;min-height:0}.activity-panel-header{display:flex;align-items:center;justify-content:space-between}.activity-panel-body{display:flex;flex-direction:column;gap:var(--space-2);flex:1;overflow:auto;padding-bottom:var(--space-2)}.activity-list{display:flex;flex-direction:column;gap:var(--space-2)}.activity-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.activity-content{display:flex;flex-direction:column;gap:4px}.activity-text{font-size:13px}.activity-actor{font-weight:600}.activity-email{color:var(--color-muted)}.activity-meta{font-size:12px;color:var(--color-muted)}.count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--color-surface-muted);font-size:12px}.group-row td{background:transparent!important;border-bottom:none;padding:0!important}.group-spacer td{padding:0!important;height:18px;border:none!important;background:transparent!important}.group-spacer td:after{content:"";display:block;height:18px}.group-cell{padding:0 10px;margin:0!important}.group-cell-inner{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;height:38px;padding:6px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px}.group-left{display:flex;align-items:center;gap:8px;min-width:0;height:100%}.group-toggle{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;flex:0 0 auto;margin:0!important}.group-toggle .chevron{font-size:14px;color:var(--color-muted)}.group-add-button{padding:4px 10px;font-size:12px;white-space:nowrap;height:28px;opacity:1;z-index:1;margin:0!important}.group-count-label{font-size:12px;color:var(--color-muted)}.group-desc{font-size:12px}.group-load-more{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-2);padding-bottom:var(--space-2)}.summary-hint{margin-inline-start:6px;font-size:12px}.task-title-block{display:flex;flex-direction:column;gap:4px}.task-title-text{font-size:18px;font-weight:700}.task-title-meta{font-size:12px;color:var(--color-muted)}.task-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.task-field-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:44px}.task-field-label{font-size:12px;color:var(--color-muted)}.task-field-value{display:inline-flex;align-items:center;gap:8px;font-size:13px}.task-field-value .progress.compact{width:120px;height:4px}.person-cell.compact{gap:6px}.task-description{width:100%;min-height:0;height:100%;min-height:100%;flex:1;resize:none;border:none!important;border-radius:0!important;padding:0!important;font-family:var(--font-sans);background:transparent!important;overflow:auto}.task-description-card textarea{all:unset;width:100%;height:100%;overflow:auto;font:inherit;line-height:1.7;white-space:pre-wrap}.task-description-card textarea:focus{outline:none;box-shadow:none}.watchers-inline{margin-top:0;display:flex;flex-direction:column;gap:var(--space-2)}.watchers-title{font-size:12px;color:var(--color-muted)}.watcher-chip{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 8px;background:var(--color-surface);font-size:12px}.inline-form{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.side-panel-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.side-tabs{display:flex;gap:6px}.side-tab{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;padding:6px 10px;border-radius:999px;font-size:12px;color:var(--color-muted);cursor:pointer}.side-tab.active{background:#2563eb1f;color:var(--color-primary);font-weight:600}.side-tab .unread-dot{width:7px;height:7px;margin:0;box-shadow:none}.side-panel-body{flex:1;display:flex;flex-direction:column;gap:var(--space-2);overflow:auto;padding-bottom:var(--space-2)}.comment-composer{position:sticky;bottom:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.empty-state{text-align:center;color:var(--color-muted);display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-3) var(--space-2)}.kpi-page .empty-state{padding:var(--space-4)}.empty-state-icon{font-size:22px}.collapsible{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface)}.collapsible summary{cursor:pointer;font-weight:600;font-size:13px;list-style:none}.collapsible summary::-webkit-details-marker{display:none}.collapsible summary:after{content:"▾";margin-inline-start:8px;color:var(--color-muted)}.collapsible[open] summary:after{content:"▴"}.section-title{font-weight:600;margin-bottom:var(--space-2)}@media (max-width: 960px){.task-drawer{flex-direction:column}.task-drawer-side{width:100%}.task-modal-layout{grid-template-columns:1fr}.task-modal-sidebar,.task-modal-side,.task-modal-activity{min-width:100%}}.task-detail-modal,.kpi-detail-modal{width:min(1280px,92vw);height:88vh;max-width:92vw;max-height:88vh;padding:0;gap:0;display:flex;flex-direction:column;overflow:hidden}.kpi-filters-modal{width:min(520px,92vw);max-width:92vw;max-height:90vh}.kpi-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"main side";gap:var(--space-3);align-items:start;width:100%}.kpi-detail-main{grid-area:main;display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.kpi-detail-side{grid-area:side;width:360px;display:flex;flex-direction:column;gap:var(--space-2);min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-sm);position:static}[dir=rtl] .kpi-detail-layout{grid-template-columns:360px minmax(0,1fr);grid-template-areas:"side main"}@media (max-width: 960px){.kpi-detail-layout{grid-template-columns:1fr;grid-template-areas:"main" "side"}[dir=rtl] .kpi-detail-layout{grid-template-areas:"main" "side"}.kpi-detail-side{width:100%;position:static;max-height:none}}.chip-row{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.task-detail-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap}.kpi-detail-header-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.task-detail-header-main{display:flex;flex-direction:column;gap:4px}.task-detail-header-title{font-size:16px;font-weight:600}.task-detail-header-subtitle{font-size:12px;color:var(--color-muted)}.task-detail-header-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.kpi-detail-modal .task-detail-header-actions .button{height:36px;padding:6px 12px}.task-detail-body{flex:1;overflow:auto;padding:var(--space-4)}.kpi-detail-modal .task-detail-body{padding:var(--space-3)}.kpi-tabs{display:flex;width:100%;align-items:center;gap:6px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.kpi-tabs .tab{border:none;background:transparent;padding:6px 12px;border-radius:var(--radius-sm);font-size:13px;color:var(--color-muted);cursor:pointer}.kpi-tabs .tab.active{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-weight:600}.kpi-table-scroll{width:100%;overflow-x:auto}.kpi-table-scroll .table{min-width:720px;table-layout:auto}.kpi-table-scroll .table th,.kpi-table-scroll .table td{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kpi-table-scroll .table th.kpi-actual-actions,.kpi-table-scroll .table td.kpi-actual-actions{position:static;inset-inline-end:auto;width:auto;min-width:320px;max-width:none;white-space:nowrap;text-overflow:clip;overflow:visible;padding-inline:10px}.kpi-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.collapsible-title{font-weight:600;font-size:13px}.collapsible-hint{font-size:12px;color:var(--color-muted)}.form-grid{display:grid;gap:var(--space-2) var(--space-3)}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 720px){.form-grid-2{grid-template-columns:1fr}}@media (max-width: 980px){.form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.form-grid-3{grid-template-columns:1fr}}@media (max-width: 960px){.admin-page{padding:var(--space-3)}.page-header{align-items:flex-start}.page-title{font-size:20px}.input,.select{min-width:0}.admin-toolbar .input,.admin-toolbar .select,.admin-toolbar .button,.toolbar-search,.kpi-toolbar .toolbar-search,.tag-select,.tag-select--wide,.task-date-input{width:100%;max-width:100%}.toolbar-layout,.toolbar-section,.toolbar-right,.toolbar-center,.toolbar-left,[dir=rtl] .toolbar-right,[dir=rtl] .toolbar-left,[dir=rtl] .kpi-toolbar .toolbar-right,[dir=rtl] .kpi-toolbar .toolbar-left{justify-content:flex-start}.row-inline>*{min-width:0;flex:1 1 100%}.inline-form>.input,.inline-form>.select,.inline-form>.button{width:100%;min-width:0}.table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.table:not(.table-tasks):not(.table-kpis){display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table:not(.table-tasks):not(.table-kpis) th,.table:not(.table-tasks):not(.table-kpis) td{white-space:nowrap}.pagination{justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.toast-container{inset-inline:var(--space-3);inset-block-start:var(--space-3)}.toast{width:100%}}@media (max-width: 720px){.modal-backdrop{align-items:flex-end}.modal{width:100%;max-width:100%;min-width:0;max-height:92dvh;border-radius:16px 16px 0 0;margin:0;padding:var(--space-3)}.task-detail-modal,.kpi-detail-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.task-detail-header,.task-detail-body{padding:var(--space-3)}.form-actions{position:sticky;bottom:0;z-index:2;background:var(--color-surface);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.task-field-grid{grid-template-columns:1fr}.task-description-card{min-height:180px;aspect-ratio:auto}.kpi-tabs{overflow-x:auto;flex-wrap:nowrap}.kpi-tabs .tab{white-space:nowrap}}.kpi-child-row .select{min-width:220px}.kpi-child-row .input{min-width:120px}.kpi-cascade-actions{justify-content:flex-start}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.detail-item{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.detail-label{font-size:12px;color:var(--color-muted)}.detail-section{display:flex;flex-direction:column;gap:var(--space-2)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:12px;font-weight:600}.comment-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-2)}.comment-body{white-space:pre-wrap;word-break:break-word;line-height:1.6}.comment-meta{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:11px;color:var(--color-muted)}.comment-meta-name,.comment-meta-time{font-size:11px;line-height:1.4}.comment-form{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.comment-form--composer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;width:100%}.mention-input-wrap{position:relative;flex:1;min-width:220px;width:100%}.comment-mention-input-wrap{min-width:0;width:auto}.comment-textarea{min-height:42px;max-height:none;line-height:1.5;overflow-y:hidden}@media (max-width: 640px){.comment-form--composer{grid-template-columns:1fr;align-items:stretch}}.mention-list{position:absolute;top:calc(100% + 6px);inset-inline-start:0;width:min(320px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;max-height:220px;overflow:auto}.mention-item{width:100%;border:none;background:transparent;text-align:start;padding:8px 10px;display:flex;flex-direction:column;gap:2px;cursor:pointer}.mention-item:hover{background:var(--color-surface-muted)}.mention-name{font-size:12px;font-weight:600}.mention-email{font-size:11px;color:var(--color-muted)}.quick-add-fields{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.checklist-item{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface)}.checklist-actions{margin-inline-start:auto;display:flex;gap:var(--space-2)}.watcher-item,.dependency-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface)}@media (max-width: 960px){.task-detail-modal,.kpi-detail-modal{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.task-detail-modal .task-detail-header,.task-detail-modal .task-detail-body{min-width:1120px}.task-detail-modal .task-modal-layout{grid-template-columns:420px minmax(640px,1fr);grid-template-areas:"side main";min-width:1080px}.task-detail-modal .task-modal-side{min-width:360px}.kpi-detail-modal .task-detail-header,.kpi-detail-modal .task-detail-body{min-width:1080px}.kpi-detail-modal .kpi-detail-layout{grid-template-columns:minmax(640px,1fr) 360px;grid-template-areas:"main side";min-width:1020px}[dir=rtl] .kpi-detail-modal .kpi-detail-layout{grid-template-columns:360px minmax(640px,1fr);grid-template-areas:"side main"}.kpi-detail-modal .kpi-detail-side{width:360px}}@media (max-width: 720px){.task-detail-modal .task-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.timeline{display:flex;flex-direction:column;gap:var(--space-3);position:relative;padding-inline-start:var(--space-4)}.timeline:before{content:"";position:absolute;inset-inline-start:10px;inset-block:0;width:2px;background:var(--color-border)}.timeline-item{display:flex;align-items:flex-start;gap:var(--space-3);position:relative}.timeline-dot{width:10px;height:10px;border-radius:999px;background:var(--color-primary);margin-top:6px;flex:0 0 10px}.timeline-content{display:flex;flex-direction:column;gap:4px}.timeline-title{font-weight:600}.timeline-meta{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--color-muted);flex-wrap:wrap}.group-right{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;height:100%}.group-cell *{line-height:1.2}.status-pill{display:inline-flex;align-items:center;height:26px;padding-inline:10px;border-radius:10px;font-size:12px;font-weight:700;gap:8px;line-height:1;border:none!important;text-transform:none;color:#fff!important}.status-pill__icon{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:#ffffff2e}.status-pill{height:24px!important;padding-inline:8px!important;border-radius:9px!important;font-size:11.5px!important;gap:6px!important;line-height:1!important}.status-pill__label{line-height:1!important;padding:0!important;margin:0!important}.status-pill__icon{width:12px!important;height:12px!important;border-width:2px!important}.status-pill *{max-height:24px!important}.status-pill--success{background:#2a9764;color:#fff!important}.status-pill--info{background:#0a80e9;color:#fff!important}.status-pill--warning{background:#ffa629;color:#fff!important}.status-pill--danger{background:#c62a2f;color:#fff!important}.status-pill--neutral{background:#6b7280;color:#fff!important}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.dashboard-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface);text-align:start;box-shadow:var(--shadow-sm)}.dashboard-card-title{font-size:12px;color:var(--color-muted)}.dashboard-card-value{font-size:22px;font-weight:600;margin-top:4px}.dashboard-section{margin-top:var(--space-5);text-align:start}.dashboard-section h2{margin:0 0 var(--space-2);font-size:17px}.dashboard-table{margin-top:8px}.dashboard-empty{padding:8px 0;color:var(--color-muted);font-size:12px}.dashboard-filters{gap:var(--space-2);justify-content:flex-start}.dashboard-filter-group{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.dashboard-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);margin-top:var(--space-3)}.chart-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface);box-shadow:var(--shadow-sm)}.chart-title{font-size:13px;font-weight:600;margin-bottom:var(--space-2)}.chart-svg{width:100%;overflow:hidden}@media (max-width: 900px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.dashboard-charts{grid-template-columns:1fr}.dashboard-filter-group{width:100%}.dashboard-filter-group .input,.dashboard-filter-group .select,.dashboard-filter-group .button{width:100%;min-width:0}.dashboard-section .table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-section .table th,.dashboard-section .table td{white-space:nowrap}}@media (max-width: 640px){.dashboard-grid{grid-template-columns:1fr}.dashboard-card{padding:var(--space-3)}.dashboard-card-value{font-size:20px}}.files-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.files-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px}.table th.files-date,.table td.files-date{text-align:right}.link-button{background:none;border:none;padding:0;color:#1f5fbf;text-decoration:underline;cursor:pointer;font:inherit}.link-button:hover{color:#174b95}.attachment-panel{display:flex;flex-direction:column;gap:12px}.file-upload-row{display:flex;gap:8px;align-items:center}.file-upload-row .input[type=file]{padding:6px}.attachment-list{display:flex;flex-direction:column;gap:10px}.attachment-item{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#f5f7fb}.attachment-meta{display:flex;flex-direction:column;gap:4px}.attachment-name{font-weight:600}.attachment-sub{font-size:12px;color:#6b7280}.attachment-actions{display:flex;gap:8px;align-items:center}@media (max-width: 900px){.files-toolbar{flex-direction:column;align-items:stretch}.files-toolbar .input,.files-toolbar .button{width:100%;min-width:0}.attachment-item{flex-direction:column;align-items:flex-start}}.crm-page{display:flex;flex-direction:column;gap:var(--space-4)}.crm-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.crm-toolbar .input{min-width:220px}.crm-toolbar .select{min-width:180px}.crm-board{display:flex;gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-2)}.crm-column{min-width:260px;max-width:320px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.crm-column-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--color-border)}.crm-column-title{font-weight:600;font-size:14px}.crm-column-meta{font-size:12px;color:var(--color-muted)}.crm-column-body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-bg);border-radius:0 0 var(--radius-md) var(--radius-md);min-height:80px;transition:background-color .15s ease,box-shadow .15s ease}.crm-column-body-drop-target{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 45%,transparent)}.crm-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:6px}.crm-card-clickable{cursor:pointer}.crm-card-clickable:hover{border-color:var(--color-primary)}.crm-card-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.crm-card-dragging{opacity:.55}.crm-card-title{font-weight:600;font-size:14px}.crm-card-meta{font-size:12px;color:var(--color-muted);display:flex;flex-wrap:wrap;gap:4px 8px}.crm-card-actions{display:flex;align-items:center;gap:var(--space-2)}.crm-card-actions .select{flex:1;min-width:120px}.crm-kpi{font-size:12px;color:var(--color-muted)}.crm-inline-form{display:flex;flex-direction:column;gap:var(--space-3)}.crm-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.crm-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.crm-section{display:flex;flex-direction:column;gap:var(--space-3)}.crm-activity-list{display:flex;flex-direction:column;gap:var(--space-2)}.crm-activity-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:4px}.crm-activity-meta{display:flex;justify-content:space-between;gap:var(--space-2);font-size:12px;color:var(--color-muted)}.crm-activity-composer{display:flex;flex-direction:column;gap:var(--space-2)}.crm-card-muted{font-size:12px;color:var(--color-muted)}.crm-record-body{display:flex;flex-direction:column;gap:var(--space-3)}.crm-record-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px}.crm-record-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.crm-record-column{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}@media (max-width: 960px){.crm-record-columns{grid-template-columns:1fr}}.crm-ticket-badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.crm-ticket-chip-link{text-decoration:none}.crm-ticket-tabs{margin-bottom:var(--space-2)}.crm-ticket-layout{gap:var(--space-3)}.crm-ticket-main{display:flex;flex-direction:column;gap:var(--space-3)}.crm-ticket-detail-modal{width:min(1180px,92vw);height:88vh;max-height:88vh}.crm-ticket-header-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:18px;font-weight:700}.crm-ticket-header-title-line .task-no{font-size:17px}.crm-ticket-side{height:fit-content}.crm-ticket-side .task-field-value{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;flex-wrap:wrap}.crm-ticket-side .button{height:32px;padding:6px 10px}.crm-required{color:var(--color-danger);font-weight:700}.crm-field-error{font-size:12px;color:var(--color-danger)}.crm-ticket-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2361738A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;background-size:12px;padding-inline-start:32px}.crm-ticket-select.ltr{background-position:right 12px center;padding-inline-start:12px;padding-inline-end:32px}.crm-priority-segment{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.crm-priority-option{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);height:36px;cursor:pointer;font-size:13px}.crm-priority-option.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));color:var(--color-text);font-weight:700}.crm-priority-option:disabled{opacity:.7;cursor:not-allowed}.crm-priority-badge{font-weight:700}.crm-priority-low{background:color-mix(in srgb,#2a7d4f 16%,var(--color-surface))}.crm-priority-medium{background:color-mix(in srgb,#b78300 16%,var(--color-surface))}.crm-priority-high{background:color-mix(in srgb,#c05b00 16%,var(--color-surface))}.crm-priority-urgent{background:color-mix(in srgb,#bd2020 16%,var(--color-surface))}.crm-ticket-activities{display:flex;flex-direction:column;gap:var(--space-3)}.crm-activity-filter{display:flex;flex-wrap:wrap;gap:8px}.crm-activity-filter .chip{cursor:pointer}.crm-activity-filter .chip.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));color:var(--color-text)}.crm-activity-composer-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-2)}.crm-activity-type-toggle{width:fit-content}.crm-activity-type{font-size:12px}.crm-activity-type--note{background:color-mix(in srgb,#2f6fed 12%,var(--color-surface))}.crm-activity-type--comment{background:color-mix(in srgb,#7348d9 14%,var(--color-surface))}.crm-ticket-footer{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--color-border);background:var(--color-surface)}@media (max-width: 960px){.crm-toolbar .input,.crm-toolbar .select,.crm-toolbar .button{width:100%;min-width:0}.crm-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.crm-column{min-width:min(84vw,340px);max-width:min(84vw,340px);scroll-snap-align:start}}@media (max-width: 720px){.crm-column{min-width:92vw;max-width:92vw}.crm-ticket-detail-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.crm-ticket-header-title-line{font-size:16px;line-height:1.35}.crm-ticket-header-title-line .task-no{font-size:15px}.crm-ticket-tabs{overflow-x:auto;flex-wrap:nowrap}.crm-ticket-tabs .tab{white-space:nowrap}.crm-activity-filter{flex-wrap:nowrap;overflow-x:auto}.crm-activity-filter .chip{white-space:nowrap}.crm-priority-segment{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-ticket-footer{flex-wrap:wrap;padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.crm-ticket-footer .button{flex:1 1 calc(50% - 4px)}}.okr-page{display:flex;flex-direction:column;gap:var(--space-4)}.okr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.okr-toolbar .input{min-width:240px}.okr-toolbar .select{min-width:180px}.okr-tabs{width:fit-content}.okr-section{display:flex;flex-direction:column;gap:var(--space-3)}.okr-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.okr-section-header h3{margin:0;font-size:20px}.okr-header-actions{display:flex;align-items:center;gap:var(--space-2)}.okr-badge{font-weight:700}.okr-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.okr-form-span-2{grid-column:1 / -1}.okr-goal-group{display:flex;flex-direction:column;gap:var(--space-2)}.okr-goal-group-title{font-size:16px;font-weight:700}.okr-status{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:var(--color-surface)}.okr-status-success{border-color:color-mix(in srgb,#2a7d4f 35%,var(--color-border));background:color-mix(in srgb,#2a7d4f 14%,var(--color-surface))}.okr-status-warning{border-color:color-mix(in srgb,#b78300 35%,var(--color-border));background:color-mix(in srgb,#b78300 14%,var(--color-surface))}.okr-status-danger{border-color:color-mix(in srgb,#bd2020 35%,var(--color-border));background:color-mix(in srgb,#bd2020 14%,var(--color-surface))}.okr-link-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:320px;overflow-y:auto;padding-inline-end:4px}.okr-link-item{display:flex;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--color-surface)}@media (max-width: 960px){.okr-toolbar .input,.okr-toolbar .select,.okr-toolbar .button{width:100%;min-width:0}.okr-form-grid{grid-template-columns:1fr}.okr-form-span-2{grid-column:auto}.okr-section-header{flex-direction:column;align-items:stretch}.okr-tabs{width:100%;overflow-x:auto}}
