.calendar-app [hidden]{display:none!important}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.calendar-app .eyebrow{font-size:10px;letter-spacing:.09em;font-weight:700;color:var(--color-text-muted);margin-bottom:8px}.calendar-heading h2{font-size:30px;letter-spacing:-1px;margin-bottom:8px;line-height:1.3}.calendar-heading p{font-size:14px}.calendar-controls{display:flex;align-items:end;gap:16px;padding:20px 24px}.calendar-controls>.field:first-child{flex:1;max-width:400px}.calendar-controls .field:last-child{width:110px}.date-controls{display:flex;gap:8px;margin-left:auto}.calendar-subhead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 12px}.calendar-subhead h3{font-size:16px}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;color:var(--color-text-secondary)}.legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}.reservation-key:before{background:#205a9b}.clean-key:before{background:#176b4d}.maint-key:before{background:#8a5200}.timeline-shell{overflow:auto}.timeline{min-width:900px}.timeline-header,.timeline-row{display:grid;grid-template-columns:190px 1fr}.timeline-header{position:sticky;top:0;background:#fff;z-index:2}.timeline-corner{padding:16px;font-size:11px;color:var(--color-text-muted);align-self:center}.timeline-days{display:grid;grid-template-columns:repeat(var(--days),minmax(50px,1fr));text-align:center}.timeline-days>div{padding:12px 4px;border-left:1px solid var(--color-border)}.timeline-days small{display:block;font-size:10px;color:var(--color-text-muted);text-transform:uppercase}.timeline-days strong{font-size:18px;color:var(--color-brand)}.timeline-days .demo-day{background:#fff3d6}.timeline-property{padding:9px 16px;background:var(--color-app-bg);font-size:11px;font-weight:600;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex;gap:12px;color:var(--color-brand)}.timeline-property span{color:var(--color-text-muted);font-weight:400}.timeline-unit{padding:16px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;justify-content:center}.timeline-unit strong{font-size:12px}.timeline-unit small{font-size:10px;color:var(--color-text-muted);margin-top:4px}.timeline-track{display:grid;grid-template-columns:repeat(var(--days),minmax(50px,1fr));grid-template-rows:42px 25px;position:relative;min-height:76px;border-bottom:1px solid var(--color-border);padding-top:5px}.day-cell{grid-row:1/3;border-left:1px solid var(--color-border)}.demo-cell{background:#fffbef}.stay-event{grid-row:1;z-index:1;overflow:hidden;align-self:start;margin:3px 3px 0;padding:4px 8px;border-radius:5px;background:#eaf2fc;border-left:3px solid #205a9b;white-space:nowrap;color:#205a9b}.stay-event strong{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.stay-event small{display:block;font-size:9px}.stay-event.whole-stay{background:#021c5b;color:#fff;border-color:#fcb806}.service-event{grid-row:2;align-self:start;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;padding:3px 6px;margin:0 3px;border-radius:4px}.service-event.limpieza,.task-badge.limpieza{background:#e8f6ef;color:#176b4d}.service-event.mantenimiento,.task-badge.mantenimiento{background:#fff3d6;color:#8a5200}.timeline-help{font-size:11px;color:var(--color-text-muted);margin:12px 0 24px}.operation-agenda>header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px}.operation-agenda h3{font-size:20px}.operation-agenda header .text-muted{font-size:12px;margin-top:6px}.agenda-actions{display:flex;align-items:end;gap:12px}.agenda-actions select{min-width:160px}.service-line{display:flex;align-items:center;gap:16px;padding:16px 24px;border-top:1px solid var(--color-border)}.service-date{width:140px;flex:none}.service-date strong{display:block;font-size:12px}.service-date small{display:block;font-size:10px;color:var(--color-text-muted);margin-top:4px}.service-description{flex:1}.service-description strong{font-size:12px;display:block}.service-description small{display:block;font-size:11px;color:var(--color-text-muted);margin-top:4px}.task-badge{font-size:10px;padding:5px 8px;border-radius:5px;white-space:nowrap}.service-team{font-size:11px;min-width:90px}.task-check{display:flex;align-items:center;gap:6px;font-size:11px;cursor:pointer;min-height:44px}.task-check input{width:16px;height:16px;min-height:0;accent-color:var(--color-brand)}.service-line:has(input:checked){opacity:.6}.service-line:has(input:checked) .service-description strong{text-decoration:line-through}.agenda-caption{padding:12px 24px;font-size:10px;color:var(--color-text-muted);border-top:1px solid var(--color-border)}.agenda-empty{padding:32px 24px;font-size:13px;color:var(--color-text-muted)}.calendar-app dialog{margin:auto;width:min(540px,calc(100% - 32px));max-height:90vh;border:1px solid var(--color-border);border-radius:16px;padding:24px;color:var(--color-text);overflow:auto}.calendar-app dialog::backdrop{background:#021c5b80}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.dialog-head h3{font-size:20px}.dialog-intro{font-size:13px;color:var(--color-text-muted);line-height:1.7;margin:16px 0}.calendar-app dialog .field{margin-bottom:16px}.booking-dates{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-feedback{font-size:13px;color:#a82e3c;line-height:1.6}.dialog-actions{margin-top:16px}.calendar-feedback{background:#e8f6ef;border:1px solid #b9ddc9;border-radius:8px;color:#176b4d;padding:16px;margin-top:16px;font-size:13px}@media(max-width:1000px){.calendar-controls{flex-wrap:wrap}.calendar-controls>.field:first-child{max-width:100%;flex-basis:100%}.date-controls{margin-left:0}.calendar-subhead{align-items:start;flex-direction:column}.service-line{flex-wrap:wrap}.service-description{min-width:200px}.service-team{margin-left:auto}.operation-agenda>header{flex-wrap:wrap}}@media(max-width:639px){.calendar-heading{align-items:start;flex-direction:column;gap:16px}.calendar-heading h2{font-size:26px}.calendar-controls{padding:16px;gap:12px}.calendar-controls>.field:first-child{min-width:100%}.date-controls{gap:4px;flex:1}.date-controls .btn{padding:10px}.calendar-controls .field:last-child{width:82px}.calendar-subhead h3{font-size:14px}.legend{gap:10px;font-size:10px}.timeline{min-width:850px}.timeline-help{line-height:1.7}.operation-agenda>header{padding:20px 16px}.agenda-actions{width:100%;gap:10px;flex-wrap:wrap}.agenda-actions .field{flex:1}.agenda-actions .btn{font-size:12px}.service-line{padding:16px;gap:12px}.service-date{width:90px}.service-description{min-width:170px}.service-team{min-width:0;font-size:10px}.task-badge{font-size:9px}.task-check{margin-left:auto}.booking-dates{gap:12px}.calendar-app dialog{padding:20px 16px}.booking-dates input{min-width:0;width:100%}}@media print{body{background:#fff!important}.app-sidebar,.app-topbar,.app-overlay,.calendar-heading,.calendar-controls,.calendar-subhead,.timeline-shell,.timeline-help,.agenda-actions,.calendar-feedback,.app-demo-banner{display:none!important}.app-main,.app-content{margin:0!important;padding:0!important;width:100%!important}.app-shell{display:block!important}.operation-agenda{border:0!important;box-shadow:none!important}.operation-agenda>header:before{content:"Aloja · Agenda de operación";font-size:16px;font-weight:700}.operation-agenda>header{display:block!important}.operation-agenda>header>div{margin-top:16px}.service-line{break-inside:avoid}.task-check{display:none!important}.agenda-caption{font-size:10px}.service-line:has(input:checked){opacity:1}}
