.visual-calendar{--cal-free:#20292b;--cal-busy:#233e2e;--cal-red:#36292b;--cal-line:#384443;background:#171c1f;border:1px solid #303a3e;border-radius:14px;overflow:hidden}.calendar-commandbar{padding:19px 22px;display:flex;align-items:center;gap:17px;border-bottom:1px solid #2e383b;background:linear-gradient(120deg,#202729,#191f21)}.calendar-period{display:flex;gap:6px;align-items:center}.calendar-period input{width:148px;font-size:12px;padding:8px;border-color:#45504f;background:#141a1c}.calendar-period .btn{margin-left:7px}.calendar-mode{margin-left:auto}.calendar-refresh .icon{width:12px;height:12px}.master-picker{display:flex;gap:10px;overflow-x:auto;padding:20px 22px 15px;scrollbar-width:thin;scrollbar-color:#4d5a46 transparent}.master-chip{display:flex;gap:11px;align-items:center;min-width:183px;text-align:left;border:1px solid #36413f;background:#1d2527;border-radius:9px;padding:12px;position:relative;transition:border-color .15s,background .15s}.master-chip:hover{background:#27302c;border-color:#7c9563}.master-chip.is-selected{border-color:#b8df8b;background:#293424;box-shadow:inset 0 -2px #b8df8b}.master-chip strong{display:block;font-size:11px;white-space:nowrap}.master-chip small{font-size:9px;color:#90a095;display:block;margin-top:4px}.master-monogram{display:flex;align-items:center;justify-content:center;width:33px;height:33px;border:1px solid #607851;border-radius:10px;background:#34482d;color:#d0e8ae;font-size:11px;flex-shrink:0}.master-monogram .icon{width:16px;height:16px}.master-monogram.tone-1{background:#343043;color:#ccb8e8;border-color:#564c67}.master-monogram.tone-2{background:#293e43;color:#a9d5e3;border-color:#3f6068}.master-monogram.tone-3{background:#45392c;color:#e6c59e;border-color:#6b573f}.master-selected-dot{width:5px;height:5px;position:absolute;top:8px;right:8px;border-radius:50%;background:var(--accent)}.calendar-filterbar{padding:0 22px 20px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;border-bottom:1px solid #2e393b}.calendar-filterbar>label{display:flex;flex-direction:row;align-items:center;gap:8px;border:1px solid #3d494b;border-radius:6px;background:#121a1e;padding:0 10px}.calendar-filterbar>label .icon{width:14px;color:#a0af9a}.calendar-filterbar select{width:auto;font-size:10px;padding:9px 22px 9px 7px;border:0;background:transparent;max-width:260px}.calendar-filterbar label select{max-width:245px}.calendar-filterbar>#calendar-step{border:1px solid #3d494b;border-radius:6px;background:#131c1f;margin-left:auto;max-width:130px}.calendar-interaction{display:flex;gap:3px;border:1px solid #3a4645;padding:3px;border-radius:6px;background:#12191c}.calendar-interaction button{padding:6px 9px;color:#8d9e9e;font-size:10px;border-radius:4px;display:flex;gap:5px;align-items:center;white-space:nowrap}.calendar-interaction .icon{width:12px;height:12px}.calendar-interaction button.selected{background:#35422c;color:#d0e6b7}.calendar-interaction button.danger-mode{background:#4d3434;color:#f1c1b4}.calendar-grid-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 23px 16px}.calendar-grid-heading h2{font-size:17px;letter-spacing:-.2px}.calendar-grid-heading h2>span{color:#899b96;font-size:12px;font-weight:400;margin-left:12px;white-space:nowrap}.calendar-grid-heading p{color:#849891;font-size:10px;margin-top:6px;line-height:1.7}.calendar-timezone{display:flex;gap:6px;align-items:center;color:#7b9190;font-size:9px;white-space:nowrap}.calendar-timezone .icon{width:12px}.calendar-legend{display:flex;gap:17px;align-items:center;padding:0 23px 17px;flex-wrap:wrap;color:#a0b1a9;font-size:10px}.calendar-legend>span{display:flex;align-items:center;gap:6px}.swatch{display:inline-flex;flex-shrink:0;width:10px;height:10px;border-radius:3px;border:1px solid #677d6d}.swatch.free{background:#243035;border:1px dashed #8ea49b}.swatch.busy{background:#487d50;border-color:#83b877}.swatch.unavailable{background:repeating-linear-gradient(135deg,#5c3e3f,#5c3e3f 2px,#3e2d30 2px,#3e2d30 4px);border-color:#a06d65}.swatch.past{background:#252e32;border-color:#47545b}.calendar-updated{margin-left:auto;color:#708c7c;font-size:9px}.calendar-error{background:#3e2c29;color:#f2b8a5;font-size:11px;padding:12px 22px}.calendar-error:empty{display:none}.calendar-error .text-button{color:#d6edbc;margin-left:10px}.calendar-counters{padding:12px 23px;background:#1b2425;border-top:1px solid #33413c;border-bottom:1px solid #33413c;display:flex;gap:23px;font-size:10px;color:#8daba1}.calendar-counters b{font-size:15px;color:#d5e9c1;font-weight:500;margin-right:3px}.calendar-counters>span:last-child{margin-left:auto;color:#6e8982;font-size:9px;align-self:center}.time-grid-scroll{max-height:660px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#526548 #171e20;scrollbar-width:thin;position:relative;border-bottom:1px solid #34413e}.time-grid{display:grid;grid-template-columns:62px repeat(var(--grid-columns),minmax(180px,1fr));gap:4px;padding:0 12px 12px 0;min-width:100%;align-items:stretch}.time-grid.is-week{grid-template-columns:62px repeat(var(--grid-columns),minmax(128px,1fr))}.time-axis-corner{position:sticky;top:0;left:0;z-index:6;background:#1a2426;display:flex;align-items:center;justify-content:center;font-size:7px;letter-spacing:1px;color:#6a8a81;min-height:70px;box-shadow:0 4px 0 #171c1f}.time-column-head{position:sticky;top:0;z-index:4;background:#202c2b;border-bottom:1px solid #456050;display:flex;justify-content:center;flex-direction:column;padding:12px 11px;min-height:70px;box-shadow:0 4px 0 #171c1f}.time-column-head strong{font-size:11px;text-transform:capitalize;color:#dce8dd}.time-column-head>span{font-size:9px;color:#b0c2aa;margin-top:3px}.time-column-head small{font-size:8px;color:#728d80;margin-top:3px}.time-axis-label{display:flex;justify-content:center;align-items:center;font-size:10px;color:#738b87;position:sticky;left:0;background:#172023;z-index:3;font-variant-numeric:tabular-nums}.time-axis-label.full-hour{font-weight:600;color:#acbcb3}.time-cell{height:43px;min-width:0;border-radius:5px;padding:5px 10px;display:flex;align-items:center;gap:6px;text-align:left;position:relative;overflow:hidden;transition:background .12s,border-color .12s,box-shadow .12s;font-variant-numeric:tabular-nums}.time-cell.free{border:1px dashed #48685e;background:#1b282b;color:#a3bcb0}.time-cell.free:hover{border-color:#c4ec9b;background:#2d4029;box-shadow:inset 0 0 0 1px #b8df8b}.time-cell.free .free-time{font-size:11px;font-weight:500}.slot-plus{margin-left:auto;opacity:.35;font-size:17px;line-height:1;color:#bde994}.time-cell.free:hover .slot-plus{opacity:1}.time-cell.busy{border:1px solid #416c47;border-left:3px solid #90c575;background:#284331;color:#cfe7bd;flex-direction:column;align-items:start;justify-content:center;gap:1px}.time-cell.busy:hover{background:#365b3b;border-color:#b7dc93}.time-cell.busy b{font-size:10px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.time-cell.busy>span{font-size:8px;color:#92b88c}.time-cell.busy.visit-start{background:#34503a;border-top-color:#81a96c}.time-cell.busy .busy-continuation{font-size:9px;color:#aac89d;font-weight:400}.time-cell.unavailable{border:1px solid #4b3439;background:repeating-linear-gradient(135deg,#30272c,#30272c 5px,#33292e 5px,#33292e 6px);color:#8c686a;opacity:1}.unavailable-label{font-size:8px;line-height:1.4;overflow:hidden;max-height:2.8em;max-width:100%;text-overflow:ellipsis}.time-cell.manually-blocked{border-color:#956454;border-left:3px solid #b98b6e;background:#49332f;color:#d1aa92}.time-cell.manually-blocked:hover{border-color:#ddb194;background:#584036}.time-cell.past{border:1px solid #2b363c;background:#20282d;color:#526773;opacity:1}.time-cell.is-dimmed{opacity:.48}.time-cell:disabled{cursor:default}.time-cell.free:disabled{opacity:.7;border-style:solid}.calendar-footnote{display:flex;justify-content:space-between;gap:10px;padding:14px 22px;font-size:8px;color:#607e73;line-height:1.7}.calendar-footnote>span{display:flex;gap:5px;align-items:center}.calendar-footnote .icon{width:11px;height:11px;color:#a3c57d}.calendar-visits{margin-top:25px}.visits-list-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.visits-list-header h2{font-size:14px;display:flex;align-items:center;gap:8px}.visits-list-header select{width:180px;font-size:10px;padding:7px 10px}.visits-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px}.mini-visit{background:#1b2325;border:1px solid #37433f;border-radius:8px;padding:15px;text-align:left}.mini-visit:hover{border-color:#90ae70}.mini-visit>div{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px;font-size:9px;color:#9bb392}.mini-visit>strong{display:block;font-size:12px}.mini-visit>small{display:block;font-size:10px;color:#7f9990;margin-top:5px;line-height:1.7}.block-summary{font-size:21px;margin-bottom:17px;color:#cce7b5}.calendar-skeleton{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:25px;position:relative;min-height:420px}.calendar-skeleton>span{border-radius:8px;background:linear-gradient(180deg,#263631,#1a2527);border:1px solid #35443d}.calendar-skeleton>p{position:absolute;top:45%;width:100%;text-align:center;font-size:12px;color:#a4b49d}.calendar-interaction button:focus-visible,.time-cell:focus-visible{z-index:5}.master-picker button:focus-visible{outline-offset:-3px}@media(max-width:1100px){.calendar-filterbar{gap:8px}.calendar-filterbar>#calendar-step{margin-left:0}.calendar-grid-heading h2>span{display:block;margin:4px 0 0;font-size:11px}.calendar-counters>span:last-child{display:none}.calendar-timezone{font-size:8px}.calendar-filterbar label select{max-width:225px}}@media(max-width:760px){.calendar-commandbar{padding:14px;gap:9px;flex-wrap:wrap}.calendar-period{width:100%;gap:4px;justify-content:space-between}.calendar-period input{width:auto;max-width:150px;font-size:11px}.calendar-mode{margin-left:0}.calendar-refresh{margin-left:auto}.master-picker{padding:15px 14px;gap:8px}.master-chip{min-width:190px;padding:12px}.master-chip strong{font-size:11px}.master-chip small{font-size:9px}.master-monogram{width:33px;height:33px}.calendar-filterbar{padding:0 14px 15px;gap:10px}.calendar-filterbar .service-selector{width:100%}.calendar-filterbar .service-selector select{flex:1;max-width:100%;font-size:11px}.calendar-filterbar .bay-selector{width:100%}.calendar-filterbar .bay-selector select{width:100%;max-width:100%}.calendar-interaction{flex:1}.calendar-interaction button{font-size:9px;padding:6px}.calendar-interaction button .icon{width:11px}.calendar-filterbar>#calendar-step{font-size:9px;max-width:105px;padding:10px 16px 10px 6px}.calendar-grid-heading{padding:18px 14px 14px}.calendar-grid-heading h2{font-size:15px}.calendar-grid-heading h2>span{font-size:10px}.calendar-grid-heading p{font-size:10px;max-width:260px}.calendar-timezone{display:none}.calendar-legend{padding:0 14px 14px;gap:10px;font-size:9px}.calendar-updated{margin-left:0;width:100%;font-size:8px;padding-top:3px}.calendar-counters{padding:12px 14px;font-size:9px;gap:17px}.calendar-counters b{font-size:14px}.time-grid{grid-template-columns:49px repeat(var(--grid-columns),minmax(190px,1fr));gap:4px;padding-right:8px}.time-grid.is-week{grid-template-columns:49px repeat(var(--grid-columns),minmax(130px,1fr))}.time-axis-corner{font-size:6px;letter-spacing:.6px}.time-column-head{min-height:70px;padding:10px}.time-column-head strong{font-size:11px}.time-column-head>span{font-size:9px}.time-cell{height:46px;padding:6px 9px}.time-cell.free .free-time{font-size:11px}.time-cell.busy b{font-size:10px}.time-cell.busy>span{font-size:9px}.unavailable-label{font-size:9px}.time-axis-label{font-size:10px}.time-grid-scroll{max-height:600px}.calendar-footnote{padding:12px 14px;font-size:8px}.calendar-footnote>span:last-child{display:none}.calendar-visits{margin-top:22px}.visits-list-header h2{font-size:12px}.visits-list-header select{width:150px;font-size:9px}.visits-strip{grid-template-columns:1fr}.calendar-error{padding:12px 14px}.block-summary{font-size:18px}}
@media(min-width:761px) and (max-width:1100px){.calendar-commandbar{flex-wrap:wrap}.calendar-period{flex:1;min-width:330px}.calendar-mode{margin-left:0}.calendar-refresh{margin-left:auto}}
