@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--bg-app:#f5f1e9;--bg-sidebar:#171b1d;--bg-sidebar-hover:#22272a;--bg-sidebar-active:#2a3033;--bg-card:#fcfaf6;--bg-card-hover:#f7f3eb;--bg-card-subtle:#efe9df;--bg-input:#fcfaf6;--bg-modal:#fcfaf6;--text-main:#1c2022;--text-muted:#6e6960;--text-light:#969085;--text-white:#faf6ee;--border-color:#ddd6c8;--border-subtle:#e8e2d7;--primary:#bc6840;--primary-hover:#a75731;--primary-light:#bc68401f;--primary-border:#bc684059;--success:#67784d;--success-hover:#55643f;--success-light:#67784d24;--warning:#b3853e;--warning-hover:#9e7432;--warning-light:#b3853e24;--danger:#a64b38;--danger-hover:#913e2d;--danger-light:#a64b3824;--accent-stone:#5c676e;--accent-stone-light:#5c676e1f;--sidebar-width:260px;--sidebar-collapsed-width:78px;--topbar-height:70px;--radius-xs:3px;--radius-sm:5px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-full:9999px;--shadow-xs:0 1px 2px #1c20220a;--shadow-sm:0 2px 5px #1c20220d, 0 1px 2px #1c202208;--shadow-md:0 4px 12px #1c202212;--shadow-lg:0 10px 24px #1c202217;--shadow-xl:0 18px 36px #1c20221f;--transition-fast:.15s ease;--transition-normal:.22s ease;--transition-smooth:.28s cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--bg-app:#111416;--bg-sidebar:#171b1d;--bg-sidebar-hover:#1f2427;--bg-sidebar-active:#262d30;--bg-card:#1c2123;--bg-card-hover:#22282b;--bg-card-subtle:#242a2d;--bg-input:#181c1e;--bg-modal:#1c2123;--text-main:#f2ebdd;--text-muted:#a9a49a;--text-light:#6e6a62;--text-white:#faf6ee;--border-color:#303537;--border-subtle:#252a2d;--primary:#c8754d;--primary-hover:#b5663f;--primary-light:#c8754d29;--primary-border:#c8754d59;--success:#87956b;--success-hover:#75835a;--success-light:#87956b29;--warning:#c89a52;--warning-hover:#b58842;--warning-light:#c89a5229;--danger:#b85c48;--danger-hover:#a54e3b;--danger-light:#b85c4829;--accent-stone:#78878f;--accent-stone-light:#78878f24;--shadow-sm:0 2px 6px #00000040;--shadow-md:0 4px 14px #00000059;--shadow-lg:0 12px 28px #00000073;--shadow-xl:0 20px 40px #0000008c}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55}h1,h2,h3,h4,.brand-title,.page-heading,.stat-card-value{letter-spacing:-.02em;font-family:Space Grotesk,Inter,sans-serif}a{color:var(--primary);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{color:var(--text-main);font-family:inherit;font-size:14px}.saas-layout{background-color:var(--bg-app);min-height:100vh;display:flex}.saas-main-wrapper{min-width:0;margin-left:var(--sidebar-width);transition:margin-left var(--transition-smooth);flex-direction:column;flex:1;display:flex}.saas-layout.sidebar-collapsed .saas-main-wrapper{margin-left:var(--sidebar-collapsed-width)}.saas-content-area{flex:1;width:100%;max-width:1440px;padding:30px 38px 64px}.page-container{width:100%}.saas-sidebar{width:var(--sidebar-width);background-color:var(--bg-sidebar);color:var(--text-white);z-index:100;transition:width var(--transition-smooth), transform var(--transition-smooth);border-right:1px solid var(--border-color);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 10px #00000026}.saas-sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{height:var(--topbar-height);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.brand-badge{align-items:center;gap:12px;display:flex;overflow:hidden}.brand-icon{border-radius:var(--radius-sm);background:var(--primary);color:#faf6ee;border:1px solid #ffffff26;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.brand-text{white-space:nowrap;flex-direction:column;display:flex}.brand-title{letter-spacing:-.3px;color:#faf6ee;font-size:17px;font-weight:700}.brand-subtitle{color:#a9a49a;letter-spacing:.8px;text-transform:uppercase;font-size:11px;font-weight:600}.sidebar-collapse-toggle{color:#a9a49a;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:6px;font-size:15px;display:flex}.sidebar-collapse-toggle:hover{background:var(--bg-sidebar-hover);color:#faf6ee}.sidebar-nav{flex-direction:column;flex:1;gap:5px;padding:18px 14px;display:flex;overflow-y:auto}.nav-section-label{color:#6e6a62;letter-spacing:1.2px;text-transform:uppercase;padding:10px 14px 4px;font-size:11px;font-weight:700}.nav-item{border-radius:var(--radius-sm);color:#a9a49a;transition:var(--transition-fast);white-space:nowrap;align-items:center;gap:14px;padding:11px 15px;font-size:14.5px;font-weight:500;display:flex;position:relative}.nav-item:hover{background-color:var(--bg-sidebar-hover);color:#faf6ee}.nav-item.active{background-color:var(--bg-sidebar-active);color:#faf6ee;font-weight:600}.nav-item.active:before{content:"";background-color:var(--primary);border-radius:0 2px 2px 0;width:3.5px;position:absolute;top:6px;bottom:6px;left:0}.nav-item-icon{color:#a9a49a;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:flex}.nav-item.active .nav-item-icon{color:var(--primary)}.nav-item-label{flex:1}.nav-badge{color:#a9a49a;border-radius:var(--radius-xs);background:#ffffff1a;padding:2px 8px;font-size:12px;font-weight:600}.sidebar-footer{border-top:1px solid #ffffff14;flex-direction:column;gap:10px;padding:16px 14px;display:flex}.user-profile-card{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:12px;padding:8px 10px;display:flex}.user-profile-card:hover{background:var(--bg-sidebar-hover)}.user-avatar{border-radius:var(--radius-sm);background:var(--bg-sidebar-active);width:36px;height:36px;color:var(--primary);border:1px solid var(--border-color);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.user-info{white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.user-name{color:#faf6ee;font-size:14px;font-weight:600}.user-role{color:#a9a49a;font-size:12px}.logout-btn{color:#a9a49a;border-radius:var(--radius-sm);width:100%;transition:var(--transition-fast);background:0 0;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.logout-btn:hover{color:var(--danger);background:#b85c4826}.logout-btn-icon-only{color:#a9a49a;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:9px;font-size:16px;display:flex}.logout-btn-icon-only:hover{color:var(--danger);background:#b85c4826}.saas-topbar{height:var(--topbar-height);background-color:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:90;box-shadow:var(--shadow-xs);justify-content:space-between;align-items:center;padding:0 38px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:16px;display:flex}.topbar-breadcrumb-wrap{flex-direction:column;gap:2px;display:flex}.breadcrumb-nav{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.breadcrumb-link{color:var(--text-muted)}.breadcrumb-link:hover{color:var(--primary)}.breadcrumb-separator{color:var(--text-light);font-size:10px}.breadcrumb-current{color:var(--text-main);font-weight:600}.topbar-page-title{letter-spacing:-.4px;font-size:22px;font-weight:700}.topbar-right{align-items:center;gap:14px;display:flex}.topbar-search-box{width:280px;position:relative}.topbar-search-box .search-icon{color:var(--text-muted);font-size:14px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.topbar-search-box input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-card-subtle);width:100%;transition:var(--transition-fast);padding:9px 12px 9px 36px;font-size:14px}.topbar-search-box input:focus{background-color:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.search-dropdown-results{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:105;max-height:320px;padding:10px;position:absolute;top:44px;left:0;right:0;overflow-y:auto}.search-category-title{letter-spacing:.8px;color:var(--text-muted);text-transform:uppercase;padding:4px 8px;font-size:11px;font-weight:700}.search-result-item{border-radius:var(--radius-xs);cursor:pointer;transition:var(--transition-fast);padding:9px 11px}.search-result-item:hover{background-color:var(--bg-card-subtle)}.search-result-item .result-name{color:var(--text-main);font-size:14px;font-weight:600}.search-result-item .result-meta{color:var(--text-muted);font-size:12px}.search-no-results{color:var(--text-muted);text-align:center;padding:8px;font-size:13px}.search-backdrop,.dropdown-backdrop{z-index:104;position:fixed;inset:0}.notification-wrapper{position:relative}.topbar-icon-btn{border-radius:var(--radius-sm);background:var(--bg-card-subtle);border:1px solid var(--border-color);width:38px;height:38px;color:var(--text-main);transition:var(--transition-fast);justify-content:center;align-items:center;font-size:15px;display:flex;position:relative}.topbar-icon-btn:hover{background:var(--bg-card);border-color:var(--primary);color:var(--primary)}.theme-toggle-btn{font-size:16px}.theme-sun-icon{color:var(--warning)}.theme-moon-icon{color:var(--text-muted)}.notification-dot{border-radius:var(--radius-full);background:var(--danger);border:1.5px solid var(--bg-card);width:8px;height:8px;position:absolute;top:7px;right:7px}.notifications-dropdown{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);width:330px;box-shadow:var(--shadow-xl);z-index:105;padding:16px;position:absolute;top:48px;right:0}.notif-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.notif-header h3{font-size:15px;font-weight:700}.notif-count{border-radius:var(--radius-xs);background:var(--danger-light);color:var(--danger);padding:2px 8px;font-size:12px;font-weight:600}.notif-list{flex-direction:column;gap:8px;max-height:260px;margin-top:12px;display:flex;overflow-y:auto}.notif-item{border-radius:var(--radius-xs);background:var(--bg-card-subtle);cursor:pointer;transition:var(--transition-fast);align-items:flex-start;gap:10px;padding:9px 11px;display:flex}.notif-item:hover{border-color:var(--border-color)}.notif-item-icon{flex-shrink:0;margin-top:2px;font-size:15px}.notif-item-icon.warning{color:var(--warning)}.notif-item-icon.success{color:var(--success)}.notif-content .notif-title{font-size:13px;font-weight:600}.notif-content .notif-desc{color:var(--text-muted);font-size:12px}.topbar-avatar{border-radius:var(--radius-sm);background:var(--bg-sidebar);border:1px solid var(--border-color);width:38px;height:38px;color:var(--primary);cursor:pointer;transition:var(--transition-fast);justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.topbar-avatar:hover{border-color:var(--primary)}.mobile-menu-btn{color:var(--text-main);background:0 0;padding:6px;font-size:19px;display:none}.btn{border-radius:var(--radius-sm);transition:var(--transition-fast);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:#faf6ee;border:1px solid #0000}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 2px 8px #bc684040}.btn-success{background-color:var(--success);color:#faf6ee;border:1px solid #0000}.btn-success:hover{background-color:var(--success-hover);box-shadow:0 2px 8px #67784d40}.btn-danger{background-color:var(--danger);color:#faf6ee;border:1px solid #0000}.btn-danger:hover{background-color:var(--danger-hover)}.btn-danger-outline{border:1px solid var(--danger);color:var(--danger);background-color:#0000}.btn-danger-outline:hover{background-color:var(--danger-light)}.btn-secondary{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main)}.btn-secondary:hover{background-color:var(--bg-card-subtle);border-color:var(--text-muted)}.btn-ai-sparkle{background-color:var(--bg-card);border:1px solid var(--primary-border);color:var(--primary)}.btn-ai-sparkle:hover{background-color:var(--primary-light);border-color:var(--primary)}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:11px 22px;font-size:15px}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;display:flex}.page-heading{letter-spacing:-.5px;color:var(--text-main);font-size:25px;font-weight:700}.page-subheading{color:var(--text-muted);margin-top:3px;font-size:14px}.header-actions-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.saas-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;position:relative}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:26px;display:grid}.saas-stat-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-fast);flex-direction:column;gap:12px;padding:20px 22px;display:flex}.saas-stat-card.clickable{cursor:pointer}.saas-stat-card.clickable:hover{box-shadow:var(--shadow-md);border-color:var(--primary);transform:translateY(-1px)}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.stat-card-icon-wrap{border-radius:var(--radius-xs);background:var(--bg-card-subtle);border:1px solid var(--border-color);width:34px;height:34px;color:var(--primary);justify-content:center;align-items:center;font-size:15px;display:flex}.stat-primary .stat-card-icon-wrap{background:var(--primary-light);color:var(--primary);border-color:var(--primary-border)}.stat-spent .stat-card-icon-wrap{background:var(--warning-light);color:var(--warning);border-color:#b3853e4d}.stat-success .stat-card-icon-wrap{background:var(--success-light);color:var(--success);border-color:#67784d4d}.stat-danger .stat-card-icon-wrap{background:var(--danger-light);color:var(--danger);border-color:#a64b384d}.stat-card-value{letter-spacing:-.5px;color:var(--text-main);font-size:28px;font-weight:700}.stat-card-footer{align-items:center;gap:8px;font-size:13px;display:flex}.stat-card-subtitle{color:var(--text-muted)}.stat-trend-pill{border-radius:var(--radius-xs);padding:2px 7px;font-size:12px;font-weight:700}.stat-trend-pill.positive{background:var(--success-light);color:var(--success)}.stat-trend-pill.negative{background:var(--danger-light);color:var(--danger)}.progress-bar-wrapper{align-items:center;gap:8px;width:100%;display:flex}.progress-track{background-color:var(--bg-card-subtle);border-radius:var(--radius-xs);border:1px solid var(--border-color);flex:1;overflow:hidden}.progress-fill{border-radius:var(--radius-xs);height:100%;transition:width .5s}.progress-fill.progress-success{background-color:var(--success)}.progress-fill.progress-warning{background-color:var(--warning)}.progress-fill.progress-danger{background-color:var(--danger)}.status-pill{border-radius:var(--radius-xs);letter-spacing:.5px;text-transform:uppercase;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-pill.pill-sm{padding:2px 7px;font-size:11px}.pill-success{background:var(--success-light);color:var(--success);border:1px solid #67784d4d}.pill-warning{background:var(--warning-light);color:var(--warning);border:1px solid #b3853e4d}.pill-danger{background:var(--danger-light);color:var(--danger);border:1px solid #a64b384d}.category-badge{border-radius:var(--radius-xs);text-transform:capitalize;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.badge-material{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary-border)}.badge-labor{background:var(--success-light);color:var(--success);border:1px solid #67784d4d}.badge-machinery{background:var(--warning-light);color:var(--warning);border:1px solid #b3853e4d}.badge-other{background:var(--accent-stone-light);color:var(--accent-stone);border:1px solid var(--border-color)}.dashboard-grid-2col{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:22px;display:grid}.card-header-clean{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.card-header-clean h3{font-size:16px;font-weight:700}.card-title-wrap{align-items:center;gap:9px;display:flex}.card-title-icon{color:var(--primary);font-size:16px}.card-header-link{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.card-header-link:hover{color:var(--primary)}.budget-progress-section{flex-direction:column;gap:15px;display:flex}.progress-percentage-display{align-items:baseline;gap:10px;display:flex}.percent-large{letter-spacing:-1px;color:var(--text-main);font-family:Space Grotesk,sans-serif;font-size:40px;font-weight:800}.percent-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px}.budget-breakdown-row{border-top:1px solid var(--border-color);grid-template-columns:repeat(3,1fr);gap:12px;padding-top:16px;display:grid}.breakdown-item{flex-direction:column;gap:4px;display:flex}.item-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.item-val{font-size:15px}.compact-projects-list,.recent-expenses-list{flex-direction:column;gap:9px;display:flex}.compact-project-row{border-radius:var(--radius-sm);background:var(--bg-card-subtle);transition:var(--transition-fast);border:1px solid #0000;grid-template-columns:1.2fr 1.5fr auto;align-items:center;gap:14px;padding:11px 14px;display:grid}.compact-project-row:hover{border-color:var(--border-color);background:var(--bg-card-hover)}.compact-proj-name{color:var(--text-main);font-size:14px;font-weight:600;display:block}.compact-proj-client{color:var(--text-muted);font-size:12px}.budget-num-line{margin-bottom:4px;font-size:13px}.compact-proj-status{align-items:center;gap:8px;display:flex}.btn-link-action{color:var(--text-muted);background:0 0;padding:4px;font-size:13px}.btn-link-action:hover{color:var(--primary)}.recent-expense-row{border-radius:var(--radius-sm);background:var(--bg-card-subtle);border:1px solid #0000;justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.recent-expense-row:hover{border-color:var(--border-color)}.recent-exp-left{align-items:center;gap:12px;display:flex}.recent-exp-desc{font-size:14px;font-weight:600}.recent-exp-project{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.bullet-sep{color:var(--text-light);font-size:8px}.filter-controls-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.search-input-wrap{flex:1;min-width:260px;position:relative}.search-input-wrap .filter-icon{color:var(--text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input-wrap input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-card);width:100%;padding:10px 14px 10px 40px;font-size:14px}.search-input-wrap input:focus{border-color:var(--primary);outline:none}.filter-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.select-with-icon{position:relative}.select-with-icon .filter-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.filter-select{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-card);cursor:pointer;padding:10px 16px 10px 36px;font-size:13.5px;font-weight:500}.filter-select:focus{border-color:var(--primary);outline:none}.projects-vertical-list{flex-direction:column;gap:16px;width:100%;display:flex}.project-list-row-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-fast);flex-direction:column;gap:15px;padding:20px 24px;display:flex}.project-list-row-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-border);transform:translateY(-1px)}.project-row-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-row-title-block{flex-direction:column;gap:4px;display:flex}.project-row-name-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.project-name-link h3{color:var(--text-main);transition:var(--transition-fast);font-size:19px;font-weight:700}.project-name-link:hover h3{color:var(--primary)}.project-row-client{color:var(--text-muted);align-items:center;gap:6px;font-size:13.5px;display:flex}.project-row-actions{align-items:center;gap:4px;display:flex}.action-icon-btn{color:var(--text-muted);border-radius:var(--radius-xs);transition:var(--transition-fast);background:0 0;padding:7px;font-size:14px}.action-icon-btn.edit:hover{background:var(--primary-light);color:var(--primary)}.action-icon-btn.delete:hover{background:var(--danger-light);color:var(--danger)}.project-row-metrics-grid{background:var(--bg-card-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);grid-template-columns:repeat(4,1fr);align-items:center;gap:16px;padding:14px 20px;display:grid}.metric-col{flex-direction:column;gap:3px;display:flex}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11.5px;font-weight:700}.metric-val{font-size:16px;font-weight:700}.metric-col-progress{flex-direction:column;gap:6px;display:flex}.metric-progress-header{justify-content:space-between;align-items:center;display:flex}.metric-percent-text{font-size:13px}.project-row-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.project-id-tag{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.btn-view-details{color:var(--primary);border-radius:var(--radius-xs);transition:var(--transition-fast);background:0 0;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.btn-view-details:hover{background:var(--primary-light)}.project-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.back-link{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:inline-flex}.back-link:hover{color:var(--primary)}.project-detail-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.project-detail-client{color:var(--text-muted);margin-top:4px;font-size:14px}.project-progress-banner{margin-bottom:24px;padding:20px 26px}.progress-banner-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.banner-label{letter-spacing:.5px;color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:700}.banner-stats{font-size:19px;font-weight:700}.banner-percent .percent-tag{font-size:14px;font-weight:700}.saas-tabs-container{border-bottom:1px solid var(--border-color);margin-bottom:24px}.saas-tabs-list{align-items:center;gap:4px;display:flex;overflow-x:auto}.saas-tab{color:var(--text-muted);transition:var(--transition-fast);white-space:nowrap;background:0 0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:600;display:inline-flex}.saas-tab:hover{color:var(--text-main)}.saas-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-sparkle-dot{border-radius:var(--radius-full);background:var(--primary);width:6px;height:6px}.tab-content-pane{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.ai-project-insights-card{flex-direction:column;gap:16px;display:flex}.ai-suggestions-panel{background:var(--bg-card-subtle);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:16px}.suggestions-title{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.suggestions-chips-grid{flex-wrap:wrap;gap:7px;display:flex}.prompt-chip{border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main);transition:var(--transition-fast);padding:6px 12px;font-size:12px;font-weight:500}.prompt-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.saas-table-container{width:100%;overflow-x:auto}.saas-table{border-collapse:collapse;text-align:left;width:100%}.saas-table th{background:var(--bg-card-subtle);color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border-color);padding:12px 18px;font-size:12px;font-weight:700}.saas-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.saas-table th.sortable-th:hover{color:var(--primary)}.saas-table td{border-bottom:1px solid var(--border-color);padding:14px 18px;font-size:14px}.saas-table-row:hover td{background-color:var(--bg-card-hover)}.expense-desc-cell{align-items:baseline;gap:8px;display:flex}.expense-id-tag{color:var(--text-light);font-size:11px;font-weight:500}.project-badge-link{color:var(--primary);background:var(--primary-light);border:1px solid var(--primary-border);border-radius:var(--radius-xs);align-items:center;gap:6px;padding:3px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.text-amount{font-size:14.5px}.table-actions-group{justify-content:flex-end;align-items:center;gap:4px;display:flex}.action-btn{border-radius:var(--radius-xs);color:var(--text-muted);transition:var(--transition-fast);background:0 0;padding:6px;font-size:14px}.action-btn.edit:hover{background:var(--primary-light);color:var(--primary)}.action-btn.delete:hover{background:var(--danger-light);color:var(--danger)}.empty-table-state{text-align:center;padding:48px 24px}.empty-icon-wrap{border-radius:var(--radius-sm);background:var(--bg-card-subtle);border:1px solid var(--border-color);width:48px;height:48px;color:var(--text-muted);justify-content:center;align-items:center;margin:0 auto 12px;font-size:20px;display:flex}.floating-ai-fab{border-radius:var(--radius-full);background:var(--bg-sidebar);border:1.5px solid var(--primary);width:48px;height:48px;color:var(--primary);box-shadow:var(--shadow-lg);z-index:200;transition:transform var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;font-size:19px;display:flex;position:fixed;bottom:24px;right:24px}.floating-ai-fab:hover{background:var(--primary);color:#faf6ee;transform:scale(1.06)}.floating-ai-window{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);width:380px;height:520px;box-shadow:var(--shadow-xl);z-index:200;flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:fixed;bottom:82px;right:24px;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.ai-window-header{background:var(--bg-sidebar);border-bottom:1px solid var(--border-color);color:#faf6ee;justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.ai-header-brand{align-items:center;gap:10px;display:flex}.ai-badge-avatar{border-radius:var(--radius-xs);background:var(--primary);color:#faf6ee;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:flex}.ai-header-title{font-size:14px;font-weight:700}.ai-header-status{color:#a9a49a;align-items:center;gap:4px;font-size:11px;display:flex}.status-indicator-dot{border-radius:var(--radius-full);background:var(--success);width:6px;height:6px}.ai-close-btn{color:#a9a49a;background:0 0;font-size:16px}.ai-close-btn:hover{color:#faf6ee}.ai-quick-prompts{background:var(--bg-card-subtle);border-bottom:1px solid var(--border-color);padding:10px 14px}.prompts-label{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:700;display:flex}.prompts-chips{flex-wrap:wrap;gap:6px;display:flex}.ai-messages-scroll{flex-direction:column;flex:1;gap:11px;padding:16px;display:flex;overflow-y:auto}.chat-bubble-row{gap:9px;max-width:90%;display:flex}.chat-bubble-row.user{margin-left:auto}.ai-msg-avatar{border-radius:var(--radius-xs);background:var(--bg-sidebar);border:1px solid var(--border-color);width:26px;height:26px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.chat-bubble{border-radius:var(--radius-sm);padding:10px 14px;font-size:13.5px;line-height:1.5}.chat-bubble.ai{background:var(--bg-card-subtle);color:var(--text-main);border:1px solid var(--border-color);white-space:pre-wrap}.chat-bubble.user{background:var(--primary);color:#faf6ee}.chat-bubble.typing{align-items:center;gap:4px;padding:11px 15px;display:flex}.dot{background:var(--text-muted);border-radius:var(--radius-full);width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.ai-input-bar{border-top:1px solid var(--border-color);background:var(--bg-card);align-items:center;gap:8px;padding:11px 14px;display:flex}.ai-input-bar input{border-radius:var(--radius-xs);border:1px solid var(--border-color);background:var(--bg-card-subtle);flex:1;padding:9px 14px;font-size:13.5px}.ai-input-bar input:focus{background:var(--bg-card);border-color:var(--primary);outline:none}.ai-send-btn{border-radius:var(--radius-xs);background:var(--primary);color:#faf6ee;width:34px;height:34px;transition:var(--transition-fast);justify-content:center;align-items:center;font-size:13px;display:flex}.ai-send-btn:hover{background:var(--primary-hover)}.ai-send-btn:disabled{opacity:.5;cursor:not-allowed}.settings-page-clean{max-width:900px}.settings-list-container{flex-direction:column;gap:26px;display:flex}.settings-group-section{flex-direction:column;gap:9px;display:flex}.settings-group-header{border-bottom:1px solid var(--border-color);padding-bottom:7px}.settings-group-header h3{color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase;font-size:12px;font-weight:700}.settings-list-items{flex-direction:column;gap:9px;display:flex}.settings-list-row{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:var(--transition-fast);overflow:hidden}.settings-list-row:hover{border-color:var(--primary-border)}.settings-row-summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:15px;padding:16px 20px;display:flex}.settings-row-icon-block{border-radius:var(--radius-xs);background:var(--bg-card-subtle);border:1px solid var(--border-color);width:36px;height:36px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.settings-row-text{flex:1}.settings-row-title{color:var(--text-main);font-size:15px;font-weight:700}.settings-row-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.settings-row-arrow{color:var(--text-light);transition:transform var(--transition-fast);font-size:13px}.settings-row-content{border-top:1px dashed var(--border-color);padding:16px 20px 20px 71px;animation:.2s fadeIn}.settings-inline-form{flex-direction:column;gap:15px;display:flex}.form-grid-2col{grid-template-columns:1fr 1fr;gap:14px;display:grid}.settings-form-actions{justify-content:flex-end;display:flex}.currency-selector-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:11px;display:grid}.currency-option-card{border:1px solid var(--border-color);border-radius:var(--radius-xs);cursor:pointer;transition:var(--transition-fast);background:var(--bg-card-subtle);padding:12px 14px;position:relative}.currency-option-card:hover{border-color:var(--primary)}.currency-option-card.selected{border-color:var(--primary);background:var(--primary-light)}.currency-code{font-size:15px;font-weight:700}.currency-name{color:var(--text-muted);font-size:12px}.currency-check{color:var(--primary);font-size:14px;position:absolute;top:12px;right:12px}.notifications-toggle-list{flex-direction:column;gap:11px;display:flex}.toggle-row{border-bottom:1px solid var(--border-subtle);cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:7px 0;display:flex}.toggle-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary)}.ai-settings-info{flex-direction:column;gap:9px;display:flex}.ai-meta-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding:6px 0;font-size:14px;display:flex}.badge-ai-model{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary-border);border-radius:var(--radius-xs);padding:2px 8px;font-size:12px;font-weight:700}.report-document-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-width:960px;box-shadow:var(--shadow-md);margin:0 auto;padding:40px;color:#1c2022!important;background:#fcfaf6!important}[data-theme=dark] .report-document-card{color:#f2ebdd!important;background:#1c2123!important}.report-doc-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.report-doc-brand h2{font-size:22px;font-weight:700}.report-doc-brand p{color:var(--text-muted);font-size:13px}.report-doc-meta{text-align:right;color:var(--text-muted);font-size:13px}.report-divider{border:0;border-top:1px solid var(--border-color);margin:20px 0}.report-target-details{margin-bottom:20px}.report-target-details h3{font-size:17px;font-weight:700}.report-ai-summary-box{background:var(--bg-card-subtle);border-left:3px solid var(--primary);border-radius:0 var(--radius-xs) var(--radius-xs) 0;margin:22px 0;padding:16px}.summary-box-title{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-bottom:7px;font-size:13px;font-weight:700;display:flex}.ai-summary-text{white-space:pre-wrap;font-size:14px;line-height:1.6}.report-doc-footer{justify-content:space-between;margin-top:44px;padding-top:18px;display:flex}.sign-box{text-align:center;width:210px;color:var(--text-muted);font-size:12px}.sign-line{border-top:1px solid var(--border-color);margin-bottom:6px}@media print{body{background:#fff!important}.saas-sidebar,.saas-topbar,.no-print,.floating-ai-fab,.toast-container{display:none!important}.saas-main-wrapper{margin-left:0!important}.saas-content-area{padding:0!important}.report-document-card{box-shadow:none!important;border:none!important;padding:0!important}}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:300;background:#111416a6;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-modal);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);border:1px solid var(--border-color);width:530px;max-width:100%;max-height:90vh;animation:.2s modalScale;overflow-y:auto}.modal-content.modal-lg{width:720px}@keyframes modalScale{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;padding:20px 24px;display:flex}.modal-title-wrap{align-items:flex-start;gap:12px;display:flex}.modal-icon-badge{border-radius:var(--radius-xs);background:var(--primary-light);border:1px solid var(--primary-border);width:38px;height:38px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:flex}.modal-icon-badge.expense-badge{background:var(--success-light);color:var(--success);border-color:#67784d4d}.modal-icon-badge.ai-badge{background:var(--warning-light);color:var(--warning);border-color:#b3853e4d}.modal-title{font-size:17px;font-weight:700}.modal-subtitle{color:var(--text-muted);font-size:13px}.modal-close-btn{color:var(--text-muted);border-radius:var(--radius-xs);background:0 0;padding:4px;font-size:16px}.modal-close-btn:hover{background:var(--bg-card-subtle);color:var(--text-main)}.modal-body{flex-direction:column;gap:15px;padding:20px 24px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-main);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.label-icon{color:var(--text-muted)}.form-control{border-radius:var(--radius-xs);border:1px solid var(--border-color);background-color:var(--bg-input);width:100%;transition:var(--transition-fast);padding:10px 14px;font-size:14px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.input-prefix-wrap{align-items:center;display:flex;position:relative}.input-prefix{color:var(--text-muted);pointer-events:none;font-size:13px;font-weight:700;position:absolute;left:12px}.form-control.has-prefix{padding-left:38px}.text-area-code{resize:vertical;font-family:monospace;font-size:13px}.modal-footer{border-top:1px solid var(--border-color);background:var(--bg-card-subtle);border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex}.confirm-dialog-box{width:430px;padding:24px}.confirm-dialog-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.confirm-icon-wrap{border-radius:var(--radius-sm);background:var(--danger-light);width:42px;height:42px;color:var(--danger);border:1px solid #a64b384d;justify-content:center;align-items:center;font-size:19px;display:flex}.confirm-title{margin-bottom:6px;font-size:17px;font-weight:700}.confirm-message{color:var(--text-muted);margin-bottom:20px;font-size:13.5px;line-height:1.5}.toast-container{z-index:500;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast-item{border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:270px;max-width:420px;padding:11px 18px;font-size:13.5px;font-weight:600;animation:.2s slideLeft;display:flex}@keyframes slideLeft{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0;font-size:16px}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--primary)}.toast-message{flex:1}.toast-close-btn{color:var(--text-light);background:0 0;font-size:13px}.skeleton-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;gap:14px;padding:20px;display:flex}.skeleton-line{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--bg-card-subtle) 25%, var(--border-color) 50%, var(--bg-card-subtle) 75%);background-size:200% 100%;height:15px;animation:1.5s infinite shimmer}.skeleton-title{width:60%;height:19px}.skeleton-subtitle{width:40%;height:13px}.skeleton-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.skeleton-box{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--bg-card-subtle) 25%, var(--border-color) 50%, var(--bg-card-subtle) 75%);background-size:200% 100%;height:46px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.custom-chart-tooltip{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-md);border-radius:var(--radius-xs);padding:9px 14px}.tooltip-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:700}.tooltip-value{color:var(--primary);font-size:14px;font-weight:700}.chart-empty{height:240px;color:var(--text-muted);justify-content:center;align-items:center;font-size:13.5px;display:flex}.text-right{text-align:right}.text-center{text-align:center}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-spent{color:var(--warning)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-sm{font-size:13px}.flex-align-gap{align-items:center;gap:10px;display:flex}@media (width<=1024px){.saas-sidebar{transform:translate(-100%)}.saas-sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99;background:#11141699;position:fixed;inset:0}.saas-main-wrapper{margin-left:0!important}.mobile-menu-btn{display:flex}.desktop-only{display:none!important}.dashboard-grid-2col{grid-template-columns:1fr}.project-row-metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.saas-content-area{padding:18px 16px 40px}.saas-topbar{padding:0 16px}.topbar-search-box{display:none}.page-header-row{flex-direction:column;align-items:flex-start}.header-actions-group{width:100%}.header-actions-group .btn{flex:1}.project-row-metrics-grid{grid-template-columns:1fr;gap:12px}.settings-row-content{padding-left:18px}.form-grid-2col{grid-template-columns:1fr}.floating-ai-window{width:calc(100vw - 32px);height:480px;right:16px}}.app-footer{background-color:var(--bg-card);border-top:1px solid var(--border-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-sm);color:var(--text-main);margin-top:48px;padding:28px 32px 20px}.app-footer-inner{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr 1fr;gap:36px;padding-bottom:24px;display:grid}.footer-section{flex-direction:column;gap:10px;display:flex}.footer-brand-title,.footer-developer-title{align-items:center;gap:10px;display:flex}.footer-brand-icon,.footer-dev-icon{border-radius:var(--radius-sm);background-color:var(--primary-light);width:28px;height:28px;color:var(--primary);justify-content:center;align-items:center;font-size:14px;display:flex}.footer-brand-title h4,.footer-developer-title h4{color:var(--text-main);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:700}.footer-description,.footer-dev-bio{color:var(--text-muted);margin:0;font-size:13.5px;line-height:1.6}.footer-dev-links{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.footer-link-btn{border-radius:var(--radius-sm);background-color:var(--bg-card-subtle);border:1px solid var(--border-color);color:var(--text-main);transition:var(--transition-fast);align-items:center;gap:7px;padding:6px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.footer-link-btn:hover,.footer-link-btn:focus-visible{background-color:var(--primary-light);border-color:var(--primary-border);color:var(--primary);transform:translateY(-1px)}.footer-link-btn .link-icon{font-size:14px}.app-footer-bottom{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;font-size:12.5px;display:flex}.footer-tagline{color:var(--text-light);font-size:12px}@media (width<=768px){.app-footer{border-radius:var(--radius-md) var(--radius-md) 0 0;margin-top:32px;padding:24px 20px 16px}.app-footer-inner{grid-template-columns:1fr;gap:24px}.app-footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}}.ai-bulk-import-dialog{max-width:840px}.ai-preview-section{background-color:var(--bg-card-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:20px;padding:16px}.preview-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.preview-header-left{flex-direction:column;gap:4px;display:flex}.preview-header-left h4{color:var(--text-main);align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.header-edit-icon{color:var(--primary);font-size:14px}.preview-help-text{color:var(--text-muted);font-size:12px}.preview-header-actions{align-items:center;gap:12px;display:flex}.preview-sum{color:var(--text-main);background-color:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border-color);padding:4px 10px;font-size:13.5px}.preview-table-wrap{border-radius:var(--radius-sm);background-color:var(--bg-card);border:1px solid var(--border-color);overflow-x:auto}.preview-editable-table{width:100%;margin-bottom:0}.preview-editable-table th{text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;font-size:12px}.preview-editable-row td{vertical-align:middle;padding:6px 8px}.preview-cell-input,.preview-cell-select{width:100%;color:var(--text-main);background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:var(--transition-fast);padding:7px 10px;font-family:inherit;font-size:13.5px}.preview-cell-input:focus,.preview-cell-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);background-color:#fff;outline:none}.btn-row-delete{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--danger);cursor:pointer;transition:var(--transition-fast);background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.btn-row-delete:hover{background-color:var(--danger-light);border-color:var(--danger)}
