@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--color-primary:#5e6ad2;--color-on-primary:#fff;--color-primary-hover:#828fff;--color-primary-focus:#5e69d1;--color-ink:#f7f8f8;--color-ink-muted:#d0d6e0;--color-ink-subtle:#8a8f98;--color-ink-tertiary:#62666d;--color-canvas:#010102;--color-surface-1:#0f1011;--color-surface-2:#141516;--color-surface-3:#18191a;--color-surface-4:#191a1b;--color-hairline:#23252a;--color-hairline-strong:#34343a;--color-hairline-tertiary:#3e3e44;--color-semantic-success:#27a644;--color-semantic-error:#e5484d;--font-display:"Inter", "SF Pro Display", -apple-system, system-ui, sans-serif;--font-text:"Inter", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--space-section:96px;--rounded-xs:4px;--rounded-sm:6px;--rounded-md:8px;--rounded-lg:12px;--rounded-xl:16px;--rounded-xxl:24px;--rounded-pill:9999px;--transition-theme:background-color .2s ease, color .2s ease, border-color .2s ease}[data-theme=light]{--color-primary:#4f5bc0;--color-primary-hover:#6672e0;--color-primary-focus:#4f5bc0;--color-ink:#0d0e10;--color-ink-muted:#2c2f38;--color-ink-subtle:#595e6b;--color-ink-tertiary:#8a8f98;--color-canvas:#f5f6f7;--color-surface-1:#fff;--color-surface-2:#f0f1f3;--color-surface-3:#e8eaed;--color-surface-4:#e2e4e8;--color-hairline:#d8dae0;--color-hairline-strong:#c4c7d0;--color-hairline-tertiary:#b8bcc8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-text);background-color:var(--color-canvas);color:var(--color-ink);min-height:100vh;line-height:1.5}.text-display-lg{font-family:var(--font-display);letter-spacing:-1px;font-size:40px;font-weight:600;line-height:1.15}.text-headline{font-family:var(--font-display);letter-spacing:-.6px;font-size:28px;font-weight:600;line-height:1.2}.text-card-title{font-family:var(--font-display);letter-spacing:-.4px;font-size:22px;font-weight:500;line-height:1.25}.text-subhead{font-family:var(--font-display);letter-spacing:-.2px;font-size:20px;font-weight:400;line-height:1.4}.text-body-lg{letter-spacing:-.1px;font-size:18px;font-weight:400;line-height:1.5}.text-body{letter-spacing:-.05px;font-size:16px;font-weight:400;line-height:1.5}.text-body-sm{font-size:14px;font-weight:400;line-height:1.5}.text-caption{font-size:12px;font-weight:400;line-height:1.4}.text-button{font-size:14px;font-weight:500;line-height:1.2}.text-eyebrow{letter-spacing:.4px;text-transform:uppercase;font-size:13px;font-weight:500;line-height:1.3}.text-mono{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:1.5}.text-ink{color:var(--color-ink)}.text-ink-muted{color:var(--color-ink-muted)}.text-ink-subtle{color:var(--color-ink-subtle)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-semantic-success)}.text-error{color:var(--color-semantic-error)}.btn{justify-content:center;align-items:center;gap:var(--space-xs);font-family:var(--font-text);border-radius:var(--rounded-md);cursor:pointer;white-space:nowrap;border:none;min-height:40px;padding:10px 18px;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:background-color .15s,opacity .15s,transform 80ms;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-primary:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.btn-secondary{background-color:var(--color-surface-1);color:var(--color-ink);border:1px solid var(--color-hairline)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-2);border-color:var(--color-hairline-strong)}.btn-secondary:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.btn-ghost{color:var(--color-ink-subtle);background-color:#0000;border:1px solid #0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-1);color:var(--color-ink)}.btn-full{width:100%}.btn-lg{min-height:44px;padding:12px 24px;font-size:15px}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{color:var(--color-ink-muted);letter-spacing:.1px;font-size:13px;font-weight:500}.form-label .optional-badge{color:var(--color-ink-tertiary);margin-left:6px;font-size:11px;font-weight:400}.form-input,.form-textarea,.form-select{background-color:var(--color-surface-1);color:var(--color-ink);font-family:var(--font-text);letter-spacing:-.05px;border-radius:var(--rounded-md);border:1px solid var(--color-hairline);appearance:none;width:100%;min-height:44px;padding:10px 14px;font-size:15px;font-weight:400;line-height:1.5;transition:border-color .15s,box-shadow .15s}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-ink-tertiary)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary-focus);outline:none;box-shadow:0 0 0 3px #5e6ad226}.form-input.error,.form-textarea.error{border-color:var(--color-semantic-error)}.form-textarea{resize:vertical;min-height:120px}.form-hint{color:var(--color-ink-tertiary);font-size:12px;line-height:1.4}.form-error{color:var(--color-semantic-error);font-size:12px;line-height:1.4}.currency-input-wrapper{position:relative}.currency-input-wrapper .currency-symbol{color:var(--color-ink-subtle);pointer-events:none;font-size:15px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.currency-input-wrapper .form-input{padding-left:28px}.checkbox-container{align-items:center;gap:var(--space-xs);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.checkbox-container input[type=checkbox]{appearance:none;border:1px solid var(--color-hairline-strong);border-radius:var(--rounded-xs);background-color:var(--color-surface-1);cursor:pointer;place-content:center;width:18px;height:18px;transition:all .15s;display:grid}.checkbox-container input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-container input[type=checkbox]:checked:before{content:"";clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);background-color:var(--color-on-primary);width:10px;height:10px;transform:scale(1)}.checkbox-container input[type=checkbox]:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.checkbox-label{color:var(--color-ink-muted);font-size:14px;font-weight:500}.card{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-lg);padding:var(--space-lg)}.card-featured{background-color:var(--color-surface-2);border-color:var(--color-hairline-strong)}.navbar{background-color:var(--color-canvas);border-bottom:1px solid var(--color-hairline);height:56px;padding:0 var(--space-lg);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;display:flex;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;width:100%;max-width:1000px;margin:0 auto;display:flex}.navbar-brand{align-items:center;gap:var(--space-sm);color:var(--color-ink);text-decoration:none;display:flex}.navbar-logo{object-fit:contain;width:32px;height:32px}.navbar-brand-name{font-family:var(--font-display);letter-spacing:-.3px;color:var(--color-ink);font-size:15px;font-weight:600}.navbar-brand-tag{color:var(--color-primary);border-radius:var(--rounded-pill);letter-spacing:.3px;background-color:#5e6ad21f;border:1px solid #5e6ad240;padding:2px 8px;font-size:11px;font-weight:500}.navbar-right{align-items:center;gap:var(--space-sm);display:flex}.page-container{max-width:1000px;padding:var(--space-xl) var(--space-lg);margin:0 auto}.page-header{margin-bottom:var(--space-xl)}.login-page{min-height:100vh;padding:var(--space-lg);background-color:var(--color-canvas);background-image:radial-gradient(60% 40% at 50% 0,#5e6ad214 0%,#0000 70%);justify-content:center;align-items:center;display:flex}.login-card{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-xl);width:100%;max-width:420px;padding:var(--space-xxl) var(--space-xl)}.login-logo-wrap{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.login-logo{object-fit:contain;width:72px;height:72px}.login-brand-name{font-family:var(--font-display);letter-spacing:-.4px;color:var(--color-ink);font-size:18px;font-weight:600}.login-eyebrow{letter-spacing:.8px;text-transform:uppercase;color:var(--color-primary);font-size:12px;font-weight:500}.login-title{font-family:var(--font-display);letter-spacing:-.5px;color:var(--color-ink);text-align:center;margin-bottom:var(--space-xs);font-size:24px;font-weight:600}.login-subtitle{color:var(--color-ink-subtle);text-align:center;margin-bottom:var(--space-xl);font-size:14px}.login-form{gap:var(--space-md);flex-direction:column;display:flex}.login-error{align-items:center;gap:var(--space-xs);border-radius:var(--rounded-md);padding:var(--space-sm) var(--space-md);color:var(--color-semantic-error);background-color:#e5484d14;border:1px solid #e5484d40;font-size:13px;animation:.4s cubic-bezier(.36,.07,.19,.97) shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-4px)}30%,70%{transform:translate(4px)}}.dashboard-main{background-color:var(--color-canvas);min-height:calc(100vh - 56px)}.section-eyebrow{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.section-eyebrow-dot{background-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.section-title{font-family:var(--font-display);letter-spacing:-.6px;color:var(--color-ink);font-size:26px;font-weight:600}.section-desc{color:var(--color-ink-subtle);margin-top:var(--space-xs);font-size:15px;line-height:1.55}.contract-form{gap:var(--space-md);flex-direction:column;display:flex}.form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.divider{border:none;border-top:1px solid var(--color-hairline);margin:var(--space-xs) 0}.section-label{letter-spacing:1px;text-transform:uppercase;color:var(--color-ink-tertiary);margin-bottom:var(--space-xs);font-size:11px;font-weight:600}.pdf-preview-card{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-xl);overflow:hidden}.pdf-preview-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-hairline);justify-content:space-between;align-items:center;display:flex}.pdf-preview-title{color:var(--color-ink-muted);align-items:center;gap:var(--space-xs);font-size:14px;font-weight:500;display:flex}.pdf-preview-dot{background-color:var(--color-semantic-success);border-radius:50%;width:8px;height:8px}.pdf-preview-body{padding:var(--space-lg);justify-content:center;align-items:center;min-height:200px;display:flex}.pdf-empty-state{align-items:center;gap:var(--space-sm);color:var(--color-ink-tertiary);text-align:center;flex-direction:column;display:flex}.pdf-empty-icon{opacity:.3;width:48px;height:48px}.success-banner{align-items:center;gap:var(--space-sm);border-radius:var(--rounded-md);padding:var(--space-sm) var(--space-md);color:var(--color-semantic-success);background-color:#27a64414;border:1px solid #27a64440;font-size:13px;display:flex}.spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-badge{background-color:var(--color-surface-2);color:var(--color-ink-muted);border-radius:var(--rounded-pill);align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:400;display:inline-flex}.theme-toggle{background-color:var(--color-surface-2);border:1px solid var(--color-hairline);border-radius:var(--rounded-pill);align-items:center;gap:2px;padding:3px;display:flex}.theme-btn{border-radius:var(--rounded-pill);color:var(--color-ink-subtle);font-size:12px;font-weight:500;font-family:var(--font-text);cursor:pointer;white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;padding:5px 10px;transition:background-color .15s,color .15s;display:flex}.theme-btn svg{flex-shrink:0}.theme-btn:hover{color:var(--color-ink);background-color:var(--color-surface-3)}.theme-btn.active{background-color:var(--color-surface-1);color:var(--color-ink);box-shadow:0 1px 3px #0003}[data-theme=light] .theme-btn.active{box-shadow:0 1px 3px #0000001a}@media (max-width:768px){.page-container{padding:var(--space-lg) var(--space-md)}.form-row{grid-template-columns:1fr}.section-title{font-size:22px}.login-card{padding:var(--space-xl) var(--space-lg)}.navbar-brand-name,.theme-btn span{display:none}.theme-btn{padding:5px 8px}}@media (max-width:480px){.login-card{border-radius:var(--rounded-lg);padding:var(--space-lg) var(--space-md)}.navbar-brand-tag{display:none}}:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.tabs-container{background-color:var(--color-surface-2);border:1px solid var(--color-hairline);border-radius:var(--rounded-md);margin-bottom:var(--space-xl);gap:4px;padding:4px;display:inline-flex}.tab-btn{border-radius:var(--rounded-sm);font-family:var(--font-text);color:var(--color-ink-subtle);cursor:pointer;align-items:center;gap:var(--space-xs);background:0 0;border:none;padding:8px 16px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.tab-btn:hover{color:var(--color-ink);background-color:var(--color-surface-3)}.tab-btn.active{background-color:var(--color-surface-1);color:var(--color-ink);border:1px solid var(--color-hairline-strong);box-shadow:0 1px 3px #0003}[data-theme=light] .tab-btn.active{box-shadow:0 1px 3px #0000000d}.clients-grid{gap:var(--space-lg);margin-top:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.client-card{flex-direction:column;justify-content:space-between;min-height:240px;transition:border-color .2s,transform .2s;display:flex}.client-card:hover{border-color:var(--color-primary-hover);transform:translateY(-2px)}.client-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.client-card-title{font-family:var(--font-display);color:var(--color-ink);margin-bottom:2px;font-size:18px;font-weight:600}.client-card-subtitle{color:var(--color-ink-subtle);font-size:13px}.client-stats-list{gap:var(--space-xs);margin:var(--space-md) 0;padding:var(--space-sm) 0;border-top:1px solid var(--color-hairline);border-bottom:1px solid var(--color-hairline);flex-direction:column;display:flex}.client-stat-item{justify-content:space-between;font-size:13px;display:flex}.client-stat-label{color:var(--color-ink-subtle)}.client-stat-value{color:var(--color-ink);font-weight:500}.client-card-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.status-badge{border-radius:var(--rounded-pill);text-transform:uppercase;letter-spacing:.5px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-badge.active{color:var(--color-semantic-success);background-color:#27a6441a;border:1px solid #27a64433}.status-badge.completed{color:var(--color-primary);background-color:#5e6ad21a;border:1px solid #5e6ad233}.status-badge.paused{color:#f59e0b;background-color:#f59e0b1a;border:1px solid #f59e0b33}.status-badge.cancelled{color:var(--color-semantic-error);background-color:#e5484d1a;border:1px solid #e5484d33}.status-select{background-color:var(--color-surface-2);border:1px solid var(--color-hairline);color:var(--color-ink);font-family:var(--font-text);border-radius:var(--rounded-sm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8f98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding:4px 24px 4px 8px;font-size:13px;font-weight:500;transition:all .15s}.status-select:hover{border-color:var(--color-hairline-strong);background-color:var(--color-surface-3)}.status-select:focus{border-color:var(--color-primary);outline:none}.drawer-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;background-color:#0006;animation:.2s ease-out forwards fadeIn;position:fixed;inset:0}.drawer{background-color:var(--color-surface-1);border-left:1px solid var(--color-hairline-strong);z-index:201;flex-direction:column;width:100%;max-width:520px;animation:.25s cubic-bezier(.16,1,.3,1) forwards slideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #0000004d}.drawer-header{padding:var(--space-lg);border-bottom:1px solid var(--color-hairline);justify-content:space-between;align-items:center;display:flex}.drawer-title{font-family:var(--font-display);font-size:20px;font-weight:600}.drawer-close{color:var(--color-ink-subtle);cursor:pointer;padding:var(--space-xs);border-radius:var(--rounded-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.drawer-close:hover{background-color:var(--color-surface-3);color:var(--color-ink)}.drawer-body{padding:var(--space-lg);gap:var(--space-xl);flex-direction:column;flex:1;display:flex;overflow-y:auto}.payment-list{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.payment-item{background-color:var(--color-surface-2);border:1px solid var(--color-hairline);padding:var(--space-sm);border-radius:var(--rounded-md);justify-content:space-between;align-items:center;display:flex}.payment-date{color:var(--color-ink-subtle);font-size:12px}.payment-amount{font-family:var(--font-mono);color:var(--color-ink);font-size:14px;font-weight:600}.empty-state{text-align:center;padding:var(--space-xl) var(--space-lg);color:var(--color-ink-subtle);font-size:14px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@media (max-width:540px){.drawer{max-width:100%}}.upload-zone{border:1px dashed var(--color-hairline-strong);background-color:var(--color-surface-2);border-radius:var(--rounded-md);padding:var(--space-lg);text-align:center;cursor:pointer;justify-content:center;align-items:center;gap:var(--space-xs);flex-direction:column;transition:all .15s;display:flex}.upload-zone:hover,.upload-zone.active{border-color:var(--color-primary);background-color:var(--color-surface-3)}.upload-zone-icon{color:var(--color-ink-subtle);transition:color .15s}.upload-zone:hover .upload-zone-icon,.upload-zone.active .upload-zone-icon{color:var(--color-primary)}.upload-zone-title{color:var(--color-ink);font-size:13px;font-weight:500}.upload-zone-desc{color:var(--color-ink-subtle);font-size:11px}.edit-form-actions{margin-top:var(--space-md);gap:12px;display:flex}.edit-btn-inline{color:var(--color-ink-subtle);cursor:pointer;border-radius:var(--rounded-xs);background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.edit-btn-inline:hover{color:var(--color-ink);background-color:var(--color-surface-2)}.filters-bar{margin-bottom:var(--space-lg);gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.search-wrapper{flex:1;min-width:240px;position:relative}.search-wrapper .form-input{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-md);height:38px;min-height:38px;color:var(--color-ink);padding-left:36px;font-size:13px}.search-wrapper .form-input:focus{border-color:var(--color-primary-focus);box-shadow:0 0 0 3px #5e6ad226}.filter-wrapper{min-width:160px}.filter-select{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);color:var(--color-ink);font-family:var(--font-text);border-radius:var(--rounded-md);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8f98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;width:100%;height:38px;min-height:38px;padding:8px 32px 8px 12px;font-size:13px;font-weight:500;transition:all .15s}.filter-select:hover{border-color:var(--color-hairline-strong);background-color:var(--color-surface-2)}.filter-select:focus{border-color:var(--color-primary-focus);outline:none;box-shadow:0 0 0 3px #5e6ad226}.maint-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;position:relative}.maint-indicator.overdue{background-color:var(--color-semantic-error);animation:2s infinite pulse-crimson;box-shadow:0 0 0 2px #e5484d33}.maint-indicator.pending{background-color:#e2a100;animation:2s infinite pulse-amber;box-shadow:0 0 0 2px #e2a10033}@keyframes pulse-crimson{0%{box-shadow:0 0 #e5484d66}70%{box-shadow:0 0 0 6px #e5484d00}to{box-shadow:0 0 #e5484d00}}@keyframes pulse-amber{0%{box-shadow:0 0 #e2a10066}70%{box-shadow:0 0 0 6px #e2a10000}to{box-shadow:0 0 #e2a10000}}.maint-timeline{margin-top:var(--space-sm);flex-direction:column;gap:10px;display:flex}.maint-timeline-item{background-color:var(--color-surface-2);border:1px solid var(--color-hairline);border-radius:var(--rounded-md);padding:10px var(--space-md);justify-content:space-between;align-items:center;transition:border-color .15s;display:flex;position:relative}.maint-timeline-item:hover{border-color:var(--color-hairline-strong)}.maint-timeline-item.overdue{border-left:3px solid var(--color-semantic-error)}.maint-timeline-item.pending{border-left:3px solid #e2a100}.maint-timeline-item.paid{border-left:3px solid var(--color-semantic-success)}.maint-timeline-item.upcoming{border-left:3px solid var(--color-ink-tertiary)}.maint-year-badge{font-family:var(--font-mono);color:var(--color-ink);font-size:13px;font-weight:600}.maint-status-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.maint-status-badge.overdue{color:var(--color-semantic-error);background-color:#e5484d1f}.maint-status-badge.pending{color:#e2a100;background-color:#e2a1001f}.maint-status-badge.paid{color:var(--color-semantic-success);background-color:#27a6441f}.maint-status-badge.upcoming{background-color:var(--color-surface-3);color:var(--color-ink-subtle)}.maint-not-configured{background-color:var(--color-surface-2);border:1px dashed var(--color-hairline);border-radius:var(--rounded-md);padding:var(--space-md);text-align:center;color:var(--color-ink-subtle);font-size:13px}.app-layout{width:100%;min-height:100vh;display:flex}.app-main-viewport{background-color:var(--color-canvas);flex:1;width:calc(100% - 280px);min-height:100vh;margin-left:280px;transition:margin-left .25s cubic-bezier(.16,1,.3,1)}.sidebar{background-color:var(--color-surface-1);border-right:1px solid var(--color-hairline);z-index:200;flex-direction:column;width:280px;height:100vh;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-brand{padding:var(--space-lg);align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--color-hairline);height:64px;display:flex}.sidebar-logo{object-fit:contain;flex-shrink:0;width:32px;height:32px}.sidebar-brand-name{font-family:var(--font-display);letter-spacing:-.3px;color:var(--color-ink);font-size:15px;font-weight:600}.sidebar-brand-tag{color:var(--color-primary);border-radius:var(--rounded-pill);letter-spacing:.3px;background-color:#5e6ad21f;border:1px solid #5e6ad240;padding:1px 6px;font-size:10px;font-weight:500}.sidebar-nav{padding:var(--space-md);gap:var(--space-xxs);flex-direction:column;flex:1;display:flex}.sidebar-nav-btn{align-items:center;gap:var(--space-sm);border-radius:var(--rounded-md);width:100%;color:var(--color-ink-subtle);text-align:left;font-family:var(--font-text);cursor:pointer;background:0 0;border:none;padding:10px 14px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.sidebar-nav-btn:hover{background-color:var(--color-surface-2);color:var(--color-ink)}.sidebar-nav-btn.active{background-color:var(--color-surface-2);color:var(--color-ink);box-shadow:inset 3px 0 0 0 var(--color-primary);font-weight:600}.sidebar-nav-btn svg{flex-shrink:0}.sidebar-footer{padding:var(--space-lg);border-top:1px solid var(--color-hairline);gap:var(--space-md);flex-direction:column;display:flex}.sidebar-theme-toggle{justify-content:center;width:100%;display:flex}.mobile-topbar{display:none}.maint-stats-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.maint-stat-card{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-lg);padding:var(--space-md) var(--space-lg);gap:var(--space-xxs);flex-direction:column;display:flex;position:relative}.maint-stat-label{text-transform:uppercase;color:var(--color-ink-subtle);letter-spacing:.5px;font-size:11px;font-weight:600}.maint-stat-value{color:var(--color-ink);letter-spacing:-.5px;font-size:28px;font-weight:700}.maint-stat-card.overdue-card{border-top:3px solid var(--color-semantic-error)}.maint-stat-card.pending-card{border-top:3px solid #e2a100}.maint-list-container{margin-top:var(--space-lg)}.maint-card-list{flex-direction:column;gap:12px;display:flex}.maint-row-card{background-color:var(--color-surface-1);border:1px solid var(--color-hairline);border-radius:var(--rounded-lg);padding:var(--space-md) var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);transition:all .15s;display:flex}.maint-row-card:hover{border-color:var(--color-hairline-strong);background-color:var(--color-surface-2)}.maint-row-info{flex-direction:column;gap:4px;display:flex}.maint-row-name-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.maint-row-name{color:var(--color-ink);font-size:15px;font-weight:600}.maint-row-company{color:var(--color-ink-subtle);font-size:13px}.maint-row-details{align-items:center;gap:var(--space-lg);color:var(--color-ink-muted);font-size:13px;display:flex}.maint-detail-item{align-items:center;gap:6px;display:flex}.maint-detail-label{color:var(--color-ink-subtle)}.maint-detail-value{font-weight:500}.mobile-drawer-trigger{display:none}@media (max-width:1024px){.app-main-viewport{width:100%;min-height:calc(100vh - 56px);margin-left:0}.sidebar{z-index:1000;height:100vh;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:10px 0 30px #0006}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0006;transition:opacity .25s;position:fixed;inset:0}.mobile-topbar{display:none!important}.mobile-drawer-trigger{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--color-hairline-strong);width:44px;height:44px;color:var(--color-ink-muted);z-index:500;cursor:pointer;background-color:#16181dbf;border-radius:50%;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:16px;left:16px;box-shadow:0 4px 14px #0006,inset 0 1px 1px #ffffff1a}.mobile-drawer-trigger:hover{border-color:var(--color-primary);color:var(--color-ink);background-color:#16181de6;transform:scale(1.06);box-shadow:0 8px 24px #5e6ad240,0 2px 8px #0000004d}.mobile-drawer-trigger:active{transform:scale(.95)}[data-theme=light] .mobile-drawer-trigger{color:var(--color-primary);background-color:#ffffffd9;border-color:#4f5bc02e;box-shadow:0 8px 24px #4f5bc01f,0 2px 8px #0000000a,inset 0 1px #fff9}[data-theme=light] .mobile-drawer-trigger:hover{color:var(--color-primary-hover);background-color:#fffffff2;border-color:#4f5bc059;transform:scale(1.06);box-shadow:0 12px 28px #4f5bc02e,0 3px 10px #0000000f,inset 0 1px #fffc}}@media (max-width:768px){.page-container{width:100%!important;max-width:100%!important;padding:76px 16px 24px!important}.clients-grid,.maint-stats-grid{grid-template-columns:1fr!important}.maint-row-card{align-items:flex-start;gap:var(--space-md);flex-direction:column}.maint-row-card .btn{width:100%}.maint-row-details{flex-direction:column;align-items:flex-start;gap:6px}}.confirm-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background-color:#0009;justify-content:center;align-items:center;animation:.2s cubic-bezier(.16,1,.3,1) forwards confirmFadeIn;display:flex;position:fixed;inset:0}.confirm-dialog{background-color:var(--color-surface-1);border:1px solid var(--color-hairline-strong);border-radius:var(--rounded-lg);padding:var(--space-xl);gap:var(--space-md);flex-direction:column;width:90%;max-width:400px;animation:.2s cubic-bezier(.16,1,.3,1) forwards confirmScaleIn;display:flex;box-shadow:0 20px 40px #00000080}.confirm-title{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:18px;font-weight:600}.confirm-message{color:var(--color-ink-muted);margin:0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm);display:flex}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes confirmScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
