:root{--bg: #f5f6f8;--card: #ffffff;--border: #e3e6ea;--text: #1c2530;--muted: #7a8696;--accent: #2d6cdf;--free: #ffffff;--hold: #ffe0a3;--confirmed: #9ed6a6;--checked_out: #cdd5df;--blocked: #e0a3a3}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:#16202e;color:#cdd5df;display:flex;flex-direction:column;padding:18px 0}.brand{font-size:18px;font-weight:700;padding:0 20px 18px;color:#fff}.sidebar nav{display:flex;flex-direction:column;flex:1}.sidebar nav a{padding:10px 20px;color:#aeb9c7;text-decoration:none;border-left:3px solid transparent}.sidebar nav a:hover{background:#1d2a3a;color:#fff}.sidebar nav a.active{background:#1d2a3a;color:#fff;border-left-color:var(--accent)}.user{padding:16px 20px 0;border-top:1px solid #26344a}.user-name{font-weight:600;color:#fff}.user-role{color:var(--muted);font-size:12px;margin-bottom:8px}.content{flex:1;padding:24px 28px;overflow:auto}h1{font-size:22px;margin:0 0 16px}h2{font-size:16px;margin:0 0 12px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.controls{display:flex;gap:8px;align-items:center}button{background:var(--accent);color:#fff;border:none;padding:8px 14px;border-radius:7px;cursor:pointer;font-size:14px}button:hover{filter:brightness(1.05)}button:disabled{opacity:.5;cursor:not-allowed}button.danger{background:#d6534b}button.link{background:none;color:#aeb9c7;padding:4px 0;text-decoration:underline}input,select{border:1px solid var(--border);border-radius:7px;padding:8px 10px;font-size:14px;background:#fff}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:18px}.login{width:320px;display:flex;flex-direction:column;gap:12px}.login label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.error{background:#fdecea;color:#b02a22;padding:10px 12px;border-radius:7px;margin:10px 0}.ok{background:#e7f6ec;color:#1d7a3a;padding:10px 12px;border-radius:7px;margin:10px 0}button.ghost{background:#eef1f5;color:var(--text)}.muted{color:var(--muted)}.small{font-size:12px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline-form{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}.inline-form.wrap{align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.search{width:320px}table.list{width:100%;border-collapse:collapse}table.list th,table.list td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border)}table.list th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}.actions{display:flex;gap:6px}.badge{padding:3px 8px;border-radius:20px;font-size:12px}.status-confirmed{background:var(--confirmed)}.status-hold{background:var(--hold)}.status-cancelled,.status-no_show{background:#f0d2d0;color:#8a2a22}.status-checked_out{background:var(--checked_out)}.legend{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.chip{padding:3px 10px;border-radius:20px;font-size:12px;border:1px solid var(--border)}.grid-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#fff}table.grid{border-collapse:collapse;min-width:100%}table.grid th,table.grid td{border:1px solid var(--border)}table.grid thead th{padding:6px 4px;text-align:center;font-size:11px;background:#fafbfc;min-width:34px}table.grid thead th .wd{color:var(--muted)}table.grid thead th.weekend{background:#fff4e6}.sticky-col{position:sticky;left:0;background:#fff;z-index:1;width:104px;min-width:104px;max-width:104px;padding:6px 8px;text-align:left;font-size:13px}.cal-filters{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.booking-form{display:flex;flex-direction:column;gap:14px}.guest-block{background:#fafbfc;margin:0}.guest-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.seg button{background:#fff;color:var(--text);border-radius:0;padding:6px 12px}.seg button.seg-on{background:var(--accent);color:#fff}.guest-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.guest-fields .full{grid-column:1 / -1}.guest-search{position:relative;max-width:420px}.guest-search input{width:100%}.picked{display:flex;align-items:center;gap:10px}.search-results{position:absolute;z-index:5;background:#fff;border:1px solid var(--border);border-radius:7px;width:100%;max-height:220px;overflow-y:auto;box-shadow:0 6px 18px #0000001a}.search-item{padding:8px 10px;cursor:pointer}.search-item:hover{background:#f3f7ff}.form-actions{display:flex;justify-content:space-between;align-items:center}.addr-row{margin-top:8px}.addr{position:relative}.addr input{width:100%}.cell{height:30px}td.cal{padding:0;min-width:36px}.split{display:flex;flex-direction:column;height:42px}.split .half{flex:1;position:relative;display:flex;align-items:center;overflow:visible}.split .half+.half{border-top:1px solid rgba(255,255,255,.55)}.cal-time{font-size:10px;line-height:1;padding-left:3px;white-space:nowrap;overflow:visible;pointer-events:none;z-index:2;color:#16321f;font-weight:700;display:inline-flex;align-items:center;gap:3px}.cal-time .cal-name{font-weight:600;color:#1c3a23}.cal-time .mark{font-size:9px;font-weight:700;padding:0 3px;border-radius:3px}.cal-time .mark.early{background:#2d6cdf;color:#fff}.cal-time .mark.late{background:#d6534b;color:#fff}.b-confirmed{background:var(--confirmed)}.b-hold{background:var(--hold)}.b-checked_out{background:var(--checked_out)}.b-blocked{background:var(--blocked)}.b-external{background:repeating-linear-gradient(45deg,#d9c2e8,#d9c2e8 5px,#cdb0e0 5px,#cdb0e0 10px)}.cal-label{position:absolute;left:4px;top:50%;transform:translateY(-50%);font-size:11px;color:#1c3a23;white-space:nowrap;overflow:visible;pointer-events:none;z-index:2;font-weight:600}.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin-right:4px}.cell-free{background:var(--free)}.cell-hold{background:var(--hold)}.cell-confirmed{background:var(--confirmed)}.cell-checked_out{background:var(--checked_out)}.cell-blocked{background:var(--blocked)}.cell-external{background:repeating-linear-gradient(45deg,#d9c2e8,#d9c2e8 5px,#cdb0e0 5px,#cdb0e0 10px)}.cell-checkout{background:linear-gradient(to right,var(--confirmed) 50%,var(--free) 50%)}.chip.cell-checkout{background:linear-gradient(to right,var(--confirmed) 50%,#fff 50%)}.feed-row{display:flex;align-items:center;gap:10px;margin:6px 0}.feed-row input{flex:1;font-size:12px;font-family:monospace}.stay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}tr.row-inactive td{opacity:.5}.seasons-grid{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:8px;align-items:end}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f3f7ff}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c2866;display:flex;justify-content:flex-end;z-index:50}.drawer{width:620px;max-width:92vw;background:#fff;height:100%;overflow-y:auto;padding:28px;box-shadow:-4px 0 24px #0000001f;position:relative}.drawer.narrow{width:520px}.drawer-close{position:absolute;top:14px;right:14px;background:#eef1f5;color:var(--text)}.drawer h2{margin-top:0}.drawer h3{margin-top:22px}.stats{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}.stat{background:#f5f7fa;border:1px solid var(--border);border-radius:9px;padding:10px 14px;display:flex;flex-direction:column;min-width:110px}.stat-num{font-size:18px;font-weight:700}.stat-label{font-size:12px;color:var(--muted)}.field.block{display:flex;flex-direction:column;gap:4px;margin:10px 0}.field.block textarea{border:1px solid var(--border);border-radius:7px;padding:8px 10px;font:inherit;resize:vertical}.checkbox{display:flex;align-items:center;gap:8px;margin:10px 0}.checkbox input{width:auto}.public-wrap{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:40px 16px}.public-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:28px;width:640px;max-width:100%;box-shadow:0 6px 28px #0000000f}.public-card h1{margin-top:0}.center-text{text-align:center}.center-text .big{font-size:20px;font-weight:700;margin:8px 0}.book-search{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.offers{display:flex;flex-direction:column;gap:10px}.offer{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:10px;padding:12px 14px}.offer-price{display:flex;align-items:center;gap:12px;font-weight:700}.book-form{display:flex;flex-direction:column;gap:10px}.book-form input{width:100%}.book-actions{display:flex;justify-content:space-between;margin-top:8px}
