@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg:#fafafa;--bg-secondary:#f0f0f0;--fg:#0a0a0a;--fg-muted:#6b6b6b;--fg-subtle:#999;--accent:#0a0a0a;--accent-hover:#333;--border:#e0e0e0;--border-subtle:#eaeaea;--card-bg:#fff;--card-shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--card-shadow-hover:0 10px 40px #00000014;--glass-bg:#ffffffb3;--glass-border:#ffffff4d;--glass-blur:20px;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--font-serif:"Playfair Display", Georgia, serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);min-height:100vh;line-height:1.6}.login-page{background:var(--fg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(at 30% 20%,#ffffff08 0%,#0000 50%),radial-gradient(at 70% 80%,#ffffff05 0%,#0000 50%);width:200%;height:200%;animation:20s ease-in-out infinite alternate bgShift;position:absolute;top:-50%;left:-50%}@keyframes bgShift{0%{transform:translate(0)}to{transform:translate(-5%,-5%)}}.login-card{z-index:1;-webkit-backdrop-filter:blur(40px);border-radius:var(--radius-xl);text-align:center;background:#ffffff0a;border:1px solid #ffffff14;width:100%;max-width:420px;padding:3.5rem 3rem;animation:.8s ease-out fadeUp;position:relative}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-brand{margin-bottom:.5rem}.login-brand-logo{font-family:var(--font-serif);color:#fff;letter-spacing:-2px;font-size:3.5rem;font-weight:700;line-height:1}.login-brand-name{font-family:var(--font-sans);color:#fff6;letter-spacing:6px;text-transform:uppercase;margin-top:.75rem;font-size:.75rem;font-weight:400;display:block}.login-divider{background:#ffffff26;width:40px;height:1px;margin:2rem auto}.login-title{font-family:var(--font-sans);color:#ffffffb3;margin-bottom:.5rem;font-size:1.25rem;font-weight:300}.login-subtitle{color:#ffffff59;margin-bottom:2.5rem;font-size:.85rem;line-height:1.5}.btn-microsoft{width:100%;color:var(--fg);border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-base);letter-spacing:.3px;background:#fff;border:none;justify-content:center;align-items:center;gap:.75rem;padding:.9rem 1.5rem;font-size:.9rem;font-weight:600;display:inline-flex}.btn-microsoft:hover{background:#f5f5f5;transform:translateY(-2px);box-shadow:0 8px 30px #0000004d}.btn-microsoft:active{transform:translateY(0)}.btn-microsoft svg{width:20px;height:20px}.login-footer{color:#fff3;margin-top:2rem;font-size:.75rem}.navbar{z-index:100;background:var(--card-bg);border-bottom:1px solid var(--border-subtle);position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:1400px;height:64px;margin:0 auto;padding:0 2rem;display:flex}.navbar-brand{color:var(--fg);align-items:baseline;gap:.5rem;text-decoration:none;display:flex}.brand-logo{font-family:var(--font-serif);letter-spacing:-1px;font-size:1.5rem;font-weight:700}.brand-name{font-family:var(--font-sans);letter-spacing:3px;text-transform:uppercase;color:var(--fg-muted);font-size:.7rem;font-weight:400}.navbar-links{align-items:center;gap:.25rem;display:flex}.nav-link{letter-spacing:.5px;text-transform:uppercase;color:var(--fg-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:.5rem 1rem;font-size:.8rem;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--fg);background:var(--bg-secondary)}.nav-link.active{color:var(--fg);background:var(--bg-secondary);font-weight:600}.navbar-user{align-items:center;gap:1rem;display:flex}.user-info{flex-direction:column;align-items:flex-end;display:flex}.user-name{color:var(--fg);font-size:.85rem;font-weight:500}.role-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:100px;padding:.1rem .4rem;font-size:.55rem;font-weight:600}.role-badge.employee{background:var(--fg);color:#fff}.role-badge.client{background:var(--bg-secondary);color:var(--fg-muted);border:1px solid var(--border)}.role-badge.super-admin{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);font-weight:700}.btn-signout{letter-spacing:.5px;text-transform:uppercase;color:var(--fg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem;font-weight:500;font-family:var(--font-sans);background:0 0;padding:.45rem 1rem}.btn-signout:hover{border-color:var(--fg);color:var(--fg)}.page-container{max-width:1400px;margin:0 auto;padding:2rem}.billing-actions-header{flex-wrap:wrap;gap:.4rem;display:flex}.billing-action-btn{text-transform:uppercase;letter-spacing:.3px;padding:.25rem .5rem;font-size:.65rem}.btn-section-action{gap:.3rem!important;padding:.35rem .75rem!important;font-size:.72rem!important}.page-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.page-title{font-family:var(--font-serif);color:var(--fg);letter-spacing:-.5px;font-size:2rem;font-weight:600}.page-subtitle{color:var(--fg-muted);margin-top:.25rem;font-size:.9rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2.5rem;display:grid}.stat-card{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-base);padding:1.5rem}.stat-card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.stat-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--fg-subtle);margin-bottom:.5rem;font-size:.7rem;font-weight:600}.stat-value{font-family:var(--font-serif);color:var(--fg);letter-spacing:-1px;font-size:2.25rem;font-weight:700}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title{font-family:var(--font-serif);color:var(--fg);letter-spacing:-.3px;font-size:1.2rem;font-weight:600}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;display:grid}.project-card{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-align:left;width:100%;font-family:var(--font-sans);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.project-card:hover{box-shadow:var(--card-shadow-hover);border-color:var(--border);transform:translateY(-2px)}.project-card-left{align-items:center;gap:1rem;display:flex}.project-card-icon{background:var(--bg-secondary);border-radius:var(--radius-sm);width:44px;height:44px;color:var(--fg-muted);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.project-card-name{color:var(--fg);margin-bottom:.15rem;font-size:1rem;font-weight:600}.project-card-date{color:var(--fg-subtle);font-size:.75rem}.project-card-arrow{color:var(--fg-subtle);transition:transform var(--transition-fast);font-size:1.25rem}.project-card:hover .project-card-arrow{color:var(--fg);transform:translate(4px)}.files-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem;display:grid}.file-card{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-base);align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.file-card:hover{box-shadow:var(--card-shadow);border-color:var(--border)}.file-card-icon{flex-shrink:0}.file-icon{border-radius:var(--radius-sm);background:var(--bg-secondary);width:36px;height:36px;color:var(--fg-muted);padding:6px}.file-icon.folder{color:#f59e0b;background:#fef3c7}.file-icon.image{color:#8b5cf6;background:#ede9fe}.file-icon.video{color:#ec4899;background:#fce7f3}.file-icon.document{color:#3b82f6;background:#dbeafe}.file-card-info{flex:1;min-width:0}.file-card-name{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.15rem;font-size:.85rem;font-weight:600;overflow:hidden}.file-card-meta{color:var(--fg-subtle);align-items:center;gap:.75rem;font-size:.7rem;display:flex}.file-ext{letter-spacing:.5px;color:var(--fg-muted);background:var(--bg-secondary);border-radius:3px;padding:.1rem .4rem;font-weight:600}.file-card-download{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--fg-muted);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.file-card-download:hover{background:var(--bg-secondary);color:var(--fg)}.file-card-download svg{width:18px;height:18px}.upload-zone-wrapper{width:100%}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--card-bg);padding:3rem 2rem}.upload-zone:hover,.upload-zone.dragging{border-color:var(--fg);background:var(--bg-secondary)}.upload-zone.has-file{cursor:default;border-style:solid;border-color:var(--border);padding:1.5rem}.upload-input{display:none}.upload-icon{width:48px;height:48px;color:var(--fg-subtle);margin-bottom:1rem}.upload-text{color:var(--fg-muted);font-size:.95rem}.upload-browse{color:var(--fg);text-underline-offset:2px;font-weight:600;text-decoration:underline}.upload-hint{color:var(--fg-subtle);margin-top:.5rem;font-size:.75rem}.upload-preview{justify-content:space-between;align-items:center;display:flex}.upload-file-info{flex-direction:column;display:flex}.upload-filename{color:var(--fg);font-size:.9rem;font-weight:600}.upload-filesize{color:var(--fg-subtle);font-size:.75rem}.upload-clear{background:var(--bg-secondary);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--fg-muted);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:1rem;display:flex}.upload-clear:hover{background:var(--error);color:#fff}.upload-progress{align-items:center;gap:1rem;margin-top:1rem;display:flex}.upload-progress-bar{background:var(--bg-secondary);border-radius:100px;flex:1;height:4px;overflow:hidden}.upload-progress-fill{background:var(--fg);height:100%;transition:width var(--transition-base);border-radius:100px}.upload-progress-text{color:var(--fg-muted);min-width:36px;font-size:.75rem;font-weight:600}.upload-error{color:var(--error);margin-top:.75rem;font-size:.8rem}.upload-success{color:var(--success);margin-top:.75rem;font-size:.8rem;font-weight:500}.btn-primary{background:var(--fg);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-sans);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-sans);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-secondary:hover{border-color:var(--fg)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-upload{background:var(--fg);color:#fff;border-radius:var(--radius-sm);width:100%;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;padding:.8rem 1.5rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn-upload:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#00000080;justify-content:center;align-items:center;padding:1rem;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:460px;padding:2rem;animation:.25s ease-out modalSlideUp;box-shadow:0 25px 60px #0003}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:600}.modal-close{background:var(--bg-secondary);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;color:var(--fg-muted);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:1.15rem;display:flex}.modal-close:hover{background:var(--fg);color:#fff}.modal-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{letter-spacing:1px;text-transform:uppercase;color:var(--fg-muted);font-size:.75rem;font-weight:600}.form-input{width:100%;font-family:var(--font-sans);color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast);outline:none;padding:.75rem 1rem;font-size:.95rem}.form-input::placeholder{color:var(--fg-subtle)}.form-hint{color:var(--fg-subtle);font-size:.75rem;line-height:1.4}.form-error{color:var(--error);font-size:.8rem;font-weight:500}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.form-select{width:100%;font-family:var(--font-sans);color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6b6b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;outline:none;padding:.75rem 2.5rem .75rem 1rem;font-size:.95rem}.form-select:focus{border-color:var(--fg)}.tabs{border-bottom:1px solid var(--border-subtle);gap:.25rem;margin-bottom:1.5rem;display:flex}.tab{font-family:var(--font-sans);letter-spacing:.5px;text-transform:uppercase;color:var(--fg-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem 1.25rem;font-size:.8rem;font-weight:500}.tab:hover{color:var(--fg)}.tab.active{color:var(--fg);border-bottom-color:var(--fg);font-weight:600}.empty-state{text-align:center;color:var(--fg-subtle);padding:4rem 2rem}.empty-state-icon{width:64px;height:64px;color:var(--border);margin:0 auto 1rem}.empty-state-title{font-family:var(--font-serif);color:var(--fg-muted);margin-bottom:.5rem;font-size:1.25rem;font-weight:500}.empty-state-text{color:var(--fg-subtle);font-size:.85rem}.breadcrumb{color:var(--fg-subtle);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.8rem;display:flex}.breadcrumb-link{color:var(--fg-muted);transition:color var(--transition-fast);text-decoration:none}.breadcrumb-link:hover{color:var(--fg)}.breadcrumb-separator{color:var(--border)}.breadcrumb-current{color:var(--fg);font-weight:600}.loading{justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.loading-spinner{border:2.5px solid var(--border);border-top-color:var(--fg);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-layout{flex-direction:column;min-height:100vh;display:flex}.admin-content{flex:1}.upload-page-grid{grid-template-columns:1fr 1fr;align-items:flex-start;gap:2.5rem;display:grid}.upload-form-section{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:2rem}.upload-form-section h3{font-family:var(--font-serif);margin-bottom:1.5rem;font-size:1.15rem;font-weight:600}.upload-fields{flex-direction:column;gap:1.25rem;margin-bottom:1.5rem;display:flex}.client-welcome{margin-bottom:2rem}.client-welcome h2{font-family:var(--font-serif);margin-bottom:.25rem;font-size:1.5rem;font-weight:600}.client-welcome p{color:var(--fg-muted);font-size:.9rem}.client-project-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.client-project-icon{background:var(--bg-secondary);border-radius:var(--radius-md);width:48px;height:48px;color:var(--fg-muted);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.client-project-name{font-family:var(--font-serif);font-size:1.5rem;font-weight:600}.toast-container{z-index:300;position:fixed;bottom:1.5rem;right:1.5rem}@media (max-width:768px){.desktop-only{display:none!important}.navbar-inner{height:56px;padding:0 .5rem}.navbar-brand{flex:1}.navbar-links{flex:none;justify-content:center;gap:.25rem;display:flex}.navbar-user{flex:1;justify-content:flex-end}.navbar-brand span.brand-name{display:none}.nav-link{padding:.35rem .5rem!important;font-size:.7rem!important}.btn-signout{letter-spacing:.3px;padding:.25rem .5rem;font-size:.6rem}.page-container{padding:1rem}.billing-actions-header{width:100%}.billing-action-btn{flex:auto;justify-content:center}.page-title{font-size:1.5rem}.projects-grid,.files-grid,.upload-page-grid{grid-template-columns:1fr}.user-info{display:none}.login-card{margin:1rem;padding:2.5rem 1.75rem}.bills-table-wrapper{font-size:.78rem}.tabs-bar{border-bottom:none;flex-direction:column;align-items:flex-start;gap:.5rem}.tabs-bar .tabs{white-space:nowrap;border-bottom:1px solid var(--border-subtle);-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;margin-bottom:0;padding-bottom:0;display:flex;overflow-x:auto}.tabs-bar .btn-add-folder{align-self:flex-start;margin-bottom:.75rem}.billing-stats{grid-template-columns:repeat(2,1fr)}.invoice-form-grid{grid-template-columns:1fr}.project-card{padding:1rem}.stats-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.billing-report-bar{flex-direction:column;align-items:flex-start}.billing-report-right{flex-wrap:wrap;width:100%}.form-row-2{grid-template-columns:1fr!important}.invoice-totals-row{flex-direction:column}.invoice-totals-box{width:100%;min-width:0}.payment-add-form{flex-direction:column}}.gantt-mobile-list{display:none}.gantt-desktop-view{display:flex}@media (max-width:768px){.gantt-mobile-list{display:block}.gantt-desktop-view{display:none}}.client-panel{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:2rem;padding:1.5rem;animation:.2s ease-out modalSlideUp}.client-panel-header{margin-bottom:1.25rem}.client-panel-title{font-family:var(--font-serif);color:var(--fg);align-items:center;gap:.5rem;font-size:1.15rem;font-weight:600;display:flex}.client-panel-desc{color:var(--fg-muted);margin-top:.25rem;font-size:.85rem}.client-add-form{gap:.5rem;max-width:400px;margin-bottom:1.5rem;display:flex}.client-add-form .form-input{flex:1}.client-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.client-list-item{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.client-email{color:var(--fg);font-size:.85rem;font-weight:500}.client-remove-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--fg-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.client-remove-btn:hover{color:var(--error);background:#ef44441a}.client-empty-text{color:var(--fg-subtle);font-size:.85rem;font-style:italic}.tabs-bar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;display:flex}.tabs-bar .tabs{border-bottom:none;margin-bottom:0}.tab-count{background:var(--bg-secondary);color:var(--fg-muted);border-radius:100px;justify-content:center;align-items:center;margin-left:.5rem;padding:.1rem .4rem;font-size:.65rem;font-weight:600;display:inline-flex}.btn-add-folder{color:var(--fg-muted);border:1px dashed var(--border);border-radius:var(--radius-sm);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:500;display:flex}.btn-add-folder:hover{background:var(--bg-secondary);color:var(--fg);border-style:solid}.new-folder-form{background:var(--card-bg);border:1px dashed var(--border);border-radius:var(--radius-md);gap:.5rem;margin-bottom:1.5rem;padding:1rem;animation:.2s ease-out fadeIn;display:flex}.project-actions{gap:.5rem;display:flex}.project-action-btn{border-radius:var(--radius-sm);background:var(--bg-secondary);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.project-action-btn:hover{color:var(--fg)}.project-action-btn.delete:hover{color:var(--error);background:#ef44441a}.project-action-btn.archive:hover{color:var(--warning);background:#f59e0b1a}.delete-confirm{background:var(--card-bg);border-radius:var(--radius-md);text-align:center;z-index:10;border:1px solid var(--border);box-shadow:var(--card-shadow-hover);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex;position:absolute;inset:0}.delete-confirm p{color:var(--fg);font-size:.85rem}.delete-confirm-actions{gap:.5rem;display:flex}.btn-danger{background:var(--error);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;padding:.4rem 1rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-danger:hover{opacity:.9}.project-card-wrapper{flex-direction:column;gap:.5rem;display:flex;position:relative}.file-card-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.file-action-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--fg-muted);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.1rem;text-decoration:none;display:flex}.file-action-btn:hover{background:var(--bg-secondary);color:var(--fg)}.file-action-btn.preview:hover{color:#8b5cf6;background:#8b5cf61a}.file-action-btn svg{width:18px;height:18px}.preview-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:300;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.preview-modal{background:var(--card-bg);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:1100px;max-height:90vh;animation:.25s ease-out modalSlideUp;display:flex;overflow:hidden;box-shadow:0 25px 80px #0006}.preview-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.preview-filename{font-family:var(--font-sans);color:var(--fg);white-space:nowrap;text-overflow:ellipsis;max-width:60%;font-size:.95rem;font-weight:600;overflow:hidden}.preview-header-actions{align-items:center;gap:.5rem;display:flex}.preview-body{background:var(--bg-secondary);flex:1;justify-content:center;align-items:center;min-height:400px;padding:1.5rem;display:flex;overflow:auto}.preview-image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:75vh;box-shadow:0 4px 20px #0000001a}.preview-pdf{border-radius:var(--radius-sm);border:none;width:100%;height:75vh}.login-section{margin-bottom:.5rem}.login-section-label{letter-spacing:1.5px;text-transform:uppercase;color:#ffffff59;margin-bottom:.75rem;font-size:.7rem;font-weight:600}.login-or{align-items:center;gap:1rem;margin:1.5rem 0;display:flex}.login-or:before,.login-or:after{content:"";background:#ffffff1a;flex:1;height:1px}.login-or span{color:#ffffff40;text-transform:uppercase;letter-spacing:1px;font-size:.75rem}.login-email-form{flex-direction:column;gap:.75rem;display:flex}.login-email-input{width:100%;font-family:var(--font-sans);color:#fff;border-radius:var(--radius-md);transition:all var(--transition-fast);background:#ffffff0f;border:1px solid #ffffff1f;outline:none;padding:.85rem 1rem;font-size:.9rem}.login-email-input:focus{background:#ffffff14;border-color:#ffffff4d}.login-email-input::placeholder{color:#ffffff40}.btn-client-login{color:#ffffffe6;border-radius:var(--radius-md);width:100%;font-family:var(--font-sans);letter-spacing:.5px;cursor:pointer;transition:all var(--transition-base);background:#ffffff1a;border:1px solid #ffffff26;padding:.85rem 1.5rem;font-size:.85rem;font-weight:600}.btn-client-login:hover{background:#ffffff26;border-color:#ffffff40;transform:translateY(-1px)}.btn-client-login:disabled{opacity:.5;cursor:not-allowed;transform:none}.login-error{color:#fca5a5;border-radius:var(--radius-sm);background:#ef444426;border:1px solid #ef44444d;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.8rem}@media (max-width:768px){.preview-modal{border-radius:0;max-width:100%;max-height:100vh}.preview-body{padding:.5rem}.preview-pdf{height:60vh}}.billing-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:2rem;display:grid}@media (min-width:1400px){.billing-stats{grid-template-columns:repeat(7,1fr)}}@media (max-width:1400px){.billing-stats{scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:.75rem;padding-bottom:.75rem;display:flex;overflow-x:auto}.billing-stat-card{flex:1 0 160px;min-width:160px}}.billing-stat-card{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-height:100px;transition:all var(--transition-base);flex-direction:column;justify-content:space-between;padding:.85rem 1rem;display:flex}.billing-stat-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.billing-stat-header .stat-label{letter-spacing:.8px;text-transform:uppercase;color:var(--fg-subtle);white-space:nowrap;margin-bottom:0;font-size:.65rem;font-weight:600}.billing-stat-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;display:flex}.billing-stat-icon.billed{color:#3b82f6;background:#eff6ff}.billing-stat-icon.received{color:#10b981;background:#ecfdf5}.billing-stat-icon.pending{color:#f59e0b;background:#fffbeb}.billing-stat-icon.paid{color:#16a34a;background:#f0fdf4}.billing-stat-icon.purchases{color:#db2777;background:#fdf2f8}.billing-stat-icon.office{color:#8b5cf6;background:#f5f3ff}.billing-stat-icon.salary{color:#059669;background:#ecfdf5}.billing-stat-value{font-family:var(--font-sans);color:var(--fg);white-space:nowrap;letter-spacing:-.5px;margin-top:auto;font-weight:700;font-size:1.25rem!important}.billing-report-bar{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem 1.5rem;display:flex}.billing-report-left{color:var(--fg);align-items:center;gap:.75rem;font-size:.9rem;font-weight:600;display:flex}.billing-report-right{align-items:center;gap:.75rem;display:flex}.billing-month-picker{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:.5rem .75rem;font-size:.85rem}.bills-count{color:var(--fg-subtle);background:var(--bg-secondary);border-radius:100px;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.bills-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--card-bg);overflow-x:auto}.bills-table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:900px;font-size:.82rem}.bills-table th{background:var(--bg-secondary);color:var(--fg-muted);letter-spacing:.8px;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:.75rem 1rem;font-size:.7rem;font-weight:600}.bills-table td{color:var(--fg);border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:.85rem 1rem}.bills-table-row:hover td{background:var(--bg)}.bills-table tbody tr:last-child td{border-bottom:none}.invoice-no{color:var(--fg);align-items:center;gap:.5rem;font-weight:600;display:flex}.invoice-no-icon{color:#3b82f6;flex-shrink:0;font-size:1rem}.client-cell{white-space:nowrap;text-overflow:ellipsis;max-width:300px;font-weight:500;overflow:hidden}.amount-cell{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.amount-cell.received{color:var(--success)}.amount-cell.pending{color:var(--warning)}.bill-status{letter-spacing:.5px;text-transform:uppercase;border-radius:100px;padding:.2rem .65rem;font-size:.68rem;font-weight:600;display:inline-block}.bill-status.draft{background:var(--bg-secondary);color:var(--fg-muted);border:1px solid var(--border)}.bill-status.sent{color:#1d4ed8;background:#dbeafe}.bill-status.partial{color:#b45309;background:#fef3c7}.bill-status.paid{color:#065f46;background:#d1fae5}.gst-badge{letter-spacing:.5px;border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:600;display:inline-block}.gst-badge.gst-on{color:#5b21b6;background:#ede9fe}.gst-badge.gst-off{background:var(--bg-secondary);color:var(--fg-subtle)}.bill-actions{align-items:center;gap:.35rem;display:flex}.bill-action-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--fg-muted);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;font-size:.95rem;display:flex}.bill-action-btn.view:hover{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.bill-action-btn.edit:hover{background:var(--bg-secondary);border-color:var(--border);color:var(--fg)}.bill-action-btn.delete:hover{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.delete-confirm-row td{padding:0}.invoice-form-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (max-width:768px){.invoice-form-grid{grid-template-columns:1fr}}.invoice-form-section{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.5rem}.invoice-form-section-title{letter-spacing:.8px;text-transform:uppercase;color:var(--fg-muted);border-bottom:1px solid var(--border-subtle);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:.85rem;font-weight:700}.form-row-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-sans);color:var(--fg);transition:border-color var(--transition-fast);outline:none;padding:.6rem .8rem;font-size:.85rem}.form-input:focus{border-color:var(--fg)}.invoice-items-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.invoice-items-table-wrapper{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);overflow-x:auto}.invoice-items-table{border-collapse:collapse;width:100%;font-size:.82rem}.invoice-items-table th{background:var(--bg-secondary);color:var(--fg-muted);letter-spacing:.8px;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border-subtle);padding:.6rem .75rem;font-size:.68rem;font-weight:600}.invoice-items-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:.5rem .75rem}.invoice-items-table tbody tr:last-child td{border-bottom:none}.table-input{width:100%;font-family:var(--font-sans);color:var(--fg);transition:border-color var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding:.4rem .5rem;font-size:.82rem}.table-input:hover,.table-input:focus{border-color:var(--border);background:var(--bg)}.table-input.text-right{text-align:right}.table-delete-btn{cursor:pointer;width:28px;height:28px;color:var(--fg-subtle);transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.95rem;display:flex}.table-delete-btn:hover{color:#dc2626;background:#fee2e2}.text-center{text-align:center}.text-right{text-align:right}.invoice-totals-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;margin-top:1.25rem;display:flex}.invoice-gst-toggle{flex-direction:column;gap:1rem;display:flex}.toggle-label{cursor:pointer;color:var(--fg);-webkit-user-select:none;user-select:none;align-items:center;gap:.75rem;font-size:.85rem;font-weight:600;display:flex}.toggle-label input[type=checkbox]{appearance:none;background:var(--border);cursor:pointer;width:40px;height:22px;transition:background var(--transition-fast);border-radius:100px;flex-shrink:0;position:relative}.toggle-label input[type=checkbox]:after{content:"";width:16px;height:16px;transition:left var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-label input[type=checkbox]:checked{background:var(--fg)}.toggle-label input[type=checkbox]:checked:after{left:21px}.gst-rates{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.invoice-totals-box{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:280px;padding:1rem 1.25rem}.totals-row{color:var(--fg-muted);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:.35rem 0;font-size:.85rem;display:flex}.totals-row:last-child{border-bottom:none}.totals-row.total{color:var(--fg);padding:.6rem 0;font-size:1rem;font-weight:700}.totals-row.received{color:var(--success);font-weight:600}.totals-row.pending{color:var(--warning);font-weight:700}.save-msg{color:var(--success);font-size:.8rem;font-weight:600;animation:.3s fadeIn}.payment-add-form{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;padding:1.25rem;display:flex}.payment-add-form .form-group{flex:1;min-width:140px}.payment-history{margin-top:1rem}.payment-history-title{letter-spacing:.8px;text-transform:uppercase;color:var(--fg-muted);margin-bottom:.75rem;font-size:.8rem;font-weight:700}.payment-table{border-collapse:collapse;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);width:100%;font-size:.82rem;overflow:hidden}.payment-table th{background:var(--bg-secondary);color:var(--fg-muted);letter-spacing:.8px;text-transform:uppercase;text-align:left;padding:.6rem .9rem;font-size:.68rem;font-weight:600}.payment-table td{border-top:1px solid var(--border-subtle);color:var(--fg);padding:.6rem .9rem}.payment-table tfoot td{background:var(--bg-secondary);border-top:2px solid var(--border)}.payment-balance{color:var(--fg-muted);justify-content:flex-end;align-items:center;gap:1rem;margin-top:.75rem;font-size:.9rem;font-weight:600;display:flex}.balance-amount{color:var(--warning);font-size:1.1rem;font-weight:700}.btn-danger{color:#fff;border-radius:var(--radius-sm);font-family:var(--font-sans);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);background:#dc2626;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-danger:hover{background:#b91c1c}.print-invoice,.print-receipt,.print-with-gst-show{display:none}.print-without-gst-show{display:inline}@media print{.no-print,.navbar{display:none!important}@page{margin:10mm;size:A4}.print-invoice{color:#1a1a1a;width:100%;margin:0;padding:0;font-family:Arial,sans-serif;font-size:10pt;display:block;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important}body{background-color:#fff!important}tr{break-inside:avoid;page-break-inside:avoid}body.print-with-gst .print-with-gst-show{display:inline!important}body.print-with-gst .print-without-gst-show{display:none!important}body.print-without-gst .print-without-gst-show{display:inline!important}body.print-without-gst .print-with-gst-show{display:none!important}.pi-top-bar{border-bottom:1.5pt solid #000;justify-content:space-between;align-items:center;margin-bottom:6pt;padding-bottom:4pt;display:flex}.pi-top-bar-item{color:#555;text-transform:uppercase;font-size:7.5pt;font-weight:500}.pi-title{color:#000;letter-spacing:1.5pt;text-transform:uppercase;font-size:18pt;font-weight:700;line-height:1}.pi-parties-grid{grid-template-columns:1fr 1fr;gap:15pt;margin-bottom:8pt;display:grid}.pi-section-label{text-transform:uppercase;color:#666;border-bottom:1px solid #eee;margin-bottom:3pt;padding-bottom:2pt;font-size:7pt;font-weight:700}.pi-company-name,.pi-buyer-name{color:#000;margin-bottom:2pt;font-size:11pt;font-weight:700}.pi-company-address,.pi-buyer-address{color:#333;font-size:8.5pt;line-height:1.3}.pi-buyer-gstin{color:#222;margin-top:2pt;font-size:8pt;font-weight:600}.pi-seller-box,.pi-buyer-box{flex-direction:column;display:flex}.pi-meta-compact-grid{background:#fcfcfd;border-top:1px dashed #ccc;border-bottom:1px dashed #ccc;grid-template-columns:repeat(3,1fr);gap:8pt;margin-bottom:8pt;padding:6pt;display:grid}.pi-meta-row{flex-direction:column;gap:1pt;display:flex}.pi-meta-label{color:#888;text-transform:uppercase;letter-spacing:.5pt;font-size:6.5pt;font-weight:500}.pi-meta-value{color:#111;font-size:8.5pt;font-weight:600}.pi-items-table{border-collapse:collapse;width:100%;margin:8pt 0;font-size:8.5pt}.pi-items-table th{color:#000;text-align:center;text-transform:uppercase;letter-spacing:.5pt;background:#f5f5f5;border:1px solid #ccc;padding:4pt 6pt;font-size:7.5pt;font-weight:600}.pi-items-table td{vertical-align:top;border-bottom:1px solid #f0f0f0;border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;padding:4pt 6pt}.pi-items-table tbody tr:last-child td{border-bottom:1px solid #e5e5e5}.pi-col-sl{text-align:center;width:25pt}.pi-col-desc{color:#111;white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word;font-size:9pt}.pi-col-qty{text-align:right;width:35pt}.pi-col-rate{text-align:right;width:60pt}.pi-col-amt{text-align:right;width:75pt;font-weight:600}.pi-empty-row td{border-bottom:none;height:12pt}.pi-empty-row:last-child td{border-bottom:1px solid #e5e5e5}.pi-split-footer{page-break-inside:avoid;justify-content:space-between;gap:20pt;margin-top:8pt;display:flex}.pi-footer-left{flex-direction:column;flex:1;gap:6pt;display:flex}.pi-terms{color:#444;font-size:7.5pt;line-height:1.3}.pi-terms strong{color:#000;text-transform:uppercase;letter-spacing:.5pt;margin-bottom:2pt;font-size:7pt;display:block}.pi-amount-words{font-size:8pt;line-height:1.3}.pi-words-label{color:#666;text-transform:uppercase;letter-spacing:.5pt;margin-bottom:1pt;font-size:7pt;display:block}.pi-amount-hsn-wrap{color:#222;font-size:8.5pt}.pi-transaction-line{border-bottom:1px solid #f0f0f0;justify-content:space-between;max-width:250pt;padding:4pt 0;font-size:9.5pt;font-weight:600;display:flex}.pi-transaction-line:last-child{border-bottom:none}.pi-seal-box{background:#fcfcfc;border:1px dashed #ccc;justify-content:center;align-items:flex-end;width:160pt;height:70pt;margin-top:10pt;padding:6pt;display:flex}.pi-seal-label{color:#999;text-transform:uppercase;letter-spacing:1pt;font-size:8pt}.pi-footer-right{flex-basis:180pt}.pi-summary-table{border-collapse:collapse;width:100%;font-size:8.5pt}.pi-summary-table td{border-bottom:1px solid #eaeaea;padding:3pt 6pt}.pi-summary-label{color:#555;font-weight:500}.pi-summary-value{text-align:right;color:#111;font-weight:600}.pi-summary-total-row td{border-top:1.5pt solid #000;border-bottom:1.5pt solid #000;padding:4pt 6pt;font-size:10pt;font-weight:700}.pi-absolute-bottom{page-break-inside:avoid;border-top:1px solid #ccc;justify-content:space-between;align-items:flex-end;margin-top:8pt;padding-top:4pt;display:flex}.pi-bank-details{color:#222;font-size:7.5pt;line-height:1.4}.pi-bank-details strong{color:#000;text-transform:uppercase;letter-spacing:.5pt;margin-bottom:2pt;font-size:7pt;display:block}.pi-sign-box{text-align:right}.pi-sign-company-name{color:#000;margin-bottom:10pt;font-size:10pt;font-weight:700}.pi-sign-label{color:#000;border-top:1px solid #000;padding-top:3pt;font-size:7.5pt;font-weight:600;display:inline-block}.pi-footer-note{text-align:center;color:#999;text-transform:uppercase;letter-spacing:1pt;border-top:1px solid #eee;margin-top:12pt;padding-top:6pt;font-size:7pt}body.print-receipt-mode .print-invoice{display:none!important}body.print-receipt-mode .print-receipt{display:block!important}.print-receipt{color:#000;box-sizing:border-box;width:100%;margin:0;padding:15mm 20mm;font-family:Times New Roman,Times,serif;font-size:11pt;display:block;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important}.pr-header-row{border-bottom:1px solid #ccc;justify-content:space-between;align-items:baseline;margin-bottom:20pt;padding-bottom:6pt;display:flex}.pr-header-left,.pr-header-center,.pr-header-right{font-size:9.5pt}.pr-label{color:#555;font-weight:400}.pr-value{color:#000;font-weight:700}.pr-company-block{text-align:center;margin-bottom:16pt}.pr-company-name{color:#000;letter-spacing:.5pt;margin-bottom:3pt;font-size:16pt;font-weight:700}.pr-company-address{color:#333;font-size:9.5pt;line-height:1.5}.pr-company-email{color:#333;margin-top:2pt;font-size:9pt;text-decoration:underline}.pr-title{text-align:center;color:#000;letter-spacing:3pt;margin:20pt 0 6pt;padding-bottom:6pt;font-size:16pt;font-weight:700}.pr-divider{border:none;border-top:1px solid #ccc;margin:14pt 0}.pr-body{padding:8pt 0}.pr-field-row{align-items:flex-start;gap:10pt;margin-bottom:16pt;display:flex}.pr-field-label{color:#333;flex-shrink:0;width:170pt;padding-top:1pt;font-size:10.5pt}.pr-field-value{color:#000;flex:1;font-size:10.5pt;line-height:1.5}.pr-client-address{color:#000;white-space:pre-line;margin-top:2pt;font-size:10pt;font-weight:700;line-height:1.4}.pr-client-phone{color:#333;margin-top:1pt;font-size:9.5pt}.pr-amount-inline{color:#000;margin-left:16pt;font-size:11pt;font-weight:700}.pr-footer{justify-content:space-between;align-items:flex-end;margin-top:40pt;padding-top:10pt;display:flex}.pr-footer-left{flex-direction:column;gap:3pt;display:flex}.pr-inr-badge{color:#000;font-size:10pt;font-weight:700;text-decoration:underline}.pr-subject{color:#555;font-size:8pt;font-style:italic}.pr-footer-right{text-align:right}.pr-sign-company{color:#000;margin-bottom:40pt;font-size:10pt;font-weight:600}.pr-sign-line{border-bottom:1px solid #000;width:140pt;margin-bottom:3pt;margin-left:auto}.pr-sign-label{color:#000;font-size:9pt;font-weight:400}}.dashboard-3col-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:1.5rem;margin-bottom:2rem;display:grid}.dash-col-active{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;padding:1.25rem;display:flex}.dash-active-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.dash-active-icon{border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg,#0a0a0a,#333);justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;display:flex}.dash-active-count{flex-direction:column;display:flex}.dash-active-number{font-family:var(--font-serif);color:var(--fg);font-size:1.25rem;font-weight:700;line-height:1}.dash-active-label{text-transform:uppercase;letter-spacing:1px;color:var(--fg-subtle);margin-top:.1rem;font-size:.65rem;font-weight:600}.dash-active-list{flex-direction:column;gap:.4rem;display:flex}.dash-active-item{border-radius:var(--radius-sm);color:var(--fg);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.8rem;font-weight:500;display:flex}.dash-active-item:hover{background:var(--bg-secondary)}.dash-active-empty,.dash-active-more{color:var(--fg-subtle);padding:.5rem;font-size:.75rem}.dash-col-events{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.25rem}.dash-events-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.dash-events-title{font-family:var(--font-serif);color:var(--fg);font-size:1.1rem;font-weight:600}.dash-events-hint{color:var(--fg-subtle);text-align:center;background:var(--bg-secondary);border-radius:var(--radius-sm);padding:1.5rem 0;font-size:.85rem}.dash-events-list{flex-direction:column;gap:.75rem;max-height:400px;display:flex;overflow-y:auto}.dash-event-card{background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid #3b82f6;padding:.75rem}.dash-event-top{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.dash-event-title{color:var(--fg);flex:1;font-size:.85rem;font-weight:600}.dash-event-time{color:var(--fg-muted);font-size:.75rem}.dash-event-desc{color:var(--fg-muted);margin-bottom:.4rem;font-size:.75rem;line-height:1.4}.dash-event-bottom{border-top:1px solid #0000000d;justify-content:space-between;align-items:center;padding-top:.4rem;display:flex}.dash-event-by{color:var(--fg-subtle);font-size:.65rem;font-style:italic}.dash-col-calendar{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.25rem 1.5rem}.dash-cal-nav{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.dash-cal-month{font-family:var(--font-serif);color:var(--fg);font-size:1.15rem;font-weight:600}.dash-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.dash-cal-label{text-align:center;color:var(--fg-subtle);padding:.25rem 0 .5rem;font-size:.7rem;font-weight:600}.dash-cal-cell{border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-secondary);height:54px;transition:all var(--transition-fast);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.dash-cal-cell.empty{cursor:default;background:0 0}.dash-cal-cell:not(.empty):hover{border-color:var(--border)}.dash-cal-num{color:var(--fg);z-index:1;font-size:.85rem;font-weight:500}.dash-cal-cell.today .dash-cal-num{background:var(--fg);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-weight:600;display:flex}.dash-cal-cell.selected{border-color:var(--fg);background:var(--card-bg);box-shadow:0 2px 8px #0000000d}.dash-cal-dots{gap:2px;display:flex;position:absolute;bottom:4px}.dash-cal-dot{border-radius:50%;width:4px;height:4px}.calendar-nav-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--fg-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;font-size:.9rem;display:flex}.calendar-nav-btn:hover{border-color:var(--fg);color:var(--fg);background:var(--bg-secondary)}.calendar-add-event-btn{background:var(--fg);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-sans);letter-spacing:.3px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.72rem;font-weight:600;display:inline-flex}.calendar-add-event-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.calendar-event-type-badge{letter-spacing:.3px;border-radius:100px;align-items:center;gap:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:600;display:inline-flex}.calendar-event-delete{width:20px;height:20px;color:var(--fg-subtle);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:.85rem;display:flex}.calendar-event-delete:hover{color:var(--error);background:#ef44441a}.dash-event-form-inline{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex-direction:column;gap:.5rem;margin-top:1rem;padding:.75rem;display:flex}.dash-event-form-inline .form-input,.dash-event-form-inline .form-select{width:100%;padding:.35rem .6rem;font-size:.8rem}@media (max-width:1024px){.dashboard-3col-grid{grid-template-columns:1fr}}
