*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#FEFAF5;--surface:#FFFFFF;--border:#E8E0D8;--text:#1A1A1A;--text-secondary:#6B7280;--text-tertiary:#9CA3AF;--primary:#3B7DDD;--primary-light:#EBF2FC;--primary-hover:#2E6BC4;--secondary:#4DD8C0;--accent:#F09030;--accent-light:#FFF3E8;--highlight:#FFC832;--success:#10B981;--warning:#FFC832;--danger:#EF4444;--sidebar-bg:#1E3A6E;--sidebar-text:#FFFFFF;--sidebar-active:#FFFFFF;--radius:10px;--radius-lg:16px;--radius-sm:6px;--shadow:0 2px 8px rgba(30,58,110,.06);--font:'Inter',-apple-system,BlinkMacSystemFont,sans-serif}body,html{height:100%;font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;min-width:220px;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;padding:0}.sidebar-header{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.logo{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:#fff}.nav-menu{list-style:none;padding:12px 8px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;color:var(--sidebar-text);margin-bottom:2px}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{background:rgba(255,200,50,.15);color:var(--sidebar-active)}.nav-item svg{flex-shrink:0}.main-content{flex:1;overflow-y:auto;padding:0;background:var(--bg)}.page{display:none;height:100%;flex-direction:column;min-height:0}.page.active{display:flex}.page-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;min-height:60px}.page-header h1{font-size:18px;font-weight:600}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-range{font-size:13px;font-weight:500;color:var(--text-secondary);min-width:180px;text-align:center}.btn:not(.btn-close){display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border-radius:6px;font-size:13px;font-weight:500;border:none;cursor:pointer;transition:all .15s;font-family:var(--font);white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-outline:hover{background:var(--bg)}.btn-danger{background:#fee2e2;color:var(--danger)}.btn-danger:hover{background:#fecaca}.btn-sm{padding:4px 10px;font-size:12px}.date-input,.select-input,.text-input{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:0;transition:border-color .15s}.date-input:focus,.select-input:focus,.text-input:focus{border-color:var(--primary)}.text-input{width:100%}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.schedule-grid{flex:1;overflow:auto;padding:0;min-height:0}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px;table-layout:fixed}.schedule-table th{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:2px solid var(--border);padding:10px 8px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);text-align:center;letter-spacing:.5px}.schedule-table th:first-child{text-align:left;padding-left:16px;width:180px;min-width:180px;position:sticky;left:0;z-index:11}.schedule-table th.today{color:var(--primary)}.schedule-table th.today::after{content:'';position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.schedule-table td{border-bottom:1px solid var(--border);padding:0;vertical-align:top;height:60px;position:relative}.schedule-table td:first-child{position:sticky;left:0;z-index:5;background:var(--surface);padding:8px 12px 8px 16px;border-right:1px solid var(--border)}.resource-cell{display:flex;align-items:center;gap:8px}.resource-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.resource-info{min-width:0}.resource-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-role{font-size:11px;color:var(--text-tertiary)}.team-divider td{background:var(--bg);padding:6px 16px!important;height:auto!important}.team-divider td:first-child{background:var(--bg)}.team-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.5px}.booking-cell{padding:2px 0;min-height:56px;cursor:pointer;position:relative;user-select:none;overflow:visible}.booking-cell:hover{background:var(--primary-light)}.booking-cell.drag-selecting{background:rgba(59,125,221,.15);outline:2px solid var(--primary);outline-offset:-2px}.booking-cell.drag-start{border-top-left-radius:4px;border-bottom-left-radius:4px}.booking-cell.drag-end{border-top-right-radius:4px;border-bottom-right-radius:4px}.booking-block{padding:3px 6px 3px 8px;border-radius:4px;font-size:7px;margin-bottom:1px;cursor:grab;transition:opacity .15s;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;height:20px;box-sizing:border-box;color:#374151;margin-left:2px;margin-right:2px;z-index:1}.booking-block:hover{z-index:3}.booking-block.span-s{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.booking-block.span-m{border-radius:0;margin-left:-1px;margin-right:-1px;padding-left:4px}.booking-block.span-e{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding-left:4px;border-right:3px solid rgba(59,125,221,.6)}.booking-block.span-e:hover,.booking-block.span-m:hover{outline:1px dashed var(--primary);outline-offset:-1px;opacity:1}.booking-block .booking-hours{font-weight:600;color:#374151}.booking-block .booking-project{color:#374151}.booking-block.moving{opacity:.4;cursor:grabbing}.booking-block.tentative{opacity:.5;border:1.5px dashed}.booking-block .resize-handle{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize;opacity:0;pointer-events:none;transition:opacity .15s;background:linear-gradient(90deg,transparent 20%,rgba(59,125,221,.85) 100%);border-top-right-radius:4px;border-bottom-right-radius:4px;z-index:10}.booking-block:hover .resize-handle{opacity:1;pointer-events:auto}.booking-block.resizing{outline:2px solid var(--primary);outline-offset:1px}.booking-block.resizing .resize-handle{opacity:1;pointer-events:auto;background:var(--primary)}.booking-block .resize-handle-left{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:ew-resize;opacity:0;pointer-events:none;transition:opacity .15s;background:linear-gradient(270deg,transparent 20%,rgba(59,125,221,.85) 100%);border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:10}.booking-block:hover .resize-handle-left{opacity:1;pointer-events:auto}.booking-block.resizing .resize-handle-left{opacity:1;pointer-events:auto;background:var(--primary)}.booking-block .split-handle{position:absolute;right:-6px;top:0;bottom:0;width:12px;cursor:col-resize;opacity:0;pointer-events:none;z-index:20;display:flex;align-items:center;justify-content:center}.booking-block:hover .split-handle{opacity:1;pointer-events:auto}.booking-block .split-handle::before{content:'';display:block;width:2px;height:14px;border-left:2px dashed rgba(59,125,221,.5);transition:all .15s}.booking-block .split-handle:hover::before{border-left-color:rgba(59,125,221,.9);height:18px}.booking-block .split-handle::after{content:'✂️ Split Booking';position:absolute;top:-30px;left:50%;transform:translateX(-50%);background:#1e1b4b;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100}.booking-block .split-handle:hover::after{opacity:1}.booking-cell.move-preview,.m-day-cell.move-preview{background:rgba(16,185,129,.12)!important;outline:2px solid rgba(16,185,129,.55);outline-offset:-2px}.resize-preview-bar{position:absolute;left:0;right:0;border-radius:3px;pointer-events:none;z-index:5}.resize-preview-bar.extend{background:rgba(59,125,221,.18);outline:2px solid rgba(59,125,221,.6);outline-offset:-2px}.resize-preview-bar.shrink{background:rgba(239,68,68,.15);outline:2px solid rgba(239,68,68,.5);outline-offset:-2px}.booking-hours{font-weight:600}.booking-project{font-weight:400}.day-total{position:absolute;bottom:1px;right:4px;font-size:10px;color:var(--text-tertiary);font-weight:500}.day-total.overbooked{color:var(--danger);font-weight:600}.timesheet-container{flex:1;overflow:auto;padding:24px;min-height:0}.ts-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);table-layout:fixed}.ts-table th{padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:center;border-bottom:2px solid var(--border);background:var(--bg)}.ts-table th:first-child{text-align:left;padding-left:16px;width:300px}.ts-table td{padding:8px 12px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle}.ts-table td:first-child{text-align:left;font-weight:500;border-left:3px solid transparent}.ts-input{width:60px;padding:5px 4px;text-align:center;border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:var(--font);outline:0}.ts-input:focus{border-color:var(--primary);background:var(--primary-light)}.ts-row-total{font-weight:600;color:var(--primary)}.ts-project-cell{display:flex;align-items:center;gap:8px}.ts-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ts-proj-code{font-size:11px;font-weight:600;color:var(--text-tertiary);background:var(--bg);padding:1px 6px;border-radius:3px;margin-right:2px;white-space:nowrap}.ts-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.ts-add-row{display:flex;align-items:center;gap:8px;margin-top:12px}.report-container{flex:1;overflow:auto;padding:24px;min-height:0}.report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.report-card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.report-card-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.report-card-value{font-size:24px;font-weight:700}.report-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.report-table th{padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:left;border-bottom:2px solid var(--border);background:var(--bg)}.report-table td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.util-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;min-width:120px}.util-bar-fill{height:100%;border-radius:3px;transition:width .3s}.report-summary{display:flex;flex-wrap:wrap;margin-bottom:24px}.summary-card{background:var(--surface);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);height:100%}.summary-label{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.summary-value{font-size:22px;font-weight:700;color:var(--text)}.summary-sub{font-size:11px;color:var(--text-secondary);margin-top:4px}.report-charts{display:flex;flex-wrap:wrap;margin-bottom:24px}.report-chart-card{background:var(--surface);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);height:100%}.report-chart-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.report-table-wrap{overflow-x:auto}.report-row-drillable{cursor:pointer;transition:background .15s}.report-row-drillable:hover{background:var(--hover)!important}.report-row-drillable.drill-open{background:var(--primary-light,#ebf2fc)!important}.drill-row td{padding:0!important;background:var(--bg)}.drill-content{padding:12px 24px 16px 48px}.drill-table{width:100%;border-collapse:collapse;font-size:12px}.drill-table th{padding:6px 10px;color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--border)}.drill-table td{padding:6px 10px;border-bottom:1px solid var(--border)}.drill-empty,.drill-loading{padding:12px 24px;font-size:13px;color:var(--text-secondary)}.report-name-cell{display:flex;align-items:center;gap:6px;white-space:nowrap}.report-color-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.overrun-badge{display:inline-block;font-size:10px;font-weight:700;color:#fff;background:var(--danger);border-radius:3px;padding:1px 5px;margin-left:6px;vertical-align:middle}.report-presets{display:flex;gap:4px;flex-wrap:wrap}.btn-ghost{background:0 0;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);padding:4px 10px;font-size:12px;cursor:pointer;transition:all .15s}.btn-ghost:hover{background:var(--hover);color:var(--text);border-color:var(--primary)}.pm-projects-panel{padding:8px 12px 10px 12px;background:var(--bg);border-top:1px solid var(--border)}.pm-projects-label{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.pm-projects-list{display:flex;flex-wrap:wrap;gap:6px}.ts-input-copied{background:#d1fae5!important;transition:background .3s}.ts-input-variance{border-color:#f59e0b!important;background:#fffbeb}.ts-input-synced{background-color:#ebf2fc;border-color:#90b8e8}.ts-input-synced:focus{background-color:#d8e8f8;border-color:var(--primary)}.ts-sync-hint{font-size:12px;color:var(--text-secondary)}.ts-cell-wrap{position:relative;display:inline-block}.ts-notes-btn{position:absolute;right:2px;top:2px;width:16px;height:16px;padding:0;border:none;background:0 0;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center;border-radius:3px}.ts-cell-wrap:hover .ts-notes-btn{opacity:.6}.ts-notes-btn:hover{opacity:1!important;background:var(--bg);color:var(--primary)}.ts-notes-active{opacity:.8;color:var(--primary)}.ts-cell-wrap:hover .ts-notes-active{opacity:1}.ts-preset-bar{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px;box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:10;white-space:nowrap}.ts-preset-btn{border:none;background:var(--bg);color:var(--text-secondary);font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;transition:all .12s;font-family:var(--font)}.ts-preset-btn:hover{background:var(--primary-light);color:var(--primary)}.ts-table td.ts-weekend,.ts-table th.ts-weekend{background-color:#f8f9fa}.ts-table th.ts-weekend{color:var(--text-secondary)}.report-loading{padding:40px;text-align:center;color:var(--text-secondary)}.project-list,.resource-list{padding:24px}#clients-projects-container{padding:24px;overflow-y:auto;flex:1;min-height:0}.manage-section{margin-bottom:32px}.section-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--primary);display:inline-block}.team-heading{font-size:14px;font-weight:600;color:var(--text-secondary);margin:16px 0 12px}.empty-hint{color:var(--text-tertiary);font-size:13px;padding:24px 0;text-align:center}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border-left:4px solid var(--primary);transition:box-shadow .15s}.card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.card-title{font-size:15px;font-weight:600}.card-meta{font-size:12px;color:var(--text-secondary)}.card-actions{display:flex;gap:4px}.booking-cell.weekend,.schedule-table th.weekend{background:#f3f4f6}.booking-cell.weekend:has(.booking-block,.leave-block){background:#fff}.color-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.auth-page{display:flex;min-height:100vh;background:var(--bg)}.auth-page.hidden{display:none}.auth-brand{width:44%;min-width:380px;background:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;padding:48px;position:relative;overflow:hidden}.auth-brand::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 30% 90%,rgba(255,200,50,.25),transparent),radial-gradient(ellipse 50% 40% at 85% 15%,rgba(77,216,192,.18),transparent),radial-gradient(ellipse 40% 35% at 70% 70%,rgba(240,144,48,.12),transparent);pointer-events:none}.auth-brand-inner{position:relative;z-index:1;max-width:360px;text-align:center}.auth-brand-logo-wrap{width:180px;height:180px;margin:0 auto 20px;background:0 0;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0}.auth-brand-logo-wrap img{width:100%;height:auto}.auth-brand-title{font-size:34px;font-weight:700;color:#fff;line-height:1.2;margin-bottom:10px;letter-spacing:-.5px}.auth-brand-desc{font-size:15px;color:rgba(255,255,255,.5);line-height:1.5;margin-bottom:36px}.auth-features-compact{display:flex;flex-direction:column;gap:14px}.auth-fc-item{display:flex;align-items:center;gap:14px;text-align:left;padding:12px 16px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);transition:background .2s,border-color .2s}.auth-fc-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}.auth-fc-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-fc-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.85);margin-bottom:1px}.auth-fc-desc{font-size:12px;color:rgba(255,255,255,.4);line-height:1.4}.auth-features{display:flex;flex-direction:column;gap:20px}.auth-feature{display:flex;gap:14px;align-items:flex-start;color:rgba(255,255,255,.65)}.auth-feature svg{flex-shrink:0;margin-top:2px}.auth-feature-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.85);margin-bottom:2px}.auth-feature-desc{font-size:12px;color:rgba(255,255,255,.45);line-height:1.4}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg);position:relative}.auth-card{width:400px;max-width:100%}.auth-card-header{margin-bottom:28px}.auth-card-header h1{font-size:22px;font-weight:700;color:var(--text);margin-bottom:6px}.auth-card-header p{font-size:13px;color:var(--text-secondary);line-height:1.5}.auth-view{display:none}.auth-view.active{display:block}.auth-form{display:block}.auth-switch{text-align:center;margin-top:24px;font-size:13px;color:var(--text-secondary)}.auth-switch a{color:var(--primary);font-weight:600;text-decoration:none;transition:color .15s}.auth-switch a:hover{color:var(--primary-hover);text-decoration:underline}.auth-field-note{font-size:11px;color:var(--text-tertiary);margin:-8px 0 14px;padding-left:2px}.label-optional{font-size:11px;font-weight:400;color:var(--text-tertiary);margin-left:4px}.input-with-icon{position:relative}.input-with-icon .text-input{padding-left:38px}.input-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.auth-form .text-input{padding:10px 12px;font-size:14px;border-radius:8px;background:var(--surface);border:1px solid var(--border);transition:border-color .2s,box-shadow .2s}.auth-form .input-with-icon .text-input{padding-left:38px}.auth-form .text-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.auth-form .form-group{margin-bottom:16px}.auth-form .form-group label{font-size:13px;font-weight:500;color:var(--text);margin-bottom:6px}.btn-block{width:100%;justify-content:center;padding:11px;font-size:14px;margin-top:8px;border-radius:8px;font-weight:600;box-shadow:0 1px 2px rgba(59,125,221,.3);transition:background .15s,box-shadow .15s,transform .1s}.btn-block:hover{box-shadow:0 4px 12px rgba(59,125,221,.25)}.btn-block:active{transform:scale(.99)}.auth-hint{font-size:12px;color:var(--text-tertiary);text-align:center;margin-top:16px;padding:10px 14px;background:var(--primary-light);border-radius:8px;border:1px solid rgba(59,125,221,.08)}.auth-error{color:var(--danger);font-size:13px;text-align:center;margin-top:12px;min-height:20px}.first-login-greeting{font-size:14px;color:var(--text-secondary);margin-bottom:20px;padding:10px 14px;background:var(--primary-light);border-radius:8px;border-left:3px solid var(--primary)}.first-login-greeting strong{color:var(--text-primary)}.first-login-email{color:var(--text-secondary);font-size:12px}.lang-switch{display:flex;gap:4px;background:var(--bg-secondary,#f3f4f6);border-radius:8px;padding:3px}.lang-switch .lang-btn{border:none;background:0 0;padding:5px 14px;font-size:13px;border-radius:6px;cursor:pointer;color:var(--text-secondary,#6b7280);font-weight:400;transition:all .2s ease;line-height:1.4}.lang-switch .lang-btn.active{background:#fff;color:var(--text-primary,#1f2937);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}.lang-switch .lang-btn:hover:not(.active){color:var(--text-primary,#374151)}.auth-lang-switch{position:absolute;top:20px;right:24px;z-index:10}.sidebar .lang-switch{background:rgba(255,255,255,.08);margin:0 16px 8px}.sidebar .lang-switch .lang-btn{color:rgba(255,255,255,.5);font-size:12px;padding:4px 0;flex:1}.sidebar .lang-switch .lang-btn.active{background:rgba(255,255,255,.15);color:#fff;box-shadow:none}.sidebar .lang-switch .lang-btn:hover:not(.active){color:rgba(255,255,255,.75)}.auth-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:32px;padding-top:20px;border-top:1px solid var(--border);font-size:11px;color:var(--text-tertiary)}.auth-footer-dot{width:3px;height:3px;border-radius:50%;background:var(--text-tertiary)}@media (max-width:840px){.auth-page{flex-direction:column}.auth-brand{width:100%;min-width:auto;padding:28px 24px;min-height:auto}.auth-brand-logo-wrap{width:100px;height:100px;margin-bottom:20px}.auth-brand-title{font-size:24px}.auth-brand-desc{margin-bottom:20px}.auth-features,.auth-features-compact{display:none}.auth-form-panel{padding:24px}}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user-menu{position:relative}.user-info{font-size:12px;color:#fff;line-height:1.5;cursor:pointer;padding:6px 8px;border-radius:6px;transition:background .15s}.user-info:hover{background:rgba(255,255,255,.08)}.user-info strong{color:#fff;font-size:13px}.sidebar-dropdown{display:none;position:absolute;bottom:100%;left:0;right:0;margin-bottom:6px;background:var(--surface);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.2);overflow:hidden;z-index:50}.sidebar-dropdown.open{display:block}.sidebar-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;font-weight:500;color:var(--text);background:0 0;border:none;cursor:pointer;font-family:var(--font);transition:background .1s}.sidebar-dropdown-item:hover{background:var(--bg)}.sidebar-dropdown-item svg{flex-shrink:0;color:var(--text-secondary)}.sidebar-dropdown-logout{color:var(--danger)}.sidebar-dropdown-logout:hover{background:#fef2f2}.sidebar-dropdown-logout svg{color:var(--danger)}.sidebar-enterprise{font-size:11px;color:rgba(255,255,255,.7);margin-top:6px;padding:4px 8px;background:rgba(255,255,255,.06);border-radius:4px}.enterprise-container,.settings-container{padding:24px;max-width:800px}.enterprise-setup{display:flex;gap:20px;flex-wrap:wrap}.enterprise-setup .section-card{flex:1;min-width:280px}.section-card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.section-card h3{font-size:15px;font-weight:600;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.section-desc{font-size:13px;color:var(--text-secondary);margin:-6px 0 16px;line-height:1.5}.member-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:10px;transition:box-shadow .15s}.member-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}.member-card-header{display:flex;align-items:center;justify-content:space-between}.member-info{display:flex;flex-direction:column;gap:2px}.member-name{font-size:14px;font-weight:600}.member-contact{font-size:12px;color:var(--text-secondary)}.member-actions{display:flex;align-items:center;gap:8px}.req-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.req-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.member-perms{display:flex;gap:16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);flex-wrap:wrap}.perm-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--text-secondary);user-select:none}.perm-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.perm-label{font-weight:500}.member-perms-note{font-size:11px;color:var(--text-tertiary);margin-top:6px;font-style:italic}.member-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.member-row:last-child{border-bottom:none}.member-meta{font-size:12px;color:var(--text-secondary)}.role-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.role-owner{background:#fef3c7;color:#92400e}.role-admin{background:#ebf2fc;color:#2e6bc4}.role-manager{background:#dcfce7;color:#166534}.role-basic{background:#f1f5f9;color:#475569}.role-member{background:#e0f2fe;color:#0369a1}.account-linked{font-size:11px;font-weight:600;color:#16a34a}.account-unlinked{font-size:11px;color:var(--text-secondary)}.request-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.request-row:last-child{border-bottom:none}.holiday-marker{font-size:10px;padding:1px 4px;border-radius:3px;display:inline-block;margin-top:2px;line-height:1.2}.holiday-marker.holiday{background:#fee2e2;color:#991b1b}.holiday-marker.workday{background:#fef3c7;color:#92400e}.schedule-table th .holiday-marker{display:block;margin-top:2px}.m-holiday-dot{display:block;width:5px;height:5px;border-radius:50%;background:var(--danger);margin:2px auto 0}.m-makeup-dot{display:block;width:5px;height:5px;border-radius:50%;background:var(--warning);margin:2px auto 0}.month-table .m-day-row th.m-holiday{color:#991b1b;background:#fef2f2}.month-table .m-day-row th.m-makeup{color:#92400e;background:#fffbeb}.bk-modal{width:520px;max-width:95vw}.bk-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin:-20px -20px 20px;padding:0 20px}.bk-tab{padding:12px 20px;font-size:14px;font-weight:500;cursor:pointer;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;background:0 0;border-top:none;border-left:none;border-right:none;font-family:var(--font)}.bk-tab:hover{color:var(--text)}.bk-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.bk-tab-content{display:none}.bk-tab-content.active{display:block}.bk-field{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}.bk-field-icon{width:20px;height:20px;flex-shrink:0;margin-top:8px;color:var(--text-tertiary)}.bk-field-body{flex:1;min-width:0}.bk-field-label{font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.bk-time-toggle{display:flex;gap:0;margin-bottom:12px}.bk-time-btn{display:flex;align-items:center;gap:6px;padding:7px 16px;border:1px solid var(--border);font-size:13px;font-weight:500;cursor:pointer;background:var(--surface);color:var(--text-secondary);font-family:var(--font);transition:all .15s}.bk-time-btn:first-child{border-radius:6px 0 0 6px}.bk-time-btn:last-child{border-radius:0 6px 6px 0;border-left:none}.bk-time-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.bk-time-btn.active+.bk-time-btn{border-left-color:var(--primary)}.bk-date-row{display:flex;gap:10px;align-items:center}.bk-date-row label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.bk-date-row input[type=date]{flex:1;min-width:0}.bk-hours-row{display:flex;gap:10px;margin-bottom:12px}.bk-hours-group{display:flex;flex-direction:column;gap:4px}.bk-hours-group label{font-size:11px;color:var(--text-secondary);font-weight:500}.bk-hours-group input{width:80px}.bk-total{font-size:13px;color:var(--text-secondary);padding:8px 0;border-top:1px solid var(--border);margin-top:4px}.bk-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}.bk-toggle-track{width:36px;height:20px;border-radius:10px;background:var(--border);position:relative;transition:background .2s;flex-shrink:0}.bk-toggle-track::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.bk-toggle input{display:none}.bk-toggle input:checked+.bk-toggle-track{background:var(--primary)}.bk-toggle input:checked+.bk-toggle-track::after{transform:translateX(16px)}.bk-toggle-label{font-size:13px;color:var(--text);font-weight:500}.bk-separator{height:1px;background:var(--border);margin:16px -20px}.bk-batch-info{background:var(--surface);border-radius:8px;padding:12px;margin-bottom:8px}.bk-batch-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;border-bottom:1px dashed var(--border)}.bk-batch-row:last-child{border-bottom:none}.bk-batch-label{color:var(--text-secondary);min-width:60px}.bk-batch-value{color:var(--text);font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bk-batch-days{color:var(--text-secondary);font-size:12px;margin-left:8px}.bk-batch-preview{background:var(--surface);border-radius:8px;padding:12px;margin-top:16px;max-height:160px;overflow-y:auto}.bk-batch-preview-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.bk-batch-preview-list{display:flex;flex-direction:column;gap:4px}.bk-batch-preview-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}.bk-batch-date{color:var(--text-secondary);width:90px;font-family:monospace}.bk-batch-arrow{color:var(--text-secondary)}.bk-batch-new{color:var(--primary);font-weight:600}.bk-select-wrapper{position:relative}.bk-select-wrapper select{width:100%;padding-right:30px}.bk-leave-types{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.bk-leave-type{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text-secondary);transition:all .15s;font-family:var(--font)}.bk-leave-type:hover{border-color:var(--text-tertiary)}.bk-leave-type.active{background:#e5e7eb;color:#374151;border-color:#6b7280}.bk-leave-type.sick.active{background:#fff3e0;color:#b35900;border-color:var(--warning)}.bk-leave-type.personal.active{background:#e0f2fe;color:#0369a1;border-color:#0ea5e9}.bk-leave-type.other.active{background:#f3f4f6;color:#4b5563;border-color:#9ca3af}.bk-leave-type.holiday.active{background:#fee2e2;color:#991b1b;border-color:#ef4444}.leave-block{background:#1f2937!important;color:#fff!important;border-left:3px solid #6b7280!important;font-size:8.8px;z-index:1}.leave-block.holiday,.leave-block.personal,.leave-block.sick{background:#1f2937!important;color:#fff!important;border-left-color:#6b7280!important}.ms-picker{position:relative}.ms-selected{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;min-height:36px;cursor:pointer;background:var(--surface);align-items:center}.ms-selected:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px rgba(59,125,221,.15)}.ms-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 4px;background:var(--primary-light);color:var(--primary);border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.ms-chip-avatar{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff;flex-shrink:0}.ms-chip-remove{cursor:pointer;font-size:14px;line-height:1;color:var(--primary);opacity:.6;margin-left:2px}.ms-chip-remove:hover{opacity:1}.ms-placeholder{color:var(--text-tertiary);font-size:13px}.ms-search{border:none;outline:0;font-size:13px;flex:1;min-width:60px;background:0 0;font-family:var(--font);padding:2px 0}.ms-dropdown{display:none;position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-top:4px;max-height:220px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.12)}.ms-dropdown.open{display:block}.ms-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;transition:background .1s}.ms-option:hover{background:var(--bg)}.ms-option.selected{background:var(--primary-light)}.ms-option-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;flex-shrink:0}.ms-option-info{flex:1;min-width:0}.ms-option-name{font-weight:500}.ms-option-role{font-size:11px;color:var(--text-tertiary)}.ms-option-check{width:18px;height:18px;border:1.5px solid var(--border);border-radius:3px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.ms-option.selected .ms-option-check{background:var(--primary);border-color:var(--primary)}.ms-option.selected .ms-option-check::after{content:'✓';color:#fff;font-size:11px;font-weight:700}.ms-team-label{padding:6px 12px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.res-table{width:100%;border-collapse:collapse}.res-table th{text-align:left;padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg)}.res-table td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}.res-table tr:hover td{background:var(--bg)}.res-table .res-name-cell{display:flex;align-items:center;gap:10px}.res-table .res-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}.res-table .res-name{font-weight:500}.res-table .res-meta{font-size:11px;color:var(--text-tertiary)}.res-table .res-actions{display:flex;gap:4px}.res-team-divider td{padding:12px 12px 6px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg)}.bk-footer-left{margin-right:auto}.modal.bk-modal{width:520px}.account-container{padding:24px;max-width:600px}.avatar-upload-section{display:flex;align-items:center;gap:20px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--border)}.avatar-preview{width:80px;height:80px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--primary);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.1)}.avatar-preview-img{width:100%;height:100%;object-fit:cover;display:block}.avatar-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;background:var(--primary)}.avatar-upload-info{display:flex;flex-direction:column;gap:6px}.avatar-hint{font-size:11px;color:var(--text-tertiary)}.sidebar-user-row{display:flex;align-items:center;gap:10px}.sidebar-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;display:block}.sidebar-avatar-text{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.15);color:#fff;font-size:14px;font-weight:600;flex-shrink:0}.theme-palette{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.theme-swatch{width:48px;height:48px;border-radius:10px;cursor:pointer;border:3px solid transparent;transition:all .15s;position:relative}.theme-swatch:hover{transform:scale(1.1)}.theme-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--surface)}.theme-swatch .check-icon{display:none;position:absolute;inset:0;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700}.theme-swatch.active .check-icon{display:flex}.theme-label{font-size:11px;text-align:center;margin-top:3px;color:var(--text-secondary)}.theme-option{display:flex;flex-direction:column;align-items:center}.app.theme-classic-orange{--sidebar-bg:#2B4A82;--primary:#F09030;--primary-hover:#D97A20;--primary-light:#FFF3E8}.app.theme-warm-grey{--sidebar-bg:#44403C;--primary:#78716C;--primary-hover:#57534E;--primary-light:#F5F5F4}.app.theme-cool-grey{--sidebar-bg:#374151;--primary:#6B7280;--primary-hover:#4B5563;--primary-light:#F3F4F6}.app.theme-sage{--sidebar-bg:#3D4F3D;--primary:#6B8E6B;--primary-hover:#567A56;--primary-light:#F0F5F0}.app.theme-dusty-rose{--sidebar-bg:#5C3D4A;--primary:#B07D8E;--primary-hover:#9A6878;--primary-light:#FDF2F5}.app.theme-soft-teal{--sidebar-bg:#2D4A4A;--primary:#5F9EA0;--primary-hover:#4A8486;--primary-light:#F0F7F7}.app.theme-lavender{--sidebar-bg:#433B60;--primary:#8B7FB5;--primary-hover:#7468A0;--primary-light:#F5F3FA}.app.theme-ocean{--sidebar-bg:#1E3A5F;--primary:#4682B4;--primary-hover:#3A6D99;--primary-light:#EEF4FA}.app.theme-forest{--sidebar-bg:#2B3D2B;--primary:#5C8A5C;--primary-hover:#4A724A;--primary-light:#EFF5EF}.app.theme-sunset{--sidebar-bg:#5D3322;--primary:#E86830;--primary-hover:#C85520;--primary-light:#FFF0E8}.app.theme-midnight{--sidebar-bg:#1A1A2E;--primary:#4A4A8A;--primary-hover:#3A3A74;--primary-light:#F0F0F8}.app.theme-golden{--sidebar-bg:#3D3520;--primary:#C8A030;--primary-hover:#A88520;--primary-light:#FDF8E8}.app.theme-coral{--sidebar-bg:#4A2830;--primary:#E07060;--primary-hover:#C05848;--primary-light:#FFF0EE}.pc-tabs{display:flex;gap:0}.pc-tab{padding:8px 20px;font-size:14px;font-weight:500;cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:3px solid transparent;font-family:var(--font);transition:all .15s;white-space:nowrap}.pc-tab:hover{color:var(--text)}.pc-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.search-box{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:6px;padding:0 10px;background:var(--surface)}.search-box svg{flex-shrink:0;color:var(--text-tertiary)}.search-box .text-input{border:none;padding:7px 0;width:180px;background:0 0}.search-box .text-input:focus{box-shadow:none}#clients-projects-container{padding:0;overflow-y:auto;flex:1;min-height:0}.pc-table{width:100%;border-collapse:collapse;background:var(--surface)}.pc-table thead th{padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);background:var(--bg);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.pc-table tbody tr{cursor:pointer;transition:background .1s}.pc-table tbody tr:hover{background:var(--primary-light)}.pc-table tbody tr:active{background:#ebf2fc}.pc-table tbody td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.col-name{min-width:200px}.col-name-inner{display:flex;align-items:center;gap:0}.pc-color-bar{width:4px;height:28px;border-radius:2px;flex-shrink:0;margin-right:12px}.pc-name-text{font-weight:500}.col-client{min-width:120px;color:var(--text-secondary)}.col-code{min-width:100px;color:var(--text-secondary);font-family:monospace;font-size:12px}.col-dates{min-width:180px;color:var(--text-secondary);font-size:12px}.col-billable{min-width:60px;text-align:center}.col-projects{min-width:100px;color:var(--text-secondary)}.col-details{min-width:150px;color:var(--text-tertiary);font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-actions{width:70px;text-align:right}.col-actions .btn-icon{opacity:0;transition:opacity .15s}.pc-table tbody tr:hover .col-actions .btn-icon{opacity:1}.btn-icon{background:0 0;border:none;cursor:pointer;padding:4px 6px;border-radius:4px;font-size:14px;color:var(--text-secondary);transition:all .15s}.btn-icon:hover{background:var(--bg);color:var(--text)}.btn-icon.btn-delete:hover{color:var(--danger)}.btn-icon.btn-archive:hover{color:var(--warning)}.btn-warning{background:#fef3c7;color:#92400e;border:none}.btn-warning:hover{background:#fde68a}.archive-section{margin-bottom:24px}.archive-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:0 4px}.archive-badge{display:inline-block;font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;background:var(--bg);color:var(--text-tertiary);margin-left:8px;vertical-align:middle}.pc-row-archived{opacity:.7}.pc-row-archived:hover{opacity:1}.pc-row-archived .col-actions .btn-restore{opacity:0;transition:opacity .15s;margin-right:4px}.pc-row-archived .col-actions .btn-delete{opacity:0;transition:opacity .15s}.pc-row-archived:hover .col-actions .btn-delete,.pc-row-archived:hover .col-actions .btn-restore{opacity:1}.modal.rg-modal{width:540px}.rg-form{padding:0}.rg-field{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.rg-field:first-child{padding-top:0}.rg-field:last-child{border-bottom:none}.rg-field-icon{width:20px;flex-shrink:0;margin-top:10px;color:var(--text-tertiary)}.rg-field-body{flex:1;min-width:0}.rg-field-label{font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.rg-input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:0;transition:border-color .15s}.rg-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.rg-input-lg{font-size:15px;padding:10px 14px;font-weight:500}.rg-select{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:0;cursor:pointer;appearance:auto}.rg-select:focus{border-color:var(--primary)}.rg-textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:0;resize:vertical;min-height:60px;transition:border-color .15s}.rg-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.rg-date-row{display:flex;align-items:center;gap:8px}.rg-date-sep{color:var(--text-tertiary);font-size:13px}.rg-input-date{flex:1;min-width:0}.rg-color-picker{position:relative;display:inline-block}.rg-color-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font-family:var(--font);transition:border-color .15s}.rg-color-btn:hover{border-color:var(--text-tertiary)}.rg-color-dot{width:18px;height:18px;border-radius:50%;flex-shrink:0}.rg-color-dropdown{display:none;position:absolute;top:100%;left:0;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:50;flex-wrap:wrap;gap:6px;width:200px}.rg-color-dropdown.open{display:flex}.rg-color-option{width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;flex-shrink:0}.rg-color-option:hover{transform:scale(1.15)}.rg-color-option.active{border-color:var(--text);box-shadow:0 0 0 2px var(--surface)}.view-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.view-btn{display:flex;align-items:center;justify-content:center;padding:0 12px;height:32px;border:none;background:var(--surface);cursor:pointer;color:var(--text-secondary);transition:all .15s;font-size:13px;font-weight:500;white-space:nowrap}.view-btn:first-child{border-right:1px solid var(--border)}.view-btn:hover{background:var(--bg);color:var(--text)}.view-btn.active{background:var(--primary-light);color:var(--primary)}.month-schedule{display:flex;flex-direction:column;height:100%}.month-scroll{flex:1;overflow:auto;position:relative;height:100%}.month-table{border-collapse:separate;border-spacing:0;table-layout:fixed}.month-table td,.month-table th{border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.month-table td.m-res-cell,.month-table th.m-res-hd{position:sticky;left:0;z-index:14;background:var(--surface);width:190px;min-width:190px;max-width:190px;border-right:2px solid var(--border)}.month-table th.m-res-hd{z-index:16}.month-header-sticky{position:sticky;top:0;z-index:15;background:var(--surface)}.month-table-header{margin-bottom:-1px}.month-table .m-day-row th{background:var(--surface);padding:6px 0;text-align:center;font-size:8px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;width:48px;min-width:48px;border-bottom:2px solid var(--border)}.month-table .m-day-row th.m-res-hd{z-index:17;background:var(--surface);text-align:left;padding-left:16px;font-size:11px;color:var(--text-secondary)}.month-table .m-day-row th.m-today{color:var(--accent)}.month-table .m-day-row th.m-today .m-day-num{background:var(--accent);color:#fff;border-radius:50%;display:inline-block;width:20px;height:20px;line-height:20px;text-align:center}.month-table .m-day-row th.m-weekend{color:var(--text-tertiary);background:#f3f4f6}.m-day-name{display:block;font-size:8px;line-height:1;margin-bottom:2px}.m-day-num{display:block;font-size:11px;line-height:1}.m-week-label{position:absolute;top:2px;left:2px;font-size:8px;color:var(--text-tertiary);font-weight:500;letter-spacing:0}.m-month-inline{display:block;font-size:8px;font-weight:700;color:var(--text);margin-bottom:1px;line-height:1}.m-res-col{width:190px;min-width:190px}.m-day-col{width:48px;min-width:48px}.month-table .m-team-row td{background:var(--bg);padding:5px 8px;height:auto;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.5px}.month-table .m-team-row td.m-team-label{position:sticky;left:0;z-index:14;background:var(--bg);width:160px;min-width:160px}.m-res-cell{padding:6px 8px;vertical-align:middle}.m-res-inner{display:flex;align-items:center;gap:8px}.m-res-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.m-res-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-res-role{font-size:10px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-day-cell{padding:1px 0;vertical-align:top;height:54px;position:relative;cursor:pointer;width:48px;min-width:48px;overflow:visible}.m-day-cell:hover{background:var(--primary-light)}.m-day-cell.m-weekend{background:#f3f4f6}.m-day-cell.m-weekend:hover{background:#e5e7eb}.m-day-cell.m-weekend:has(.m-booking,.m-leave){background:#fff}.m-booking{font-size:8px;line-height:1.15;padding:1px 2px;border-radius:2px;margin-bottom:1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:grab;position:relative;height:14px;box-sizing:border-box;color:#374151;z-index:1}.m-booking:hover{z-index:3}.m-booking:hover{opacity:.8}.m-booking.moving{opacity:.4;cursor:grabbing}.m-booking-hours{font-weight:600;color:#374151}.m-booking .booking-project{display:inline}.m-booking.span-s{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.m-booking.span-m{border-radius:0;margin-left:-1px;margin-right:-1px;padding-left:2px}.m-booking.span-e{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding-left:2px;border-right:2px solid rgba(59,125,221,.6)}.m-booking.span-e:hover,.m-booking.span-m:hover{outline:1px dashed var(--primary);outline-offset:-1px;opacity:1}.m-booking .resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:ew-resize;opacity:0;pointer-events:none;transition:opacity .15s;background:linear-gradient(90deg,transparent 20%,rgba(59,125,221,.85) 100%);border-top-right-radius:2px;border-bottom-right-radius:2px;z-index:10}.m-booking:hover .resize-handle{opacity:1;pointer-events:auto}.m-booking.resizing{outline:2px solid var(--primary);outline-offset:1px}.m-booking.resizing .resize-handle{opacity:1;pointer-events:auto;background:var(--primary)}.m-booking .resize-handle-left{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:ew-resize;opacity:0;pointer-events:none;transition:opacity .15s;background:linear-gradient(270deg,transparent 20%,rgba(59,125,221,.85) 100%);border-top-left-radius:2px;border-bottom-left-radius:2px;z-index:10}.m-booking:hover .resize-handle-left{opacity:1;pointer-events:auto}.m-booking.resizing .resize-handle-left{opacity:1;pointer-events:auto;background:var(--primary)}.m-booking .split-handle{position:absolute;right:-4px;top:0;bottom:0;width:8px;cursor:col-resize;opacity:0;pointer-events:none;z-index:20;display:flex;align-items:center;justify-content:center}.m-booking:hover .split-handle{opacity:1;pointer-events:auto}.m-booking .split-handle::before{content:'';display:block;width:2px;height:12px;border-left:2px dashed rgba(59,125,221,.5);transition:all .15s}.m-booking .split-handle:hover::before{border-left-color:rgba(59,125,221,.9);height:14px}.m-booking .split-handle::after{content:'✂️ Split';position:absolute;top:-24px;left:50%;transform:translateX(-50%);background:#1e1b4b;color:#fff;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100}.m-booking .split-handle:hover::after{opacity:1}.m-leave{font-size:7px;padding:2px 4px 2px 5px;border-radius:3px;margin-bottom:1px;background:#1f2937!important;color:#fff!important;border-left:2px solid #6b7280!important;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.4;z-index:1}.m-leave.holiday,.m-leave.personal,.m-leave.sick{background:#1f2937!important;color:#fff!important;border-left-color:#6b7280!important}.m-util-bar{position:absolute;bottom:0;left:1px;right:1px;height:3px;border-radius:1.5px;background:var(--border)}.m-util-fill{height:100%;border-radius:1.5px;transition:width .2s}.m-util-fill.green{background:var(--success)}.m-util-fill.yellow{background:var(--warning)}.m-util-fill.red{background:var(--danger)}.auth-brand-logo img{width:100px;height:auto}.logo img{width:36px;height:auto}