.login-screen{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;padding:20px;z-index:10000;overflow:auto;margin:0}.login-container{background:#fff;padding:40px 35px;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:450px;width:100%;position:relative;z-index:1}.login-logo{text-align:center;margin-bottom:30px}.login-logo img{max-width:100%;width:250px;height:auto;margin-bottom:15px;object-fit:contain}.login-logo p{color:var(--text-muted);font-size:14px;text-align:center;margin-bottom:40px}.user-select label{display:block;margin-bottom:10px;font-weight:600;font-size:14px}.user-select select{width:100%;padding:15px;border:2px solid var(--border);border-radius:10px;font-size:16px;font-family:Inter,sans-serif;margin-bottom:30px}.btn-login{width:100%;padding:15px;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s}.btn-login:hover{transform:translateY(-2px);box-shadow:0 10px 30px #3b82f666}.btn-login:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.btn-microsoft{background:#2f2f2f;margin-bottom:8px}.btn-microsoft:hover{box-shadow:0 10px 30px #00000040}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0 24px;color:var(--text-muted);font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-divider span{white-space:nowrap}.login-status{text-align:center;font-size:14px;color:var(--text-muted);margin:0 0 16px}.login-status-error{color:#b91c1c;line-height:1.45}.app-container{display:flex;width:100%;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width, 280px);min-width:var(--sidebar-width, 280px);height:100vh;background:var(--primary);color:#fff;overflow-y:auto;overflow-x:hidden;position:fixed;left:0;top:0;z-index:1000;transition:width .15s ease,min-width .15s ease}.sidebar-resize-handle{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;z-index:1001;background:transparent}.sidebar-resize-handle:hover,.sidebar:has(.sidebar-resize-handle:hover) .sidebar-resize-handle{background:#ffffff26}.sidebar-resize-handle:after{content:"";position:absolute;top:50%;left:2px;transform:translateY(-50%);width:2px;height:40px;border-radius:1px;background:#fff6;opacity:0;transition:opacity .15s}.sidebar-resize-handle:hover:after{opacity:1}body.sidebar-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-resizing{transition:none}.sidebar-header{padding:25px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo img{max-width:100%;width:180px;height:auto;display:block;object-fit:contain}.sidebar-user{font-size:12px;color:#ffffffb3;margin-top:10px}.user-badge{background:var(--accent);padding:4px 8px;border-radius:4px;font-size:10px;font-weight:700;margin-left:8px}.nav-section{padding:20px 0}.nav-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#ffffff80;padding:0 20px;margin-bottom:10px}.nav-item{padding:12px 20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:12px}.nav-item:hover{background:#ffffff1a}.nav-item.active{background:#ffffff26;border-left:3px solid var(--accent)}.nav-item span{font-size:14px;font-weight:500}.logout-btn{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;cursor:pointer;font-weight:600;font-size:12px;transition:all .2s;flex-shrink:0}.sidebar-user .logout-btn{position:static;width:auto;bottom:auto;left:auto;right:auto}.logout-btn:hover{background:#fff3}.main-content{margin-left:var(--sidebar-width, 280px);flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;transition:margin-left .15s ease}.top-bar{background:#fff;padding:20px 30px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.page-title-bar{font-size:24px;font-weight:700;color:var(--text)}.top-bar-actions{display:flex;gap:10px}.content{flex:1;overflow-y:auto;padding:30px}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-secondary{background:var(--bg);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{background:var(--border)}.btn-outline{background:transparent;border:2px solid var(--border);color:var(--text)}.btn-outline:hover{background:var(--bg)}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.card-header{padding:20px 25px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.card-title{font-size:18px;font-weight:700;color:var(--text)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.stat-label{font-size:14px;color:var(--text-muted);margin-bottom:8px;font-weight:500}.stat-value{font-size:32px;font-weight:800;color:var(--text);margin-bottom:8px}.stat-change{font-size:12px;font-weight:600}.stat-change.positive{color:var(--success)}.stat-change.negative{color:var(--danger)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:24px}.chart-card{min-height:320px}.chart-card-wide{grid-column:1 / -1;max-width:100%}.chart-inner{padding:16px 20px 24px;min-height:260px}.chart-empty{display:flex;align-items:center;justify-content:center;min-height:240px;color:var(--text-muted);font-size:14px}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}thead{background:var(--bg)}th{padding:12px 15px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--border)}td{padding:15px;border-bottom:1px solid var(--border);font-size:14px}tbody tr:hover{background:var(--bg)}.badge{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-info{background:#dbeafe;color:#1e40af}.badge-danger{background:#fee2e2;color:#991b1b}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:var(--text)}.form-input,.form-select{width:100%;padding:12px 15px;border:2px solid var(--border);border-radius:8px;font-size:14px;font-family:Inter,sans-serif;transition:all .2s}.form-input:focus,.form-select:focus{outline:none;border-color:var(--primary)}.alert{padding:15px 20px;border-radius:8px;margin-bottom:20px;display:flex;align-items:center;gap:12px}.alert-warning{background:#fef3c7;color:#92400e;border-left:4px solid var(--warning)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 768px){.form-grid{grid-template-columns:1fr}}.design-projects-form,table .design-projects-form,table td .design-projects-form,table .design-projects-form .form-label,table .design-projects-form label,table .design-projects-form .form-input,table .design-projects-form .form-select,table .design-projects-form input,table .design-projects-form select,table .design-projects-form textarea,.design-projects-form .form-label,.design-projects-form label.form-label{font-size:12px!important}.design-projects-form .form-input,.design-projects-form .form-select,.design-projects-form input.form-input,.design-projects-form select.form-select,.design-projects-form textarea.form-input{font-size:12px!important;padding:6px 10px}.projects-edit-form,table .projects-edit-form,table td .projects-edit-form,.projects-edit-form .form-label,.projects-edit-form label,.projects-edit-form .form-input,.projects-edit-form .form-select,.projects-edit-form input,.projects-edit-form select,.projects-edit-form textarea,.projects-edit-form .card-title,.projects-edit-form h3,.projects-edit-form button,.projects-edit-form .btn{font-size:10px!important}.projects-edit-form .form-input,.projects-edit-form .form-select,.projects-edit-form input.form-input,.projects-edit-form select.form-select,.projects-edit-form textarea.form-input{padding:6px 8px}.resident-form--compact .card{margin-bottom:12px}.resident-form--compact .card:last-child{margin-bottom:0}.resident-form--compact .card-header{padding:10px 16px}.resident-form--compact .card-title{font-size:14px;font-weight:600}.resident-form--compact .resident-form__body{padding:14px 16px}.resident-form--compact .form-grid{grid-template-columns:repeat(3,1fr);gap:10px 14px}.resident-form--compact .form-group{margin-bottom:0}.resident-form--compact .form-label{font-size:11px;font-weight:500;color:var(--text-muted);margin-bottom:3px;letter-spacing:.02em}.resident-form--compact .form-input,.resident-form--compact .form-select{padding:6px 10px;font-size:12px;border-radius:6px;border-width:1px}@media (max-width: 1024px){.resident-form--compact .form-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.resident-form--compact .form-grid{grid-template-columns:1fr}}.vo-error-banner{padding:12px 20px;color:#991b1b;background:#fee2e2;border-radius:8px;margin:0 20px 16px;font-size:10px}.vo-new-form-card{margin:0 20px 24px;padding:28px 32px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--border);border-radius:16px;box-shadow:0 2px 8px #0000000a}.vo-new-form-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.vo-new-form-title{margin:0 0 8px;font-size:10px;font-weight:700;color:var(--text)}.vo-new-form-subtitle{margin:0;font-size:10px;color:var(--text-muted);line-height:1.4}.vo-new-form{display:flex;flex-direction:column;gap:0}.vo-form-row{display:grid;gap:20px;margin-bottom:20px}.vo-form-row-2{grid-template-columns:1fr 1fr}@media (max-width: 640px){.vo-form-row-2{grid-template-columns:1fr}}.vo-form-field{margin-bottom:0}.vo-form-field .form-label{margin-bottom:6px;font-size:10px;color:var(--text)}.vo-required{color:#dc2626;font-weight:600}.vo-textarea{min-height:100px;resize:vertical;font-family:inherit;font-size:10px}.vo-input-readonly{background:#f1f5f9;color:var(--text-muted);cursor:not-allowed}.vo-upload-wrap{margin-bottom:0}.vo-file-input-wrap{position:relative;padding:20px;border:2px dashed var(--border);border-radius:12px;background:#fafafa;text-align:center;transition:border-color .2s,background .2s}.vo-file-input-wrap:hover{border-color:var(--primary);background:#f0f7ff}.vo-file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.vo-file-hint{font-size:10px;color:var(--text-muted);pointer-events:none}.vo-form-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.vo-submit-btn{min-width:180px}.vo-status-tabs{display:flex;flex-wrap:wrap;gap:10px;padding:16px 25px}.vo-tab{padding:8px 16px;font-size:10px;font-weight:500;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.vo-tab:hover{background:#f8fafc;color:var(--text);border-color:var(--primary)}.vo-tab-active,.vo-tab-active:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.proj-error-banner{padding:12px 20px;color:#991b1b;background:#fee2e2;border-radius:8px;margin:0 20px 16px;font-size:14px}.proj-new-form-card{margin:0 20px 24px;padding:28px 32px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--border);border-radius:16px;box-shadow:0 2px 8px #0000000a}.proj-new-form-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.proj-new-form-title{margin:0 0 8px;font-size:20px;font-weight:700;color:var(--text)}.proj-new-form-subtitle{margin:0;font-size:14px;color:var(--text-muted);line-height:1.4}.proj-new-form{display:flex;flex-direction:column;gap:0}.proj-form-error{margin-bottom:20px;padding:12px 16px;background:#fee2e2;color:#991b1b;border-radius:8px;border-left:4px solid #ef4444;font-size:14px}.proj-form-section{margin-bottom:28px}.proj-form-section:last-of-type{margin-bottom:0}.proj-form-section-title{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--text);padding-bottom:8px;border-bottom:1px solid var(--border)}.proj-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px 20px}@media (max-width: 640px){.proj-form-grid{grid-template-columns:1fr}}.proj-form-section .form-group{margin-bottom:0}.proj-required{color:#dc2626;font-weight:600}.proj-textarea{min-height:100px;resize:vertical;font-family:inherit}.proj-form-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.proj-submit-btn{min-width:160px}.section-loading{display:flex;align-items:center;justify-content:center;min-height:min(55vh,420px);padding:48px 24px;width:100%;box-sizing:border-box}.section-loading-inner{display:flex;flex-direction:column;align-items:center;gap:18px}.section-loading-logo{max-width:160px;width:100%;height:auto;display:block;object-fit:contain;animation:section-loading-pulse 1.25s ease-in-out infinite}@keyframes section-loading-pulse{0%,to{opacity:.5;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}.section-loading-text{font-size:13px;color:var(--text-muted);letter-spacing:.02em}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #1e3a8a;--primary-light: #3b82f6;--accent: #06b6d4;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg: #f8fafc;--surface: #ffffff;--text: #0f172a;--text-muted: #64748b;--border: #e2e8f0}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;margin:0;padding:0}#root{width:100%;height:100vh;overflow:hidden}.route-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;background:#f8fafcf0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto}
