@charset "UTF-8";@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/outfit/outfit-latin-wght-normal.woff2) format("woff2")}:root{--color-primary-50: #ecf3ff;--color-primary-100: #dde9ff;--color-primary-200: #c2d6ff;--color-primary-300: #9cb9ff;--color-primary-400: #7592ff;--color-primary-500: #465fff;--color-primary-600: #3641f5;--color-primary-700: #2a31d8;--color-primary-800: #252dae;--color-primary-900: #262e89;--color-success: #027a48;--color-success-bg: #ecfdf3;--color-warning: #b54708;--color-warning-bg: #fffaeb;--color-danger: #b42318;--color-danger-bg: #fef3f2;--color-info: #026aa2;--color-info-bg: #f0f9ff;--color-neutral: #667085;--color-neutral-bg: #f2f4f7;--color-bg: #f9fafb;--color-surface: #ffffff;--color-border: #e4e7ec;--color-text: #101828;--color-text-muted: #667085;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--color-text-secondary: #475467;--color-border-strong: #98a2b3;--color-link: #3641f5;--color-action: #3641f5;--color-action-hover: #2a31d8;--color-danger-border: #fecdca;--color-danger-hover: #fee4e2;--color-shimmer: #e9edf3;color-scheme:light;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--font-sans: "Outfit", sans-serif;--sidebar-width: 264px;--topbar-height: 80px}:root[data-theme=dark]{--color-primary-50: #202d48;--color-primary-100: #253656;--color-primary-200: #354d76;--color-primary-300: #7f9cda;--color-primary-400: #8fa7ff;--color-primary-500: #8093ff;--color-primary-600: #465fff;--color-primary-700: #a8b6ff;--color-primary-800: #c2ccff;--color-primary-900: #e0e6ff;--color-success: #75dcb0;--color-success-bg: #183b31;--color-warning: #f4c979;--color-warning-bg: #3b3021;--color-danger: #fda49b;--color-danger-bg: #402829;--color-info: #89c9f1;--color-info-bg: #203748;--color-neutral: #a8b3c4;--color-neutral-bg: #242f40;--color-bg: #101828;--color-surface: #182230;--color-border: #303c4e;--color-border-strong: #718096;--color-text: #f2f4f7;--color-text-muted: #a8b3c4;--color-text-secondary: #d0d5dd;--color-link: #a8b6ff;--color-action: #465fff;--color-action-hover: #3641f5;--color-danger-border: #764342;--color-danger-hover: #513032;--color-shimmer: #344054;--shadow-sm: 0 1px 2px rgb(0 0 0 / 15%);--shadow-md: 0 4px 12px rgb(0 0 0 / 20%);--shadow-lg: 0 12px 32px rgb(0 0 0 / 30%);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-optical-sizing:auto;font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0 0 .25rem;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:var(--radius-sm);padding:.65rem 1rem;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px}.btn-primary{background:var(--color-action);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-action-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-50);border-color:var(--color-primary-200)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-neutral-bg);color:var(--color-text)}.btn-sm{padding:.3rem .65rem;font-size:.8125rem}.btn-icon{padding:.5rem;border-radius:var(--radius-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none}.card-body{padding:1.25rem}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.field label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}.field .hint{font-size:.75rem;color:var(--color-text-muted)}.field .error{font-size:.75rem;color:var(--color-danger)}input,select,textarea{font-family:inherit;font-size:.875rem;padding:.65rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary-400);box-shadow:0 0 0 3px var(--color-primary-100)}input.invalid,select.invalid,textarea.invalid,input.ng-invalid.ng-touched,select.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:var(--color-danger)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface)}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{text-align:left;font-size:.75rem;font-weight:500;letter-spacing:0;color:var(--color-text-muted);padding:1rem 1.25rem;background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap}tbody td{padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer;transition:background-color .1s ease}tbody tr.clickable:hover{background:var(--color-primary-50)}.kanban-board{display:flex;gap:1rem;align-items:flex-start;overflow-x:auto;padding-bottom:.25rem}.kanban-column{flex:1 1 260px;min-width:260px;max-width:340px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;max-height:100%}.kanban-column-header{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0;font-size:.8125rem;font-weight:700}.kanban-count{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.6875rem;font-weight:700;border-radius:999px;padding:.05rem .5rem;margin-left:auto}.kanban-column-body{flex:1;min-height:0;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.65rem}.kanban-empty{font-size:.75rem;color:var(--color-text-muted);text-align:center;padding:1.5rem .5rem}.kanban-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.75rem .85rem;display:flex;flex-direction:column;gap:.4rem;font-size:.8125rem}.kanban-card.tone-danger{border-left-color:var(--color-danger)}.kanban-card.tone-warning{border-left-color:var(--color-warning)}.kanban-card.tone-info{border-left-color:var(--color-info)}.kanban-card.tone-primary{border-left-color:var(--color-primary-600)}.kanban-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;font-weight:700}.kanban-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;color:var(--color-text-muted);font-size:.75rem}.kanban-card-notes{font-size:.75rem;color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-sm);padding:.4rem .55rem;white-space:pre-wrap}.kanban-card-assign select{font-size:.75rem;padding:.3rem .5rem}.kanban-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.dropdown-menu{position:absolute;top:calc(100% + .4rem);right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;display:flex;flex-direction:column;padding:.4rem;z-index:50;animation:fade-in .1s ease}.dropdown-menu a,.dropdown-menu button{display:block;width:100%;text-align:left;padding:.55rem .7rem;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--color-text);font-family:inherit;white-space:normal}.dropdown-menu a:hover,.dropdown-menu button:hover{background:var(--color-neutral-bg);text-decoration:none}.dropdown-menu a:disabled,.dropdown-menu button:disabled{opacity:.5;cursor:not-allowed}.dropdown-menu .danger{color:var(--color-danger)}.dropdown-menu .danger:hover{background:var(--color-danger-bg)}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;align-items:center;gap:.75rem}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.spacer{flex:1}.text-muted{color:var(--color-text-muted)}.spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block}.spinner-dark{border-color:var(--color-border);border-top-color:var(--color-primary-600)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--color-neutral-bg) 25%,var(--color-shimmer) 37%,var(--color-neutral-bg) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}::selection{background:var(--color-primary-200)}@media print{:root,:root[data-theme=dark]{--color-primary-50: #ecf3ff;--color-primary-100: #dde9ff;--color-primary-200: #c2d6ff;--color-primary-300: #9cb9ff;--color-primary-400: #7592ff;--color-primary-500: #465fff;--color-primary-600: #3641f5;--color-primary-700: #2a31d8;--color-primary-800: #252dae;--color-primary-900: #262e89;--color-success: #027a48;--color-success-bg: #ecfdf3;--color-warning: #b54708;--color-warning-bg: #fffaeb;--color-danger: #b42318;--color-danger-bg: #fef3f2;--color-info: #026aa2;--color-info-bg: #f0f9ff;--color-neutral: #667085;--color-neutral-bg: #f2f4f7;--color-bg: #f9fafb;--color-surface: #ffffff;--color-border: #e4e7ec;--color-text: #101828;--color-text-muted: #667085;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--color-text-secondary: #475467;--color-border-strong: #98a2b3;--color-link: #3641f5;--color-action: #3641f5;--color-action-hover: #2a31d8;--color-danger-border: #fecdca;--color-danger-hover: #fee4e2;--color-shimmer: #e9edf3;color-scheme:light}.sidebar,.topbar,.scrim{display:none!important}.shell,.main,.content{display:block!important;height:auto!important;overflow:visible!important;padding:0!important;margin:0!important}.no-print{display:none!important}}button{font-family:inherit}a.btn:hover{text-decoration:none}:where(a,button,[tabindex]):focus-visible{outline:3px solid var(--color-primary-300);outline-offset:3px}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--color-primary-600)}input:disabled,select:disabled,textarea:disabled{background:var(--color-neutral-bg);cursor:not-allowed}.card>.table-wrap{border-inline:0;border-bottom:0;border-radius:0 0 var(--radius-md) var(--radius-md)}.card-header h3{font-size:1rem}@media (max-width: 600px){.card-body,.card-header{padding:1rem}.form-grid{grid-template-columns:minmax(0,1fr)}.form-actions{flex-wrap:wrap}.card .card-body.filters>input,.card .card-body.filters>select,.card .card-body.filters>.client-search{width:100%;min-width:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.input-with-action{display:flex;gap:.4rem;align-items:stretch}.input-with-action>input{flex:1;min-width:0}
