:root{--brand: #b4532a;--brand-soft: #fbeee7;--ink: #1f2937;--muted: #6b7280;--line: #e7e5e4;--bg: #f5f5f4}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg)}body{-webkit-font-smoothing:antialiased;color:var(--ink)}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(1200px 600px at 10% -10%,#f7d9c8 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#e5e7eb 0%,transparent 60%),var(--bg)}.login-card{width:100%;max-width:420px;box-shadow:0 10px 40px #1f29371f}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}.brand{height:56px;display:flex;align-items:center;gap:10px;padding:0 20px;color:#fff;font-weight:600;font-size:16px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px;overflow:hidden;white-space:nowrap}.brand-name{overflow:hidden;text-overflow:ellipsis}.app-sider .ant-layout-sider-trigger{background:#18212d}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;height:56px;line-height:56px;padding:0 16px;border-bottom:1px solid var(--line)}.app-content{padding:20px 24px 40px;min-width:0}.page-title{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.page-subtitle{color:var(--muted);margin-top:2px}.page-extra{display:flex;flex-wrap:wrap;gap:8px}.clickable{cursor:pointer}.row-muted>td{opacity:.55}.row-selected>td{background:var(--brand-soft)!important}.field-error{color:#ff4d4f;margin-top:6px}.show-xs{display:none}@media (max-width: 576px){.hide-xs{display:none!important}.show-xs{display:inline}.app-content{padding:12px 12px 32px}.page-title h3{font-size:20px!important}}.report-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:12px}.stats-row{margin-bottom:12px}.stat-card{height:100%}.stat-card .ant-statistic-title{margin-bottom:2px;font-size:13px}.stat-value{font-size:20px;font-weight:600;white-space:nowrap}.stat-strong{background:var(--brand);border-color:var(--brand)}.stat-strong .ant-statistic-title,.stat-strong .stat-value{color:#fff}.stat-strong .stat-value{font-size:26px}.report-card{height:100%}.order-totals{margin:12px 0 0 auto;max-width:340px}.order-totals>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.order-totals .order-total{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-size:16px}.qr-card{width:300px;margin:0 auto;border:2px solid var(--line);border-radius:12px;overflow:hidden;text-align:center;background:#fff}.qr-card-cafe{background:var(--brand);color:#fff;font-weight:700;font-size:18px;padding:10px 12px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qr-card-img{display:block;width:220px;height:220px;margin:16px auto 8px}.qr-card-name{font-size:20px;font-weight:700;padding:0 12px}.qr-card-role{color:var(--muted);font-size:15px}.qr-card-hint{color:#9ca3af;font-size:11px;padding:10px 12px 14px}.att-scroll{overflow-x:auto;margin-bottom:8px;border:1px solid var(--line);border-radius:8px}.att-grid{border-collapse:separate;border-spacing:0;font-size:13px;width:100%}.att-grid th,.att-grid td{border-bottom:1px solid var(--line);border-right:1px solid #f0efee;text-align:center;padding:0;height:38px;min-width:32px;background:#fff}.att-grid th{font-weight:500;background:#fafaf9;height:44px;line-height:1.15}.att-dow{font-size:11px;color:var(--muted)}.att-grid .att-name{position:sticky;left:0;z-index:2;text-align:left;padding:0 10px;min-width:150px;max-width:190px;border-right:1px solid var(--line)}.att-name-text{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-role{font-size:11px;color:var(--muted)}.att-grid .att-total{min-width:56px;padding:0 6px;background:#fafaf9}.att-grid th.att-weekend,.att-grid td.att-weekend{background:#faf6f3}.att-grid th.att-today{color:var(--brand);font-weight:700;box-shadow:inset 0 -3px 0 var(--brand)}.att-cell{cursor:pointer;-webkit-user-select:none;user-select:none;transition:filter .1s}.att-cell:hover{filter:brightness(.94);outline:2px solid var(--brand);outline-offset:-2px}.att-mark{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:36px;font-weight:700}.att-grid td.att-full,.att-chip.att-full{background:#dcfce7;color:#15803d}.att-grid td.att-partial,.att-chip.att-partial{background:#fef3c7;color:#b45309}.att-grid td.att-absent,.att-chip.att-absent{background:#fee2e2;color:#b91c1c}.att-legend{font-size:12px;color:var(--muted)}.att-chip{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-weight:700;font-size:11px;margin-inline-end:4px}.mark-menu{display:flex;flex-direction:column;gap:8px;width:230px}.mark-menu-title{font-weight:600}.mark-menu-title>div{font-weight:400;color:var(--muted);font-size:12px}.mark-full{background:#dcfce7!important;border-color:#86efac!important;color:#15803d!important}.mark-partial{background:#fef3c7!important;border-color:#fcd34d!important;color:#b45309!important}.mark-absent{background:#fee2e2!important;border-color:#fca5a5!important;color:#b91c1c!important}.formula p{margin:0 0 6px}.summary-row td{background:#fafaf9!important}.cat-list{display:flex;flex-direction:column;gap:2px}.cat-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;min-height:38px}.cat-item:hover{background:#f5f5f4}.cat-item.active{background:var(--brand-soft)}.cat-item.active .cat-name{color:var(--brand);font-weight:600}.cat-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.cat-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.dish-thumb{width:44px;height:44px;border-radius:6px;object-fit:cover;display:block;background:#f5f5f4}.dish-thumb.empty{background:repeating-linear-gradient(45deg,#f5f5f4,#f5f5f4 6px,#efedeb 6px,#efedeb 12px)}.photo-box{width:100%;aspect-ratio:1;border:1px dashed #d6d3d1;border-radius:10px;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#fafaf9}.photo-box:hover{border-color:var(--brand)}.photo-box img{width:100%;height:100%;object-fit:cover}.photo-empty{color:var(--muted);text-align:center;font-size:13px}@media (max-width: 576px){.photo-field{max-width:200px;margin:0 auto 16px}}.hg-wrap{display:flex;flex-direction:column;align-items:center;padding:4px 0 8px;overflow-x:auto}.hg-zoom{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:var(--muted)}.hg-zoom-value{min-width:40px;text-align:center}.hg-phone{position:relative;flex:none;padding:30px 0 24px;border:2px solid #d6d9d2;border-radius:28px;background:#f7fbf1}.hg-phone-caption{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted)}.hg-grid{position:relative;margin:0 auto;background-image:linear-gradient(#edf1e8 1px,transparent 1px),linear-gradient(90deg,#edf1e8 1px,transparent 1px),linear-gradient(#d5dccd 1px,transparent 1px),linear-gradient(90deg,#d5dccd 1px,transparent 1px);touch-action:none;-webkit-user-select:none;user-select:none}.hg-tile{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;background:#e6e9e2;border:1.5px solid #c2c8bc;color:#191d17;font-family:Roboto,system-ui,sans-serif;font-weight:700;line-height:1.15;text-align:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;outline:none}.hg-tile.selected{box-shadow:0 0 0 3px var(--brand)}.hg-tile.dragging{z-index:5;cursor:grabbing;opacity:.92;box-shadow:0 10px 24px #0003,0 0 0 3px var(--brand)}.hg-resize{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--brand) 50%);border-bottom-right-radius:3px;opacity:0;touch-action:none}.hg-tile:hover .hg-resize,.hg-tile.selected .hg-resize{opacity:.8}.hg-tile.dirty:after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#f59e0b}.hg-none{padding:40px 24px;color:var(--muted);text-align:center}@media print{@page{margin:12mm}html,body,#root,.ant-layout{background:#fff!important}.no-print,.ant-layout-sider,.app-header,.ant-message,.ant-notification{display:none!important}.app-content{padding:0!important}.ant-card{break-inside:avoid;border-color:#ccc!important;box-shadow:none!important}.ant-table-content,.ant-table-body,.ant-table-container{overflow:visible!important;max-height:none!important}.ant-table{font-size:11px}.ant-table-cell{padding:3px 6px!important}.stat-strong{background:#fff!important;border:2px solid #000!important}.stat-strong .ant-statistic-title,.stat-strong .stat-value{color:#000!important}.ant-col{max-width:100%!important}.report .ant-col-lg-10,.report .ant-col-lg-12,.report .ant-col-lg-14{flex:0 0 100%!important}.report .stats-row .ant-col{flex:0 0 25%!important;max-width:25%!important}body.printing-card *{visibility:hidden!important;transition:none!important;animation:none!important}body.printing-card .qr-card,body.printing-card .qr-card *{visibility:visible!important}body.printing-card .qr-card{position:fixed;top:0;left:50%;transform:translate(-50%);border:1px solid #999}body.printing-card .ant-modal-mask{display:none!important}}.clickable-row{cursor:pointer}.row-arrow{color:var(--muted)}.payroll-scheme{font-size:12px;color:var(--muted)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-head{text-align:center;font-size:11px;color:var(--muted);line-height:18px}.cal-head.cal-weekend{color:var(--brand)}.cal-day{position:relative;height:46px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.cal-day:hover{outline:2px solid var(--brand);outline-offset:-2px}.cal-day.cal-weekend{background:#faf6f3}.cal-day.att-full{background:#dcfce7;border-color:#86efac;color:#15803d}.cal-day.att-partial{background:#fef3c7;border-color:#fcd34d;color:#b45309}.cal-day.att-absent{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.cal-num{position:absolute;top:2px;left:6px;font-size:11px;color:var(--muted)}.cal-today{box-shadow:inset 0 0 0 2px var(--brand)}.cal-today .cal-num{color:var(--brand);font-weight:700}.cal-mark{font-weight:700;font-size:15px;padding-top:6px}.pay-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.pay-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.pay-name{font-size:20px;font-weight:600}.pay-scheme{color:var(--muted);font-size:13px}.pay-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;align-items:center}.pay-legend .att-chip{width:18px;height:18px}.pay-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pay-stats>div{background:#fafaf9;border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;flex-direction:column}.pay-stats span{font-size:12px;color:var(--muted)}.pay-stats b{font-size:17px;font-weight:600;white-space:nowrap}.pay-stats .pay-accent{background:var(--brand-soft);border-color:#f3cdb9}.pay-stats .pay-accent b{color:var(--brand);font-weight:700}.pay-stats .pay-negative b{color:#b91c1c}.calc{display:flex;flex-direction:column;gap:6px;margin-top:10px;font-size:13px}.calc-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.calc-line b{white-space:nowrap}.calc-note{font-size:11.5px;color:var(--muted)}.pay-empty{color:var(--muted);font-size:13px;text-align:center;padding:6px 0}.pay-list{display:flex;flex-direction:column}.pay-item{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid var(--line);font-size:13px}.pay-item:last-child{border-bottom:0}.pay-date{color:var(--muted)}.pay-what{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 576px){.cal-day{height:40px}.cal-mark{font-size:13px}}.pay-side{display:flex;flex-direction:column;gap:12px}.pay-profile{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:-4px 0 12px 40px;color:var(--muted);font-size:13px}.qr-hall{margin-bottom:16px}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.qr-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:14px 12px;text-align:center;break-inside:avoid}.qr-cafe{font-size:13px;font-weight:600;color:var(--brand, #b4532a)}.qr-code svg{display:block;width:100%;max-width:170px;margin:6px auto}.qr-table{font-size:24px;font-weight:700;line-height:1.2}.qr-hint{margin-top:4px;font-size:12px;color:#555;line-height:1.35}@media print{.qr-grid{grid-template-columns:repeat(3,1fr);gap:8mm}.qr-card{border:1px dashed #999;border-radius:0}}.app-content:has(.schedule-page){padding:12px 16px}.schedule-page{display:flex;flex-direction:column;gap:8px;height:calc(100dvh - 80px);min-height:350px}.schedule-page>.page-title{margin:0;align-items:center;gap:8px}.schedule-page .page-title h3{font-size:21px;line-height:1.3}.schedule-page>.ant-alert{flex-shrink:0;margin-bottom:0!important}.schedule-toolbar{flex-shrink:0}.schedule-toolbar .ant-card-body{display:flex;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;padding:8px 10px}.schedule-toolbar .ant-space{gap:6px!important}.schedule-options{display:flex;align-items:center}.schedule-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#737373;font-size:12px}.schedule-status .ant-tag{margin:0;font-size:11px;line-height:19px}.schedule-loading{padding:50px;text-align:center}.schedule-workspace{display:grid;grid-template-columns:228px minmax(0,1fr);gap:8px;min-height:0;flex:1}.schedule-roster{border:1px solid #dce2dd;border-radius:7px;padding:8px;background:#fff;overflow:auto;overscroll-behavior:contain}.schedule-roster h3{margin:0 0 6px;font-size:14px}.schedule-roster h4{display:flex;justify-content:space-between;align-items:center;margin:10px 0 3px;color:#274437;font-size:12px}.schedule-roster h4 span{font-size:11px;font-weight:400;color:#89938c}.schedule-roster-person{display:flex;align-items:center;justify-content:space-between;gap:5px;border-bottom:1px solid #edf0eb;padding:4px 0}.schedule-roster-person>div{min-width:0;display:flex;align-items:baseline;gap:5px}.schedule-roster-person b{font-size:12px;overflow-wrap:anywhere;font-weight:500}.schedule-roster-person small{color:#89938c;font-size:10px;white-space:nowrap}.schedule-roster-person .ant-btn{flex-shrink:0;font-size:11px;padding-inline:5px}.schedule-roster>a{display:inline-block;margin-top:8px;font-size:11px}.schedule-roster-empty{color:#89938c;font-size:11px;line-height:1.35;margin:4px 0}.schedule-scroll{overflow:auto;border:1px solid #dce2dd;border-radius:7px;background:#fff;overscroll-behavior:contain;min-height:0}.schedule-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:750px;font-size:12px}.schedule-table th,.schedule-table td{border-right:1px solid #dce2dd;border-bottom:1px solid #dce2dd;padding:5px;vertical-align:top;text-align:left}.schedule-table tr>*:last-child{border-right:0}.schedule-table tbody tr:last-child>*{border-bottom:0}.schedule-table thead th{background:#eff3ee;position:sticky;top:0;z-index:3;color:#274437;padding:6px 5px;white-space:nowrap}.schedule-table thead th span{font-weight:400;margin-left:5px;font-size:11px}.schedule-table thead th.weekend{background:#f7eee4}.schedule-table th:first-child{width:76px;position:sticky;left:0;background:#fafbf8;z-index:2}.schedule-table thead th:first-child{z-index:4;background:#eff3ee}.schedule-group-name{font-size:11px}.schedule-cell{display:flex;flex-direction:column;gap:0;padding:3px 5px;width:100%;border:1px solid transparent;border-radius:4px;text-align:left;font:inherit;font-size:11px;line-height:1.3;cursor:pointer;background:#edf5e9;color:#274437;white-space:normal;overflow-wrap:anywhere}.schedule-cell:hover{border-color:#709572}.schedule-cell:focus-visible{outline:2px solid #b4532a;outline-offset:1px}.schedule-cell:disabled{cursor:default;opacity:.65}.schedule-cell.off{background:#f2f2f2;color:#737373}.schedule-cell small{font-size:10px;color:#67726c;white-space:pre-wrap}.schedule-day-list{display:flex;flex-direction:column;gap:3px}.schedule-off-list{margin-top:4px;color:#777;font-size:11px}.schedule-off-list summary{cursor:pointer;padding:2px 0}.schedule-off-list .schedule-cell{margin-top:3px}.schedule-unassigned{display:block;color:#89938c;font-size:11px;padding:4px 0}.schedule-note{display:flex;align-items:center;gap:8px;flex-shrink:0}.schedule-note label{font-size:12px;color:#737373}.schedule-note textarea{font-size:12px}.schedule-assignment-modal .ant-modal-content{padding:16px}.schedule-assignment-modal .ant-modal-header{margin-bottom:4px;padding-right:24px}.schedule-assignment-modal .ant-modal-title{font-size:17px}.schedule-assignment-modal .ant-modal-body{max-height:calc(100dvh - 150px);overflow:auto}.schedule-assignment-modal .ant-modal-footer{margin-top:10px}.schedule-assignment-caption{margin:0 0 8px;color:#777;font-size:12px}.schedule-template-picker{display:flex;align-items:center;gap:8px;padding:7px 8px;margin-bottom:8px;border:1px solid #d7e1d1;border-radius:6px;background:#f5f8f1}.schedule-template-picker>label{font-size:12px;font-weight:500;color:#274437}.schedule-template-picker>.ant-select{flex:1;min-width:0}.schedule-day-presets{margin-bottom:8px}.schedule-assignment-days{display:flex;flex-direction:column;gap:4px}.schedule-assignment-day{display:grid;grid-template-columns:108px minmax(0,1fr);gap:6px;align-items:center;border:1px solid #e4e8e1;border-radius:5px;padding:5px 7px;min-height:38px}.schedule-assignment-day.selected{background:#f7faf5;border-color:#cbd9c6}.schedule-assignment-day>.ant-checkbox-wrapper{align-items:center;margin:0;font-size:12px}.schedule-assignment-day .ant-checkbox+span{padding-inline:5px}.schedule-assignment-fields{display:grid;grid-template-columns:88px minmax(125px,1fr) 224px minmax(110px,1fr);gap:6px;align-items:center;min-width:0}.schedule-assignment-fields>.ant-select{width:100%;min-width:0}.schedule-assignment-fields.off{grid-template-columns:88px minmax(0,1fr)}.schedule-assignment-time{display:flex;align-items:center;gap:5px;position:relative}.schedule-assignment-time label{display:flex;align-items:center;gap:4px;font-size:11px;color:#68766b;min-width:0;flex:1}.schedule-assignment-time input{font-size:12px;min-width:0;padding-inline:4px;height:26px}.schedule-overnight{position:absolute;right:0;top:-9px;font-size:9px;background:#f7faf5;color:#b4532a}.schedule-assignment-fields>.ant-input{font-size:12px;min-width:0}.schedule-assignment-hint{font-size:11px;color:#777;margin:8px 0 0}@media (max-width:1100px){.schedule-workspace{grid-template-columns:204px minmax(0,1fr)}.schedule-status>span{display:none}}@media (max-width:800px){.schedule-assignment-fields{grid-template-columns:88px minmax(0,1fr)}.schedule-assignment-time{grid-column:1 / -1;max-width:280px}.schedule-assignment-fields>.ant-input{grid-column:1 / -1}.schedule-assignment-day{align-items:start}.schedule-assignment-day>.ant-checkbox-wrapper{padding-top:4px}}@media (max-width:700px){.app-content:has(.schedule-page){padding:8px}.schedule-page{height:auto;min-height:calc(100dvh - 72px)}.schedule-page .page-title h3{font-size:18px}.schedule-workspace{grid-template-columns:1fr;flex:none}.schedule-roster{max-height:200px}.schedule-roster h3{display:none}.schedule-scroll{max-height:60dvh}.schedule-note{align-items:flex-start}.schedule-note label{padding-top:5px}.schedule-template-picker{align-items:stretch;flex-direction:column;gap:4px}.schedule-assignment-modal .ant-modal-content{padding:12px}.schedule-assignment-day{grid-template-columns:94px minmax(0,1fr);padding:5px;gap:4px}.schedule-assignment-modal .ant-input,.schedule-page .ant-input{font-size:16px}.schedule-assignment-time input{height:32px}.schedule-assignment-modal .ant-select-selector{font-size:14px}}.app-content:has(.bookings-page){padding:12px 16px}.bookings-page{height:calc(100dvh - 80px);display:flex;flex-direction:column;gap:10px;min-height:350px}.bookings-page>.page-title{margin:0}.bookings-page h3{font-size:22px}.bookings-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.bookings-cabins{display:flex;gap:7px;overflow-x:auto;flex-shrink:0;padding:2px}.bookings-cabins button{border:1px solid transparent;border-radius:24px;padding:7px 16px;background:#e9eceb;color:#69736e;cursor:pointer;white-space:nowrap}.bookings-cabins button.selected{border-color:#53a675;background:#eaf5eb;color:#214536}.bookings-cabins b{font-size:13px}.bookings-cabins small{display:block;font-size:11px}.booking-grid-scroll{overflow:auto;min-height:0;flex:1;background:#fff;border:1px solid #dce2dd;border-radius:7px}.booking-grid-head,.booking-grid-body{display:grid}.booking-grid-head{position:sticky;top:0;z-index:4;background:#f2f4f3;border-bottom:1px solid #a7b2ab}.booking-grid-head b{text-align:center;padding:11px 3px;font-size:12px;text-transform:uppercase}.booking-hours{background:#f6f7f6}.booking-hours span{display:block;box-sizing:border-box;font-size:10px;text-align:right;padding:3px 5px;color:#6f7871}.booking-day{position:relative;border-left:1px solid #a7b2ab}.booking-day.today,.booking-grid-head .today{background:#f1f8f0}.booking-slot{display:block;width:100%;padding:0;border:0;border-bottom:1px solid #d4dcd6;background:transparent;cursor:pointer}.booking-slot:nth-child(2n){border-bottom-color:#a7b2ab}.booking-slot:hover{background:#dcefdc}.booking-event{position:absolute;left:2px;right:2px;z-index:2;border:0;border-left:3px solid #488e65;border-radius:4px;background:#dceee1;color:#234d34;text-align:left;padding:3px 6px;overflow:hidden;cursor:pointer;font-size:11px;display:flex;flex-direction:column;gap:2px}.booking-event.arrived{background:#dce9fa;border-color:#4d83c2;color:#224e81}.booking-event.blocked{background:#e9e4ed;border-color:#83728e;color:#564660}.booking-event b{font-size:12px}.booking-event small{font-size:10px}.booking-now{height:2px;background:#51b64c;position:absolute;left:0;right:0;z-index:3;pointer-events:none}.booking-help{color:#79827b;font-size:11px}.booking-form{border:0;padding:6px 0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}.booking-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;min-width:0}.booking-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-form .ant-input-number{width:100%}.booking-form>small{color:#7a827c}.booking-history{display:flex;gap:5px;flex-wrap:wrap;max-height:90px;overflow:auto}.booking-history button{border:1px solid #dce2dd;border-radius:5px;padding:4px 8px;color:#717b73;background:#fff;cursor:pointer;font-size:11px}@media (max-width:700px){.app-content:has(.bookings-page){padding:8px}.bookings-page{height:calc(100dvh - 72px);gap:7px}.bookings-page h3{font-size:18px}.bookings-cabins button{padding:5px 12px}.booking-form-row{grid-template-columns:1fr}.booking-form .ant-input{font-size:16px}.booking-form{max-height:65dvh;overflow:auto}.booking-help{display:none}}.booking-day{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.booking-range{position:absolute;left:1px;right:1px;background:#81bd8c55;border:2px solid #458f54;border-radius:4px;color:#214b2b;z-index:5;pointer-events:none;padding:2px 4px;overflow:hidden;box-sizing:border-box;font-size:11px;display:flex;flex-direction:column}.booking-range.blocked{background:#d8808055;border-color:#bd4747;color:#812929}@media (max-width:700px){.booking-help{display:block;font-size:10px}}.booking-editor-modal .ant-modal-body{max-height:calc(100dvh - 180px);overflow:auto}.booking-preorder{border-top:1px solid #e2e7e2;padding-top:10px;display:flex;flex-direction:column;gap:8px}.booking-preorder-item{display:grid;grid-template-columns:minmax(0,1fr) 80px auto 25px;gap:6px;align-items:center;font-size:12px}.booking-preorder-item small{display:block;color:#7a827c}.booking-preorder-total{display:flex;justify-content:space-between;font-size:13px}.booking-preorder>small{font-size:11px;color:#7a827c}.booking-preorder-item .ant-btn{padding:0}.booking-preorder-total{align-items:center;gap:12px}.booking-menu-modal .ant-modal-body{display:flex;flex-direction:column;height:min(74dvh,740px);gap:8px;min-height:0}.booking-menu-search{display:flex;gap:8px}.booking-menu-categories{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;flex-shrink:0}.booking-menu-scroll{overflow-y:auto;min-height:0;flex:1}.booking-menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:8px;padding:2px;align-items:start}.booking-menu-card{border:1px solid #e2e7e2;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-width:0}.booking-menu-card.chosen{border-color:#a95832;background:#fcf7f3}.booking-menu-heading{display:flex;gap:8px;align-items:center;min-height:54px}.booking-menu-thumb{width:40px;height:40px;object-fit:cover;border-radius:5px;flex-shrink:0}.booking-menu-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.booking-menu-info>b{font-size:14px;line-height:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-menu-info>span{font-size:13px;line-height:18px;color:#59635c}.booking-menu-counter{display:flex;align-items:center;gap:6px}.booking-menu-counter .ant-btn{width:40px;height:40px;padding:0;flex-shrink:0;font-size:18px}.booking-menu-counter .ant-input-number{width:88px}.booking-menu-counter .ant-input-number-input{height:38px;text-align:center;font-size:16px}.booking-menu-counter small{color:#7a827c;margin-left:auto;font-size:12px}.booking-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.booking-menu-footer>div{display:flex;gap:6px}.booking-menu-modal .ant-btn{min-height:36px}@media (pointer:coarse){.booking-menu-modal .ant-btn{min-height:44px}.booking-menu-counter .ant-btn{width:44px;height:44px}.booking-menu-counter .ant-input-number-input{height:42px}}@media (max-width:700px){.booking-menu-modal{max-width:100vw;margin:0;padding:0;width:100vw!important}.booking-menu-modal .ant-modal-content{border-radius:0;padding:12px}.booking-menu-modal .ant-modal-body{height:calc(100dvh - 132px)}.booking-menu-grid{grid-template-columns:1fr;gap:6px}.booking-menu-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px}.booking-menu-heading{min-height:48px}.booking-menu-thumb{display:none}.booking-menu-counter{gap:3px}.booking-menu-counter .ant-input-number{width:72px}.booking-menu-counter .ant-btn{width:44px;height:44px}.booking-menu-counter .ant-input-number-input{height:42px}.booking-menu-counter small{display:none}.booking-menu-search input{font-size:16px}.booking-menu-modal .ant-btn{min-height:44px}}@media (min-width:540px) and (max-width:700px){.booking-menu-thumb{display:block}}@media (max-width:359px){.booking-menu-card{grid-template-columns:1fr}.booking-menu-counter small{display:block}}.booking-preorder-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-cabin-label{display:flex;flex-direction:column;justify-content:center;height:22px;min-width:0;line-height:12px;font-size:12px}.booking-cabin-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-cabin-label>small{font-size:9px;line-height:10px;color:#79827b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-editor-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.booking-editor-footer .ant-btn{min-height:36px}@media (pointer:coarse){.booking-editor-footer .ant-btn{min-height:44px}}.ledger-page{height:calc(100dvh - 80px);min-height:420px;margin:-8px -12px -28px;display:flex;flex-direction:column;gap:8px}.ledger-page>.ant-alert{flex-shrink:0}.ledger-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:12px;min-height:0;flex:1}.ledger-side,.ledger-main{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}.ledger-main{overflow-y:auto;scrollbar-gutter:stable}.ledger-search,.ledger-heading,.ledger-period,.ledger-actions{display:flex;align-items:center;gap:8px}.ledger-search .ant-input-affix-wrapper{flex:1;min-width:0}.ledger-heading{justify-content:space-between;flex-wrap:wrap;padding:2px 4px}.ledger-heading h1,.ledger-heading h2,.ledger-heading h3{font-size:15px;margin:0;font-weight:600}.ledger-cards{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0;flex:1}.ledger-choice{display:flex;align-items:center;gap:10px;flex-shrink:0;width:100%;text-align:left;background:#fff;border:1px solid transparent;border-radius:10px;padding:10px;cursor:pointer;color:var(--ink);font:inherit;min-height:64px}.ledger-choice:hover{border-color:#d6d3d1}.ledger-choice.active{background:var(--brand-soft);border-color:#e9bca7}.ledger-choice:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.ledger-icon{width:32px;height:32px;border-radius:9px;background:#f4f1ed;color:var(--brand);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ledger-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere}.ledger-info>strong{font-size:13px;font-weight:600}.ledger-meta,.ledger-note{font-size:12px;color:var(--muted);line-height:1.45}.ledger-note{margin:2px 4px}.ledger-value{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;flex-shrink:0}.ledger-value small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ledger-negative{color:#b42318}.ledger-positive{color:#237850}.ledger-period{flex-wrap:wrap;flex-shrink:0}.ledger-period .ant-picker{max-width:100%}.ledger-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex-shrink:0}.ledger-stat{background:#fff;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}.ledger-stat>span{font-size:11px;color:var(--muted)}.ledger-stat>strong{font-size:18px;line-height:1.25;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.ledger-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}.ledger-detail{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ledger-detail h2{font-size:17px;margin:0 0 4px}.ledger-actions{flex-wrap:wrap}.ledger-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;align-items:start}.ledger-entry{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid #efeeec}.ledger-entry:last-child{border-bottom:0}.ledger-entry.voided{opacity:.65}.ledger-entry.voided .ledger-value{text-decoration:line-through}.ledger-section{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;padding:10px 4px 5px}.ledger-section strong{margin-left:auto}.ledger-back.ant-btn,.ledger-search-results.ant-btn{display:none}.ledger-main>*{flex-shrink:0}.ledger-form .ant-form-item{margin-bottom:14px}.ledger-form .ant-form-item-label{padding-bottom:4px}.ledger-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ledger-form small{color:var(--muted)}.ledger-form .ant-input-number{width:100%}.receipt-line{display:grid;grid-template-columns:minmax(180px,1fr) 140px 170px 32px;align-items:start;gap:10px}.receipt-remove{margin-top:26px}.receipt-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.receipt-mobile-action{display:none}@media (max-width: 767px){.receipt-mobile-action{display:block}}@media (max-width: 600px){.receipt-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;gap:8px;border-bottom:1px solid var(--line);padding-top:8px}.receipt-line>.ant-form-item:first-child{grid-column:1 / 3;grid-row:1}.receipt-remove{grid-column:3;grid-row:1}.receipt-line .ant-input-number,.receipt-line .ant-select-selector{min-height:40px}}@media (min-width: 1600px){.ledger-layout{grid-template-columns:360px minmax(0,1fr)}}@media (max-width: 1200px){.ledger-columns{grid-template-columns:minmax(0,1fr)}.ledger-layout{grid-template-columns:280px minmax(0,1fr)}}@media (max-width: 767px){.ledger-layout{display:flex}.ledger-side,.ledger-main{width:100%}.ledger-page:not(.ledger-main-open) .ledger-main,.ledger-main-open .ledger-side{display:none}.ledger-back.ant-btn{display:inline-flex;align-self:flex-start}.ledger-search-results.ant-btn{display:inline-flex}.ledger-stats{gap:5px}.ledger-stat{padding:8px}.ledger-stat>strong{font-size:15px}.ledger-search .ant-btn,.ledger-choice,.ledger-back.ant-btn,.ledger-actions .ant-btn{min-height:40px}}@media (max-width: 576px){.ledger-page{height:calc(100dvh - 72px);margin:-4px 0 -24px}.ledger-form-row{gap:8px}}.online-store{--ink:#203c33;--muted:#68776f;--line:#dfe5dd;--cream:#f7f6f1;min-height:100dvh;color:var(--ink);background:var(--cream);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:0 max(14px,calc((100vw - 1120px)/2)) 110px}.online-store *{box-sizing:border-box}.online-store button,.online-store input,.online-store textarea{font:inherit}.online-store button{cursor:pointer;-webkit-tap-highlight-color:transparent}.online-store button:disabled{opacity:.42;cursor:default}.online-store button:focus-visible,.online-store a:focus-visible{outline:3px solid #b28b49;outline-offset:2px}.online-store input:focus,.online-store textarea:focus{outline:2px solid #87a68d;outline-offset:1px}.oo-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}.oo-brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-size:18px;font-weight:700;min-width:0}.oo-emblem{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;object-fit:contain}.oo-basket-link{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:24px;padding:9px 12px;min-height:44px;white-space:nowrap;font-size:13px!important}.oo-basket-link b{margin-left:6px}.oo-menu-tools{position:sticky;top:0;z-index:10;background:var(--cream);padding-top:4px}.oo-search{display:block}.oo-search>span{position:absolute;width:1px;height:1px;overflow:hidden}.oo-search input{width:100%;padding:11px 14px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.oo-categories{display:flex;gap:7px;padding:11px 0 13px;overflow-x:auto;scrollbar-width:none}.oo-categories::-webkit-scrollbar{display:none}.oo-categories button{flex-shrink:0;white-space:nowrap;padding:10px 15px;min-height:42px;border:1px solid var(--line);border-radius:22px;color:var(--ink);background:#fff;font-size:13px!important}.oo-categories button.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.oo-dishes{display:flex;flex-direction:column;gap:9px}.oo-dish{display:flex;gap:12px;padding:13px 14px;border:1px solid #e5e8e1;border-radius:14px;background:#fff}.oo-dish-photo{width:84px;height:84px;flex-shrink:0;object-fit:cover;border-radius:10px;align-self:center}.oo-dish-info{flex:1;min-width:0}.oo-dish-category{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.oo-dish h3{margin:0;font-size:17px;line-height:1.3;overflow-wrap:anywhere}.oo-dish p{margin:5px 0;color:var(--muted);font-size:12px}.oo-dish-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.oo-dish-bottom strong{font-size:17px}.oo-dish-bottom strong small{font-size:10px;display:block;color:var(--muted);font-weight:400}.oo-unavailable{color:var(--muted);font-size:12px}.sold-out .oo-dish-photo{filter:grayscale(1)}.oo-counter{display:inline-flex;align-items:center;flex-shrink:0;border:1px solid var(--line);border-radius:24px;background:#f4f6f1}.oo-counter button{width:42px;height:42px;padding:0;border:0;background:transparent;color:var(--ink);font-size:23px!important}.oo-counter span{min-width:38px;padding:0 3px;font-size:13px;font-weight:600;white-space:nowrap;text-align:center}.online-store .oo-counter input{margin:0;padding:0;width:39px;min-height:38px;border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:16px;font-weight:700;text-align:center}.oo-checkout{display:none;scroll-margin-top:10px}.checkout-open .oo-menu{display:none}.checkout-open .oo-checkout{display:block}.oo-back{display:block;min-height:44px;border:0;padding:4px 0 12px;background:transparent;color:var(--ink);font-weight:600!important}.oo-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0}.oo-section-title h2{font-size:23px;margin:0}.oo-section-title>span{font-size:12px;color:var(--muted)}.oo-cart-empty{padding:22px 0;color:var(--muted);text-align:center}.oo-cart-line{border-bottom:1px solid var(--line);padding:13px 0}.oo-cart-line>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.oo-cart-line b{font-size:15px;overflow-wrap:anywhere}.oo-cart-line strong{font-size:15px}.oo-remove{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--muted);font-size:26px!important}.oo-total{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.oo-total b{font-size:22px}.oo-delivery-note{color:var(--muted);font-size:12px;margin:8px 0 20px}.oo-checkout label{display:block;font-size:14px;font-weight:600;margin-top:16px}.oo-checkout label small{font-weight:400;color:var(--muted);font-size:11px}.oo-checkout input,.oo-checkout textarea{display:block;width:100%;margin-top:7px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);resize:vertical;font-size:16px}.oo-submit{display:flex;justify-content:space-between;gap:12px;width:100%;padding:17px 16px;margin-top:22px;border:0;border-radius:13px;background:#245641;color:#fff;font-weight:600!important}.oo-explanation{font-size:12px;color:var(--muted);margin:12px 0}.oo-mobile-cart{position:fixed;z-index:20;bottom:max(12px,env(safe-area-inset-bottom));left:14px;right:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px;border:0;border-radius:14px;background:var(--ink);color:#fff;box-shadow:0 5px 20px #203c3330;font-size:15px!important}.checkout-open .oo-mobile-cart{display:none}.oo-alert,.oo-notice{background:#fff0df;color:#8b4c13;border-radius:10px;padding:13px;margin:12px 0;font-size:14px}.oo-invalid{color:#ac3825}.oo-empty{text-align:center;padding:32px 12px;color:var(--muted)}.oo-ready{margin-top:20px;padding:14px;border-radius:12px;background:#eaf2e7;font-size:14px}.oo-ready a{color:#245641;text-decoration:underline;font-weight:700}.oo-ready pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12px}.oo-ready details{margin-top:12px}@media (min-width:900px){.online-store{padding-bottom:40px}.oo-header{padding:20px 0}.oo-content{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.online-store .oo-menu{display:block}.oo-checkout{display:block;position:sticky;top:16px;max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px}.oo-back,.oo-mobile-cart{display:none}.oo-section-title{margin-top:0}.oo-dish{padding:16px 20px}}@media (prefers-reduced-motion:reduce){.online-store *{scroll-behavior:auto!important}}.guest-table{min-height:100dvh;background:#f7f6f1;color:#203c33;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.gt-panel{max-width:560px;margin:auto;padding:32px 18px 18px;text-align:center}.gt-logo{width:110px;height:110px;border-radius:50%}.gt-panel h1{font-size:28px;margin:10px 0}.gt-panel p{margin:8px 0 16px}.gt-actions{display:grid;gap:12px}.gt-actions button{border:1px solid #dfe5dd;border-radius:14px;min-height:58px;padding:12px 18px;font:inherit;font-size:17px;font-weight:600;background:#fff;color:#203c33;cursor:pointer}.gt-actions button:first-child{background:#b4532a;color:#fff}.gt-actions button:nth-child(2){background:#203c33;color:#fff}.gt-actions button:disabled{opacity:.45;cursor:default}.gt-panel button:focus-visible{outline:3px solid #b28b49;outline-offset:3px}.gt-hint{font-size:14px;color:#68776f}.gt-error{background:#fff0df;padding:12px;border-radius:10px;color:#8b4c13}.gt-error button{border:0;background:transparent;text-decoration:underline;min-height:44px;color:inherit}.gt-notice{border-radius:10px;background:#eaf2e7;padding:10px;font-size:14px}.gt-compact{max-width:1120px;padding-top:14px}.gt-compact h1{font-size:22px}.gt-compact .gt-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gt-compact .gt-actions button{font-size:14px;min-height:48px;padding:8px}.gt-compact p{font-size:14px;margin-bottom:10px}
