:root{--bg:#f4f1ec;--paper:#fff;--ink:#26231f;--muted:#6e675f;--line:#ded7ce;--brand:#713627;--brand2:#a64b35;--blue:#2563a9;--green:#166534;--amber:#a35d08;--red:#a51f1f;--soft:#f3eee8;--shadow:0 8px 28px #35271c12}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}
.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;background:linear-gradient(120deg,var(--brand),var(--brand2));color:white;box-shadow:0 5px 18px #51251c1a}.topbar h1{font-size:24px;margin:0}.topbar p{margin:2px 0 0;font-size:13px;opacity:.85}.env-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:99px;background:#ffffff1d;border:1px solid #ffffff35;font-size:11px;font-weight:900;letter-spacing:.05em}.userbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{position:sticky;top:76px;align-self:start;height:calc(100vh - 76px);overflow-y:auto;background:#fff;border-right:1px solid var(--line);padding:14px 10px}.sidebar button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:13px 14px;border-radius:12px;font-weight:850;color:#5d554e;margin:2px 0}.sidebar button.active{background:#f4e9e4;color:var(--brand)}main{padding:24px;min-width:0;max-width:1500px}.view{display:none}.view.active{display:block}.view-title{margin:0;font-size:32px;letter-spacing:-.035em}.view-subtitle{margin:4px 0 18px;color:var(--muted)}
.sidebar button.nav-with-count{display:flex;align-items:center;justify-content:space-between;gap:10px}.nav-alert-count{display:inline-grid;place-items:center;flex:0 0 auto;min-width:28px;height:28px;padding:0 8px;border-radius:99px;background:#c62828;color:#fff;font-size:13px;font-weight:950;box-shadow:0 0 0 3px #fff}.sidebar button.has-alerts{color:#9a2520;background:#fff3f2}.sidebar button.has-alerts.active{background:#ffe3e0;color:#851d19}.nav-alert-count.emergency-count{background:#a50000;animation:alertPulse 1.5s ease-in-out infinite}@keyframes alertPulse{50%{transform:scale(1.1);box-shadow:0 0 0 5px #f7b0aa}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px;margin:12px 0;box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.kpi{border-top:5px solid var(--brand2)}.kpi strong{display:block;font-size:34px;line-height:1}.kpi span{font-size:13px;color:var(--muted);font-weight:800}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:9px 13px;border-radius:11px;border:1px solid var(--line);background:#fff;font-weight:850;text-decoration:none}.btn.primary{background:var(--brand2);border-color:var(--brand2);color:#fff}.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:#fff0ef;border-color:#e5aaa6;color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.sidebar button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5aa0dc;outline-offset:2px}
label{display:block;font-size:13px;font-weight:850;color:#514b45}input,select,textarea{width:100%;padding:11px;border:1px solid #cfc6bc;border-radius:11px;background:#fff;color:var(--ink)}textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid .full{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.field-help{font-size:12px;color:var(--muted);font-weight:500;margin-top:4px}
.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:99px;background:#e9f3ed;color:var(--green);font-size:11px;font-weight:900;text-transform:uppercase}.badge.blue{background:#e8f1fb;color:#245889}.badge.amber{background:#fff3df;color:#8a5006}.badge.red{background:#fff0ef;color:#9a2520}.badge.gray{background:#efedea;color:#655f58}.guest-name{font-size:18px;font-weight:950;color:#176b3a}.property-name{font-size:18px;font-weight:950;color:#174e70}.notice{padding:13px 15px;border-radius:13px;background:#eef6ff;border:1px solid #aacbe8;color:#174e70;font-weight:750}.notice.error{background:#fff0ef;border-color:#e5aaa6;color:#8e2520}.notice.success{background:#eefaf1;border-color:#92c49e;color:#175c2d}
.list{display:grid;gap:9px}.list-item{border:1px solid var(--line);border-left:7px solid var(--brand2);border-radius:14px;padding:14px;background:#fff}.list-item.emergency{border-left-color:#b91c1c;background:#fff8f7}.list-item.done{border-left-color:#15803d;background:#f7fff9}.list-title{font-size:18px;font-weight:950}.list-meta{color:var(--muted);font-size:13px;margin-top:3px}.list-description{margin-top:9px}.empty{padding:20px;border:1px dashed #c8beb4;border-radius:14px;color:var(--muted);text-align:center;background:#faf8f5}.today-clear{display:grid;gap:5px;background:#f4faf5;border-color:#8db99a;color:#245b36}.today-clear b{font-size:18px}.upcoming-heading{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:16px 2px 2px;padding-top:14px;border-top:1px solid var(--line)}.upcoming-heading h3{margin:0}.upcoming-heading span{font-size:12px;color:var(--muted);font-weight:800}
.reservation-group{margin:19px 0 25px}.reservation-group:first-child{margin-top:4px}.reservation-group-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 9px;padding-bottom:8px;border-bottom:2px solid var(--line)}.reservation-group-head h3{margin:0;font-size:20px}.reservation-group-head span{display:grid;place-items:center;min-width:31px;height:31px;padding:0 9px;border-radius:99px;background:#e8f1fb;color:#245889;font-weight:950}.compact-empty{padding:13px}
.timeline{border-left:3px solid #b98a72;margin:14px 0 0 7px;padding-left:15px}.timeline-item{position:relative;padding:0 0 14px}.timeline-item:before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:var(--brand2);left:-22px;top:5px}.timeline-time{font-size:12px;color:var(--muted);font-weight:800}.timeline-text{font-weight:750}
.calendar-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.calendar{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.calendar th,.calendar td{border-right:1px solid #eee;border-bottom:1px solid #eee;min-width:92px;height:72px;padding:6px;text-align:center;vertical-align:middle}.calendar th{background:#faf8f5;font-size:12px}.calendar th .weekday{display:block;text-transform:capitalize;color:#6b7280;font-size:11px;margin-bottom:4px}.calendar th strong{font-size:16px;color:#20252b}.calendar th:first-child,.calendar td:first-child{position:sticky;left:0;z-index:2;min-width:145px;background:#fff;text-align:left;font-weight:900}.property-color-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:7px;vertical-align:-1px;box-shadow:0 0 0 2px #fff,0 0 0 3px #d8d1ca}.day{cursor:pointer;position:relative;border-top:4px solid var(--property-color,transparent)}.day:hover{outline:3px solid var(--property-color,#b99584);outline-offset:-3px}.day.occupied{background:#eef4f7;background:color-mix(in srgb,var(--property-color) 18%,white);color:#20252b}.day.checkin{background:#2563a9;color:#fff}.day.checkout{background:#14532d;color:#fff}.day.emergency{background:#b91c1c;color:#fff}.day.mixed{background:linear-gradient(135deg,#14532d 0 49%,#2563a9 51% 100%);color:#fff}.day-count{display:block;font-size:11px;font-weight:900}.legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.property-legend{margin-top:-2px}.property-legend:before{content:"APPARTAMENTI";font-size:11px;font-weight:950;color:var(--muted);align-self:center}.legend span{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 9px;font-size:12px;font-weight:800}.dot{width:11px;height:11px;border-radius:3px}.demo-contact{display:grid;gap:7px;margin-top:12px;padding:12px;border-radius:12px;background:#f7f2ed}.demo-contact small{font-weight:900;color:#8a4b37;letter-spacing:.04em}.demo-contact a{color:#245f74;font-weight:800;text-decoration:none;overflow-wrap:anywhere}
.month-calendar{min-width:560px;padding:10px}.month-weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.month-weekdays{margin-bottom:7px}.month-weekdays span{padding:7px;color:var(--muted);font-size:12px;font-weight:950;text-align:center;text-transform:uppercase}.calendar-cell{position:relative;display:grid;align-content:space-between;gap:7px;min-height:94px;padding:10px;border:2px solid #e5e0da;border-radius:13px;background:#fff;color:#20252b;text-align:left;cursor:pointer}.calendar-cell:hover,.calendar-cell:focus-visible{border-color:#5b7d93;outline:3px solid #dbe8ef}.calendar-cell-empty{visibility:hidden}.calendar-cell.today:after{content:"OGGI";position:absolute;top:7px;right:7px;padding:2px 5px;border-radius:99px;background:#20252b;color:#fff;font-size:8px;font-weight:950}.calendar-cell.selected{outline:4px solid #20252b;outline-offset:1px}.calendar-cell.occupied{background:#eef4f7}.calendar-cell.activity{background:#f2f8f3;border-color:#a7cfb1}.calendar-cell.checkin{background:#2563a9;border-color:#1f4f88;color:#fff}.calendar-cell.checkout{background:#14532d;border-color:#0d3d20;color:#fff}.calendar-cell.emergency{background:#b91c1c;border-color:#811a1a;color:#fff}.calendar-cell.mixed{background:linear-gradient(135deg,#2563a9 0 49%,#14532d 51% 100%);border-color:#173f31;color:#fff}.calendar-day-number{font-size:22px;font-weight:950;line-height:1}.calendar-cell-tags{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.calendar-tag,.calendar-activity-count{display:inline-flex;padding:3px 6px;border-radius:99px;background:#fff;color:#24343d;font-size:9px;font-weight:950}.calendar-cell.activity .calendar-activity-count{background:#dff0e3;color:#245b36}.calendar-property-dots{display:flex;gap:5px;min-height:9px}.calendar-property-dots i{width:9px;height:9px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #6c7378}.calendar-detail-head{margin-bottom:14px}.calendar-detail-head h3{margin:2px 0 0;font-size:24px;text-transform:capitalize}
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:9px}.check-item{display:flex;gap:10px;align-items:flex-start;border:2px solid #e1dbd4;border-radius:13px;padding:11px;background:#fff;font-weight:800}.check-item.checked{border-color:#62a879;background:#f0faf3}.check-item input{width:22px;height:22px;flex:0 0 auto;margin:0}.progress{height:12px;border-radius:99px;background:#e7e1da;overflow:hidden}.progress span{display:block;height:100%;background:var(--blue)}
.login-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#123b55,#2b78a6)}.login-card{width:min(470px,100%);background:#fff;border-radius:25px;padding:26px;box-shadow:0 25px 80px #0005}.login-card h1{margin:4px 0}.login-card form{display:grid;gap:12px;margin-top:18px}.login-error{color:#9b2420;font-weight:800;min-height:24px}
.guest-shell{max-width:780px;margin:auto;padding:18px 18px 95px}.guest-hero{background:linear-gradient(145deg,#173f59,#2b78a6);color:#fff;border-radius:27px;padding:29px 23px;margin-bottom:16px;box-shadow:0 16px 40px #173f5925}.guest-hero h1{font-size:32px;margin:7px 0}.guest-nav{position:sticky;bottom:10px;z-index:20;display:flex;gap:5px;background:#fffffff2;backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:6px;box-shadow:0 10px 35px #38291f1f}.guest-nav button{flex:1;border:0;border-radius:13px;padding:11px 5px;background:transparent;font-weight:850;color:var(--muted)}.guest-nav button.active{background:var(--soft);color:var(--brand)}.guest-section{display:none}.guest-section.active{display:block}.access-screen{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#123b55,#2b78a6)}.access-card{width:min(540px,100%);background:#fff;border-radius:26px;padding:27px;text-align:left;box-shadow:0 25px 80px #0005}.access-card h1{margin:6px 0}.ended-icon{font-size:54px}.video-box{aspect-ratio:16/9;background:#151515;color:#fff;border-radius:17px;display:grid;place-items:center;text-align:center;padding:18px}.video-box video{width:100%;height:100%;object-fit:cover;border-radius:17px}
.toast{position:fixed;right:18px;bottom:18px;z-index:300;max-width:430px;padding:14px 17px;border-radius:13px;background:#1e2d25;color:#fff;box-shadow:0 10px 30px #0003;font-weight:800}.loading{opacity:.65;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:flex;height:auto;overflow:auto;position:sticky;top:73px;z-index:40;border-right:0;border-bottom:1px solid var(--line);padding:7px}.sidebar button{min-width:135px}.grid.four,.grid.three{grid-template-columns:1fr 1fr}.grid.two{grid-template-columns:1fr}main{padding:17px}}
@media(max-width:620px){body{font-size:16px}.topbar{align-items:flex-start}.topbar h1{font-size:20px}.userbar{font-size:12px}.grid.four,.grid.three,.form-grid,.checklist{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.view-title{font-size:28px}.guest-shell{padding:10px 11px 88px}.guest-hero{padding:24px 18px}.guest-nav{position:fixed;left:9px;right:9px;bottom:9px;overflow:auto}.guest-nav button{min-width:82px}.actions .btn{flex:1}.calendar th,.calendar td{min-width:76px}.month-calendar{min-width:490px;padding:7px}.month-weekdays,.month-days{gap:5px}.calendar-cell{min-height:82px;padding:8px}.calendar-day-number{font-size:19px}.calendar-activity-count{font-size:8px}}
