:root{--bg-page: #f7f7f7;--bg-card: #ffffff;--text-main: #1f2937;--text-muted: #6b7280;--border-light: #e5e7eb;--primary: #ff385c;--primary-hover: #e31c5f;--success: #15803d;--danger: #dc2626;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 8px 24px rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg-page);color:var(--text-main);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{border:none;border-radius:var(--radius-md);padding:10px 16px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}button:hover{background:var(--primary-hover)}button:active{transform:scale(.98)}input,select,textarea{border-radius:var(--radius-sm);border:1px solid var(--border-light);padding:10px 12px;color:var(--text-main);background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff385c2e}.page-container{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.page-header{margin-bottom:24px}.page-title{margin:0;font-size:30px;font-weight:700;letter-spacing:-.01em}.page-divider{margin-top:14px;border:none;border-top:1px solid #ececec}.dashboard-welcome{margin-top:20px;color:var(--text-muted)}.primary-nav{display:flex;justify-content:center;border-bottom:1px solid #eee;margin-bottom:24px}.primary-nav__list{display:flex;gap:24px;overflow-x:auto;padding:0 0 6px}.primary-nav__link{position:relative;padding:12px 4px;font-size:14px;font-weight:500;color:#717171;transition:color .2s ease;white-space:nowrap}.primary-nav__link:hover,.primary-nav__link.active{color:var(--primary)}.primary-nav__link:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:2px;background:var(--primary);transition:width .2s ease}.primary-nav__link:hover:after,.primary-nav__link.active:after{width:100%}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:#f3f4f6;color:#111;border:1px solid #e5e7eb}.btn-secondary:hover{background:#e8eaee}.btn-danger{background:var(--danger);color:#fff}.btn-danger-outline{background:transparent;color:var(--danger);border:1px solid var(--danger)}.form-group{margin-bottom:14px}.form-label{font-size:13px;font-weight:500;color:#555;margin-bottom:6px;display:block}.form-input,.input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #d1d5db;font-size:14px}.input.small{max-width:260px}.input.disabled{background:#f3f4f6;cursor:not-allowed}.link-btn{background:none;border:none;color:var(--primary);font-weight:600;margin-left:8px;padding:0}.link-btn.muted{color:#666}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:420px;background:var(--bg-card);padding:32px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-title{text-align:center;font-size:28px;font-weight:700;margin:0 0 24px}.auth-field{margin-bottom:14px}.auth-input{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-light);font-size:14px}.auth-password-wrapper{position:relative}.auth-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--text-muted);padding:2px;border-radius:0;line-height:0}.auth-toggle:hover,.auth-toggle:focus,.auth-toggle:active{background:transparent;transform:translateY(-50%)}.auth-toggle svg{display:block}.auth-submit{width:100%;margin-top:10px}.auth-submit:disabled,.btn-primary:disabled{opacity:.55;cursor:not-allowed}.auth-links{margin-top:16px;text-align:center;font-size:14px}.auth-links a{color:var(--primary);font-weight:600}.password-meter{height:6px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:6px}.password-meter-fill{height:100%;transition:width .3s ease}.kpi-row,.dashboard-kpis{display:flex;justify-content:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}.kpi-card{background:#fff;padding:18px 22px;border-radius:14px;min-width:180px;box-shadow:var(--shadow-sm);display:flex;justify-content:center;height:97px;flex-direction:column;align-items:center}.kpi-label{font-size:13px;color:#717171}.kpi-value{font-size:28px;font-weight:700;margin-top:6px}.dashboard-sync{display:flex;align-items:center;gap:12px;margin-bottom:24px}.dashboard-section{margin-bottom:32px}.dashboard-section-content{display:flex;flex-direction:column;gap:14px}.booking-card{max-width:100%;padding:18px;border-radius:16px;color:#fff;box-shadow:0 6px 20px #0000001f;display:flex;flex-direction:column;gap:1px}.booking-card-row{display:flex;align-items:center;gap:12px}.booking-card-label{font-size:12px;opacity:.85}.booking-card.airbnb{background:#ff385c}.booking-card.booking{background:#003580}.booking-card.manual{background:#4b5563}.booking-tax{font-weight:700;margin-top:4px}.booking-source{font-size:12px;margin-top:2px;opacity:.9;text-transform:capitalize}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 24px;flex-wrap:wrap;gap:14px}.legend-row{display:flex;gap:18px}.legend-item{display:flex;align-items:center;gap:6px;font-size:13px}.legend-dot{width:12px;height:12px;border-radius:3px}.calendar-wrapper{background:#fff;border-radius:16px;padding:14px;box-shadow:0 10px 28px #00000014}.fc-button{background:var(--primary)!important;border-radius:10px!important;border:none!important}.fc-button:hover{background:var(--primary-hover)!important}.fc-event{font-size:13px;font-weight:600;border-radius:8px!important}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:4px}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:30px}.pending-toolbar{margin-bottom:20px}.pending-list{display:flex;flex-direction:column;gap:16px}.pending-empty{padding:24px;text-align:center;color:#555}.pending-card,.pending-row{background:#fff;border-radius:16px;padding:18px 20px;border:1px solid #e5e7eb;box-shadow:0 4px 14px #0000000a}.pending-card-header{display:flex;justify-content:space-between;align-items:center}.pending-title{font-size:16px;font-weight:700}.pending-dates,.pending-apartment{margin-top:6px;font-size:13px;color:#4b5563}.source-badge{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#fff}.source-badge.booking{background:#003580}.source-badge.airbnb{background:#ff5a5f}.source-badge.manual{background:#555}.pending-actions{margin-top:14px}.tax-report-card{max-width:1100px;margin:0 auto;background:#fff;border-radius:16px;padding:20px;box-shadow:0 10px 28px #0000000f}.tax-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.tax-date{display:flex;flex-direction:column;gap:4px}.tax-date label{font-size:12px;font-weight:600;color:#555}.tax-title{margin:18px 0 12px;font-size:16px;font-weight:700}.tax-table-wrapper{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;margin-bottom:14px}.tax-table-wrapper table{width:100%;border-collapse:collapse;font-size:13px}.tax-table-wrapper th{background:#f9fafb;font-weight:700;padding:8px;border-bottom:1px solid #e5e7eb;text-align:left}.tax-table-wrapper td{padding:6px 8px;border-bottom:1px solid #f0f0f0}.table-input{width:100%;padding:6px 8px;font-size:13px;border-radius:8px;border:1px solid #d1d5db}.table-input.small{max-width:80px}.settings-wrapper{max-width:640px;margin:24px auto;display:flex;flex-direction:column;gap:20px}.settings-card{background:#fff;border-radius:16px;padding:20px 22px;border:1px solid #e5e7eb;box-shadow:0 6px 18px #0000000d}.settings-card-title{font-size:17px;font-weight:700;margin-bottom:6px}.settings-card-desc{font-size:14px;color:#555;margin-bottom:14px;line-height:1.4}.settings-link{font-size:14px;font-weight:600;color:var(--primary)}.settings-card.danger{border-color:#ffe4e6;background:snow}.settings-apartments-wrapper{max-width:900px;margin:24px auto;display:flex;flex-direction:column;gap:20px}.add-apartment-card{display:flex;gap:12px;align-items:flex-start}.apartment-card{background:#fff;border-radius:16px;padding:18px;border:1px solid #e5e7eb;box-shadow:0 8px 20px #0000000d}.apartment-card-header{display:flex;justify-content:space-between;margin-bottom:14px}.apartment-title{font-size:16px;font-weight:700}.apartment-section{margin-top:14px}.apartment-section label{font-size:12px;font-weight:600;color:#555;display:block;margin-bottom:4px}.master-ical,.apartment-actions{display:flex;gap:10px;align-items:center}.apartment-actions{margin-top:18px}.empty-text,.muted-text,.apartment-count{color:#666}.muted-text,.apartment-count{font-size:13px}.settings-success{margin-top:10px;color:var(--success);font-size:12px;font-weight:600}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-container{background:#fff;border-radius:18px;padding:26px;width:100%;box-shadow:0 30px 80px #00000040;animation:modalIn .18s ease-out}.modal-container h3{margin:0 0 18px;font-size:22px}.modal-actions{display:flex;gap:10px;margin-top:22px}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}.loader-wrapper{min-height:calc(100vh - 120px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.loader-spinner{width:42px;height:42px;border-radius:50%;border:4px solid #f3f4f6;border-top-color:var(--primary);animation:app-spin .9s linear infinite}.loader-text{font-size:14px;font-weight:500;color:#6b7280}@keyframes app-spin{to{transform:rotate(360deg)}}select.form-select{width:100%;font-size:14px}.fc-event-title.fc-sticky{margin-left:7px}.fc-daygrid-day-frame.fc-scrollgrid-sync-inner{height:96px}.dashboard-sync button{font-size:12px}span.dashboard-sync-time{font-size:11px;color:gray}.pending-actions button.btn-primary{font-size:11px}span.source-badge.booking,span.source-badge.airbnb{font-size:9px}.add-apartment-card input.input{width:82%}@media(max-width:900px){.page-container{padding:16px 14px 36px}.page-title{font-size:24px}.calendar-toolbar{align-items:stretch}.legend-row{flex-wrap:wrap;gap:10px 14px}.tax-controls{align-items:stretch}.tax-date,.tax-date input{width:100%}.tax-table-wrapper{overflow-x:auto}.add-apartment-card,.master-ical,.apartment-actions,.modal-actions{flex-wrap:wrap}}@media(max-width:640px){.auth-page{align-items:flex-start;padding-top:34px}.auth-card{padding:22px 18px;border-radius:14px}.auth-title{font-size:24px;margin-bottom:18px}.primary-nav{justify-content:flex-start}.primary-nav__list{gap:18px;width:100%;padding:0 4px 8px}.kpi-row,.dashboard-kpis{gap:12px}.kpi-card{flex:1 1 calc(50% - 8px);min-width:130px;padding:14px}.kpi-value{font-size:18px}.dashboard-sync{flex-direction:column;align-items:flex-start}.pending-card,.pending-row,.settings-card,.apartment-card,.tax-report-card,.calendar-wrapper{padding:14px}.pending-card-header,.apartment-card-header{flex-direction:column;align-items:flex-start;gap:8px}.input.small,.table-input.small{max-width:100%}.modal-container{padding:18px;border-radius:14px}button:not(.auth-toggle),.btn-primary,.btn-secondary,.btn-danger,.btn-danger-outline{width:100%}.link-btn{margin-left:0;margin-top:8px}.fc .fc-toolbar-title{font-size:15px}button.fc-today-button.fc-button.fc-button-primary{width:51px;font-size:9px}.fc-button-group,select{font-size:9px}.legend-item{font-size:7px}.fc-event-title.fc-sticky{font-size:9px;margin-left:7px}a.fc-col-header-cell-cushion{font-size:9px}.primary-nav__link{font-size:11px}.fc-daygrid-day-top{font-size:10px}.fc-daygrid-day-frame.fc-scrollgrid-sync-inner{height:58px}.dashboard-welcome,.dashboard-section-content{font-size:10px}h3{font-size:13px}.kpi-label{font-size:11px}.kpi-card{display:flex;justify-content:center;height:60px;flex-direction:column;align-items:center}.pending-title{font-size:14px;font-weight:700}.source-badge{font-size:9px}.pending-dates,.pending-apartment,.pending-actions button.btn-primary{font-size:10px}input[type=date]{font-size:11px}h3.tax-title{font-size:12px}tr{font-size:10px}.settings-card-title{font-size:13px}.settings-card-desc{font-size:11px}.settings-link,button.btn-danger{font-size:12px}nav.primary-nav{margin-top:20px}input.input{font-size:10px}button.btn-primary,.apartment-title,button.btn-danger-outline{font-size:12px}svg{margin-left:270px}.auth-card{margin-top:81px}.dashboard-sync button{font-size:10px}span.dashboard-sync-time{font-size:8px}input[type=date]{font-size:11px;width:100%}button.btn-secondary{font-size:12px}tbody tr td:nth-child(2) input{width:106px}tbody tr td:nth-child(3),tbody tr td:nth-child(4){min-width:77px}}
