.admin-body{background:#f4f1e8}.admin-main{padding:40px 6% 80px;max-width:1600px;margin:auto}.admin-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.admin-title h1{font-size:47px;margin:18px 0;letter-spacing:-1.8px}.admin-badge{font-size:10px;letter-spacing:2px;padding:12px 17px;border:1px solid #b6c0af}.admin-nav{display:flex;gap:20px;font-size:12px;align-items:center}.admin-nav button{border:1px solid #bcc6b5;background:none;padding:10px;color:var(--green);cursor:pointer}.admin-notice{padding:18px 22px;background:#e8e2d0;font-size:13px;margin-bottom:30px}.login-panel{background:white;border:1px solid var(--line);padding:35px;display:grid;grid-template-columns:1fr 1fr;gap:35px}.login-panel h2{font-size:35px;max-width:350px}.login-panel>div>p{font-size:13px;color:var(--muted);margin-top:20px;max-width:340px}.login-panel form>label{font-size:12px}.login-panel form .muted{margin:20px 0;font-size:11px}.login-panel .outline{margin-top:15px}.login-panel>p{grid-column:1/-1}.dashboard-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px}.dashboard-preview>div{border-top:1px solid var(--line);padding-top:20px}.dashboard-preview span{font-size:10px;color:var(--muted)}.dashboard-preview h3{font-size:26px;margin:12px 0}.dashboard-preview p{font-size:12px;color:var(--muted)}.dashboard-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:20px;margin:30px 0}.dashboard-toolbar>label{flex:1;min-width:180px;font-size:12px}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}.dashboard-stats>div{background:white;padding:25px;border:1px solid var(--line)}.dashboard-stats span{display:block;font-size:11px;color:var(--muted)}.dashboard-stats strong{font:36px var(--serif);display:block;margin-top:15px}.management-actions{display:flex;gap:15px;flex-wrap:wrap;margin:25px 0}.management-actions .button:first-child{background:var(--green);color:white}.reservation-card{background:white;border:1px solid var(--line);margin-top:15px;padding:25px}.reservation-card header{display:flex;justify-content:space-between;align-items:start;gap:20px}.reservation-card h3{font-size:28px}.reservation-card a{font-size:13px;text-decoration:underline}.status-pill{font-size:11px;padding:5px 12px;background:#edf0e5}.status-pill.pending{background:#f6e8be}.status-pill.confirmed{background:#d5ead6}.status-pill.cancelled,.status-pill.rejected{background:#eadbda}.reservation-details{display:flex;gap:15px 35px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:20px;padding-top:15px;font-size:12px}.reservation-details strong{display:block;font-size:15px}.reservation-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.reservation-actions button,.reservation-actions a{border:1px solid #b7c3ae;background:none;padding:9px 12px;font:11px Arial;cursor:pointer;color:var(--green);text-decoration:none}.reservation-note{font-size:12px;margin-top:14px;white-space:pre-wrap;overflow-wrap:anywhere}.block-section{margin-top:55px;border-top:1px solid var(--line);padding-top:30px}.block-section h2{font-size:32px;margin-bottom:15px}#block-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin:25px 0;font-size:12px}#block-form button{grid-column:1/-1;max-width:250px}.block-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:20px 0;font-size:13px}#edit-dialog{background:var(--cream);color:var(--green);padding:35px;width:660px}#edit-dialog h2{font-size:32px;margin-bottom:25px}#edit-form>label{display:block;margin-top:15px;font-size:12px}textarea{font:inherit;padding:12px;width:100%;min-height:70px;resize:vertical;margin-top:6px;border:1px solid var(--line);background:transparent}#edit-status,#dashboard-status,#login-status{font-size:13px;margin-top:15px;white-space:pre-wrap}.empty-state{padding:50px 20px;text-align:center;border:1px dashed #b7c3ae;color:var(--muted)}[hidden]{display:none!important}@media(max-width:700px){.admin-main{padding:25px 5%}.admin-title h1{font-size:36px}.admin-badge{display:none}.login-panel{display:block;padding:24px}.login-panel form{margin-top:25px}.dashboard-preview{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr;gap:10px}.dashboard-stats>div{padding:18px;display:flex;justify-content:space-between;align-items:center}.dashboard-stats strong{font-size:28px;margin:0}.admin-nav a{display:none}#block-form{grid-template-columns:1fr}.reservation-card{padding:20px}.reservation-card h3{font-size:24px}#edit-dialog{padding:25px;max-width:95vw}.management-actions .button{width:100%}.reservation-details{gap:15px 20px}}
.login-options{min-width:0}.login-options label{display:block;margin-bottom:16px;font-size:12px}.login-options input{width:100%}.login-options form{margin:0}.login-options details{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.login-options summary,.password-settings summary{cursor:pointer;font-size:14px;font-weight:600}.login-options details form{margin-top:20px}.password-settings{background:white;border:1px solid var(--line);padding:22px;margin:25px 0}.password-settings .muted{margin:16px 0;font-size:13px;max-width:700px}.password-settings form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px}.password-settings label{font-size:12px}.password-settings button,.password-settings p{grid-column:1/-1}#password-status{font-size:13px}.password-settings button{justify-self:start}@media(max-width:700px){.login-options{margin-top:24px}.password-settings form{grid-template-columns:1fr}}
.monthly-calendar{margin:32px 0;background:#fff;border:1px solid var(--line);padding:26px}.calendar-heading{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}.calendar-heading h2{font-size:34px;text-transform:capitalize;margin:10px 0}.calendar-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.calendar-controls label{font-size:11px}.calendar-controls input{display:block;padding:10px;margin-top:5px;min-width:170px}.calendar-controls button{border:1px solid #b7c3ae;background:#f6f7f1;color:var(--green);padding:12px 14px;cursor:pointer;min-height:43px}.calendar-legend{display:flex;gap:14px;flex-wrap:wrap;margin:22px 0;font-size:12px;align-items:center}.calendar-legend>span:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#d7ddd4}.calendar-legend>.pending:before{background:#d9a92d}.calendar-legend>.confirmed:before{background:#54845b}.calendar-legend>.completed:before{background:#57869c}.calendar-legend>.blocked:before{background:#937970}.calendar-legend label{display:flex;gap:7px;align-items:center}.calendar-legend input{width:auto;margin:0;accent-color:var(--green)}.monthly-calendar>.muted,#calendar-status{font-size:12px;line-height:1.7;margin:12px 0}.calendar-scroll{overflow-x:auto;overscroll-behavior-x:contain;margin-top:18px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:980px}.calendar-weekdays{background:#eef1e9;border:1px solid #d7ded0}.calendar-weekdays span{padding:12px 10px;font-size:12px;font-weight:600}.calendar-days{border-left:1px solid #d7ded0;border-top:1px solid #d7ded0}.calendar-day,.calendar-blank{min-height:145px;border-right:1px solid #d7ded0;border-bottom:1px solid #d7ded0;padding:8px;min-width:0}.calendar-blank{background:#f6f7f3}.calendar-day.selected{background:#f3f5e9;box-shadow:inset 0 0 0 2px #59764e}.calendar-day.today .calendar-date{background:var(--green);color:white;border-radius:50%}.calendar-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-date,.calendar-add{border:0;background:transparent;color:var(--green);cursor:pointer;padding:6px;min-width:30px;min-height:30px;font:600 12px Arial}.calendar-add{border:1px solid #d7ded0;font-size:16px}.calendar-event{display:block;width:100%;text-align:left;border:0;border-left:3px solid #d9a92d;background:#fbf1d2;color:#493d20;padding:7px;margin:6px 0;cursor:pointer;overflow-wrap:anywhere;font:11px/1.5 Arial}.calendar-event.confirmed{background:#e3eee0;border-color:#54845b;color:#294a2d}.calendar-event.completed{background:#e5eff4;border-color:#57869c;color:#305266}.calendar-event.cancelled,.calendar-event.rejected{background:#eeeae6;border-color:#aca29a;color:#777}.calendar-event strong,.calendar-event span,.calendar-event small{display:block}.calendar-event small{font-size:10px;margin-top:3px}.calendar-event:hover{filter:brightness(.96)}.calendar-block{font-size:10px;line-height:1.5;background:repeating-linear-gradient(45deg,#f0e7e2,#f0e7e2 4px,#e7dbd4 4px,#e7dbd4 8px);padding:6px;border-left:3px solid #937970;margin:6px 0;overflow-wrap:anywhere}.calendar-empty{color:#c5cdbf;display:block;text-align:center;margin-top:25px}.booking-inbox{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 22px}.booking-inbox button[aria-pressed=true]{background:var(--green);color:white}#list-title{font-size:30px;margin-top:25px}.reservation-card:focus{outline:2px solid #8b9f79;outline-offset:4px}.calendar-date:focus-visible,.calendar-add:focus-visible,.calendar-event:focus-visible{outline:2px solid #506e43;outline-offset:2px}@media(max-width:700px){.monthly-calendar{padding:16px;margin:25px -1%}.calendar-heading h2{font-size:28px}.calendar-controls{gap:6px}.calendar-controls button{padding:10px}.calendar-legend{gap:10px;font-size:11px}.booking-inbox .button{width:100%}}
.calendar-slots{margin-top:12px;padding-top:8px;border-top:1px solid #e4e8df}.calendar-slot{display:block;font:10px/1.5 Arial;padding:3px 0;color:#4c7350}.calendar-slot.busy,.calendar-slot.blocked,.calendar-slot.full{color:#8a5044;font-weight:600}.calendar-slot.public{color:#3f7186}.calendar-more{border:0;background:none;color:var(--green);font:10px Arial;text-decoration:underline;padding:4px 0;cursor:pointer}.day-availability{background:#fff;border:1px solid var(--line);padding:24px;margin:25px 0}.day-availability h3{font-size:26px;margin-bottom:18px}.availability-bar{display:flex;height:20px;border-radius:5px;overflow:hidden;gap:2px;background:#fff}.availability-bar span{min-width:3px;background:#dbead2}.availability-bar .busy,.availability-bar .full{background:#b7745f}.availability-bar .blocked{background:repeating-linear-gradient(45deg,#937970,#937970 4px,#bca49a 4px,#bca49a 8px)}.availability-bar .public{background:#79a6b8}.availability-list{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.availability-slot{padding:8px 12px;font-size:12px;background:#edf5e7;color:#375e31;border-radius:4px}.availability-slot.busy,.availability-slot.full{background:#f5e6de;color:#864f3f}.availability-slot.blocked{background:#eae1dd;color:#6e5145}.availability-slot.public{background:#e5f0f5;color:#3a6a80}.day-availability>.muted{font-size:12px;line-height:1.6}.calendar-day{min-height:165px}.calendar-legend>.blocked:before{background:#b7745f}
#monthly-report {scroll-margin-top: 1rem;}
#monthly-report summary span {font-weight: 400; margin-left: .6rem;}
.report-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem;}
.report-grid section {min-width: 0; border: 1px solid #d8ded5; padding: 1rem;}
.report-grid h3 {font-size: 1.1rem; margin: 0 0 .5rem;}
.report-grid p {font-size: .85rem; color: #53665d;}
.report-chart {list-style: none; padding: 0; max-height: 24rem; overflow-y: auto; margin: 0;}
.report-chart li {display: grid; grid-template-columns: 6.1rem minmax(1rem,1fr) auto; gap: .5rem; align-items: center; margin: .3rem 0; font-size: .8rem;}
.report-chart.report-money li {grid-template-columns: 1.5rem minmax(1rem,1fr) auto;}
.report-bar {display: block; background: #e9eee9; border-radius: .25rem; overflow: hidden; height: .5rem;}
.report-bar i {display: block; background: #2a6252; height: 100%;}
@media(max-width: 960px) {.report-grid {grid-template-columns: 1fr;}}
#payment-dialog {background:var(--cream);color:var(--green);padding:2rem;width:min(28rem,95vw);}
#payment-dialog form {margin-top:1rem;}
#payment-dialog p, #history-hint {margin:.8rem 0;}
#annual-report {scroll-margin-top:1rem;}
.annual-controls {display:flex;gap:1rem;flex-wrap:wrap;align-items:end;margin:1rem 0;}
.annual-controls input {max-width:8rem;}
.annual-scroll {margin:1rem 0;}
#annual-chart {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;}
#annual-chart button {
  min-width:0;display:grid;gap:.35rem;padding:.65rem .8rem;text-align:left;
  font:inherit;color:var(--green);background:#f6f7f2;border:1px solid #dce4d9;
  border-radius:.45rem;cursor:pointer;overflow-wrap:anywhere;
}
#annual-chart button:hover,#annual-chart button:focus-visible {border-color:#3b6c56;background:#edf2e9;}
.annual-month {font-size:.82rem;text-transform:capitalize;}
#annual-chart strong {font-size:clamp(.78rem,2.4vw,1.18rem);}
.annual-bar {display:block;height:.35rem;background:#e1e9df;border-radius:1rem;overflow:hidden;}
.annual-bar i {display:block;height:100%;background:linear-gradient(90deg,#63927b,#244d40);border-radius:inherit;}
@media(max-width:420px){#annual-chart{gap:.35rem;}#annual-chart button{padding:.45rem;}}
