:root{--primary:#16766d;--secondary:#e5f2ee;--surface:#f5f7f8;--ink:#213c40;--muted:#7a8b8d;--line:#e6ecec;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--surface);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button,.btn{border:1px solid var(--line);border-radius:8px;padding:10px 15px;background:white;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:550}button:hover{filter:brightness(.97)}.primary{background:var(--primary);color:white;border-color:var(--primary)}.danger{color:#b65353}.small{padding:7px 10px;font-size:12px}.ghost{background:transparent;border:0}.icon{width:18px;height:18px;stroke-width:1.7;vertical-align:middle}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;background:#fff;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:750;letter-spacing:-.7px;padding:0 10px}.brandmark{width:34px;height:34px;border-radius:10px;background:var(--primary);color:white;display:grid;place-items:center}.edition{font-size:9px;letter-spacing:2.4px;color:var(--muted);margin:9px 0 38px 55px}.navlabel{font-size:10px;letter-spacing:1.7px;color:#9aa7a8;margin:0 13px 12px}.nav{width:100%;justify-content:flex-start;border:0;background:transparent;margin:3px 0;padding:13px;color:#697f82;font-weight:500}.nav.active{color:var(--primary);background:var(--secondary);font-weight:650}.nav.active:after{content:'';margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--primary)}.nav .icon{margin-right:7px}.sidebottom{margin-top:auto}.localbox{padding:14px;background:#f6f9f8;border:1px solid var(--line);border-radius:9px;font-size:11px;line-height:1.7;margin:20px 5px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3b997b;margin-right:6px}.avatar{display:flex;gap:10px;border-top:1px solid var(--line);padding:20px 10px 0;align-items:center}.avatar b{background:#f2ede4;border-radius:50%;padding:11px;color:#84755a;font-size:12px}.avatar small{display:block;color:var(--muted);margin-top:4px}main{margin-left:230px}.topbar{height:75px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.crumb{color:#96a1a3;font-size:12px}.crumb span{color:var(--ink);margin-left:12px}.topright{display:flex;gap:18px;align-items:center;font-size:11px;color:var(--muted)}.content{max-width:1550px;padding:32px 36px;margin:auto}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:27px}h1{font-size:29px;letter-spacing:-1px;margin:0 0 9px;font-weight:650}h2{font-size:16px;letter-spacing:-.3px;margin:0}h3{font-size:14px}p{line-height:1.6}.sub{margin:0;color:var(--muted);font-size:13px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}input,select,textarea{border:1px solid #dfe7e6;border-radius:7px;padding:10px 12px;background:white;color:var(--ink);max-width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #95c4ba;outline-offset:1px}input[type=color]{padding:3px;height:40px;width:100%}.notice{background:#edf4f1;border:1px solid #dce9e3;border-radius:9px;padding:13px 16px;display:flex;gap:12px;align-items:center;margin-bottom:24px;font-size:12px;color:#52736b}.notice button{margin-left:auto;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:23px}.card,.panel{background:white;border:1px solid var(--line);border-radius:11px}.card{padding:21px}.cardtop{display:flex;align-items:center;justify-content:space-between;color:#718486;font-size:12px}.cardicon{padding:8px;border-radius:8px;background:var(--secondary);color:var(--primary)}.value{font-size:31px;letter-spacing:-1px;font-weight:650;margin:15px 0 10px}.micro{font-size:11px;color:var(--muted)}.tag{display:inline-block;padding:5px 8px;border-radius:5px;background:#edf6f1;color:#388264;font-size:10px;font-weight:600}.tag.yellow{background:#fff5dc;color:#aa841f}.tag.red{background:#fbeceb;color:#b45d58}.tag.gray{background:#eef1f2;color:#819092}.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-bottom:22px}.panelhead{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line);gap:10px}.panelbody{padding:22px}.tabs{display:flex;gap:3px;background:#f4f6f6;padding:3px;border-radius:7px}.tabs button{border:0;background:transparent;padding:6px 10px;font-size:10px}.tabs .selected{background:white;box-shadow:0 1px 3px #0001}.chart{height:170px;display:flex;align-items:flex-end;gap:8px;padding:10px 2px 22px;position:relative;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#edf1f0 40px)}.barcol{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.bar{background:var(--primary);opacity:.7;width:65%;min-height:2px;border-radius:4px 4px 0 0}.barlabel{position:absolute;top:calc(100% + 8px);font-size:9px;color:var(--muted)}.chartlegend{font-size:11px;color:var(--muted);margin:18px 0 0}.donutwrap{display:flex;gap:24px;align-items:center;justify-content:center;padding:20px 0}.donut{width:146px;height:146px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary) var(--pct),#edf2f1 0)}.donutinside{width:113px;height:113px;background:white;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.donutinside strong{font-size:28px}.donutinside span{font-size:10px;color:var(--muted)}.legendrow{margin:15px 0;font-size:11px;display:flex;gap:8px;align-items:center}.legendrow b{margin-left:auto}.legenddot{width:7px;height:7px;border-radius:2px;background:var(--primary)}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-size:10px;font-weight:500;color:#8c9a9c;background:#fafbfb;text-transform:uppercase;letter-spacing:.6px}th,td{padding:14px 20px;border-bottom:1px solid #edf0f0}td strong{font-weight:600}td small{display:block;color:var(--muted);margin-top:4px}.tablewrap{overflow:auto}.empty{padding:44px 20px;text-align:center;color:var(--muted)}.empty .icon{width:28px;height:28px;margin-bottom:12px}.empty b{display:block;color:#527074;font-size:13px;margin-bottom:7px}.footer{display:flex;justify-content:space-between;color:#9ba8a9;font-size:10px;padding:12px 0 0}.statsline{display:flex;gap:25px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.sea{padding:14px;text-align:center;color:#689eac;background:#eff7f8;border-radius:7px;font-size:10px;letter-spacing:4px;margin-bottom:22px;border-bottom:2px solid #c9e4e8}.beachrow{display:flex;gap:12px;margin:12px 0;align-items:center}.rowname{width:45px;font-size:10px;color:var(--muted);flex-shrink:0}.umbrellas{display:grid;grid-template-columns:repeat(var(--cols),minmax(45px,1fr));gap:12px;flex:1}.umbrella{min-height:66px;display:flex;flex-direction:column;gap:6px;padding:10px 4px;background:#eef7f0;border-color:#d4e9d9;color:#548d67}.umbrella.occupied{background:#fbedeb;border-color:#f0d6d2;color:#be7470}.umbrella.reserved{background:#fff8e4;border-color:#f1e4b7;color:#ba9a44}.umbrella.disabled{background:#f0f2f3;color:#a0aaae}.umbrella .icon{width:23px;height:23px}.umbrella span{font-size:10px}.mapscroll{overflow:auto}.search{width:240px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{font-size:11px;color:#6c8183;display:flex;flex-direction:column;gap:7px}.full{grid-column:1/-1}.formfoot{display:flex;gap:10px;justify-content:flex-end;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.modalback{position:fixed;inset:0;background:#163b3c55;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:white;border-radius:12px;width:650px;max-height:94vh;overflow:auto;box-shadow:0 25px 90px #183d3e33}.modalhead{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line)}.modalbody{padding:24px}.drawerback{justify-content:flex-end;padding:0}.drawer{width:500px;max-height:100vh;height:100vh;border-radius:0}.account{background:#f6f9f8;padding:18px;border-radius:8px;margin:16px 0}.account div{display:flex;justify-content:space-between;margin:10px 0;font-size:12px}.account .total{border-top:1px solid var(--line);padding-top:12px;font-size:17px;font-weight:650}.listitem{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.muted{color:var(--muted)}.err{color:#a84e49;font-size:12px;padding:10px;background:#fff0ee;border-radius:6px;display:none}.help{font-size:11px;color:var(--muted);line-height:1.7}.mobiletoggle{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#244e49;color:white;padding:13px 20px;border-radius:8px;display:none;max-width:90vw}.periodsummary{display:flex;gap:14px;margin-bottom:20px}.periodsummary .card{flex:1}.statusline{font-size:11px;color:var(--muted);margin-top:10px}.intro{background:linear-gradient(110deg,#e7f1ed,#f6f6ed);padding:30px;border-radius:11px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.intro h2{font-size:22px;margin-bottom:8px}.logo{width:34px;height:34px;object-fit:contain}.pillnum{width:28px;height:28px;background:#eef4f2;display:inline-grid;place-items:center;border-radius:6px;color:var(--primary);font-weight:650}.balance{font-weight:600;color:#bb8651}@media(min-width:1600px){.content{padding-top:40px}.cards{gap:24px}.card{padding:25px}}@media(max-width:1100px){.sidebar{width:195px;padding:25px 12px}.brand{font-size:17px}.edition{margin-left:47px}.content{padding:25px 22px}main{margin-left:195px}.topbar{padding:0 22px}.heading{align-items:flex-start}.cards{gap:10px}.card{padding:16px}.grid2{grid-template-columns:1.2fr 1fr}.umbrellas{gap:7px}.beachrow{gap:5px}.rowname{width:35px}}@media(max-width:800px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .15s}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vw #0004}.mobiletoggle{display:inline-flex}main{margin-left:0}.topbar{height:60px;padding:0 18px}.content{padding:25px 18px}.heading{display:block}h1{font-size:26px}.heading .actions{margin-top:18px}.cards{grid-template-columns:repeat(2,1fr)}.grid2,.settingsgrid{grid-template-columns:1fr}.topright .todaylabel{display:none}.footer{gap:20px}.umbrellas{min-width:580px}.formgrid{gap:12px}.modalbody{padding:18px}.modalback{padding:10px}.drawerback{padding:0}.intro{display:block}.intro button{margin-top:12px}.periodsummary{flex-wrap:wrap}.periodsummary .card{min-width:130px}}

@media print{.sidebar,.topbar,.heading .actions,.footer,button{display:none!important}main{margin:0}.content{padding:0}.panel,.card{break-inside:avoid}body{background:white}}
.revenuegrid{display:grid;grid-template-columns:minmax(330px,1.15fr) minmax(300px,1fr)}.calendarsection{padding:24px;border-right:1px solid var(--line)}.revenuetools{padding:26px;background:#fcfdfc;border-radius:0 0 10px 0}.calendarhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.calendarhead input{border:0;font-weight:650;font-size:16px}.ratecalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekdaylabel{text-align:center;color:var(--muted);font-size:10px;padding:6px}.rateday{position:relative;min-height:74px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:9px;gap:5px;font-size:12px;border:1px solid var(--line);border-radius:7px}.rateday small{font-size:10px;color:#819190;font-weight:450;line-height:1.3}.rateday.hasrate{background:#f0f7f3}.rateday.chosen{background:var(--primary);color:white;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.rateday.chosen small{color:white}.rateindicator{position:absolute;top:9px;right:7px;width:4px;height:4px;border-radius:50%;background:#d3ab5e}.rangebox{border:1px solid var(--line);padding:14px;border-radius:8px;margin-top:18px;background:white}.rangebox h3{margin-top:0}.weekdaytoggles{display:flex;flex-wrap:wrap;gap:4px}.weekdaytoggles button{font-size:10px;padding:7px}.weekdaytoggles .on{background:var(--secondary);color:var(--primary);border-color:#b6d7cd}.revenue .formgrid>label:has(#revname){grid-column:1/-1}@media(max-width:1100px){.revenuegrid{grid-template-columns:1fr}.calendarsection{border-right:0;border-bottom:1px solid var(--line)}.rateday{min-height:72px}}@media(max-width:500px){.calendarsection,.revenuetools{padding:15px}.ratecalendar{gap:4px}.rateday{padding:6px;min-height:67px}.rateday small{font-size:8px}.rateindicator{right:4px;top:6px}}
.bookingactions{display:flex;align-items:center;gap:2px;white-space:nowrap}.bookingactions button{padding:7px}.formfoot{flex-wrap:wrap}
.layoutcounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;max-height:260px;overflow:auto;padding:3px}.rowconfiglist{max-height:260px;overflow:auto}.rowname .icon{width:12px;height:12px}.beachrow button.rowname{width:65px;flex-direction:column;gap:5px;white-space:nowrap;padding:7px 2px}@media(max-width:500px){.layoutcounts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.backupwarning{background:#fff3e6;border-color:#ebd1ad;color:#8b5c2f}.backupgood{background:#edf6f1}.umbrella.departed{background:#edf2f8;border-color:#ccdae7;color:#6b839c}.backupwarning strong{color:#8b5c2f}

/* Period reports */
.stats-filters{padding:20px;margin-bottom:16px}.stats-mode,.stats-inputs{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.stats-mode label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.stats-mode select,.stats-mode input{min-width:155px}.stats-filters .help{margin-bottom:0}.stats-export{justify-content:flex-end;flex-wrap:wrap;margin-bottom:24px}.stats-period{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:24px 0}.stats-period h2{margin:8px 0}.stats-period small{color:var(--muted,#68777e)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stats-card{padding:20px;min-width:0}.stats-card p{margin:0 0 12px;font-size:13px}.stats-card strong{display:block;font-size:26px;letter-spacing:-.6px;margin-bottom:9px;overflow-wrap:anywhere}.stats-card small{display:block;color:#68777e;line-height:1.5}.stats-chart,.stats-table,.stats-notes{padding:22px;margin-bottom:20px}.stats-chart h2,.stats-table h2,.stats-notes h2{font-size:17px;margin:0 0 14px}.stats-scroll{overflow:auto;max-height:460px}.stats-scroll th{white-space:nowrap;position:sticky;top:0;background:var(--surface,#fff);z-index:1}.stats-scroll td{white-space:nowrap}.stats-bars{display:flex;gap:12px;overflow:auto;padding:20px 0 10px}.stats-bar-col{flex:1;min-width:90px;text-align:center}.stats-bar-value{font-size:11px;white-space:nowrap}.stats-track{height:130px;display:flex;align-items:end;background:#f4f7f6;border-radius:5px;margin:8px 0}.stats-track span{display:block;width:100%;min-height:1px;background:var(--primary);border-radius:5px 5px 0 0}.stats-bar-col small{font-size:10px;white-space:nowrap}.stats-notes{color:#53636b;font-size:13px;line-height:1.65}.stats-notes li{margin-bottom:8px}.stats-period .eyebrow{font-size:10px;font-weight:700;letter-spacing:1.4px;color:var(--primary)}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.stats-mode,.stats-inputs{align-items:stretch;width:100%}.stats-mode label{flex:1}.stats-mode input,.stats-mode select{width:100%;min-width:0}.stats-grid{grid-template-columns:1fr}.stats-period{align-items:start;flex-direction:column}.stats-export button{width:100%}.stats-card strong{font-size:25px}}
.sidebar{overflow-y:auto}.sidebar>.nav{flex-shrink:0}#statsprintreport{display:none}@media print{body:has(#statsprintreport)>*:not(#statsprintreport){display:none!important}#statsprintreport{display:block!important;font:11px Arial,sans-serif;color:#142e37}#statsprintreport .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#statsprintreport .stats-card{padding:10px;break-inside:avoid}#statsprintreport .stats-card strong{font-size:20px}#statsprintreport .stats-scroll{max-height:none;overflow:visible}#statsprintreport .stats-scroll td{white-space:normal;overflow-wrap:anywhere}#statsprintreport .stats-scroll th{position:static;white-space:normal}#statsprintreport table{font-size:9px;width:100%;border-collapse:collapse}#statsprintreport tr{break-inside:avoid}#statsprintreport thead{display:table-header-group}#statsprintreport td,#statsprintreport th{padding:6px}#statsprintreport .stats-chart{display:none}#statsprintreport .stats-table{border:0;padding:0}#statsprintreport .stats-period{display:block}#statsprintreport .stats-notes{padding:10px;font-size:10px}@page{size:A4 landscape;margin:12mm}}
@media print{#statsprintreport .stats-table{break-inside:auto}#statsprintreport .stats-notes{break-inside:auto}#statsprintreport .stats-period:before{content:'Beach Manager · Report statistiche';display:block;font-weight:700;font-size:22px;margin-bottom:18px}}
.opening-row{padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:12px;align-items:end}.opening-row>button{justify-self:start}.opening-row label{min-width:0}.opening-row input{width:100%}
.rateday.closed{background:repeating-linear-gradient(135deg,#f4f5f5,#f4f5f5 5px,#ecefef 5px,#ecefef 6px);color:#84918f;border-color:#e4e8e7;cursor:not-allowed;opacity:1}.rateday.closed small{color:#84918f}
.extra-categories{padding:0 22px 16px}.extra-category{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}.extra-category summary{display:flex;align-items:center;gap:13px;padding:18px;cursor:pointer;list-style:none;background:#fbfcfc}.extra-category summary::-webkit-details-marker{display:none}.extra-category summary:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}.extra-category-symbol{display:grid;place-items:center;width:40px;height:40px;background:var(--secondary);color:var(--primary);border-radius:10px}.extra-category-title{font-size:15px;font-weight:650}.extra-category-title small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:5px}.extra-category-chevron{margin-left:auto;transition:transform .15s}.extra-category[open] .extra-category-chevron{transform:rotate(180deg)}.extra-category-body{border-top:1px solid var(--line)}.extra-category-body>.actions{padding:14px 18px}.extra-category-body .empty{padding:20px}.extra-category-body table{min-width:450px}@media(max-width:600px){.extra-categories{padding:0 12px 10px}.extra-category summary{padding:14px}.extra-category-body>.actions button{width:100%}}
.messaging-panel{margin-bottom:22px}.message-recipient{display:flex;flex-direction:column;gap:7px;background:var(--secondary);border-radius:8px;padding:15px;margin:20px 0}.message-recipient span{font-size:12px;overflow-wrap:anywhere}.message-field{display:flex;flex-direction:column;gap:8px;margin:18px 0;font-size:12px;font-weight:600}.message-preview{display:block;width:100%;line-height:1.65;resize:vertical;min-height:200px;font-weight:400}.message-tokens{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.message-tokens code{background:#f1f5f4;padding:4px 7px;border-radius:4px;font-size:11px}.extra-category-body>.actions{flex-wrap:wrap}.messaging-panel .tablewrap td small{white-space:normal;max-width:420px}.messaging-panel .formgrid label{min-width:0}.messaging-panel .formgrid select{width:100%}@media(max-width:600px){.messaging-panel .actions>button{width:100%}.messaging-panel .panelhead{flex-wrap:wrap;gap:12px}}
.site-editor-status{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;margin-bottom:22px}.site-editor-status h2{margin:12px 0}.site-editor-status .sub a{text-decoration:underline}.site-editor-section{margin-bottom:20px}.site-editor-section label{display:flex;flex-direction:column;gap:7px;font-size:12px}.site-edit-row{padding:16px;background:#f7f9f8;border:1px solid var(--line);border-radius:8px;margin-bottom:14px;display:grid;gap:12px}.site-edit-row button{justify-self:start}.site-upload{padding:16px;border:1px dashed #b8ccc6;border-radius:8px;margin:18px 0 8px}.site-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.site-media-item{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0}.site-media-item img{width:100%;height:170px;object-fit:cover;border-radius:5px}.site-cover-preview{width:100%;max-height:350px;object-fit:cover;border-radius:8px;margin-bottom:15px}.site-editor-section .panelhead{gap:12px;flex-wrap:wrap}.site-editor-section input,.site-editor-section textarea{width:100%}@media(max-width:800px){.site-editor-status{flex-direction:column;align-items:stretch}.site-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.site-media-grid{grid-template-columns:1fr}.site-editor-status .actions button{flex:1}}
