*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#172033;font:14px Inter,ui-sans-serif,system-ui,sans-serif}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.nav{background:#10233f;color:#eaf1fb;padding:24px 16px}.brand{font-weight:800;font-size:20px;letter-spacing:.06em;margin:0 10px 30px}.nav a{display:block;padding:10px;border-radius:7px;color:#c8d5e6}.nav a:hover{background:#1d385e;color:white}.main{padding:32px;max-width:1500px;width:100%;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title{font-size:26px;font-weight:750;margin:0}.muted{color:#667085}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.card{background:#fff;border:1px solid #e6eaf0;border-radius:12px;padding:18px;box-shadow:0 1px 2px #10182808}.metric{font-size:26px;font-weight:750;margin-top:8px}.table{width:100%;border-collapse:collapse;background:white;border:1px solid #e6eaf0;border-radius:12px;overflow:hidden}.table td,.table th{text-align:left;padding:12px;border-bottom:1px solid #eef1f5}.table th{font-size:12px;text-transform:uppercase;color:#667085}.badge{display:inline-block;border-radius:999px;background:#e8f0ff;color:#1f4d9c;padding:4px 8px;font-size:12px}.badge,.button{font-weight:650}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:#1d5bbf;color:white;padding:9px 13px;cursor:pointer}.button:disabled{cursor:not-allowed;opacity:.65}.button.secondary{background:#edf2fa;color:#253552}.button.danger{background:#fff1f0;border:1px solid #f1b5b0;color:#b42318}.button.danger:hover{background:#b42318;color:#fff}.delete-entity-action{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.delete-entity-action .error{font-size:12px;margin:0}.login{max-width:390px;margin:12vh auto}.login h1{margin-bottom:8px}input,select,textarea{width:100%;padding:10px;border:1px solid #d5dce8;border-radius:7px;font:inherit;margin-top:5px}label{display:block;margin:13px 0 4px;font-weight:600}.error{color:#b42318;margin-top:12px}.kanban{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));grid-gap:14px;gap:14px;overflow:auto;padding-bottom:12px}.kanban-column{background:#eef2f7;border-radius:10px;padding:10px;min-height:480px}.kanban-column h2{font-size:12px;margin:4px 4px 12px;color:#526174}.kanban-column .card{margin-bottom:10px;padding:12px}.kanban-column .card p{margin:7px 0}.kanban-column small{color:#667085}.task-board{display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));grid-gap:14px;gap:14px;overflow:auto;padding-bottom:12px}.task-group{background:#eef2f7;border-radius:10px;padding:10px;min-height:420px}.task-group h2{font-size:12px;margin:4px 4px 12px;color:#526174}.task-card{margin-bottom:10px;padding:12px;cursor:-webkit-grab;cursor:grab}.task-card p{margin:7px 0}.issues-heading{margin-bottom:18px}.issues-heading .muted{margin:6px 0 0}.issue-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr));grid-gap:8px 12px;gap:8px 12px;padding:14px;margin-bottom:14px}.issue-filters label{margin:0;font-size:12px;color:#526174}.issue-filters input,.issue-filters select{margin-top:4px}.filter-actions{display:flex;align-items:flex-end;gap:8px}.list-summary{display:flex;justify-content:flex-end;color:#667085;margin:8px 2px}.table-wrap{overflow:auto;border-radius:12px}.issues-table{min-width:1100px}.issues-table tbody tr:hover{background:#f8faff}.issues-table td:nth-child(2){min-width:240px}.priority{font-weight:650}.priority-1{color:#b42318}.priority-2{color:#c2410c}.empty-state,.priority-4,.priority-5{color:#667085}.empty-state{text-align:center!important;padding:36px!important}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:#10233f99;display:grid;place-items:center;padding:24px}.modal{background:white;border-radius:14px;width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 80px #10233f55}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #e6eaf0;padding:20px 24px}.modal-header h2{margin:0;font-size:21px}.modal-header p{margin:5px 0 0}.icon-button{border:0;background:transparent;font-size:28px;line-height:1;color:#667085;cursor:pointer}.issue-create-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 16px;gap:0 16px;padding:8px 24px 24px}.issue-create-form .wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.issue-tree-key{align-items:center;display:flex;gap:6px;min-width:max-content}.issue-tree-toggle,.issue-tree-toggle-placeholder{flex:0 0 22px;height:22px;width:22px}.issue-tree-toggle{align-items:center;background:#fff;border:1px solid #b8c4d6;border-radius:5px;color:#1d5bbf;cursor:pointer;display:inline-flex;font-size:16px;font-weight:800;justify-content:center;line-height:1;padding:0}.issue-tree-toggle:hover{background:#e8f0ff;border-color:#6b8fc9}.issue-tree-toggle:focus-visible{outline:2px solid #1d5bbf;outline-offset:2px}.issue-tree-branch{color:#7c8ba1;font-size:16px;line-height:1}.issue-subtask-row{background:#fafbfc}@media(max-width:1100px){.issue-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:800px){.shell{grid-template-columns:1fr}.nav{display:flex;gap:4px;overflow:auto;padding:12px}.brand{margin:5px 12px 0}.nav a{white-space:nowrap}.main{padding:18px}.grid{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(5,220px)}.task-board{grid-template-columns:repeat(5,190px)}.issue-filters{grid-template-columns:1fr}.issues-heading{align-items:flex-start}.issue-create-form{grid-template-columns:1fr}.issue-create-form .wide{grid-column:auto}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px)}}.search-issue-results{margin-top:18px}.search-issue-row{align-items:center;border-top:1px solid #eef1f5;display:flex;gap:7px;min-height:44px;padding-bottom:8px;padding-right:6px;padding-top:8px}.search-issue-row.issue-subtask-row{background:#fafbfc}.search-issue-row>span:last-child{min-width:0}.search-issue-row>a{font-weight:700}.pagination{align-items:center;display:flex;gap:12px;justify-content:flex-end;margin:14px 0 4px}.pagination>span:not(.button){color:#667085}.pagination-disabled{cursor:not-allowed;opacity:.55}:root{--calendar-vacation-pending-bg:#f1f6ff;--calendar-vacation-pending-border:#9cbff5;--calendar-vacation-pending-text:#4d6f9f;--calendar-vacation-approved-bg:#bfd7ff;--calendar-vacation-approved-border:#2563eb;--calendar-vacation-approved-text:#123e7c;--calendar-absence-bg:#fff0d6;--calendar-absence-border:#d97706;--calendar-absence-text:#8a4b00;--calendar-holiday-bg:#ffe2e2;--calendar-holiday-border:#dc2626;--calendar-holiday-text:#991b1b;--calendar-weekend-bg:#edf0f4;--calendar-weekend-border:#94a3b8;--calendar-weekend-text:#475569}.calendar-color-legend{align-items:center;display:flex;flex-wrap:wrap;gap:7px 14px;margin:10px 0 12px}.calendar-color-legend>span{align-items:center;color:#526174;display:inline-flex;font-size:11px;font-weight:700;gap:6px}.calendar-color-swatch{border:1px solid;border-radius:4px;display:inline-block;height:14px;width:20px}.calendar-color-swatch.vacation-pending,.calendar-type-vacation-pending{background:var(--calendar-vacation-pending-bg);border-color:var(--calendar-vacation-pending-border);color:var(--calendar-vacation-pending-text)}.calendar-color-swatch.vacation-approved,.calendar-type-vacation,.calendar-type-vacation-approved{background:var(--calendar-vacation-approved-bg);border-color:var(--calendar-vacation-approved-border);color:var(--calendar-vacation-approved-text)}.calendar-color-swatch.absence,.calendar-type-absence{background:var(--calendar-absence-bg);border-color:var(--calendar-absence-border);color:var(--calendar-absence-text)}.calendar-color-swatch.holiday,.calendar-type-holiday{background:var(--calendar-holiday-bg);border-color:var(--calendar-holiday-border);color:var(--calendar-holiday-text)}.calendar-color-swatch.weekend,.calendar-type-weekend{background:var(--calendar-weekend-bg);border-color:var(--calendar-weekend-border);color:var(--calendar-weekend-text)}