:root{--bg:#f7f6f1;--surface:#fff;--surface2:#f1f0eb;--surface3:#fbfaf7;--border:rgba(33,31,24,.1);--border2:rgba(33,31,24,.18);--text:#1a1a18;--text2:#686760;--text3:#96948b;--green:#3B6D11;--green-bg:#EAF3DE;--red:#A32D2D;--red-bg:#FCEBEB;--blue:#185FA5;--amber:#854F0B;--amber-bg:#FAEEDA;--teal:#0F6E56;--teal-bg:#E1F5EE;--blue-bg:#E6F1FB;--r:8px;--rl:10px;--shadow:0 14px 34px rgba(31,28,20,.06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button,input,select{font:inherit}.app{display:flex;min-height:100vh}.sidebar{width:220px;min-width:220px;background:var(--surface);border-right:.5px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sbh{padding:20px 18px 16px;border-bottom:.5px solid var(--border)}.sbh h1{font-size:13px;font-weight:600}.sbh p{font-size:11px;color:var(--text3);margin-top:2px}.nav{padding:8px 0;flex:1}.ni{display:flex;align-items:center;gap:8px;padding:8px 18px;font-size:13px;color:var(--text2);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .1s}.ni:hover,.ni.active{background:var(--surface2);color:var(--text)}.ni.active{font-weight:500}.sbf{padding:12px 18px;border-top:.5px solid var(--border)}.ss{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:5px;margin-bottom:10px}.sd{width:6px;height:6px;border-radius:50%;background:var(--text3);flex-shrink:0}.sd.saved{background:var(--green)}.sd.saving{background:var(--amber);animation:pulse 1s infinite}.sd.error{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.main{flex:1;padding:30px 34px;max-width:1120px}.pt{font-size:20px;font-weight:650;margin-bottom:4px}.ps{font-size:13px;color:var(--text2);margin-bottom:24px}.sl{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin:24px 0 10px;display:block}.sl:first-child{margin-top:0}.divhr{height:.5px;background:var(--border);margin:24px 0}.hint{font-size:11px;color:var(--text3);margin-bottom:12px;display:block}.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.block{margin-bottom:24px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.field span{font-size:11px;font-weight:500;color:var(--text2)}.field input,.field select,.er input,.er select,.rr input{font-size:13px;padding:7px 10px;border:.5px solid var(--border2);border-radius:var(--r);background:var(--surface);color:var(--text);width:100%}.field input:focus,.field select:focus,.er input:focus,.er select:focus,.rr input:focus{outline:none;border-color:var(--blue)}.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--rl);padding:16px 20px;box-shadow:var(--shadow)}.mc{background:linear-gradient(180deg,var(--surface),var(--surface3));border:.5px solid var(--border);border-radius:var(--r);padding:14px 16px;box-shadow:0 8px 20px #1f1c140b}.mc .ml{font-size:11px;color:var(--text2);margin-bottom:4px;font-weight:500}.mc .mv{font-size:22px;font-weight:650}.mc .ms{font-size:11px;color:var(--text3);margin-top:2px}.green{color:var(--green)}.red{color:var(--red)}.mix-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:4px}.mix-kpi-cell{border:.5px solid var(--border);border-radius:var(--r);background:var(--surface);padding:7px 8px;text-align:center}.mix-kpi-cell strong{display:block;font-size:18px;line-height:1.05;font-weight:700;color:var(--text)}.mix-kpi-cell span{display:block;margin-top:3px;font-size:8px;line-height:1;font-weight:700;letter-spacing:.06em;color:var(--text3)}.break-even-needs{margin-top:4px}.break-even-needs>span{display:block;margin-bottom:5px}.break-even-needs div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.break-even-needs strong{display:block;padding:5px 6px;border:.5px solid var(--border);border-radius:var(--r);background:var(--surface);font-size:13px;line-height:1.05;text-align:center;color:var(--text);font-style:normal}.break-even-needs em{display:block;margin-top:3px;font-size:8px;line-height:1;font-weight:700;letter-spacing:.06em;color:var(--text3);font-style:normal}.rh,.rr{display:grid;grid-template-columns:70px 70px 130px 130px 1fr 1fr 90px 32px;gap:8px;align-items:center}.rh{padding-bottom:6px;border-bottom:.5px solid var(--border);margin-bottom:8px}.rh span{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text3)}.rr{margin-bottom:7px}.eh,.er{display:grid;grid-template-columns:28px 20px 110px 150px 1fr 100px 32px;gap:8px;align-items:center}.eh{padding-bottom:6px;border-bottom:.5px solid var(--border);margin-bottom:8px}.eh span{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text3)}.er{margin-bottom:7px}.er.exp-off{opacity:.38}.er.dragging,.expense-group.dragging{opacity:.72;box-shadow:0 18px 40px #1f1c1424}.mobile-group-select,.mobile-group-head{display:none}.bi{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:.5px solid var(--border);border-radius:var(--r);background:none;cursor:pointer;color:var(--text2);font-size:16px;transition:all .1s}.bi:hover{background:var(--red-bg);color:var(--red);border-color:var(--red)}.bi:disabled{opacity:.35;cursor:not-allowed}.bi:disabled:hover{background:none;color:var(--text2);border-color:var(--border)}.expense-group-list{display:flex;flex-direction:column;gap:14px}.expense-group{padding:14px}.expense-group-head{display:grid;grid-template-columns:28px 1fr auto 32px;gap:8px;align-items:center;margin-bottom:12px}.expense-group-name{font-size:15px;font-weight:650;padding:7px 10px;border:.5px solid var(--border2);border-radius:var(--r);background:var(--surface);color:var(--text)}.expense-group-name:focus{outline:none;border-color:var(--blue)}.drag-handle{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:.5px solid var(--border);border-radius:var(--r);background:var(--surface2);color:var(--text3);cursor:grab;font-size:13px}.drag-handle:active{cursor:grabbing}.small-add{margin:0;padding:6px 10px;white-space:nowrap}.empty-group{font-size:12px;color:var(--text3);padding:10px 0}.expense-drop-zone{min-height:34px}.expense-drag-overlay{width:360px;max-width:70vw;padding:10px 12px;border:.5px solid var(--border2);border-radius:var(--r);background:var(--surface);box-shadow:0 18px 46px #1f1c1438;pointer-events:none}.expense-drag-overlay strong{display:block;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-drag-overlay span{display:block;margin-top:2px;font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ba,.btn{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;padding:7px 12px;border:.5px solid var(--border2);border-radius:var(--r);background:none;cursor:pointer;color:var(--text);text-align:center}.ba{border-style:dashed;color:var(--text2);margin-top:8px;display:inline-flex}.btn{width:100%;margin-top:6px}.btn:hover,.ba:hover{background:var(--surface2)}.btn.primary{background:var(--text);color:var(--surface);border-color:var(--text)}.btn.danger{background:var(--red);color:var(--surface);border-color:var(--red)}.btn.danger:hover{background:#842121}.btn:disabled{opacity:.55;cursor:not-allowed}.file-btn input{display:none}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:min(380px,100%)}.auth-card .btn{margin-top:10px}.google-btn{background:var(--surface);font-weight:600}.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--text3);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.auth-divider:before,.auth-divider:after{content:"";height:.5px;background:var(--border);flex:1}.tag{display:inline-block;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:500;background:var(--teal-bg);color:var(--teal)}.mtab{font-size:12px;padding:5px 12px;border:.5px solid var(--border2);border-radius:100px;background:none;cursor:pointer;color:var(--text2);transition:all .1s}.mtab.on{background:var(--text);color:var(--surface);border-color:var(--text)}.dial{background:var(--surface);border:.5px solid var(--border);border-radius:var(--rl);padding:18px 20px;margin-bottom:24px;box-shadow:var(--shadow)}.dial-row{display:grid;grid-template-columns:130px 1fr auto;gap:6px 12px;align-items:center;margin-bottom:12px}.dl{font-size:11px;font-weight:500;color:var(--text2)}.dpills,.dpresets{display:flex;gap:4px;flex-wrap:wrap}.dslider{display:flex;align-items:center;gap:8px}.dslider input[type=range]{flex:1;accent-color:var(--blue);cursor:pointer}.dslider input[type=number]{width:58px;text-align:right}.dslider .value-pill{width:54px;border:none;background:var(--surface2);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:600;color:var(--text);box-shadow:inset 0 0 0 .5px var(--border)}.dslider .value-pill:focus{outline:none;box-shadow:inset 0 0 0 1px var(--blue);background:var(--surface)}.pct{font-size:11px;color:var(--text3);margin-left:-4px}.dpb{font-size:11px;padding:3px 9px;border:.5px solid var(--border2);border-radius:100px;background:none;cursor:pointer;color:var(--text2)}.dpb:hover{background:var(--surface2);color:var(--text)}.dial-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}.dial-subhead .sl{margin:0}.dial-total{display:flex;justify-content:flex-end;margin-top:8px}.toggle-row{display:flex;align-items:center;gap:8px;margin:8px 0 4px;font-size:12px;color:var(--text2)}.toggle-row input{accent-color:var(--green)}.booking-toggle{align-self:end;min-height:34px;margin:0}.booking-basis-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px}.mxt,.est{width:100%;border-collapse:collapse;font-size:12px}.mxt th,.est th{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text3);text-align:right;padding:6px 10px;border-bottom:.5px solid var(--border)}.mxt th:first-child,.est th:first-child,.est th:nth-child(2),.est th:nth-child(3){text-align:left}.mxt td,.est td{padding:8px 10px;text-align:right;border-bottom:.5px solid var(--border);vertical-align:top}.mxt td:first-child,.est td:first-child,.est td:nth-child(2),.est td:nth-child(3){text-align:left}.mxt tr:last-child td,.est tr:last-child td{border-bottom:none}.est .group-row td{background:var(--surface2);color:var(--text2);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left;border-bottom:.5px solid var(--border)}.est .total td{font-weight:600;border-top:.5px solid var(--border2);text-align:right}.est .total td:first-child{text-align:left}.mini{font-size:10px;opacity:.6;font-weight:400}.pos{color:var(--green);font-weight:500}.neg{color:var(--red);font-weight:500}.table-input{width:120px;font-size:12px;padding:5px 8px;border:.5px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text);text-align:right}.bb{display:inline-block;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:500;margin:3px 4px 3px 0}.bbp{background:var(--green-bg);color:var(--green)}.bbn{background:var(--red-bg);color:var(--red)}.warn{font-size:12px;color:var(--red);margin-top:6px;display:none}.warn.show{display:block}.esr{display:flex;justify-content:space-between;padding:6px 0;border-bottom:.5px solid var(--border);font-size:13px}.breakdown{padding:8px 0;border-bottom:.5px solid var(--border);font-size:13px}.breakdown-row{display:flex;justify-content:space-between;margin-bottom:4px}.breakdown span{color:var(--text2)}.breakdown strong span{color:var(--text3);font-size:11px;font-weight:400}.bw{background:var(--border);border-radius:4px;height:5px;overflow:hidden}.bf{height:5px;border-radius:4px;background:#85b7eb}.metric-bar{margin-top:10px}.info-card{display:flex;align-items:center;gap:8px;margin-bottom:10px}.info-card strong{font-size:14px}.booking-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.room-picker{grid-column:1 / -1;display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--text2)}.room-picker input{accent-color:var(--green)}.booking-form .btn,.booking-form .warn,.guest-grid,.booking-preview,.modal-head{grid-column:1 / -1}.guest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.guest-card{border:.5px solid var(--border);border-radius:var(--r);padding:10px;background:var(--surface2);display:flex;flex-direction:column;gap:7px}.guest-card strong{font-size:12px}.guest-card input{font-size:12px;padding:6px 8px;border:.5px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text)}.guide-assignment-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.guide-assignment-head span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.guide-add{border:.5px solid var(--border2);border-radius:var(--r);background:var(--surface);color:var(--text2);font-size:11px;padding:3px 7px;cursor:pointer}.guide-add:hover{background:var(--surface2);color:var(--text)}.guide-add:disabled{opacity:.45;cursor:not-allowed}.guide-assignment-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) 28px;gap:6px;align-items:center}.guide-assignment-row .bi{background:var(--surface)}.booking-preview{font-size:12px;color:var(--text2);padding:8px 10px;background:var(--surface2);border-radius:var(--r)}.booking-preview span{color:var(--text3);margin-left:8px}.edit-banner{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--amber-bg);color:var(--amber);border-radius:var(--r);font-size:12px;font-weight:600}.edit-banner button{border:none;background:none;color:var(--amber);text-decoration:underline;cursor:pointer;font-size:12px}.calendar-scroll{overflow:auto;border:.5px solid var(--border);border-radius:var(--rl);background:var(--surface);max-height:620px;box-shadow:var(--shadow)}.calendar-grid{display:grid;min-width:max-content}.cal-head,.cal-date,.cal-cell-name{border-right:.5px solid var(--border);border-bottom:.5px solid var(--border);min-height:34px;display:flex;align-items:center;font-size:11px}.cal-head{position:sticky;top:0;background:var(--surface2);z-index:2;color:var(--text3);font-weight:600;justify-content:center}.date-head,.cal-date{position:sticky;left:0;z-index:3;font-weight:600;color:var(--text2);padding-left:10px}.cal-date{z-index:1}.room-col-head{padding:0 10px}.cal-cell-name{padding:5px 8px;color:var(--text2);overflow:hidden;white-space:nowrap;border-top:none;border-left:none;background:transparent;text-align:left;cursor:pointer;justify-content:space-between;gap:6px}.cal-guest-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-guide-name{margin-left:auto;max-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:9px;line-height:1;color:#333;font-weight:400;text-transform:uppercase}.cal-cell-name:hover{box-shadow:inset 0 0 0 1px var(--blue)}.month-odd{background:#fff}.month-even{background:#f6f2e8}.cal-cell-name.booked{background:var(--blue-bg);color:var(--blue);font-weight:600}.cal-cell-name.booked.tentative{background:var(--teal-bg);color:var(--teal)}.booking-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:.5px solid var(--border)}.booking-row.tentative{background:linear-gradient(90deg,var(--teal-bg),transparent);border-radius:var(--r);padding-left:10px;padding-right:8px}.booking-row.canceled{opacity:.62;background:linear-gradient(90deg,var(--red-bg),transparent);border-radius:var(--r);padding-left:10px;padding-right:8px}.booking-row span{display:block;color:var(--text2);font-size:12px}.booking-actions{display:flex;align-items:center;gap:6px}.mini-btn{width:auto;margin:0;padding:4px 8px;font-size:11px}.revenue-pill,.status-pill{display:inline-block!important;margin-left:4px;padding:2px 7px;border-radius:999px;font-weight:700;font-size:11px}.revenue-pill.direct{background:var(--green-bg);color:var(--green)}.revenue-pill.commissioned{background:var(--amber-bg);color:var(--amber)}.status-pill.tentative{background:var(--teal-bg);color:var(--teal)}.status-pill.canceled{background:var(--red-bg);color:var(--red)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1847;display:flex;align-items:flex-start;justify-content:center;padding:7vh 20px;z-index:1000;overflow:auto}.modal-card{width:min(760px,100%);margin:0;box-shadow:0 24px 70px #1f1c143d}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-head .pt,.modal-head .ps{margin-bottom:0}.confirm-card{width:min(460px,100%)}.confirm-copy{font-size:13px;color:var(--text2);margin:16px 0}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:760px){.app{display:block}.sidebar{position:static;width:100%;height:auto}.main{padding:20px}.g2,.g3,.g4,.booking-form,.dial-row,.rh,.rr,.eh,.er,.expense-group-head{grid-template-columns:1fr}.mobile-group-select,.mobile-group-head{display:block}.card{padding:14px}}
