body{margin:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 50%,var(--navy-light) 100%);padding:24px}.login-box{background:var(--white);border-radius:20px;box-shadow:var(--shadow-lg);padding:48px 40px;width:100%;max-width:400px;text-align:center}.login-logo{margin-bottom:12px}.logo-img{height:60px;width:auto}.login-subtitle{color:var(--gray-600);font-size:14px;margin-bottom:32px;font-weight:500}.login-form{text-align:left}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin-bottom:6px}.form-group input{width:100%;padding:12px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:15px;transition:border-color .2s,box-shadow .2s;outline:none;background:var(--gray-50);color:var(--gray-800)}.form-group input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd526;background:var(--white)}.login-error{background:var(--danger-light);color:var(--danger);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;margin-bottom:16px;border:1px solid #fecaca}.btn-login{width:100%;padding:13px;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;margin-top:4px}.btn-login:hover:not(:disabled){background:var(--blue-hover)}.btn-login:active:not(:disabled){transform:scale(.99)}.btn-login:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 480px){.login-box{padding:32px 24px;border-radius:16px}.logo-img{height:48px}}.calendar-layout{display:grid;grid-template-columns:450px 1fr;gap:24px;align-items:start;max-width:100%;overflow-x:hidden}.calendar-panel{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:24px;min-width:0;overflow:hidden;box-sizing:border-box}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cal-header h2{font-size:17px;font-weight:700;color:#2e404f;text-transform:capitalize;letter-spacing:-.2px}.cal-nav{background:none;border:1.5px solid #e2e8f0;border-radius:8px;width:32px;height:32px;font-size:18px;cursor:pointer;color:#64748b;transition:all .18s;display:flex;align-items:center;justify-content:center;line-height:1}.cal-nav:hover{border-color:#3c9bd5;color:#3c9bd5;background:#3c9bd514}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;min-width:0}.cal-weekday{font-size:10px;font-weight:700;color:#94a3b8;text-align:center;padding:4px 0 8px;text-transform:uppercase;letter-spacing:.6px}.cal-day{aspect-ratio:1;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .15s;position:relative;border:2px solid transparent;min-height:40px}.cal-day.empty{cursor:default}.cal-day:not(.empty):hover{background:#3c9bd512;border-color:#3c9bd54d}.cal-day.today .day-num{background:#2e404f;color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-weight:700}.cal-day.selected{background:#3c9bd514;border-color:#3c9bd5}.cal-day.selected .day-num{color:#3c9bd5;font-weight:700}.cal-day.in-multiday{background:color-mix(in srgb,var(--multiday-color, #7c3aed) 10%,transparent)}.cal-day.in-multiday:after{content:"";display:block;width:70%;height:3px;background:var(--multiday-color, #7c3aed);border-radius:2px;margin-top:1px}.cal-day.in-multiday.selected{background:#3c9bd514;border-color:#3c9bd5}.day-num{font-size:13px;font-weight:500;color:#334155}.day-dot{background:#3c9bd5;color:#fff;font-size:9px;font-weight:700;width:15px;height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center}.day-panel{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:28px;min-height:460px;min-width:0;overflow-x:hidden}.day-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #f1f5f9}.day-panel-header h3{font-size:20px;font-weight:700;color:#2e404f;text-transform:capitalize;letter-spacing:-.3px;display:flex;align-items:center;gap:10px;margin:0}.day-count-badge{display:inline-flex;align-items:center;justify-content:center;background:#3c9bd5;color:#fff;font-size:11px;font-weight:700;min-width:22px;height:22px;padding:0 7px;border-radius:20px;letter-spacing:0}.btn-add-day{padding:9px 18px;background:#3c9bd5;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s,transform .12s,box-shadow .18s;box-shadow:0 2px 6px #3c9bd559;letter-spacing:.1px}.btn-add-day:hover{background:#2e86c1;box-shadow:0 4px 14px #3c9bd573;transform:translateY(-1px)}.btn-add-day:active{transform:translateY(0)}.day-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:320px;gap:10px;text-align:center}.day-empty-icon{font-size:48px;line-height:1;display:block;margin-bottom:4px}.day-empty-title{font-size:16px;font-weight:700;color:#1e293b;margin:0}.day-empty-subtitle{font-size:14px;color:#94a3b8;margin:0}.btn-add-empty{margin-top:8px;padding:10px 22px;background:transparent;color:#3c9bd5;border:2px dashed #3c9bd5;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .18s}.btn-add-empty:hover{background:#3c9bd512;border-style:solid;transform:translateY(-1px)}.day-bookings{display:flex;flex-direction:column;gap:14px}.booking-card{background:#fff;border-left:4px solid #3c9bd5;border-radius:12px;padding:18px 20px;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s,transform .15s;position:relative}.booking-card:hover{box-shadow:0 6px 20px #00000021;transform:translateY(-1px)}.booking-card-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.booking-time{background:#2e404f;color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:6px;letter-spacing:.2px;white-space:nowrap}.service-badge{font-size:12px;font-weight:600;padding:3px 12px;border-radius:20px;letter-spacing:.1px;white-space:nowrap}.booking-name{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:10px;letter-spacing:-.2px}.booking-meta{display:flex;align-items:center;gap:7px;font-size:14px;color:#475569;margin-bottom:5px;line-height:1.4}.booking-meta svg{flex-shrink:0;color:#94a3b8}.booking-notes-section{margin-top:14px;padding-top:14px;border-top:1px solid #f1f5f9}.booking-notes-label{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}.booking-notes-text{font-size:14px;color:#1e293b;white-space:pre-line;line-height:1.6}.booking-card-actions{display:flex;gap:8px;margin-top:16px}.btn-sm{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .18s;letter-spacing:.1px}.btn-edit{background:#2e404f;color:#fff}.btn-edit:hover{background:#3a5268;box-shadow:0 3px 10px #2e404f59;transform:translateY(-1px)}.btn-delete{background:#ef4444;color:#fff}.btn-delete:hover{background:#dc2626;box-shadow:0 3px 10px #ef444466;transform:translateY(-1px)}.multiday-badge{font-size:11px;font-weight:700;background:#f1f5f9;color:#64748b;padding:2px 8px;border-radius:20px;letter-spacing:.1px}@media (max-width: 768px){.calendar-layout{grid-template-columns:1fr;gap:16px;width:100%;box-sizing:border-box}.calendar-panel{padding:16px;width:100%;box-sizing:border-box;overflow:visible}.cal-grid{width:100%;min-width:0;box-sizing:border-box;gap:2px;padding-right:8px}.cal-day{min-height:45px}.cal-header h2{font-size:15px}.day-panel{min-height:unset;padding:20px 16px}.day-panel-header h3{font-size:17px}.booking-card{padding:16px}.booking-name{font-size:15px}.booking-card-actions{flex-direction:column}.booking-card-actions .btn-sm{width:100%;text-align:center;padding:10px 16px;font-size:14px}}@media (min-width: 769px){.booking-card-actions{flex-direction:row}}.booking-list{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.list-toolbar{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gray-200)}.search-input{flex:1;padding:10px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;outline:none;background:var(--gray-50);transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd51a;background:var(--white)}.filter-select{padding:10px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;outline:none;background:var(--gray-50);cursor:pointer;transition:border-color .2s}.filter-select:focus{border-color:var(--blue)}.list-count{font-size:13px;color:var(--gray-400);font-weight:500;white-space:nowrap}.table-wrapper{overflow-x:auto}.bookings-table{width:100%;border-collapse:collapse}.bookings-table thead{background:var(--gray-50)}.bookings-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--gray-200);white-space:nowrap}.bookings-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.bookings-table th.sortable:hover{color:var(--navy)}.sort-icon{margin-left:4px;opacity:.4}.sort-icon.active{opacity:1;color:var(--blue)}.booking-row{border-bottom:1px solid var(--gray-200);transition:background .15s}.booking-row:hover{background:var(--gray-50)}.booking-row td{padding:12px 16px;font-size:14px;vertical-align:middle}.date-cell{display:flex;flex-direction:column;gap:1px}.date-main{font-weight:700;color:var(--navy);font-size:14px;text-transform:capitalize}.date-year{font-size:11px;color:var(--gray-400)}.time-cell{font-weight:600;color:var(--gray-600)}.name-cell{min-width:160px}.customer-name{font-weight:600;color:var(--gray-800)}.customer-email{font-size:12px;color:var(--gray-400)}.service-pills{display:flex;flex-wrap:wrap;gap:4px}.service-pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}.multiday-tag{display:block;font-size:10px;font-weight:700;color:#3c9bd5;margin-top:2px;letter-spacing:.3px}.address-cell{color:var(--gray-600);max-width:180px;font-size:13px}.phone-cell{white-space:nowrap;color:var(--gray-600)}.notes-cell{max-width:200px;color:var(--gray-400);font-size:12px;white-space:pre-line}.actions-cell{display:flex;gap:6px;white-space:nowrap}.btn-sm{padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .2s}.btn-edit{background:var(--blue-light);color:var(--blue)}.btn-edit:hover{background:var(--blue);color:var(--white)}.btn-delete{background:var(--danger-light);color:var(--danger)}.btn-delete:hover{background:var(--danger);color:var(--white)}.empty-table{text-align:center;padding:60px!important;color:var(--gray-400);font-size:15px}@media (max-width: 768px){.list-toolbar{flex-wrap:wrap;padding:12px 16px;gap:8px}.search-input{width:100%;flex:unset}.filter-select{flex:1}.table-wrapper{display:none}.mobile-cards{display:flex;flex-direction:column;gap:12px;padding:12px 16px 16px}.mobile-booking-card{background:var(--gray-50);border-radius:var(--radius);border-left:4px solid var(--blue);padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}.mobile-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-card-name{font-size:15px;font-weight:700;color:var(--gray-800);flex:1}.mobile-card-meta{display:flex;flex-direction:column;gap:4px}.mobile-card-row{font-size:13px;color:var(--gray-600);display:flex;align-items:center;gap:6px}.mobile-card-row strong{color:var(--navy)}.mobile-card-actions{display:flex;gap:8px;margin-top:4px}.mobile-card-actions .btn-sm{flex:1;text-align:center;padding:8px 12px;font-size:13px}.mobile-empty{text-align:center;padding:40px 20px;color:var(--gray-400);font-size:15px}}@media (min-width: 769px){.mobile-cards{display:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--white);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 20px;border-bottom:1px solid var(--gray-200)}.modal-header h2{font-size:18px;font-weight:700;color:var(--navy)}.modal-close{background:none;border:none;font-size:18px;color:var(--gray-400);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:var(--gray-100);color:var(--gray-800)}.modal-form{padding:24px 28px 28px;display:flex;flex-direction:column;gap:16px}.modal-error{background:var(--danger-light);color:var(--danger);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;border:1px solid #fecaca}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:var(--navy)}.form-group input,.form-group select,.form-group textarea{padding:10px 13px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;outline:none;background:var(--gray-50);color:var(--gray-800);transition:border-color .2s,box-shadow .2s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd51a;background:var(--white)}.form-group textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--gray-200)}.btn-cancel{padding:11px 22px;background:var(--gray-100);color:var(--gray-600);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-cancel:hover{background:var(--gray-200)}.btn-save{padding:11px 28px;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-save:hover:not(:disabled){background:var(--blue-hover)}.btn-save:disabled{opacity:.7;cursor:not-allowed}.dagar-section{display:flex;flex-direction:column;gap:8px;background:#f8fafc;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:14px 16px}.dagar-header{margin-bottom:2px}.dagar-label{font-size:13px;font-weight:600;color:var(--navy)}.dag-row{display:flex;align-items:center;gap:8px}.dag-num{font-size:12px;font-weight:700;color:#94a3b8;min-width:36px}.dag-input-date{flex:1;padding:9px 10px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;background:var(--white);color:var(--gray-800);font-family:inherit;outline:none}.dag-input-date:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd51a}.dag-input-service{flex:1;padding:9px 10px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;background:var(--white);color:var(--gray-800);font-family:inherit;outline:none}.dag-input-service:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd51a}.dag-input-pris{width:100px;flex-shrink:0;padding:9px 10px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;background:var(--white);color:var(--gray-800);font-family:inherit;outline:none}.dag-input-pris:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c9bd51a}.dag-remove{background:none;border:none;color:#ef4444;font-size:14px;cursor:pointer;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.dag-remove:hover{background:#fee2e2}.btn-add-dag{align-self:flex-start;margin-top:4px;background:none;border:1.5px dashed var(--blue);color:var(--blue);font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.btn-add-dag:hover{background:#3c9bd512}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal{border-radius:20px 20px 0 0;max-height:95vh;animation:slideUpMobile .25s ease}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding:20px 20px 16px}.modal-form{padding:16px 20px 24px;gap:12px}.form-row{grid-template-columns:1fr;gap:12px}.dag-row{display:grid;grid-template-columns:1fr 1fr 36px;grid-template-areas:"label  label  remove" "date   svc    svc" "pris   pris   pris";gap:6px;align-items:center;background:var(--white);border:1.5px solid var(--gray-200);border-radius:8px;padding:10px 10px 8px;flex-wrap:unset}.dag-num{grid-area:label;min-width:unset;font-size:11px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.05em}.dag-input-date{grid-area:date;flex:unset;font-size:12px;padding:8px}.dag-input-service{grid-area:svc;flex:unset;font-size:12px;padding:8px}.dag-input-pris{grid-area:pris;width:100%;margin-left:0;font-size:12px;color:var(--gray-500, #64748b);background:#f8fafc;border-style:dashed;padding:7px 8px}.dag-remove{grid-area:remove;width:36px;height:36px;border-radius:8px;align-self:start}.modal-actions{flex-direction:column-reverse}.btn-cancel,.btn-save{width:100%;text-align:center;padding:14px}}.statistik{display:flex;flex-direction:column;gap:24px}.month-filter-bar{display:flex;align-items:center;justify-content:space-between;background:#eff6ff;border:1.5px solid #3c9bd5;border-radius:10px;padding:10px 18px;font-size:14px;color:#2e404f}.month-filter-clear{background:none;border:none;color:#3c9bd5;font-size:13px;font-weight:600;cursor:pointer;padding:4px 10px;border-radius:6px;transition:background .15s}.month-filter-clear:hover{background:#3c9bd51f}.section-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:4px}.section-sub{font-size:12px;color:var(--gray-400);margin-bottom:16px}.revenue-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.rev-card{background:var(--white);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--blue)}.rev-card--month{border-top-color:#7c3aed}.rev-card--year{border-top-color:#059669}.rev-label{font-size:12px;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px}.rev-amount{font-size:26px;font-weight:800;color:var(--navy);line-height:1}.stat-two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stat-card-box{background:var(--white);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow)}.avg-list{display:flex;flex-direction:column;gap:10px}.avg-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--gray-100)}.avg-row:last-child{border-bottom:none}.avg-service{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--gray-800)}.avg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.avg-price{font-size:14px;font-weight:700;color:var(--navy)}.top-list{display:flex;flex-direction:column;gap:8px}.top-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--gray-100)}.top-row:last-child{border-bottom:none}.top-rank{font-size:13px;font-weight:700;color:var(--gray-400);width:28px;flex-shrink:0}.top-name{flex:1;font-size:14px;font-weight:600;color:var(--gray-800)}.top-count{font-size:13px;font-weight:600;color:var(--blue);background:var(--blue-light);padding:2px 10px;border-radius:20px}.week-list{display:flex;flex-direction:column;gap:10px}.week-row{display:flex;align-items:center;gap:16px;padding:12px 14px;background:var(--gray-50);border-radius:var(--radius-sm);border-left:4px solid var(--blue)}.week-date{display:flex;flex-direction:column;align-items:center;min-width:40px}.week-day{font-size:11px;font-weight:600;color:var(--gray-400);text-transform:capitalize}.week-num{font-size:13px;font-weight:700;color:var(--navy);text-transform:capitalize}.week-info{flex:1;display:flex;flex-direction:column;gap:2px}.week-name{font-size:14px;font-weight:700;color:var(--gray-800)}.week-service{font-size:12px;font-weight:600}.week-pris{font-size:13px;font-weight:700;color:var(--navy);background:var(--gray-100);padding:3px 10px;border-radius:20px;white-space:nowrap}.empty-note{color:var(--gray-400);font-size:14px;text-align:center;padding:24px 0}@media (max-width: 768px){.revenue-cards,.stat-two-col{grid-template-columns:1fr}.rev-amount{font-size:22px}}.dashboard{display:flex;min-height:100vh;overflow-x:hidden;max-width:100vw}.sidebar{width:220px;background:var(--navy);display:flex;flex-direction:column;padding:24px 16px;position:fixed;top:0;left:0;height:100vh;z-index:10}.sidebar-logo{padding:8px 8px 28px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:24px}.sidebar-logo img{width:100%;height:auto;filter:brightness(0) invert(1)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:6px}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-sm);border:none;background:transparent;color:#ffffffb3;font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:all .2s}.nav-item:hover{background:#ffffff14;color:var(--white)}.nav-item.active{background:var(--blue);color:var(--white)}.nav-icon{font-size:16px}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.btn-logout{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:none;background:#ef444426;color:#fca5a5;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-logout:hover{background:#ef44444d}.main-content{margin-left:220px;flex:1;padding:28px 32px;min-height:100vh;min-width:0;overflow-x:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px}.topbar-stats{display:flex;gap:14px}.stat-card{background:var(--white);border-radius:var(--radius);padding:14px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:1px;min-width:90px;border-top:3px solid transparent;transition:transform .15s,box-shadow .15s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2e404f1f}.stat-card--total{border-top-color:var(--blue)}.stat-card--month{border-top-color:#8b5cf6}.stat-card--upcoming{border-top-color:#f59e0b}.stat-icon{font-size:18px;line-height:1;margin-bottom:2px}.stat-num{font-size:28px;font-weight:700;color:var(--navy);line-height:1}.stat-label{font-size:11px;color:var(--gray-400);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.btn-new{padding:12px 22px;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 8px #3c9bd54d}.btn-new:hover{background:var(--blue-hover);box-shadow:0 4px 14px #3c9bd573;transform:translateY(-1px)}.btn-new:active{transform:translateY(0)}.error-bar{background:var(--danger-light);color:var(--danger);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:20px;font-size:14px;border:1px solid #fecaca}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:16px;color:var(--gray-400)}.spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-header{display:none;background:var(--navy);padding:14px 16px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.mobile-header img{height:32px;width:auto;filter:brightness(0) invert(1)}.mobile-header-actions{display:flex;align-items:center;gap:10px}.btn-mobile-new{padding:8px 14px;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--navy);border-top:1px solid rgba(255,255,255,.1);z-index:20;padding:0 8px}.bottom-nav-inner{display:flex;justify-content:space-around;padding:8px 0 10px}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 16px;border:none;background:transparent;color:#fff9;font-size:11px;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s}.bottom-nav-item .nav-icon{font-size:20px}.bottom-nav-item.active{color:var(--blue)}.bottom-nav-logout{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 16px;border:none;background:transparent;color:#fff9;font-size:11px;font-weight:500;cursor:pointer;border-radius:var(--radius-sm)}.bottom-nav-logout .nav-icon{font-size:20px}@media (max-width: 768px){.dashboard{flex-direction:column!important;overflow-x:hidden!important}.sidebar{display:none!important}.mobile-header{display:flex!important;width:100%!important}.bottom-nav{display:block!important}.main-content{margin-left:0!important;padding:12px 16px 90px!important;width:100%!important;min-height:0!important}.topbar{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.topbar-stats{flex-wrap:wrap;gap:10px}.stat-card{min-width:0;flex:1 1 calc(50% - 5px);padding:12px 16px}.stat-num{font-size:22px}.btn-new{display:none!important}}*{box-sizing:border-box;margin:0;padding:0}:root{--navy: #2e404f;--navy-dark: #1e2d38;--navy-light: #3a5066;--blue: #3c9bd5;--blue-light: #e8f4fc;--blue-hover: #2d87c0;--white: #ffffff;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-400: #94a3b8;--gray-600: #475569;--gray-800: #1e293b;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--danger-light: #fef2f2;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.12)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-100);color:var(--gray-800);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;overflow-x:hidden;max-width:100vw}
