:root { --green:#184f3d; --light:#f5f7f4; --border:#d9e0db; --danger:#a12626; }
*{box-sizing:border-box} body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--light);color:#17211c}.wrap{max-width:680px;margin:0 auto;padding:18px}.card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 8px 24px rgba(0,0,0,.06)}h1{font-size:1.7rem;margin:.2rem 0 1rem}label{display:block;font-weight:700;margin:16px 0 7px}.hint{color:#66746c;font-size:.95rem}.input,select{width:100%;font-size:1.15rem;padding:15px;border:1px solid #bac7c0;border-radius:14px;background:#fff}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{width:100%;border:0;border-radius:16px;background:var(--green);color:#fff;font-size:1.15rem;font-weight:800;padding:17px;margin-top:18px;cursor:pointer;text-align:center;text-decoration:none;display:inline-block}.btn.secondary{background:#43514a}.btn.danger{background:var(--danger)}.summary{background:#eef5f1;border-radius:16px;padding:14px;margin:16px 0}.row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #dce7e1;padding:10px 0}.row:last-child{border-bottom:0}.error{background:#fff0f0;border:1px solid #e5b7b7;color:#761414;border-radius:14px;padding:12px;margin-bottom:14px}.ok{background:#edf8ef;border:1px solid #abd6b4;color:#174b25;border-radius:14px;padding:12px;margin-bottom:14px}.photo{width:100%;border-radius:18px;margin-top:10px}@media(max-width:520px){.wrap{padding:12px}.grid{grid-template-columns:1fr}h1{font-size:1.45rem}.card{padding:16px;border-radius:18px}.input{font-size:1.05rem}}

.checkline{display:flex;gap:12px;align-items:flex-start;font-weight:700;background:#f7faf8;border:1px solid var(--border);border-radius:14px;padding:14px;margin:16px 0}.checkline input{width:22px;height:22px;flex:0 0 auto;margin-top:2px}

.live-total{background:#184f3d;color:#fff;border-radius:18px;padding:18px;margin:16px 0;display:flex;flex-direction:column;gap:4px}.live-total span{font-weight:700;opacity:.9}.live-total strong{font-size:2.4rem;line-height:1}.live-total small{opacity:.9;font-size:.95rem}
@media(max-width:520px){.live-total strong{font-size:2rem}}

.booking-completed{background:#f4f1e9}.booking-completed .card{border-color:#cbbf9f}.final-total{background:#6b4f13}.completed-ok{background:#fff8df;border-color:#dec36b;color:#4f3a08}.mini-breakdown{background:#f8fbf9;border:1px solid var(--border);border-radius:14px;padding:12px;margin-top:12px}.photo-panel{display:none;margin-top:12px}.photo-panel.open{display:block}.btn.small{font-size:.95rem;padding:11px;border-radius:12px;margin-top:10px}.admin-charge{font-size:1.25rem}.field-error{border-color:#a12626!important;background:#fff7f7}
.subcard{margin:18px 0;padding:16px;border:1px solid #d8e0e6;border-radius:14px;background:#f9fbfc}.subcard h2{margin-top:0}.electric-card select.input{width:100%;margin-bottom:12px}.inline-form{margin-top:12px}.inline-form .input{margin-bottom:10px}.small{font-size:.9rem;padding:8px 12px}
.electric-chart-wrap{margin:12px 0;padding:10px;border:1px solid #e1e5ea;border-radius:12px;background:#fff;overflow-x:auto}.electric-chart-wrap canvas{max-width:100%;height:auto}.inline-form .danger{margin-top:8px}

.progress-panel{background:#f7faf8;border:1px solid var(--border);border-radius:16px;padding:16px;margin:16px 0}.progress-title{font-weight:800;margin-bottom:10px}.progress-bar{height:14px;background:#dfe9e3;border-radius:999px;overflow:hidden}.progress-bar span{display:block;height:100%;width:45%;background:var(--green);border-radius:999px;animation:moorings-progress 1.1s infinite ease-in-out}@keyframes moorings-progress{0%{transform:translateX(-110%)}50%{transform:translateX(60%)}100%{transform:translateX(240%)}}.page-loader{position:fixed;inset:0;background:rgba(245,247,244,.94);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}.page-loader.open{display:flex}.page-loader .box{max-width:420px;width:100%;background:#fff;border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:0 12px 34px rgba(0,0,0,.12);text-align:center}.page-loader h2{margin:.2rem 0 .8rem;font-size:1.25rem}

/* Version 24: more reliable mobile photo upload control */
.photo-upload-wrap{position:relative;width:100%;min-height:58px;margin-top:6px;border-radius:16px;overflow:hidden}.photo-upload-wrap input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:.01;z-index:2;cursor:pointer;font-size:16px}.photo-upload-button{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border-radius:16px;font-size:1.1rem;font-weight:800;padding:16px;text-align:center}.photo-status{margin-top:10px;background:#f4f7f5;border:1px solid var(--border);border-radius:12px;padding:10px;color:#526057;font-size:.95rem}.photo-status.ok2{background:#edf8ef;border-color:#abd6b4;color:#174b25}.photo-status.bad{background:#fff0f0;border-color:#e5b7b7;color:#761414}.photo-preview{display:none;width:100%;max-height:280px;object-fit:cover;border-radius:18px;margin-top:12px;border:1px solid var(--border)}

.inline-end-booking { margin-top: 16px; width: 100%; box-sizing: border-box; text-align: center; }

/* V38 duplicate booking warning modal */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;align-items:center;justify-content:center;padding:18px;}
.modal-backdrop.open{display:flex;}
.modal-card{background:#fff;border-radius:18px;max-width:520px;width:100%;padding:22px;box-shadow:0 14px 50px rgba(0,0,0,.28);}
.duplicate-warning-card{background:#fff3df;border:2px solid #f2a541;color:#1b1f1d;}
.duplicate-warning-card h2{margin-top:0;}
.modal-actions{display:grid;gap:10px;margin-top:18px;}
.btn.secondary{background:#eef3ef;color:#1b1f1d;}
.btn.warning{background:#d97904;color:#fff;}
@media (min-width:640px){.modal-actions{grid-template-columns:1fr 1fr;}}


/* V43 admin electric session and hookup summary tiles */
.electric-session-list{background:#fbfdfc;}
.electric-session-item{margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff;}
.electric-session-item.active{border-color:#7abf8a;background:#f0fbf2;}
.electric-session-item.completed{background:#fff;}
.status-active{color:#126b2d;}
.hookup-tile-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:10px;margin:16px 0 18px;}
.hookup-tile{border:1px solid var(--border);border-radius:16px;background:#f7faf8;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px;box-shadow:0 4px 12px rgba(0,0,0,.04);}
.hookup-tile span{font-size:1.45rem;font-weight:900;line-height:1;}
.hookup-tile small{font-size:.76rem;margin-top:7px;color:#4d5a53;}
.hookup-tile.in-use{background:#e7f8ea;border-color:#7fc38d;}
.hookup-tile.maintenance{background:#fff0dc;border-color:#f0a63d;}
.hookup-tile.available{background:#f7faf8;border-color:var(--border);}
