.route-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3, .75rem);min-height:40vh;padding:var(--space-6, 2rem) var(--space-4, 1rem);text-align:center}.route-error--page{min-height:100vh}.route-error__title{margin:0;font-size:1.25rem}.route-error__message{margin:0;max-width:36rem;color:var(--text-secondary, inherit)}.route-error__details{max-width:36rem;font-size:.85rem;color:var(--text-secondary, inherit)}.route-error__details pre{white-space:pre-wrap;word-break:break-word;text-align:left}.navigation-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;overflow:hidden;pointer-events:none}.navigation-progress__bar{height:100%;width:40%;background:var(--color-primary, #2563eb);animation:navigation-progress-slide 1.1s ease-in-out infinite}@keyframes navigation-progress-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion: reduce){.navigation-progress__bar{width:100%;animation:none;opacity:.6}}.login-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding-top:25vh;background:var(--color-background-page);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(var(--color-primary-rgb),.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(var(--color-primary-rgb),.06) 0%,transparent 50%);pointer-events:none}.login-card{position:relative;width:100%;max-width:420px;margin:var(--space-4);padding:var(--space-10);background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.04),rgba(var(--color-primary-rgb),.02)),var(--color-background-page);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-brand{text-align:center;margin-bottom:var(--space-8)}.login-title{font-size:var(--fs-4xl);font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.02em}.login-subtitle{font-size:var(--fs-md);color:var(--color-text-secondary);margin:var(--space-2) 0 0 0}.login-content{display:flex;flex-direction:column;gap:var(--space-6)}.login-message{text-align:center;font-size:var(--fs-base);color:var(--color-text-secondary);margin:0}.login-btn-microsoft{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-6);font-size:var(--fs-base);font-weight:600;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.login-btn-microsoft:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.login-btn-microsoft:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.login-btn-microsoft svg{width:20px;height:20px;flex-shrink:0}.login-divider{display:flex;align-items:center;gap:var(--space-4);color:var(--color-text-tertiary);font-size:var(--fs-sm)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-6) 0}.login-loading-text{font-size:var(--fs-md);color:var(--color-text-secondary);margin:0}.login-loading .spinner{width:40px;height:40px}.login-error{padding:var(--space-4);background:var(--color-danger-subtle, rgba(220, 38, 38, .08));border:1px solid var(--color-danger, #dc2626);border-radius:var(--radius-md);color:var(--color-danger, #dc2626);font-size:var(--fs-sm);text-align:center}.login-error p{margin:0;line-height:1.5}.login-footer{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle);text-align:center}.login-footer-text{font-size:var(--fs-sm);color:var(--color-text-tertiary);margin:0}@media (max-width: 768px){.login-page{padding-top:0;align-items:center}.login-card{max-width:380px;padding:var(--space-8);margin:var(--space-3)}.login-brand{margin-bottom:var(--space-6)}.login-logo{width:64px;height:64px}.login-title{font-size:var(--fs-3xl)}.login-subtitle{font-size:var(--fs-sm)}.login-footer{margin-top:var(--space-6);padding-top:var(--space-4)}}@media (max-width: 480px){.login-card{max-width:100%;margin:var(--space-2);padding:var(--space-6);border-radius:var(--radius-lg)}.login-brand{margin-bottom:var(--space-5)}.login-logo{width:56px;height:56px}.login-title{font-size:var(--fs-2xl)}.login-subtitle{font-size:var(--fs-xs);margin-top:var(--space-1)}.login-content{gap:var(--space-4)}.login-btn-microsoft{padding:var(--space-3) var(--space-4);font-size:var(--fs-sm)}.login-btn-microsoft svg{width:18px;height:18px}.login-footer{margin-top:var(--space-5);padding-top:var(--space-3)}.login-footer-text{font-size:var(--fs-xs)}}@keyframes loginCardEntrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-card{animation:loginCardEntrance .4s ease-out}.top-bar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 var(--space-6);background:var(--color-background-sidebar);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.top-bar-left{flex:1}.top-bar-right{display:flex;align-items:center;gap:var(--space-2)}.top-bar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:0}.top-bar-icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.top-bar-profile{position:relative}.top-bar-profile-btn{display:flex;align-items:center;gap:var(--space-2);padding:4px 10px 4px 4px;border-radius:var(--radius-md);border:none;background:transparent;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text)}.top-bar-profile-btn:hover{background:var(--color-surface-hover)}.top-bar-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-full);background:rgba(var(--color-primary-rgb),.15);color:var(--color-primary);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;flex-shrink:0}.top-bar-name{font-size:var(--fs-sm);font-weight:500;white-space:nowrap}.top-bar-menu{position:fixed;min-width:180px;max-width:calc(100vw - 16px);background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:200;animation:topBarMenuIn .15s ease}@keyframes topBarMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.top-bar-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:8px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left}.top-bar-menu-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.top-bar-menu-item svg{width:16px;height:16px;flex-shrink:0}.top-bar-divider{width:1px;height:24px;background:var(--color-border);flex-shrink:0}.top-bar-menu-divider{height:1px;background:var(--color-border-subtle);margin:var(--space-1) 0}@media (max-width: 768px){.top-bar{padding:0 12px}.top-bar-name{display:none}.top-bar-icon-btn{width:40px;height:40px}.top-bar-profile-btn{padding:4px;min-width:40px;min-height:40px;justify-content:center}.top-bar-avatar{width:32px;height:32px}}.toast-container{position:fixed;top:20px;right:20px;z-index:100001;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border-left:4px solid currentColor;animation:slideIn .3s ease-out;min-width:300px}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast--success{color:#059669;border-left-color:#059669}.toast--error{color:#dc2626;border-left-color:#dc2626}.toast--warning{color:#f59e0b;border-left-color:#f59e0b}.toast--info{color:#3b82f6;border-left-color:#3b82f6}.toast__content{display:flex;align-items:flex-start;gap:12px;flex:1}.toast__icon{flex-shrink:0;margin-top:2px}.toast__text{flex:1;min-width:0}.toast__title{font-size:var(--fs-base);font-weight:600;color:var(--color-text);line-height:1.4}.toast__message{font-size:var(--fs-sm);color:var(--color-text-secondary);margin-top:4px;line-height:1.4;white-space:pre-line}.toast__action{flex-shrink:0;align-self:center;background:transparent;border:1px solid currentColor;color:currentColor;padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background-color var(--transition-fast)}.toast__action:hover{background:color-mix(in srgb,currentColor 12%,transparent)}.toast__close{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-sm);transition:all .2s ease;margin-top:-2px}.toast__close:hover{background:var(--color-background-hover);color:var(--color-text)}.toast__close:active{transform:scale(.95)}@media (max-width: 768px){.toast-container{left:12px;right:12px;top:12px;max-width:none}.toast{min-width:0}}:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;--color-black: rgb(0, 0, 0);--color-black-rgb: 0, 0, 0;--color-white: rgb(255, 255, 255);--color-white-rgb: 255, 255, 255;--color-gray-50: rgb(250, 250, 250);--color-gray-50-rgb: 250, 250, 250;--color-gray-100: rgb(244, 244, 244);--color-gray-100-rgb: 244, 244, 244;--color-gray-200: rgb(230, 230, 230);--color-gray-200-rgb: 230, 230, 230;--color-gray-300: rgb(212, 212, 212);--color-gray-300-rgb: 212, 212, 212;--color-gray-400: rgb(163, 163, 163);--color-gray-500: rgb(115, 115, 115);--color-gray-600: rgb(82, 82, 82);--color-gray-700: rgb(64, 64, 64);--color-gray-800: rgb(38, 38, 38);--color-gray-900: rgb(23, 23, 23);--color-gray-900-rgb: 23, 23, 23;--color-gray-950: rgb(10, 10, 10);--color-blue-50: rgb(239, 246, 255);--color-blue-200: rgb(191, 219, 254);--color-blue-400: rgb(96, 165, 250);--color-blue-600: rgb(37, 99, 235);--color-blue-800: rgb(30, 64, 175);--color-blue-950: rgb(23, 37, 84);--color-green-50: rgb(240, 253, 244);--color-green-200: rgb(187, 247, 208);--color-green-400: rgb(74, 222, 128);--color-green-600: rgb(22, 163, 74);--color-green-800: rgb(22, 101, 52);--color-green-950: rgb(5, 46, 22);--color-red-50: rgb(254, 242, 242);--color-red-200: rgb(254, 202, 202);--color-red-400: rgb(248, 113, 113);--color-red-600: rgb(220, 38, 38);--color-red-800: rgb(153, 27, 27);--color-red-950: rgb(69, 10, 10);--color-orange-50: rgb(255, 247, 237);--color-orange-200: rgb(254, 215, 170);--color-orange-400: rgb(251, 146, 60);--color-orange-600: rgb(234, 88, 12);--color-orange-800: rgb(154, 52, 18);--color-orange-950: rgb(67, 20, 7);--color-yellow-50: rgb(254, 252, 232);--color-yellow-200: rgb(254, 240, 138);--color-yellow-400: rgb(250, 204, 21);--color-yellow-600: rgb(202, 138, 4);--color-yellow-800: rgb(133, 77, 14);--color-yellow-950: rgb(66, 32, 6);--color-cyan-50: rgb(236, 254, 255);--color-cyan-200: rgb(165, 243, 252);--color-cyan-400: rgb(34, 211, 238);--color-cyan-600: rgb(8, 145, 178);--color-cyan-800: rgb(21, 94, 117);--color-cyan-950: rgb(8, 51, 68);--color-purple-50: rgb(250, 245, 255);--color-purple-200: rgb(233, 213, 255);--color-purple-400: rgb(192, 132, 252);--color-purple-600: rgb(147, 51, 234);--color-purple-800: rgb(107, 33, 168);--color-purple-950: rgb(59, 7, 100);--color-indigo-50: rgb(238, 242, 255);--color-indigo-200: rgb(199, 210, 254);--color-indigo-400: rgb(129, 140, 248);--color-indigo-600: rgb(79, 70, 229);--color-indigo-800: rgb(55, 48, 163);--color-indigo-950: rgb(30, 27, 75);--color-magenta-50: rgb(253, 242, 248);--color-magenta-200: rgb(251, 207, 232);--color-magenta-400: rgb(244, 114, 182);--color-magenta-600: rgb(219, 39, 119);--color-magenta-800: rgb(157, 23, 77);--color-magenta-950: rgb(80, 7, 36);--color-primary: rgb(96, 165, 250);--color-primary-hover: rgb(147, 197, 253);--color-primary-rgb: 96, 165, 250;--color-background-base: rgb(20, 20, 20);--color-background-page: #141519;--color-background-sidebar: #1f1f23;--color-surface: #1f1f23;--color-surface-hover: #2a2a2f;--color-surface-active: #303035;--color-background-elevated: #26262b;--color-text: rgb(228, 228, 228);--color-text-secondary: rgb(150, 150, 150);--color-text-tertiary: rgb(105, 105, 105);--color-text-disabled: rgb(80, 80, 80);--color-text-inverse: var(--color-gray-950);--color-border: rgba(255, 255, 255, .12);--color-border-subtle: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .24);--color-link: var(--color-blue-400);--color-link-hover: var(--color-blue-200);--color-success: var(--color-green-600);--color-success-hover: var(--color-green-800);--color-success-bg: var(--color-green-950);--color-success-text: var(--color-green-400);--color-success-rgb: 22, 163, 74;--color-danger: var(--color-red-600);--color-danger-hover: var(--color-red-800);--color-danger-bg: var(--color-red-950);--color-danger-text: var(--color-red-400);--color-danger-rgb: 220, 38, 38;--color-warning: var(--color-orange-600);--color-warning-hover: var(--color-orange-800);--color-warning-bg: var(--color-orange-950);--color-warning-text: var(--color-orange-400);--color-warning-rgb: 234, 88, 12;--on-warning: var(--color-gray-950);--on-warning-hover: var(--color-white);--on-success: var(--color-gray-950);--on-success-hover: var(--color-white);--on-danger: var(--color-white);--on-danger-hover: var(--color-white);--color-info: var(--color-indigo-600);--color-info-hover: var(--color-indigo-800);--color-info-bg: var(--color-indigo-950);--color-info-text: var(--color-indigo-400);--color-info-rgb: 79, 70, 229;--color-folder-icon: var(--color-yellow-400);--color-accent: var(--color-primary);--color-accent-hover: var(--color-primary-hover);--color-accent-rgb: var(--color-primary-rgb);--color-primary-tint: rgba(var(--color-primary-rgb), .06);--color-primary-tint-strong: rgba(var(--color-primary-rgb), .12);--color-accent-tint: rgba(var(--color-accent-rgb), .06);--color-accent-tint-strong: rgba(var(--color-accent-rgb), .12);--color-success-tint: rgba(var(--color-success-rgb), .1);--color-danger-tint: rgba(var(--color-danger-rgb), .1);--color-warning-tint: rgba(var(--color-warning-rgb), .1);--color-info-tint: rgba(var(--color-info-rgb), .1);--overlay-subtle: rgba(255, 255, 255, .03);--overlay-soft: rgba(255, 255, 255, .04);--overlay-medium: rgba(255, 255, 255, .06);--overlay-strong: rgba(255, 255, 255, .08);--overlay-intense: rgba(255, 255, 255, .1);--overlay-bold: rgba(255, 255, 255, .12);--overlay-prominent: rgba(255, 255, 255, .16);--overlay-accent: rgba(255, 255, 255, .2);--overlay-dark-subtle: rgba(0, 0, 0, .15);--overlay-dark-soft: rgba(0, 0, 0, .25);--overlay-dark-medium: rgba(0, 0, 0, .35);--overlay-dark-strong: rgba(0, 0, 0, .5);--overlay-backdrop: rgba(0, 0, 0, .7);--overlay-backdrop-light: rgba(0, 0, 0, .5);--overlay-backdrop-heavy: rgba(0, 0, 0, .8);--overlay-scrollbar-track: rgba(255, 255, 255, .04);--overlay-scrollbar-thumb: rgba(255, 255, 255, .15);--card-bg: var(--color-surface);--card-border: var(--color-border);--card-bg-hover: var(--color-primary-tint);--card-border-hover: var(--color-primary);--table-background: var(--color-surface);--table-background-header: rgb(28, 28, 28);--table-background-row: var(--color-surface);--table-background-row-hover: var(--color-surface-hover);--table-border: var(--color-border);--table-border-hover: var(--color-border-hover);--table-shadow: var(--shadow-sm);--table-shadow-hover: var(--shadow-sm);--table-text: var(--color-gray-50);--table-text-secondary: var(--color-gray-400);--table-text-disabled: var(--color-text-disabled);--button-text-primary: var(--color-white);--button-text-secondary: var(--color-black);--button-text-default: var(--color-gray-200);--button-text-hover: var(--color-white);--tag-background-0: var(--color-gray-600);--tag-background-1: var(--color-gray-600);--tag-background-2: var(--color-yellow-800);--tag-background-3: var(--color-orange-600);--tag-background-4: var(--color-orange-600);--tag-background-5: var(--color-red-600);--tag-color-0: rgba(var(--color-primary-rgb), .15);--tag-color-1: rgba(var(--color-primary-rgb), .25);--tag-color-2: rgba(var(--color-primary-rgb), .35);--tag-color-3: rgba(var(--color-primary-rgb), .5);--tag-color-4: rgba(var(--color-primary-rgb), .65);--tag-color-5: rgba(var(--color-primary-rgb), .8);--utility-gray: rgba(var(--color-primary-rgb), .12);--utility-gray-hover: rgba(var(--color-primary-rgb), .2);--utility-blue: var(--color-indigo-600);--row-hover: #303037;--chart-cursor: var(--row-hover);--chart-labor: var(--color-cyan-600);--chart-equipment: var(--color-purple-400);--chart-overrun: color-mix(in srgb, var(--color-danger) 32%, transparent);--utility-cyan: var(--color-cyan-600);--utility-magenta: var(--color-magenta-600);--utility-yellow: var(--color-yellow-600);--utility-yellow-hover: var(--color-yellow-400);--range-1-tint: #334136;--range-1-dot: #81c784;--range-1-text: #a5d6a7;--range-2-tint: #2d3e31;--range-2-dot: #66bb6a;--range-2-text: #a5d6a7;--range-3-tint: #283c2c;--range-3-dot: #4caf50;--range-3-text: #a5d6a7;--range-4-tint: #26392a;--range-4-dot: #43a047;--range-4-text: #a5d6a7;--range-5-tint: #4b4427;--range-5-dot: #fdd835;--range-5-text: #fff176;--range-6-tint: #4c3a24;--range-6-dot: #ffa726;--range-6-text: #ffcc80;--range-7-tint: #4c2f29;--range-7-dot: #ff7043;--range-7-text: #ffab91;--range-8-tint: #3e2e44;--range-8-dot: #ba68c8;--range-8-text: #e1bee7;--shadow-xs: 0 1px 2px rgba(0, 10, 40, .2);--shadow-sm: 0 2px 4px rgba(0, 10, 40, .3);--shadow-md: 0 4px 8px rgba(0, 10, 40, .4);--shadow-lg: 0 8px 16px rgba(0, 10, 40, .5);--shadow-color: rgba(0, 10, 40, .3);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--transition-spring: .4s cubic-bezier(.16, 1, .3, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .875rem;--fs-base: .9375rem;--fs-lg: 1rem;--fs-xl: 1.125rem;--fs-2xl: 1.25rem;--fs-3xl: 1.5rem;--fs-4xl: 1.75rem;--fs-5xl: 2rem;--fs-6xl: 2.25rem;--z-index-dropdown: 1000;--z-index-modal: 2000;--z-index-tooltip: 3000}:root[data-theme=light]{color-scheme:light;--color-primary: rgb(37, 99, 235);--color-primary-hover: rgb(30, 64, 175);--color-primary-rgb: 37, 99, 235;--color-background-base: var(--color-white);--color-background-page: #f4f4f5;--color-background-sidebar: #ffffff;--color-surface: #ffffff;--color-surface-hover: #f4f4f5;--color-surface-active: #e9e9ea;--color-background-elevated: #ffffff;--color-text: rgb(30, 30, 35);--color-text-secondary: rgb(100, 100, 110);--color-text-tertiary: rgb(140, 140, 150);--color-text-disabled: rgb(170, 170, 180);--color-text-inverse: var(--color-white);--color-border: rgba(0, 0, 0, .12);--color-border-subtle: rgba(0, 0, 0, .08);--color-border-hover: rgb(100, 100, 110);--color-link: rgb(37, 99, 235);--color-link-hover: rgb(96, 165, 250);--color-success: var(--color-green-600);--color-success-hover: var(--color-green-800);--color-success-bg: var(--color-green-50);--color-success-text: var(--color-green-800);--color-danger: var(--color-red-600);--color-danger-hover: var(--color-red-800);--color-danger-bg: var(--color-red-50);--color-danger-text: var(--color-red-800);--color-warning: var(--color-orange-600);--color-warning-hover: var(--color-orange-800);--color-warning-bg: var(--color-orange-50);--color-warning-text: var(--color-orange-800);--color-info: var(--color-indigo-600);--color-info-hover: var(--color-indigo-800);--color-info-bg: var(--color-indigo-50);--color-info-text: var(--color-indigo-800);--table-background: #ffffff;--table-background-header: #f4f4f5;--table-background-row: #ffffff;--table-background-row-hover: #f4f4f5;--table-border: var(--color-border);--table-border-hover: var(--color-border-hover);--table-shadow: var(--shadow-sm);--table-shadow-hover: var(--shadow-sm);--table-text: rgb(30, 30, 35);--table-text-secondary: rgb(100, 100, 110);--button-text-primary: var(--color-white);--button-text-default: var(--color-gray-600);--button-text-hover: var(--color-white);--tag-background-0: var(--color-gray-200);--tag-background-1: var(--color-gray-200);--tag-background-2: var(--color-yellow-200);--tag-background-3: var(--color-orange-200);--tag-background-4: var(--color-orange-400);--tag-background-5: var(--color-red-400);--tag-color-0: rgba(var(--color-primary-rgb), .08);--tag-color-1: rgba(var(--color-primary-rgb), .15);--tag-color-2: rgba(var(--color-primary-rgb), .25);--tag-color-3: rgba(var(--color-primary-rgb), .35);--tag-color-4: rgba(var(--color-primary-rgb), .5);--tag-color-5: rgba(var(--color-primary-rgb), .65);--utility-gray: var(--color-gray-200);--utility-gray-hover: var(--color-gray-400);--utility-blue: var(--color-indigo-600);--row-hover: var(--color-surface-hover);--chart-cursor: #e6e7ea;--chart-labor: var(--color-cyan-600);--chart-equipment: var(--color-purple-600);--chart-overrun: color-mix(in srgb, var(--color-danger) 20%, transparent);--utility-cyan: var(--color-cyan-600);--utility-magenta: var(--color-magenta-600);--utility-yellow: var(--color-yellow-600);--utility-yellow-hover: var(--color-yellow-400);--range-1-tint: #edf7ee;--range-1-dot: #81c784;--range-1-text: #1b5e20;--range-2-tint: #eaf5ea;--range-2-dot: #66bb6a;--range-2-text: #1b5e20;--range-3-tint: #e5f2e5;--range-3-dot: #43a047;--range-3-text: #1b5e20;--range-4-tint: #e2ede2;--range-4-dot: #2e7d32;--range-4-text: #1b5e20;--range-5-tint: #fef3e0;--range-5-dot: #f9a825;--range-5-text: #6d4c00;--range-6-tint: #feefdb;--range-6-dot: #fb8c00;--range-6-text: #8a4500;--range-7-tint: #fde7df;--range-7-dot: #f4511e;--range-7-text: #a12c08;--range-8-tint: #efe0f3;--range-8-dot: #8e24aa;--range-8-text: #6a1b9a;--overlay-subtle: rgba(0, 0, 0, .03);--overlay-soft: rgba(0, 0, 0, .04);--overlay-medium: rgba(0, 0, 0, .05);--overlay-strong: rgba(0, 0, 0, .06);--overlay-intense: rgba(0, 0, 0, .08);--overlay-bold: rgba(0, 0, 0, .1);--overlay-prominent: rgba(0, 0, 0, .12);--overlay-accent: rgba(0, 0, 0, .15);--overlay-dark-subtle: rgba(0, 0, 0, .05);--overlay-dark-soft: rgba(0, 0, 0, .1);--overlay-dark-medium: rgba(0, 0, 0, .15);--overlay-dark-strong: rgba(0, 0, 0, .2);--overlay-backdrop: rgba(0, 0, 0, .5);--overlay-backdrop-light: rgba(0, 0, 0, .3);--overlay-backdrop-heavy: rgba(0, 0, 0, .6);--overlay-scrollbar-track: rgba(0, 0, 0, .05);--overlay-scrollbar-thumb: rgba(0, 0, 0, .15);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-color: rgba(0, 0, 0, .1)}html,body{margin:0;padding:0}body{background-color:var(--color-background-page);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}button:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.15)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.15)}:focus:not(:focus-visible){outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}main{animation:fadeUp .4s cubic-bezier(.16,1,.3,1) both}.section:nth-child(1){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .04s both}.section:nth-child(2){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .08s both}.section:nth-child(3){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .12s both}.section:nth-child(4){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .16s both}.section:nth-child(5){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .2s both}.section:nth-child(6){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .24s both}.stats .section.stat:nth-child(1){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .02s both}.stats .section.stat:nth-child(2){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .06s both}.stats .section.stat:nth-child(3){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .1s both}.stats .section.stat:nth-child(4){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .14s both}.stats .section.stat:nth-child(5){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .18s both}.stats .section.stat:nth-child(6){animation:fadeUp .35s cubic-bezier(.16,1,.3,1) .22s both}.table-wrapper,.table{animation:fadeIn .3s cubic-bezier(.16,1,.3,1) both}.modal-content{animation:scaleIn .25s cubic-bezier(.16,1,.3,1) both}.main-sidebar{animation:slideInLeft .3s cubic-bezier(.16,1,.3,1) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}code{display:inline-block;background-color:var(--color-surface);color:var(--color-text);padding:.75rem 1rem;border-radius:var(--radius-lg);font-family:Source Code Pro,monospace,monospace;white-space:pre-wrap;word-break:break-word;-webkit-user-select:auto;user-select:auto}h1{font-size:var(--fs-5xl);line-height:1.2;font-weight:600;margin:0 0 var(--space-4) 0;color:var(--color-text)}h2{font-size:var(--fs-3xl);font-weight:600;line-height:1.3;margin:0 0 var(--space-3) 0;padding:0;color:var(--color-text)}h3{font-size:var(--fs-2xl);font-weight:600;line-height:1.4;margin:0 0 var(--space-2) 0;color:var(--color-text)}a{display:inline-flex;font-weight:600;color:var(--table-text);text-decoration:none}a:hover{color:var(--button-text-hover)}.link{color:var(--color-link);text-decoration:none;font-weight:500;cursor:pointer}.link:hover{color:var(--color-link-hover);text-decoration:underline}button{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;cursor:pointer;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text);font-weight:600;transition:all var(--transition-base);padding:.5rem 1rem;min-height:32px;font-size:var(--fs-base)}button svg{width:14px;height:14px;flex-shrink:0}button,button *{vertical-align:middle}.status-dot{display:inline-block;width:1rem;height:1rem;border-radius:var(--radius-full)}.hint{font-size:var(--fs-sm);color:var(--color-text-secondary)}sup{font-size:.65em;line-height:1;margin-left:5px}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.pt-2{padding-top:var(--space-2)}.pt-3{padding-top:var(--space-3)}.pt-4{padding-top:var(--space-4)}.pt-6{padding-top:var(--space-6)}.pb-2{padding-bottom:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.pb-4{padding-bottom:var(--space-4)}.m0{margin:0;padding:0}.m10{margin:10px}.mtb10{margin:10px 0}.mlr10{margin:0 10px}.ml5{margin-left:5px}.ml10{margin-left:10px}.ml20{margin-left:20px}.mt10{margin-top:10px}.mr5{margin-right:5px}.mr10{margin-right:10px}.mt20{margin-top:20px}.mt30{margin-top:30px}.mb10{margin-bottom:10px}.mb20{margin-bottom:20px}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.w50{width:50px}.w100{width:100px}.w200{width:200px}.mw80{min-width:80px}.mw100{min-width:100px}.ar{justify-content:right}.sb{justify-content:space-between}.sa{justify-content:space-around}.mid{align-items:center}.border{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px}.nowrap{white-space:nowrap}.hidden{display:none}.center{text-align:center;justify-content:center}.right{text-align:right;justify-content:right;align-content:end;align-items:end}.top{align-items:start}.stretch{display:block;width:100%}.bold{font-weight:600}.strike{text-decoration:line-through}.fade{color:var(--table-text-disabled)}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-md)}.text-base{font-size:var(--fs-lg)}.text-lg{font-size:var(--fs-xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-error{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;user-select:none}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.loading-container{padding:var(--space-5);text-align:center}.error-container{padding:var(--space-5)}.scrollable{overflow:auto}.scrollable-y{overflow-y:auto}.max-h-60vh{max-height:60vh}.max-h-80vh{max-height:80vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.bggray{background-color:var(--utility-gray)}.bggreen{background-color:var(--color-success)!important}.bgred{background-color:var(--color-danger)!important}.bgblue{background-color:var(--utility-blue)!important}.bgcyan{background-color:var(--utility-cyan)!important}.bgmag{background-color:var(--utility-magenta)!important}.bgyel{background-color:var(--utility-yellow)!important}.colorPreview{display:flex;justify-content:space-around;align-items:center;font-size:var(--fs-2xl);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer}.app-layout{display:flex;height:100vh}aside.main-sidebar{width:clamp(220px,18vw,360px);background-color:var(--color-background-sidebar);border-right:1px solid var(--color-border-subtle);position:fixed;top:0;left:0;bottom:0;z-index:100;display:flex;flex-direction:column;height:100vh;transition:width var(--transition-slow);overflow:visible}aside.main-sidebar.collapsed{width:70px}.sidebar-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:24px 20px 20px;align-items:center;transition:padding var(--transition-slow);overflow:visible}aside.main-sidebar.collapsed .sidebar-content{padding:24px 8px 20px}.sidebar-header{display:flex;flex-direction:column;align-items:center;width:calc(100% + 40px);margin:0 -20px var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.sidebar-header .logo-wrapper{width:100%}aside.main-sidebar.collapsed .sidebar-header{width:calc(100% + 16px);margin:0 -8px var(--space-3)}.sidebar-footer{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;border-top:1px solid var(--color-border-subtle);padding:var(--space-2) var(--space-3)}aside.main-sidebar.collapsed .sidebar-footer{flex-direction:column;padding:var(--space-2);gap:var(--space-1)}.sidebar-footer-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.sidebar-footer-btn:hover{background:rgba(var(--color-primary-rgb),.08);color:var(--color-text)}.sidebar-footer-btn svg{width:14px;height:14px}.sidebar-copyright{flex-shrink:0;text-align:center;font-size:10px;color:var(--color-text-tertiary);padding:var(--space-1) var(--space-3) var(--space-3);letter-spacing:.02em;opacity:.5}.sidebar-footer-popover{position:relative}.sidebar-footer-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:200px;background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:200;animation:sidebarMenuIn .12s ease}@keyframes sidebarMenuIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.sidebar-footer-menu-item{display:block;width:100%;padding:6px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left;min-height:auto}.sidebar-footer-menu-item:hover{background:var(--color-surface-hover);color:var(--color-text)}@media (max-width: 768px){.sidebar-footer,.sidebar-copyright{display:none}aside.main-sidebar.open .sidebar-footer,aside.main-sidebar.open .sidebar-copyright{display:flex}aside.main-sidebar.open .sidebar-copyright{display:block}aside.main-sidebar.open .sidebar-footer-btn{width:40px;height:40px}aside.main-sidebar.open .sidebar-footer-btn svg{width:18px;height:18px}}.sidebar-nav{flex-grow:1;display:flex;flex-direction:column;width:100%;overflow-y:auto;overflow-x:visible;min-height:0;scrollbar-width:thin;scrollbar-color:var(--overlay-scrollbar-thumb) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--overlay-scrollbar-thumb);border-radius:var(--radius-full)}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--overlay-bold)}aside.main-sidebar nav{width:100%}.content-area{display:flex;flex-direction:column;flex:1;margin-left:clamp(220px,18vw,360px);min-height:100vh;transition:margin-left var(--transition-slow);min-width:0}aside.main-sidebar.collapsed+.content-area{margin-left:70px}main{flex:1;padding:var(--page-gutter-top) var(--page-gutter) var(--page-gutter-bottom);overflow-y:auto}@media (max-width: 768px){main{padding:1.25rem 16px 2.5rem}}@media (max-width: 480px){main{padding:1rem 12px 2rem}}main:has(.admin-layout){padding:0}.admin-page,.admin-page-wide{max-width:1100px;margin:0 auto}.admin-page-full{max-width:none}.logo-wrapper{display:flex;gap:var(--space-1);flex-direction:column;align-items:center;text-decoration:none;padding:8px 12px;border-radius:var(--radius-md);transition:all var(--transition-base);overflow:hidden}.logo-wrapper:hover{background:rgba(var(--color-primary-rgb),.08)}.logo-wrapper>img,.logo-wrapper>svg{height:80px;margin-bottom:var(--space-1);transition:height var(--transition-slow)}aside.main-sidebar.collapsed .logo-wrapper>img,aside.main-sidebar.collapsed .logo-wrapper>svg{height:40px;margin-bottom:0}.logo-wrapper>svg{stroke:none;fill:var(--color-text);transition:fill var(--transition-base)}.logo-wrapper>.logo{font-size:var(--fs-4xl);padding:0;font-weight:700;letter-spacing:-.02em;transition:all var(--transition-slow);white-space:nowrap}.logo-wrapper>.logo-compact{font-size:var(--fs-3xl);font-weight:700;letter-spacing:-.02em;color:var(--color-primary);padding:var(--space-2);background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.15),rgba(var(--color-primary-rgb),.08));border-radius:var(--radius-md);width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.logo-wrapper:hover .logo-compact{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.25),rgba(var(--color-primary-rgb),.15));transform:scale(1.05)}.logo-wrapper>.phrase{font-size:var(--fs-xs);font-weight:600;line-height:1.2;color:var(--color-text-secondary);transition:all var(--transition-slow);text-align:center}.logo-wrapper:hover svg,.logo-wrapper:hover .phrase,.logo-wrapper:hover .logo{color:var(--color-primary);fill:var(--color-primary)}.bucket{flex:1;display:flex;gap:.25rem;justify-content:center}.column{display:flex;flex-direction:column;gap:1rem}.row{display:flex;flex-direction:row;gap:.5rem}.form-container{display:flex;flex-direction:column;gap:var(--space-3)}.form-container.column{flex-direction:column}.form-container.row{flex-direction:row;flex-wrap:wrap;align-items:center}.middle{align-items:center}.container{display:flex;gap:1.75rem}.container>div{flex:1;display:flex;flex-direction:column;gap:1.75rem}.container>.column{min-width:0}.container>.wider{flex:1.5}.wrapper{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-view{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;align-items:start}.project-column{display:flex;flex-direction:column;gap:1.5rem;min-width:0}@media (max-width: 1200px){.project-view{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.project-view{grid-template-columns:1fr}}.autocomplete{width:100%;position:relative}.autocomplete .suggestions{display:flex;flex-direction:column;gap:2px;position:absolute;left:0;top:100%;background:var(--color-background-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:300px;min-width:100%;overflow-y:auto;margin-top:4px;z-index:1000;box-shadow:var(--shadow-md);padding:4px;font-size:var(--fs-base)}.autocomplete .suggestions span{display:block;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.autocomplete .suggestions span:hover{background:var(--color-surface-hover)}@media (max-width: 768px){.autocomplete .suggestions{max-width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-weight:600;font-size:var(--fs-base);padding:.5rem 1rem;min-height:32px;transition:all var(--transition-base);text-decoration:none;line-height:1}.btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn svg{width:14px;height:14px;flex-shrink:0}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 2px 4px rgba(var(--color-primary-rgb),.2)}.btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 6px rgba(var(--color-primary-rgb),.3);transform:translateY(-1px)}.btn.secondary{background:var(--utility-gray);border-color:transparent;color:var(--color-text)}.btn.secondary:hover{background:var(--utility-gray-hover);border-color:transparent}.btn.secondary.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 2px 4px rgba(var(--color-primary-rgb),.2)}.btn.secondary.active:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 6px rgba(var(--color-primary-rgb),.3)}.btn.danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn.danger:hover{background:var(--color-danger);border-color:var(--color-danger);color:var(--on-danger)}.btn.warning{background:var(--color-warning);border-color:var(--color-warning);color:var(--on-warning)}.btn.warning:hover{background:var(--color-warning-hover);border-color:var(--color-warning-hover);color:var(--on-warning-hover)}.btn.success{background:var(--color-success);border-color:var(--color-success);color:var(--on-success)}.btn.success:hover{background:var(--color-success-hover);border-color:var(--color-success-hover);color:var(--on-success-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary);padding:.25rem;min-height:auto}.btn.ghost:hover{background:var(--color-surface-hover);border-color:transparent;color:var(--color-text)}.btn.outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn.outline:hover{background:rgba(var(--color-primary-rgb),.08)}.btn.sm{padding:.25rem .5rem;min-height:24px;font-size:var(--fs-xs);gap:.25rem}.btn.sm svg{width:12px;height:12px}.btn.lg{padding:.5rem 1.25rem;min-height:36px}.btn.lg svg{width:16px;height:16px}.btn.xl{padding:.75rem 1.5rem;min-height:44px;font-size:var(--fs-md)}.btn.xl svg{width:18px;height:18px}.btn.icon{padding:0;gap:0;width:32px;min-height:32px;border-radius:var(--radius-sm);background:transparent;border-color:transparent;color:var(--color-text-secondary)}.btn.icon:hover{background:var(--color-surface-hover);border-color:transparent;color:var(--color-text)}.btn.icon.sm{width:24px;min-height:24px}.btn.icon.lg{width:36px;min-height:36px}.btn.icon.xl{width:44px;min-height:44px}.btn.icon.bordered{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary)}.btn.icon.bordered:hover{border-color:currentColor}.btn.full-width{width:100%}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none;box-shadow:none;transform:none}button.star-btn{background:transparent;border:none;font-size:1.25rem;color:var(--color-text-tertiary);cursor:pointer;padding:.25rem;line-height:1;transition:color var(--transition-fast),transform var(--transition-fast);display:flex;align-items:center;justify-content:center}button.star-btn svg{transition:fill var(--transition-fast),stroke var(--transition-fast)}button.star-btn:hover{color:var(--color-yellow-400);transform:scale(1.1)}button.star-btn:hover svg{fill:var(--color-yellow-400);stroke:var(--color-yellow-400)}@media (max-width: 768px){.btn{min-height:44px;padding:.625rem 1.1rem}.btn.sm{min-height:36px}.btn.icon{width:40px;min-height:40px}.btn.icon.sm{width:32px;min-height:32px}}button.star-btn.active{color:var(--color-yellow-400)}button.star-btn.active svg{fill:var(--color-yellow-400);stroke:var(--color-yellow-400)}.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem}.contact-card{background:var(--color-background-base);border-radius:var(--radius-md);padding:1rem;transition:box-shadow var(--transition-base);box-shadow:0 0 5px var(--shadow-color)}.contact-card:hover{box-shadow:var(--shadow-md)}.contact-name{margin:0;font-size:var(--fs-xl);font-weight:600;color:var(--table-text)}.contact-info div{margin:5px 0 0}.contact-info span{display:block;width:40px;margin-right:7px;font-size:var(--fs-sm);font-weight:500;text-align:left;color:var(--table-text-secondary)}.chart-donutCenterText{font-size:var(--fs-xl);font-weight:600;fill:var(--color-text)}.donut-chart .recharts-pie-sector{stroke-width:.5px;stroke:rgba(var(--color-black-rgb),.15)}.donut-chart .recharts-pie-label{font-size:var(--fs-xs);fill:var(--color-text-secondary)}.bar-chart .recharts-cartesian-axis-tick-value{fill:var(--color-text-secondary);font-weight:600}.bar-chart .recharts-legend-item-text,.bar-chart .recharts-legend-wrapper .recharts-legend-item-text{font-size:var(--fs-sm);fill:var(--color-text-secondary);font-weight:600}.chart-tooltip{background:var(--color-surface);color:var(--table-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 10px;box-shadow:var(--shadow-md);min-width:120px}.chart-tooltip-label{font-weight:700;font-size:var(--fs-sm);margin-bottom:6px}.chart-tooltip-item{display:flex;align-items:center;gap:8px;margin:4px 0}.chart-tooltip-marker{width:10px;height:10px;border-radius:var(--radius-xs);display:inline-block;flex:0 0 auto}.chart-tooltip-name{flex:1 1 auto;font-weight:600;color:var(--table-text)}.chart-tooltip-value{font-weight:600;color:var(--table-text)}.recharts-legend-item .recharts-legend-item-text,.recharts-legend-wrapper .recharts-legend-item-text{font-size:var(--fs-sm);color:var(--color-text-secondary);fill:var(--color-text-secondary);font-weight:600}.recharts-legend-item rect,.recharts-legend-item span[style*=background-color],.recharts-legend-wrapper .recharts-legend-item rect{width:12px;height:12px;border-radius:var(--radius-sm);margin-right:6px}.recharts-legend-wrapper .recharts-legend-item-text{fill:var(--color-text-secondary)!important}.ColorLabel{display:flex;gap:8px;align-items:center;overflow:hidden;min-width:0}.ColorLabel div:first-child{width:5px;height:20px;border-radius:var(--radius-xs);flex-shrink:0;transition:opacity var(--transition-fast)}.ColorLabel:hover div:first-child{opacity:.8}.ColorLabel div:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-md);font-weight:600;color:var(--color-text);line-height:1.2}.ColorLabel-code{flex-shrink:0}.ColorLabel-name{font-weight:600;font-size:var(--fs-base);color:var(--color-text);margin-left:.5rem}.pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:1em 0;align-items:center}.pagination button{display:inline;border:1px solid var(--color-border);color:var(--table-text);min-width:40px;text-align:center;cursor:pointer}.pagination button:hover{background:var(--table-background-row-hover);color:var(--table-text)}.pagination button.active{background:var(--color-primary);color:var(--color-text-inverse)}.pagination button:hover.active{background:var(--color-primary-hover)}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:32px;color:var(--table-text-secondary);-webkit-user-select:none;user-select:none}@media (max-width: 768px){.pagination.alpha-pagination{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}.pagination.alpha-pagination::-webkit-scrollbar{display:none}.pagination.alpha-pagination button{flex:0 0 auto;min-width:40px;padding:10px 8px}}.nav-container{width:100%;overflow:visible;display:flex;flex-direction:column;flex:1;min-height:0}.nav-links{display:flex;flex-direction:column;width:100%;margin-top:var(--space-3);overflow:visible}.nav-links,.nav-profile{gap:2px;flex-direction:column}.nav-links a,.nav-links .nav-button,.nav-links button.nav-button,.nav-links button{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius-md);color:var(--color-text-secondary);background:transparent;text-decoration:none;font-weight:500;width:100%;box-sizing:border-box;font-size:var(--fs-base);transition:all var(--transition-base);border:1px solid transparent}.nav-links a:hover,.nav-links .nav-button:hover,.nav-links button.nav-button:hover,.nav-links button:hover,.nav-button:hover{background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-text);border-color:rgba(var(--color-primary-rgb),.2)}.nav-button.active,.nav-links a.active{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.15),rgba(var(--color-primary-rgb),.08));color:var(--color-primary);border-color:rgba(var(--color-primary-rgb),.3);font-weight:600}.nav-button.active svg,.nav-links a.active svg{stroke:var(--color-primary);fill:var(--color-primary)}.dropdown-count{margin-left:auto;font-size:var(--fs-xs);font-weight:700;color:var(--color-text-secondary);background:rgba(var(--color-primary-rgb),.08);padding:3px 7px;border-radius:var(--radius-full);transition:all var(--transition-base);min-width:20px;text-align:center}.nav-button.active .dropdown-count{background:rgba(var(--color-primary-rgb),.2);color:var(--color-primary)}.nav-button:hover .dropdown-count{background:rgba(var(--color-primary-rgb),.15);color:var(--color-text)}.nav-button.active:hover,.nav-links a.active:hover{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.2),rgba(var(--color-primary-rgb),.12));border-color:rgba(var(--color-primary-rgb),.4)}.nav-button>div{display:flex;align-items:center;gap:10px}.nav-button>div svg{width:20px;height:20px;min-width:20px;min-height:20px;flex-shrink:0}.nav-button>div svg[fill=none]{fill:none;stroke:var(--color-text-secondary);transition:stroke var(--transition-base)}.nav-button:hover>div svg[fill=none]{stroke:var(--color-text)}.nav-button.active>div svg[fill=none]{stroke:var(--color-primary)}.nav-button>div svg[fill=currentColor],.nav-button>div svg:not([fill=none]):not([stroke=currentColor]){fill:var(--color-text-secondary);stroke:none;transition:fill var(--transition-base)}.nav-button:hover>div svg[fill=currentColor],.nav-button:hover>div svg:not([fill=none]):not([stroke=currentColor]){fill:var(--color-text)}.nav-button.active>div svg[fill=currentColor],.nav-button.active>div svg:not([fill=none]):not([stroke=currentColor]){fill:var(--color-primary)}.nav-button svg{flex-shrink:0}aside.main-sidebar.collapsed .nav-button .nav-label,aside.main-sidebar.collapsed .nav-button .dropdown-count{display:none}aside.main-sidebar.collapsed .nav-links>.nav-button,aside.main-sidebar.collapsed .nav-links>.nav-dropdown>.nav-button{justify-content:center;padding:var(--space-3);width:100%;position:relative}aside.main-sidebar.collapsed .nav-links>.nav-button>div,aside.main-sidebar.collapsed .nav-links>.nav-dropdown>.nav-button>div{justify-content:center;gap:0;width:100%}aside.main-sidebar.collapsed .nav-links>.nav-button>div svg,aside.main-sidebar.collapsed .nav-links>.nav-dropdown>.nav-button>div svg{margin:0 auto}aside.main-sidebar.collapsed .nav-dropdown-content .nav-button{justify-content:flex-start;padding:10px 14px}aside.main-sidebar.collapsed .nav-dropdown-content .nav-button>div{justify-content:flex-start;gap:10px}aside.main-sidebar.collapsed .nav-dropdown>.nav-button:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:translateY(-50%) rotate(-45deg);opacity:.5;transition:all var(--transition-base)}aside.main-sidebar.collapsed .nav-dropdown>.nav-button:hover:after{opacity:1;border-color:var(--color-text)}aside.main-sidebar.collapsed .nav-dropdown.open>.nav-button:after{opacity:1;border-color:var(--color-primary)}aside.main-sidebar.collapsed .nav-dropdown.open>.nav-button{background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.15),rgba(var(--color-primary-rgb),.08));border-color:rgba(var(--color-primary-rgb),.3)}aside.main-sidebar.collapsed .nav-dropdown.open>.nav-button>div svg[fill=none]{stroke:var(--color-primary)}aside.main-sidebar.collapsed .nav-dropdown.open>.nav-button>div svg[fill=currentColor]{fill:var(--color-primary)}aside.main-sidebar.collapsed .nav-dropdown{position:relative}aside.main-sidebar.collapsed .nav-dropdown-content{display:none;position:fixed;left:74px;min-width:220px;max-width:280px;max-height:min(60dvh,420px);overflow-y:auto;overscroll-behavior:contain;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px rgba(var(--color-black-rgb),.15);padding:var(--space-2);z-index:9999;border-left:none}aside.main-sidebar.collapsed .nav-dropdown.open .nav-dropdown-content{display:flex!important;flex-direction:column}aside.main-sidebar.collapsed .nav-dropdown-content .nav-button{width:100%;justify-content:flex-start;padding:10px 14px;text-align:left}.nav-dropdown .element{display:flex}.nav-dropdown-content{display:flex;flex-direction:column;padding-left:var(--space-3);margin:6px 0 6px 12px;border-left:2px solid rgba(var(--color-primary-rgb),.2);transition:border var(--transition-base)}.nav-dropdown-content>button,.nav-dropdown-content>.nav-button{padding:6px 10px;font-size:var(--fs-md)}.nav-dropdown-heading{padding:var(--space-2) 10px var(--space-1);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary)}.nav-dropdown-heading:first-child{padding-top:var(--space-1)}.nav-dropdown-content:hover{border-left:2px solid rgba(var(--color-primary-rgb),.5)}@media (max-width: 48em){.mobile-button{display:none}.nav-links{display:none;max-height:0;overflow:hidden;transition:max-height .24s ease,padding .24s ease;margin-top:0}.nav-links.open{display:flex;max-height:100vh;padding:var(--space-5);overflow-y:auto;-webkit-overflow-scrolling:touch}.nav-links a,.nav-links .nav-button,.nav-links button{font-size:var(--fs-lg)}.nav-links.open::-webkit-scrollbar{width:10px}.nav-links.open::-webkit-scrollbar-thumb{background:var(--overlay-scrollbar-track);border-radius:var(--radius-lg)}}.form-status{color:var(--on-danger);background-color:var(--color-danger);padding:5px 10px;border-radius:var(--radius-sm);font-size:var(--fs-md);font-weight:700;margin-bottom:10px}input.negative-value{color:var(--color-danger)!important;font-weight:600}input.positive-value{color:var(--color-success)!important;font-weight:600}input:not([type=checkbox]):not([type=radio]),textarea,select{margin:0;padding:var(--space-2) var(--space-3);box-sizing:border-box;font-family:inherit;font-size:var(--fs-base);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}textarea{width:100%;min-height:70px;resize:vertical;padding:var(--space-3)}input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--color-border-hover);background-color:var(--color-surface-hover)}input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);background-color:var(--color-surface);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}input:not([type=checkbox]):not([type=radio]):disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-background-page)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary);opacity:1}select{cursor:pointer}select option{background:var(--color-surface);color:var(--color-text)}input[type=date]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity var(--transition-base)}input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:1}input.hidden{display:none}label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-base);font-weight:600;color:var(--color-text)}label span{font-size:var(--fs-base);color:var(--color-text-secondary)}fieldset{border:1px solid var(--color-border);padding:1.5rem;margin:0 0 var(--space-4) 0;border-radius:var(--radius-lg)}fieldset legend{font-weight:600;font-size:var(--fs-base);padding:0 .5rem;text-align:left;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em}.form-grid{display:grid;gap:var(--space-5);grid-template-columns:1fr;align-items:start}.form-grid input{margin:0}.form-grid:last-child{margin-bottom:0}.form-grid.two-cols{grid-template-columns:repeat(2,1fr)}.form-grid.three-cols{grid-template-columns:repeat(3,1fr)}.form-grid.fill-auto-auto{grid-template-columns:1fr auto auto}.placeholder{color:var(--color-text-tertiary);font-size:var(--fs-2xl);white-space:nowrap;align-content:center}.form-field{display:flex;flex-direction:column;gap:6px}.form-field input:not([type=checkbox]):not([type=radio]),.form-field textarea,.form-field select,.form-field .custom-select,.form-group input:not([type=checkbox]):not([type=radio]),.form-group textarea,.form-group select,.form-group .custom-select{width:100%}.form-label{font-weight:600;font-size:.875rem;color:var(--color-text-secondary);line-height:1.3;letter-spacing:.01em}.form-control{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);width:100%}.form-grid-3{display:grid;gap:var(--space-5);grid-template-columns:repeat(3,1fr);align-items:start}.form-full{grid-column:1 / -1}.form-row{display:flex;gap:var(--space-3);align-items:center}.form-row>*{flex:1 1 0;min-width:0}@media (max-width: 768px){.form-grid,.form-grid-3,.form-grid.two-cols,.form-grid.three-cols,.form-grid.fill-auto-auto{grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-4)}.form-row{flex-direction:column;align-items:stretch;gap:var(--space-3)}}.table .cell input{padding:var(--space-2);box-shadow:none}.modal-body .table>.row .cell{align-items:center}.list{display:flex;flex-direction:column;gap:6px;overflow:hidden;color:var(--table-text);font-size:var(--fs-base);font-weight:500}.list>p{padding:32px 20px;margin:0;text-align:center;color:var(--table-text-secondary);font-size:var(--fs-sm);font-weight:400;background:var(--table-background-row);border:1px solid var(--color-border);border-radius:var(--radius-md)}.list>.row{display:flex;flex-direction:row;justify-content:space-between;gap:.75rem;align-items:center;background-color:var(--table-background-row);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;transition:all var(--transition-base);cursor:pointer}.list>.row:hover{background-color:var(--table-background-row-hover);border-left-color:var(--color-primary)}.list>.row>div{display:flex;flex:1;flex-direction:row;align-items:center;padding:2px 4px;min-width:100px;overflow:hidden}.list>.row>div.shrink{flex:0 0 auto;margin-left:auto;overflow:visible}.list>.row>.center{justify-content:center;text-align:center}.list>.row>.right{justify-content:right;text-align:right;overflow:visible}.list>.row .w120{min-width:120px}.list>.row .w80{min-width:80px}.list>.row>.block{display:block}@media (max-width: 768px){.list>.row{gap:.5rem}.list>.row>div{flex:1 1 auto;min-width:0}.list>.row>div.shrink,.list>.row>.right{flex:0 0 auto;margin-left:auto}.list>.row>.right{justify-content:flex-end;text-align:right}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(var(--color-black-rgb),.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:flex-start;padding-top:10vh;z-index:100000;overflow-y:auto}.modal-content{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-width:800px;max-height:90vh;width:90%;box-shadow:0 0 0 1px rgba(var(--color-black-rgb),.05),0 8px 16px rgba(var(--color-black-rgb),.15),0 16px 48px rgba(var(--color-black-rgb),.3),0 24px 64px rgba(var(--color-black-rgb),.25);display:flex;flex-direction:column;overflow:hidden}.modal-content--sm{max-width:500px}.modal-content--md{max-width:650px}.modal-content--xl{max-width:1100px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:var(--color-background-page);flex-shrink:0}.modal-title{margin:0;padding:0;font-size:var(--fs-xl);font-weight:600;color:var(--color-text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.modal-actions button{margin:0}.modal-actions button.save{padding:8px 16px;min-height:32px;font-size:var(--fs-base)}.modal-close{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);transition:background-color var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.modal-close:hover{background:var(--color-surface-hover);border-color:var(--color-text);color:var(--color-text)}.modal-close svg{width:16px;height:16px}.modal-body{padding:var(--space-5);overflow-y:auto;flex:1;min-height:0}@media (max-width: 768px){.modal-overlay{align-items:stretch;background:rgba(var(--color-black-rgb),.5);padding:0}.modal-content{width:100%;max-width:100%;max-height:100vh;height:100vh;max-height:100dvh;height:100dvh;border-radius:0;margin:0;box-shadow:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.modal-header{padding:14px 16px;background:var(--color-background-page);border-bottom:1px solid var(--color-border)}.modal-title{font-size:var(--fs-lg);font-weight:700;white-space:normal;word-break:break-word;overflow:visible;text-overflow:clip;line-height:1.3}.modal-actions{gap:6px}.modal-close{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:var(--radius-md)}.modal-close svg{width:18px;height:18px}.modal-body{padding:var(--space-4);background:var(--color-background-page)}}.profile-page{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.profile-hero{padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.profile-hero h1{margin:0 0 .5rem;font-size:var(--fs-5xl);font-weight:700;color:var(--color-text)}.profile-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:var(--fs-base);color:var(--color-text-secondary)}.profile-meta span{display:flex;align-items:center}.profile-meta span:not(:last-child):after{content:"·";margin-left:1.5rem;color:var(--color-text-tertiary)}.profile-widgets{display:grid;grid-template-columns:1fr 2fr;gap:1.5rem;align-items:start}.profile-widgets-col{display:flex;flex-direction:column;gap:1.5rem}.text-muted{color:var(--color-text-tertiary);font-style:italic}@media (max-width: 900px){.profile-widgets{grid-template-columns:1fr}}@media (max-width: 600px){.profile-hero h1{font-size:var(--fs-4xl)}.profile-meta{flex-direction:column;gap:.25rem}.profile-meta span:not(:last-child):after{display:none}}.separator,.v-separator{border:none;display:inline-flex;min-height:16px;min-width:0;height:100%;width:0;border-left:1px solid var(--overlay-bold);margin:0}.h-separator{border:none;display:block;min-height:0;min-width:20px;height:0;width:100%;border-top:1px solid var(--overlay-bold);margin:var(--space-2) 0}@media (max-width: 768px){.separator{display:inline-block;min-width:20px;min-height:1px;width:250px;height:1px;margin:5px 3%}}.spinner-container{display:flex;justify-content:center;align-items:center;height:90%}.spinner{width:50px;height:50px;border-radius:var(--radius-full);border:5px solid rgba(var(--color-primary-rgb),.2);border-top:5px solid var(--color-primary);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem;border:1px solid var(--table-border);border-radius:var(--radius-lg);box-shadow:var(--table-shadow);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.table-wrapper:hover{border-color:var(--table-border-hover);box-shadow:var(--table-shadow-hover)}.table{display:grid;grid-auto-rows:auto;width:100%;color:var(--color-text);font-size:var(--fs-base);background:var(--color-surface);box-sizing:border-box;border:1px solid var(--table-border);border-radius:var(--radius-lg);box-shadow:var(--table-shadow);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.table:hover{border-color:var(--table-border-hover);box-shadow:var(--table-shadow-hover)}.table-wrapper>.table{border:none;border-radius:0;box-shadow:none}.table-wrapper>.table:hover{border-color:transparent;box-shadow:none}.table>.header .cell:first-child{border-top-left-radius:calc(var(--radius-lg) - 1px)}.table>.header .cell:last-child{border-top-right-radius:calc(var(--radius-lg) - 1px)}.table>.row:last-child .cell:first-child{border-bottom-left-radius:calc(var(--radius-lg) - 1px)}.table>.row:last-child .cell:last-child{border-bottom-right-radius:calc(var(--radius-lg) - 1px)}.table>.row:last-child .cell{border-bottom:none}.table-compact{font-size:var(--fs-sm);border-radius:var(--radius-md)}.table>.header,.table>.row{display:contents}.table>.row .cell-wrapper{display:contents}.table-compact>.header,.table-compact>.row{display:contents}.table.compact>.header,.table.compact>.row{display:contents}.table.striped>.header,.table.striped>.row{display:contents}.table>.header .cell{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:12px 10px;transition:color var(--transition-fast),background-color var(--transition-fast);display:flex;align-items:center;align-self:stretch;justify-content:space-between;gap:10px;background:var(--table-background-header);border-bottom:2px solid var(--color-border);cursor:pointer}.table>.header .cell:hover{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.08)}.table-compact>.header .cell{border-bottom-width:1px;font-size:var(--fs-xs);padding:8px;gap:6px}.table>.header .cell[style*="cursor: pointer"]{cursor:pointer;-webkit-user-select:none;user-select:none}.table>.header .cell.table-header-cell-sorted{color:var(--color-primary);font-weight:800}.table>.header .cell svg{width:14px;height:14px;flex-shrink:0;opacity:.7;transition:opacity var(--transition-fast)}.table>.header .cell:hover svg,.table>.header .cell.table-header-cell-sorted svg{opacity:1}.table>.row{cursor:pointer}.table>.row .cell{padding:8px 10px;display:flex;align-items:center;align-self:stretch;min-width:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.table>.row:hover .cell{background:var(--color-surface-hover)}.table-compact>.row .cell{padding:6px 8px}.table-striped>.row:nth-child(odd) .cell{background:var(--color-surface)}.table-striped>.row:nth-child(2n) .cell{background:rgba(var(--color-primary-rgb),.04)}.table-striped>.row:hover .cell{background:var(--color-surface-hover)!important}.table>.row .cell{justify-content:flex-start;align-items:center}.table>.row .cell>div[style*="cursor: pointer"]{border-radius:var(--radius-sm);padding:2px 4px;margin:-2px -4px;transition:background var(--transition-fast)}.table>.row.add-row .cell{background:rgba(var(--color-primary-rgb),.04);border-bottom:2px solid rgba(var(--color-primary-rgb),.3);padding:10px;align-items:center}.table>.row.add-row:hover .cell{background:rgba(var(--color-primary-rgb),.08)}.table .cell input,.table .cell select,.table .cell .custom-select{width:100%}.table>.row.add-row button.add{width:32px;height:32px;min-height:32px;padding:0;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-text-inverse);border:none;cursor:pointer;transition:all var(--transition-fast);box-shadow:none;display:flex;align-items:center;justify-content:center}.table>.row.add-row button.add svg{width:18px;height:18px}.table>.row.add-row button.add:hover:not(:disabled){background:var(--color-primary-hover);transform:none;box-shadow:none}.table>.row.add-row button.add:disabled{background:var(--color-border);color:var(--color-text-tertiary);cursor:not-allowed}.table>.row.empty-row .cell{color:var(--color-text-secondary);font-style:italic;padding:24px 10px}.table>.row.new-row .cell:first-child{border-left:3px solid var(--color-success);padding-left:7px}.table:after{content:"";display:block;grid-column:1 / -1;background:var(--table-background-header);height:8px;border-bottom-left-radius:calc(var(--radius-lg) - 1px);border-bottom-right-radius:calc(var(--radius-lg) - 1px)}.table-wrapper>.table:after{display:none}.table>.row:last-of-type .cell:first-child,.table>.row:last-of-type .cell:last-child,.table>.row.empty-row:last-of-type .cell{border-bottom-left-radius:0;border-bottom-right-radius:0}.table-loading{opacity:.6;transition:opacity var(--transition-base)}.table-empty-state{display:flex;align-items:center;justify-content:center;min-height:200px;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:var(--fs-base)}.table .badges{display:flex;gap:4px;flex-wrap:wrap;align-items:flex-start;min-height:24px}.table .cell.m-right{display:flex;gap:6px;justify-content:flex-end;align-items:center}.table .button,.table button{margin:0}.table button.btn-icon-bordered{width:28px;height:28px;min-height:28px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.table button.btn-icon-bordered svg{width:16px;height:16px}.table button.btn-icon-bordered:hover{border-color:var(--color-danger);color:var(--color-danger);background-color:rgba(var(--color-danger-rgb),.08)}@container table (max-width: 1100px){.cq-stacked-table,.cq-stacked-table tbody,.cq-stacked-table tfoot,.cq-stacked-table td{display:block;width:100%}.cq-stacked-table{min-width:0;table-layout:auto}.cq-stacked-table thead{display:none}.cq-stacked-table tr{box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--radius-md);margin-bottom:8px;padding:10px 12px}.cq-stacked-table td{padding:4px 0;border:none;text-align:left}.cq-stacked-table td:before{content:attr(data-label);display:block;font-size:10px;line-height:1.3;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}}.num{text-align:right;font-variant-numeric:tabular-nums}.table>.header .cell.num,.table>.row .cell.num{justify-content:flex-end}@media (max-width: 768px){.num{text-align:left}.table>.header .cell.num,.table>.row .cell.num{justify-content:flex-start}}@media (min-width: 768px) and (max-width: 1024px){.table .cell,.table .header .cell{padding:10px 12px}.t-hide{display:none!important}.table-wrapper{overflow-x:auto}}@media (max-width: 768px){.table-wrapper{border:none;border-radius:0;box-shadow:none;background:transparent;overflow:visible}.table-wrapper:hover{border-color:transparent;box-shadow:none}.table{display:flex;flex-direction:column;gap:12px;background:transparent;border:none;border-radius:0;box-shadow:none}.table:hover{border-color:transparent;box-shadow:none}.table:after{display:none}.table>.header{display:none}.table .row{display:flex;flex-direction:column;padding:10px 12px;min-height:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);gap:4px}.table .row:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:0 2px 8px rgba(var(--color-black-rgb),.08)}.table .row .cell-wrapper{display:flex;flex-direction:row;align-items:center;gap:6px;padding:2px 0;width:100%;min-width:0}.table .row .cell-wrapper:before{content:attr(data-label);font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.02em;min-width:70px;max-width:40%;flex-shrink:0;word-break:break-word;white-space:normal;line-height:1.2}@media (max-width: 360px){.table .row .cell-wrapper{flex-direction:column;align-items:flex-start;gap:2px}.table .row .cell-wrapper:before{min-width:0;max-width:100%}}.table .row .cell-wrapper[data-label=""]:before{display:none}.table .row .cell-wrapper .cell{display:flex;flex:1;padding:0;border:none;min-width:0;background:transparent;font-size:var(--fs-sm)}.table .row .cell-wrapper:last-child{justify-content:flex-end;padding-top:6px;border-top:1px solid var(--color-border-subtle, var(--color-border));margin-top:2px;flex-wrap:wrap}.table .row .cell-wrapper:last-child .cell{flex-wrap:wrap;justify-content:flex-end;gap:6px}.table .row .cell-wrapper:last-child:before{display:none}.table .row .cell-actions{display:none}.table button.btn-icon-bordered{width:40px;height:40px;min-height:40px}.table button.btn-icon-bordered svg{width:18px;height:18px}}.toolbar-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.5rem 0}.toolbar-row .filters{flex:1 1 auto}.toolbar-row .results-info{flex:0 0 auto;text-align:right;color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:500;margin:.5rem 0}@media (max-width: 768px){.toolbar-row{flex-direction:column;align-items:stretch}.toolbar-row .results-info{text-align:left}}@media (max-width: 768px){table.stacked-table,table.stacked-table tbody,table.stacked-table tr,table.stacked-table td{display:block;width:100%}table.stacked-table{min-width:0;border-collapse:collapse}table.stacked-table thead{display:none}table.stacked-table tr{box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--radius-md);margin-bottom:8px;padding:10px 12px}table.stacked-table td{padding:4px 0;border:none;text-align:left}table.stacked-table td:before{content:attr(data-label);display:block;font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.02em;line-height:1.2;margin-bottom:2px}table.stacked-table td[data-label=""]:before,table.stacked-table td:not([data-label]):before{display:none}table.stacked-table td[data-label=""]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;padding-top:8px;margin-top:4px;border-top:1px solid var(--color-border-subtle, var(--color-border))}table.stacked-table td[colspan]{text-align:center}}.table-mobile-cards{display:flex;flex-direction:column;gap:8px}.mobile-card{display:flex;flex-direction:column;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);gap:6px}.mobile-card:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:0 2px 8px rgba(var(--color-black-rgb),.08)}.mobile-card-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.mobile-card-title{font-size:var(--fs-base);font-weight:600;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-card-title a{color:inherit;text-decoration:none}.mobile-card-title a:hover{color:var(--color-primary)}.mobile-card-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-xs);color:var(--color-text-secondary)}.mobile-card-meta-item{display:flex;align-items:center;gap:4px}.mobile-card-meta-label{color:var(--color-text-tertiary)}.mobile-card-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid var(--color-border-subtle, var(--color-border));margin-top:4px}.mobile-card.compact{padding:0;gap:0}.mobile-card.compact .mobile-card-header{padding:4px 4px 4px 8px;gap:5px;background:transparent;border:none}.mobile-card.compact .mobile-card-title{font-size:var(--fs-sm);font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-card.compact .mobile-card-meta-item{font-size:var(--fs-xs);color:var(--color-text-secondary);flex-shrink:0}.mobile-card.compact .btn-icon-bordered{width:24px;height:24px;min-height:24px;flex-shrink:0}.mobile-card.compact .btn-icon-bordered svg{width:14px;height:14px}.mobile-card-separator{color:var(--color-text-tertiary);font-size:var(--fs-xs);flex-shrink:0}.mobile-card-time{font-size:var(--fs-xs);font-weight:600;color:var(--color-text-secondary);flex-shrink:0;margin-right:auto}.mobile-card-expand{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:22px;padding:0 6px;margin-left:10px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-xs);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;gap:4px}.mobile-card-expand:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1)}.mobile-card-expand svg{width:14px;height:14px;transition:transform var(--transition-base)}.mobile-card-expand.expanded svg{transform:rotate(180deg)}.mobile-card-details{padding:0 8px 6px;display:flex;flex-direction:column;gap:5px}.mobile-card-details .details-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.mobile-card-details .details-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary);flex-shrink:0;min-width:50px;padding-top:2px}.mobile-card-details .details-value{font-size:var(--fs-sm);color:var(--color-text);font-weight:500}.badge-compact{font-size:10px;height:18px;padding:0 5px;font-weight:600;flex-shrink:0}.pageNav{border-bottom:2px solid var(--color-border);padding:1em 0;margin-bottom:1em}.pageNav a{display:flex;align-items:center;flex-shrink:0}.pageNav span{margin-top:var(--space-1)}.section{min-width:150px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.section:hover{border-color:var(--color-border-hover)}.section-body{display:flex;flex-direction:column;gap:6px;padding:10px 14px}.section-empty{padding:20px 16px;text-align:center;color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:500}.section-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px 12px;background:var(--table-background-row);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.section-row:hover{background:var(--table-background-row-hover);border-color:var(--color-primary)}.section-row-label{flex-shrink:0;font-size:var(--fs-sm);font-weight:600;color:var(--color-text-secondary)}.section-row-value{flex:1;text-align:right;font-size:var(--fs-sm);font-weight:500;color:var(--color-text)}.section>.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.section h2{font-size:var(--fs-3xl);font-weight:600;margin:0;padding:3px;color:var(--color-text)}.section h2>span{font-size:var(--fs-xs);font-weight:600;margin:0;padding:5px;color:var(--color-text);vertical-align:top}.section>.badges{flex-wrap:wrap}.section .user{padding:2px 0;font-size:var(--fs-sm);font-weight:500;color:var(--color-text)}.stats{margin:0 0 2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}@media (max-width: 600px){.stats{grid-template-columns:1fr;gap:.75rem}}.stat-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-3xl);background:rgba(var(--color-primary-rgb),.2);color:var(--color-blue-400);border-radius:var(--radius-lg);border:2px solid rgba(var(--color-primary-rgb),.4)}.note-row{padding:10px 12px;border-radius:var(--radius-sm);background:var(--table-background-row);border:1px solid var(--color-border);transition:all var(--transition-fast)}.note-row:hover{background:var(--table-background-row-hover);border-color:var(--color-primary)}.note-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-xs);color:var(--color-text-secondary);margin-bottom:6px}.note-date{font-weight:500}.note-user{font-weight:600}.note-content{font-size:var(--fs-sm);color:var(--color-text);word-wrap:break-word;line-height:1.4}.permissions-groups{display:flex;flex-direction:column;gap:var(--space-4)}.permissions-group{background-color:var(--color-background-base);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 16px}.group-title{font-weight:600;font-size:var(--fs-lg);margin-bottom:var(--space-2);color:var(--color-text)}.group-items{display:flex;gap:var(--space-3);flex-wrap:wrap}.permission-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--table-background-row);cursor:pointer;transition:all var(--transition-base)}.permission-item:hover{background-color:var(--table-background-row-hover);border-color:var(--color-primary)}.permission-item input{accent-color:var(--color-primary);cursor:pointer}.permission-label{font-size:var(--fs-base);color:var(--color-text-secondary)}.muted{font-size:var(--fs-xs);color:var(--color-text-secondary)}.muted.up{color:var(--color-green-400)}.muted.down{color:var(--color-red-400)}.muted.up strong,.muted.down strong{color:inherit;font-weight:700}.dashboard-layout{display:flex;gap:var(--space-5);align-items:flex-start}.dashboard-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-5)}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-5);align-items:start}.dashboard-grid-main,.dashboard-grid-side{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.dashboard-sidebar{width:280px;flex-shrink:0}@media (max-width: 75em){.dashboard-layout{flex-direction:column;align-items:stretch}.dashboard-sidebar{width:100%}.dashboard-sidebar .featured-articles{position:static}}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-sidebar{width:100%}}.peek-widget .section-row-value .peek-sub{display:block;font-size:var(--fs-xs);font-weight:400;color:var(--color-text-secondary)}.peek-widget .peek-note{margin:4px 0 0;font-size:var(--fs-xs);color:var(--color-text-secondary)}:root{--page-gutter: 5%;--page-gutter-top: 2rem;--page-gutter-bottom: 4rem}@media (max-width: 1600px){:root{--page-gutter: 3.5%}}@media (max-width: 1440px){:root{--page-gutter: 32px}}@media (max-width: 1200px){:root{--page-gutter: 24px;--page-gutter-top: 1.5rem;--page-gutter-bottom: 3rem}}@media (min-width: 769px) and (max-width: 1200px){.form-grid.three-cols,.form-grid-3,.project-form .project-form__grid--three-cols,.company-form .company-form__grid--three-cols{grid-template-columns:repeat(2,1fr)}}.mobile,.mobile-menu-button,.mobile-top-actions{display:none}@media (max-width: 1200px){.container{flex-direction:column}}@media (max-width: 100em){.bucket{flex-direction:column}.v-separator{display:inline-flex;align-self:stretch;min-height:20px;height:100%;width:0;margin:0}}@media (max-width: 48em){.mobile{display:block}.app-layout{flex-direction:column}.mobile-menu-button{display:inline-flex}.mobile-top-actions{display:flex;margin-left:auto}.mobile-top-actions .top-bar{border-bottom:none;padding:0;height:auto;background:transparent}.content-area>.top-bar{display:none}aside.main-sidebar,aside.main-sidebar.collapsed{position:relative;width:100%;height:56px;flex:none;padding:0;border-right:none;border-bottom:1px solid var(--color-border-subtle);transition:none;overflow:hidden;z-index:50}.sidebar-content{overflow:hidden;padding:0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.sidebar-nav,.nav-container,.nav-links{overflow:hidden}aside.main-sidebar.open{position:fixed;top:0;left:0;bottom:0;width:80%;max-width:340px;height:100dvh;background:var(--color-surface);border-bottom:none;z-index:60;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-bottom:max(16px,env(safe-area-inset-bottom));box-shadow:0 6px 20px rgba(var(--color-black-rgb),.35);animation:drawerSlideIn .3s cubic-bezier(.16,1,.3,1) both}@keyframes drawerSlideIn{0%{transform:translate(-100%);opacity:.8}to{transform:translate(0);opacity:1}}aside.main-sidebar.open .sidebar-content{flex-direction:column;align-items:stretch;gap:12px}aside.main-sidebar.open .sidebar-header{flex-direction:row;align-items:center;height:auto;padding:0 0 12px;margin-bottom:8px;border-bottom:1px solid var(--color-border-subtle)}aside.main-sidebar.open .logo-wrapper{margin-bottom:0}aside.main-sidebar.open+.content-area:before{content:"";position:fixed;inset:0;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:55;animation:drawerBackdropIn .2s ease both}@keyframes drawerBackdropIn{0%{opacity:0}to{opacity:1}}aside.main-sidebar .sidebar-content{display:flex;flex-direction:row;padding:0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));align-items:center;height:100%}.mobile-menu-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--color-text);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.mobile-menu-button:hover{background:var(--color-surface-hover)}.mobile-menu-button:active{background:var(--color-surface-hover);transform:scale(.96)}.mobile-menu-button svg{width:22px;height:22px}.logo-wrapper{display:inline-flex;gap:8px;flex-direction:row;align-items:center;text-decoration:none;padding:0;min-width:0}.logo-wrapper>img,.logo-wrapper>svg{height:32px;width:auto;max-width:100%;object-fit:contain}.logo-wrapper>.logo{font-size:var(--fs-2xl);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.logo-wrapper>.phrase{display:none}.sidebar-header{flex-direction:row;align-items:center;justify-content:flex-start;padding:0;margin-bottom:0;gap:8px;width:100%;height:100%;border-bottom:none}.sidebar-header .logo-wrapper{padding:0;border-bottom:none;flex:1;min-width:0}.mobile-top-actions{flex-shrink:0}.mobile-top-actions .top-bar-right{gap:4px}.mobile-top-actions .top-bar-divider{display:none}aside.main-sidebar.open nav{display:block!important;margin-top:16px;max-height:calc(100dvh - 160px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:6px}aside.main-sidebar nav{display:none}.content-area,aside.main-sidebar.collapsed+.content-area{margin-left:0;min-height:auto}main{padding:1.5rem 3% 120px}input,textarea,select,.form-value{padding:12px;font-size:var(--fs-lg)}label{gap:.5rem}.list>.row{align-items:center;gap:8px;padding:10px}button{padding:10px 12px;min-height:40px}code{font-size:var(--fs-base);padding:.5rem}h1{font-size:var(--fs-4xl)}.m-hide,.is-destructive{display:none!important}}
