:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253c33;background:#f5f6f1;font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea,summary{outline-offset:4px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}a{color:#436a50}h1{font:32px/1.15 Georgia,serif;letter-spacing:-.6px;margin:0}h2{font-size:19px;font-weight:650;margin:0 0 12px}h3{font-size:14px;margin:27px 0 13px}p{line-height:1.6}small{line-height:1.5}.sidebar{position:fixed;inset:0 auto 0 0;width:222px;background:#fff;border-right:1px solid #e1e7dc;padding:32px 22px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:10px}.brand-mark{border-radius:50%;width:37px;height:37px;display:grid;place-items:center;background:#234d3b;color:#fff;font:18px Georgia,serif;letter-spacing:-1px}.brand strong{display:block;font-size:11px;letter-spacing:1.4px}.brand small{display:block;font-size:11px;color:#8b9781;margin-top:5px}.nav-label{font-size:9px;letter-spacing:1.5px;color:#a1a993;margin:46px 11px 14px}nav{display:flex;flex-direction:column;gap:6px}nav button{background:none;border:0;color:#788570;border-radius:8px;padding:13px 12px;text-align:left;font-size:12px}nav button:hover{background:#f4f6ee}nav button.active{color:#34573c;background:#edf2e6;font-weight:600}.sidebar-bottom{margin-top:auto;border-top:1px solid #edf0e6;padding-top:20px;color:#88977c;font-size:10px}.sidebar-bottom strong{font-size:11px;color:#59764e}.sidebar-bottom p{font-size:10px}.sidebar-bottom a{font-size:10px;text-decoration:none}.saved-dot{display:inline-block;background:#829d60;width:6px;height:6px;border-radius:50%;margin-right:5px}.app-shell{margin-left:222px}header{padding:33px 34px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px}.eyebrow{color:#93a07d;font-size:9px;font-weight:700;letter-spacing:1.6px;margin:0 0 9px}.header-actions{display:flex;align-items:center;gap:19px}.header-actions>span{font-size:11px;color:#8b967e;white-space:nowrap}main{padding:0 34px;max-width:1500px}.primary{background:#2b523c;color:#fff;border:0;border-radius:8px;padding:12px 17px;font-size:12px;font-weight:600;white-space:nowrap}.primary:hover{background:#3b6b4c}.secondary{display:inline-block;background:#fff;border:1px solid #dce4d1;border-radius:7px;color:#668153;padding:9px 12px;text-decoration:none;font-size:11px;white-space:nowrap}.secondary:hover{background:#f1f5e9}.text-button{background:none;border:0;color:#74905b;font-size:11px;padding:4px 0;text-align:left}.text-button:hover{text-decoration:underline}.connection{background:#eef0e3;border:1px solid #e2e6d1;border-radius:8px;display:flex;align-items:center;gap:10px;padding:11px 16px;margin-bottom:22px}.connection .dot{width:6px;height:6px;border-radius:50%;background:#b5a465;flex:none}.connection p{font-size:10px;margin:0;color:#8a9077;flex:1}.connection button{border:0;background:none;color:#839464;font-size:10px;white-space:nowrap}.connection.active .dot{background:#599242}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.metrics article{border:1px solid #e2e7d9;border-radius:11px;background:white;padding:21px 19px;min-width:0}.metrics small{display:block;font-size:10px;color:#8a987b;min-height:27px}.metrics strong{font:30px/1.15 Georgia,serif;display:block;letter-spacing:-1px;margin:10px 0}.metrics span{display:block;font-size:9px;color:#9aa58c;line-height:1.5}.card{background:#fff;border:1px solid #e1e7d9;border-radius:12px;padding:23px;margin-bottom:22px}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:16px}.section-head h2{margin:0}.section-head .muted{margin-bottom:0}.muted{color:#849476;font-size:11px;line-height:1.65;margin:6px 0 16px}.chips{display:flex;gap:6px;margin-bottom:12px}.chips button{background:none;color:#91a27d;border:1px solid transparent;border-radius:20px;padding:6px 11px;font-size:9px}.chips button.selected{background:#edf3e4;border-color:#dfe8d2;color:#668647}.empty{text-align:center;padding:27px 15px;color:#92a185}.empty strong{font:18px Georgia,serif;color:#6a815b}.empty p{font-size:10px}.booking-row{display:grid;width:100%;grid-template-columns:1fr 1.1fr 1.15fr auto;align-items:center;gap:14px;border:0;border-top:1px solid #edf0e4;background:none;padding:18px 0;text-align:left;color:inherit}.booking-row:hover{background:#fafbf6}.booking-row strong{display:block;font-size:11px;font-weight:600}.booking-row small{display:block;font-size:9px;color:#99a687;margin-top:5px}.guest{min-width:0}.guest strong{font-size:12px}.row-time strong{font-size:10px}.row-money{text-align:right}.badge{display:inline-block;padding:5px 8px;background:#f1f4e9;color:#899a73;border-radius:20px;font-size:9px;white-space:nowrap}.badge.confirmed{background:#e9f2df;color:#729256}.badge.completed{background:#e0ede6;color:#578871}.badge.enquiry{background:#f6eedd;color:#a48c56}.badge.cancelled,.badge.no_show{background:#f4e6df;color:#af8671}.partner-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:17px 0;border-top:1px solid #edf0e3}.partner-row strong{display:block;font-size:12px}.partner-row small{display:block;color:#9aa886;font-size:9px;line-height:1.6;margin-top:5px}.partner-balance{text-align:right}.partner-balance strong{font-size:11px;color:#6d854f}.explain{background:#f4f6eb;border-radius:8px;margin-top:20px;padding:15px;font-size:11px;color:#81916c}.explain strong{font-size:11px;color:#738b59}.explain p{margin:6px 0 0;font-size:10px}.filters{display:flex;gap:14px;margin:20px 0}.filters input{flex:1}.filters select{max-width:220px}input:not([type=checkbox]),select,textarea{width:100%;min-width:0;background:#fafbf7;border:1px solid #dce4d1;border-radius:7px;padding:11px;color:#466137;font-size:12px;min-height:41px}input::placeholder{color:#a3af95}input:focus,select:focus,textarea:focus{outline:2px solid #8faa6d}label{display:block;font-size:11px;font-weight:600;color:#74895f;margin:16px 0 7px}.checkbox{display:flex;gap:8px;font-weight:400;align-items:flex-start;line-height:1.6}.checkbox input{accent-color:#688a47;flex:none;margin:2px 0 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.split-box{padding:4px 16px 9px;background:#f1f5e7;border-radius:9px;margin:20px 0 2px}.split-box p{font-size:11px;color:#8fa070}.split-box strong{color:#638044;font-size:18px;margin-left:5px}.split-box p span{font-size:9px;margin-left:8px}.wide{width:100%;margin-top:24px}details{border-top:1px solid #edf0e1;padding-top:17px;margin-top:20px}summary{font-size:11px;color:#7f9467;cursor:pointer;font-weight:600}.calendar-controls{display:flex;gap:7px;flex-wrap:wrap}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);color:#9bab8a;font-size:10px;text-align:center;padding:12px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #e6ebdd;border-left:1px solid #e6ebdd}.calendar-cell{min-height:108px;padding:9px;border-right:1px solid #e6ebdd;border-bottom:1px solid #e6ebdd;min-width:0}.calendar-cell.outside{background:#fafbf7}.calendar-cell.today{background:#f2f7e8}.calendar-cell.selected{box-shadow:inset 0 0 0 2px #93ac75}.calendar-number{border:0;background:none;color:#829466;font-size:11px;padding:1px 4px 5px}.calendar-booking{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:9px;border:0;background:#eaf2dd;color:#70914b;border-radius:4px;padding:5px;text-align:left;margin-top:4px}.calendar-booking.completed{background:#e0eee4;color:#658b72}.calendar-booking.enquiry{background:#f7f0df;color:#ab955d}.calendar-cell>small{font-size:8px;color:#99a783}.calendar-legend{display:flex;gap:20px;font-size:9px;color:#89a16d;margin-top:16px}.ledger-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:17px 0;border-top:1px solid #ebefdf}.ledger-row strong{font-size:11px;display:block}.ledger-row small{display:block;font-size:9px;color:#9bad85;margin-top:5px}.ledger-amount{text-align:right;white-space:nowrap}.ledger-row.reversed{opacity:.45}.ledger-row.reversed strong{text-decoration:line-through}.review-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:22px}.message-preview{background:#f1f5e8;border:1px solid #e7eddc;border-radius:10px;padding:23px;white-space:pre-wrap;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.link-chips{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.link-chips a{font-size:9px;text-decoration:none;border:1px solid #e4ebd7;border-radius:20px;padding:7px 9px;color:#849d61}.review-row{display:flex;flex-direction:column;align-items:flex-start;padding:17px 0;border-top:1px solid #eaf0df;gap:7px}.review-row small{font-size:9px;color:#9daf86}.history-row{position:relative;padding:17px 0 17px 18px;border-top:1px solid #ebf0df}.history-row:before{content:"";width:5px;height:5px;background:#a8bc8b;position:absolute;left:0;top:22px;border-radius:50%}.history-row strong{font-size:11px;display:block}.history-row small{font-size:9px;color:#a0b18b;display:block;margin-top:5px}.history-row p{font-size:10px;color:#8fa475;margin:6px 0 0}footer{display:flex;justify-content:space-between;gap:10px;color:#a5b394;font-size:9px;padding:0 2px 24px}dialog{max-width:700px;width:calc(100% - 32px);max-height:90vh;overflow-y:auto;border:1px solid #dbe6cd;border-radius:14px;padding:32px;color:#37502d;box-shadow:0 16px 80px #24381533}dialog::backdrop{background:#1e342b66;backdrop-filter:blur(3px)}dialog.money-dialog{max-width:480px}dialog.detail-dialog{max-width:810px}.close{position:absolute;right:14px;top:11px;border:0;background:none;color:#a0b18b;font-size:23px}dialog>p{font-size:12px;line-height:1.8}.detail-controls{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.detail-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 0}.detail-metrics div{background:#f4f7ec;border:1px solid #e8efdb;border-radius:9px;padding:14px}.detail-metrics small{display:block;font-size:9px;color:#a0b287}.detail-metrics strong{display:block;font:23px Georgia,serif;margin-top:9px;color:#748e59}.settlement-box{background:#edf5df;border:1px solid #e1edcc;padding:18px 20px;border-radius:8px}.settlement-box strong{font-size:17px;color:#6d8e48}.settlement-box p{font-size:11px;color:#91aa73;margin:7px 0 0}.booking-info{display:grid;grid-template-columns:1fr 1.4fr 1fr 1.4fr;gap:12px;font-size:10px;color:#95a981;margin:28px 0}.booking-info dt{color:#a8b796}.booking-info dd{margin:0;overflow-wrap:anywhere}.notes{font-size:11px;white-space:pre-wrap;color:#92a57f;background:#f7f9f1;padding:14px;border-radius:7px}.detail-review{margin-top:25px;border-top:1px solid #e8efdd}.detail-review a{margin-right:12px}.warning{background:#fff5de;color:#b19962;border-radius:8px;padding:12px;font-size:11px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#36553a;color:white;box-shadow:0 5px 25px #24382030;padding:15px 20px;border-radius:9px;font-size:12px;max-width:90%;z-index:20}.toast.error{background:#a47755}
@media(max-width:1150px){header{padding:28px 24px 22px}main{padding:0 24px}.header-actions>span{display:none}.booking-row{grid-template-columns:1fr 1.2fr 1fr}.booking-row .badge{grid-column:1/-1;justify-self:start;margin-top:-5px}.dashboard-grid{grid-template-columns:1.3fr 1fr}.metrics article{padding:17px 13px}.metrics strong{font-size:26px}.card{padding:20px}.row-money strong{font-size:10px}}
@media(max-width:880px){.sidebar{position:static;width:auto;padding:18px 20px;border-right:0;border-bottom:1px solid #e3ead9;display:block}.nav-label,.sidebar-bottom{display:none}nav{flex-direction:row;overflow-x:auto;margin-top:15px;gap:4px}nav button{white-space:nowrap;padding:9px 11px;font-size:10px}.app-shell{margin:0}.dashboard-grid,.review-layout{grid-template-columns:1fr}.metrics article{padding:18px}.metrics small{min-height:25px}.metrics strong{font-size:27px}.booking-row{grid-template-columns:1fr 1.2fr 1.2fr auto}.booking-row .badge{grid-column:auto;margin:0}.header-actions>span{display:block}.calendar-cell{min-height:100px}}
@media(max-width:600px){header{padding:24px 18px 20px;align-items:flex-start}h1{font-size:27px}.header-actions>span{display:none}.header-actions{margin-top:16px}.header-actions .primary{font-size:10px;padding:11px 12px}.eyebrow{font-size:8px}main{padding:0 16px}.connection{gap:8px;padding:12px}.connection p{font-size:9px}.connection button{font-size:9px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.metrics article{padding:17px}.metrics strong{font-size:27px}.metrics small{font-size:10px;min-height:24px}.metrics span{font-size:8px}.card{padding:18px}.booking-row{grid-template-columns:1fr 1fr;gap:10px}.booking-row .row-money{text-align:left;grid-column:1}.booking-row .badge{grid-column:2;justify-self:end}.booking-row strong{font-size:11px}.row-time strong{font-size:9px}.booking-row small{font-size:8px}.section-head{flex-wrap:wrap}.filters{flex-direction:column}.filters select{max-width:none}.form-grid{grid-template-columns:1fr}.calendar-controls{gap:5px}.calendar-controls .secondary{font-size:9px;padding:8px}.calendar-cell{min-height:83px;padding:5px 3px}.calendar-booking{font-size:7px;padding:4px 2px}.calendar-number{font-size:9px}.calendar-weekdays{font-size:9px}.detail-metrics{grid-template-columns:repeat(2,1fr);gap:8px}.detail-metrics strong{font-size:25px}.booking-info{grid-template-columns:1fr 2fr}.detail-controls .primary,.detail-controls .secondary{font-size:10px}.partner-row{gap:10px}.partner-row strong{font-size:11px}.partner-row small{font-size:8px}.ledger-row small{font-size:8px}.ledger-row strong{font-size:10px}dialog{padding:25px 20px}.detail-review a{margin-bottom:10px}footer{display:block;line-height:1.7}footer span{display:block}}

.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,480px);background:white;border:1px solid #dbe1e2;padding:32px;border-radius:18px;box-shadow:0 12px 44px #132b3110}.auth-card h1{font-size:32px;margin:12px 0}.auth-card input{width:100%;margin:8px 0 20px}.auth-card label{display:block}.auth-card p{line-height:1.6}.auth-card .secondary{display:inline-block;margin:10px 6px 0 0}#login-error{color:#9c1f1f}footer .text-button{margin-right:16px}
