.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono);--color-surface: #faf9fd;--color-on-surface: #1a1b1f;--color-surface-container: #efedf0;--color-on-surface-variant: #44474e;--color-outline-variant: #c4c6cf;--color-primary: #005cbb;--color-primary-container: #d7e3ff;--color-on-primary-container: #00458f;--color-tertiary-container: #d0e4ff;--color-on-tertiary-container: #001c38;--color-error: #ba1a1a}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media(width>=40rem){.container{max-width:40rem}}@media(width>=48rem){.container{max-width:48rem}}@media(width>=64rem){.container{max-width:64rem}}@media(width>=80rem){.container{max-width:80rem}}@media(width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.table{display:table}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}*{box-sizing:border-box}button:not(:disabled){cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:999px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;border:1px solid transparent;transition:background .15s ease,opacity .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:not(:disabled):hover{opacity:.9}.btn-outline{background:transparent;border-color:var(--color-outline-variant);color:var(--color-on-surface)}.btn-outline:not(:disabled):hover{background:var(--color-surface-container)}.btn-text{background:transparent;border-color:transparent;color:var(--color-primary);padding:.5rem .75rem}.btn-text:not(:disabled):hover{background:var(--color-surface-container)}.btn-text--danger{color:var(--color-error)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:transparent;color:var(--color-on-surface-variant)}.btn-icon:not(:disabled):hover{background:var(--color-surface-container)}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.8rem;color:var(--color-on-surface-variant)}.field input,.field select,.field textarea{border:1px solid var(--color-outline-variant);border-radius:6px;padding:.55rem .7rem;font:inherit;color:var(--color-on-surface);background:var(--color-surface);width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.field-error{color:var(--color-error);font-size:.75rem}.checkbox-field{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-outline-variant);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}.progress-bar{height:4px;border-radius:4px;background:var(--color-surface-container);overflow:hidden;position:relative}.progress-bar:after{content:"";position:absolute;inset:0;width:40%;background:var(--color-primary);border-radius:4px;animation:progress-indeterminate 1.2s ease-in-out infinite}@keyframes progress-indeterminate{0%{left:-40%}to{left:100%}}.cdk-overlay-backdrop{position:fixed;inset:0;background:#0006}.dialog-panel{background:var(--color-surface);color:var(--color-on-surface);border-radius:1rem;box-shadow:0 8px 30px #0003;padding:1.5rem;max-width:32rem;width:90vw;max-height:85vh;overflow-y:auto}.dialog-panel h2{margin:0 0 1rem;font-size:1.15rem;font-weight:500}.toast-container{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:.5rem;align-items:center}.toast{background:#1a1b1f;color:#fff;padding:.75rem 1.25rem;border-radius:.5rem;font-size:.875rem;box-shadow:0 4px 12px #00000040;animation:toast-in .15s ease}.toast--error{background:var(--color-error)}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle}body{color-scheme:light;background-color:var(--color-surface);color:var(--color-on-surface);font:400 14px/20px Roboto,sans-serif;margin:0;height:100%}html{height:100%}.shell{display:flex;flex-direction:column;min-height:100vh}.shell__nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem;padding:.75rem 1.5rem;background:var(--color-surface-container);box-shadow:0 1px 3px #00000014;position:relative;z-index:1}.shell__nav nav{display:flex;flex-wrap:wrap;gap:.25rem;flex:1}.shell__nav nav a{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;color:var(--color-on-surface-variant);padding:.5rem .9rem;border-radius:999px;font-size:.9rem;transition:background .15s ease}.shell__nav nav a:hover{background:var(--color-surface)}.shell__nav nav a.active{background:var(--color-primary-container);color:var(--color-on-primary-container);font-weight:500}.shell__nav nav a .material-icons{font-size:1.15rem;width:1.15rem;height:1.15rem}.shell__brand{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--color-primary)}.shell__brand .material-icons{font-size:1.4rem;width:1.4rem;height:1.4rem}.shell__user{display:flex;align-items:center;gap:.75rem}.shell__content{padding:1.5rem;flex:1;max-width:80rem;width:100%;margin:0 auto}.page-header{display:flex;align-items:center;gap:.6rem}.page-header h2{margin:0;font-weight:500}.page-header .material-icons{color:var(--color-primary)}.fleet-list__header,.booking-list__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.booking-list__vehicle-missing{color:var(--color-on-surface-variant);font-style:italic}.fleet-form,.booking-form{display:flex;flex-direction:column;gap:.75rem;min-width:22rem;padding-top:.5rem}.fleet-form__actions,.booking-form__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.booking-form__total{font-weight:600}.fleet-form__photo-label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--color-on-surface-variant)}.fleet-form__locations{display:flex;flex-direction:column;gap:.25rem}.fleet-form__locations-label{font-size:.75rem;color:var(--color-on-surface-variant)}.fleet-form__location-spinner{display:inline-block;margin-left:.5rem;vertical-align:middle}.fleet-form__photo-error{color:var(--color-error);font-size:.8rem;margin:0}.fleet-form__dialog-error{padding:0 24px}.fleet-form__photo-preview{max-width:100%;max-height:8rem;object-fit:contain;align-self:flex-start;border-radius:6px;border:1px solid var(--color-outline-variant)}.fleet-list__thumbnail{width:3rem;height:2rem;object-fit:cover;border-radius:4px;display:block}.platform-password-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:6px;background:var(--color-tertiary-container);color:var(--color-on-tertiary-container)}.platform-password-banner p{margin:0}.fleet-list__status-select{display:block;width:9rem;margin-top:.25rem;padding:.3rem .5rem;border-radius:4px;border:1px solid var(--color-outline-variant);background:var(--color-surface);color:var(--color-on-surface)}.fleet-list__row--retired{opacity:.55}.table-scroll{overflow-x:auto;border-radius:1rem;background-color:var(--color-surface-container);box-shadow:0 1px 3px #00000014;background-image:linear-gradient(to right,var(--color-surface-container) 30%,transparent),linear-gradient(to left,var(--color-surface-container) 30%,transparent),linear-gradient(to right,rgba(0,0,0,.15),transparent),linear-gradient(to left,rgba(0,0,0,.15),transparent);background-repeat:no-repeat;background-size:32px 100%,32px 100%,12px 100%,12px 100%;background-position:0 0,100% 0,0 0,100% 0;background-attachment:local,local,scroll,scroll}.table-scroll table{width:100%;background:transparent;border-collapse:collapse}.table-scroll thead,.table-scroll tbody tr:hover{background:var(--color-surface)}.table-scroll th,.table-scroll td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-outline-variant)}.status-chip{font-size:.75rem;padding:.2rem .6rem;border-radius:999px;display:inline-block}.status-chip--available,.status-chip--confirmed{background-color:#dcfce7;color:#166534}.status-chip--maintenance,.status-chip--pending{background-color:#fef3c7;color:#92400e}.status-chip--retired,.status-chip--cancelled{background-color:#fee2e2;color:#991b1b}.status-chip--completed{background-color:#e5e7eb;color:#374151}.transfer-dialog__context{color:var(--color-on-surface-variant);font-size:.875rem;margin:0 0 .5rem}.transfer-dialog__warning{color:var(--color-error);font-size:.875rem}.public-booking{max-width:64rem;margin:0 auto;padding:0 1.5rem 3rem;display:flex;flex-direction:column;gap:1.75rem}.public-booking__hero{text-align:center;padding:3rem 1.5rem 2.5rem;margin:0 -1.5rem;background:linear-gradient(160deg,var(--color-primary-container) 0%,var(--color-tertiary-container) 100%);border-radius:0 0 2rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.25rem}.public-booking__hero-icon{font-size:2.5rem;width:2.5rem;height:2.5rem;color:var(--color-on-primary-container);margin-bottom:.5rem}.public-booking__title{margin:0;font-size:1.75rem;font-weight:500;color:var(--color-on-primary-container)}.public-booking__subtitle{margin:0;color:var(--color-on-primary-container);opacity:.8;font-size:.95rem}.public-booking__not-found{text-align:center;padding:4rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.public-booking__not-found-icon{font-size:2.5rem;width:2.5rem;height:2.5rem;color:var(--color-error)}.public-booking__error{font-size:1.1rem;margin:0}.public-booking__stepper{display:flex;justify-content:center;gap:1.5rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.public-booking__step{display:flex;align-items:center;gap:.5rem;color:var(--color-on-surface-variant);opacity:.6;transition:opacity .2s ease}.public-booking__step--active,.public-booking__step--done{opacity:1}.public-booking__step-dot{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;border:2px solid var(--color-outline-variant);font-size:.8rem;font-weight:500;color:var(--color-on-surface-variant)}.public-booking__step--active .public-booking__step-dot{border-color:var(--color-primary-container);background:var(--color-primary-container);color:var(--color-on-primary-container)}.public-booking__step--done .public-booking__step-dot{border-color:var(--color-tertiary-container);background:var(--color-tertiary-container);color:var(--color-on-tertiary-container)}.public-booking__step-check{font-size:1rem;width:1rem;height:1rem}.public-booking__step-label{font-size:.85rem;display:none}.public-booking__step--active .public-booking__step-label{display:inline;font-weight:500}@media(min-width:640px){.public-booking__step-label{display:inline}}.public-booking__search-card{padding:1.5rem;border-radius:1rem}.public-booking__search{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap}.public-booking__search-field{flex:1;min-width:16rem}.public-booking__search-button{height:3.5rem;display:flex;align-items:center;gap:.4rem}@media(max-width:480px){.public-booking__search{flex-direction:column;align-items:stretch}.public-booking__search-field{min-width:0;width:100%}.public-booking__search-button{width:100%}}.public-booking__progress{border-radius:4px}.public-booking__results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.public-booking__results-title{margin:0;font-size:1.15rem;font-weight:500}.public-booking__empty{color:var(--color-on-surface-variant)}.public-booking__results{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.25rem}.public-booking__card{display:flex;flex-direction:column;border-radius:1rem;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.public-booking__card:not(.public-booking__card--unavailable):hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.public-booking__card--unavailable{opacity:.6;filter:grayscale(.5)}.public-booking__photo-wrap{position:relative}.public-booking__photo{width:100%;height:10rem;object-fit:cover;display:block}.public-booking__photo-placeholder{width:100%;height:10rem;display:flex;align-items:center;justify-content:center;background:var(--color-surface-container)}.public-booking__photo-placeholder .material-icons{font-size:2.5rem;width:2.5rem;height:2.5rem;color:var(--color-on-surface-variant);opacity:.5}.public-booking__unavailable-badge{position:absolute;top:.6rem;right:.6rem;background:var(--color-error);color:#fff;font-size:.7rem;font-weight:500;padding:.2rem .6rem;border-radius:999px}.public-booking__card-content{flex:1;display:flex;flex-direction:column;gap:.35rem}.public-booking__card-title{margin:0;font-size:1.05rem;font-weight:500}.public-booking__location{color:var(--color-on-surface-variant);font-size:.85rem;margin:0;display:flex;align-items:center;gap:.25rem}.public-booking__location-icon{font-size:1rem;width:1rem;height:1rem}.public-booking__price{margin:.25rem 0 0;display:flex;align-items:baseline;gap:.3rem}.public-booking__price-amount{font-size:1.15rem;font-weight:600}.public-booking__price-unit{font-size:.8rem;color:var(--color-on-surface-variant)}.public-booking__card-actions{padding-top:0}.public-booking__choose-button{width:100%}.public-booking__location-filter{max-width:16rem}.public-booking__booking-card{padding:1.5rem;border-radius:1rem;display:flex;flex-direction:column;gap:1.25rem}.public-booking__booking-summary{display:flex;gap:1rem;align-items:center}.public-booking__booking-photo{width:5rem;height:5rem;border-radius:.75rem;object-fit:cover;flex-shrink:0}.public-booking__booking-photo.public-booking__photo-placeholder{height:5rem}.public-booking__booking-title{margin:0 0 .25rem;font-size:1.15rem;font-weight:500}.public-booking__form{display:flex;flex-direction:column;gap:.75rem;max-width:24rem}.public-booking__form input,.public-booking__form select,.public-booking__form textarea{width:100%}.public-booking__total{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface-container);border-radius:.75rem;padding:.75rem 1rem;font-size:.95rem}.public-booking__total-amount{font-size:1.2rem;font-weight:600}.public-booking__form-actions{display:flex;justify-content:flex-end;gap:.5rem}.public-booking__confirmed-card{text-align:center;padding:3rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.public-booking__confirmed-icon{font-size:3.5rem;width:3.5rem;height:3.5rem;color:#16a34a}.public-booking__confirmed-title{margin:0;font-size:1.3rem;font-weight:500}.public-booking__confirmed{font-size:1rem;color:var(--color-on-surface-variant);max-width:28rem;margin:0}@media(max-width:768px){.shell__nav{flex-direction:column;align-items:stretch;gap:.5rem}.shell__user{justify-content:space-between}.fleet-list__header,.booking-list__header{flex-direction:column;align-items:flex-start;gap:.5rem}.fleet-list__header>div:not(.page-header),.booking-list__header>div:not(.page-header){width:100%;display:flex;justify-content:flex-end}}.vehicle-detail__header{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-start;margin:1rem 0 1.25rem}.vehicle-detail__photo{width:220px;max-width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:.75rem;border:1px solid var(--color-outline-variant)}.vehicle-detail__photo--placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-surface-container);color:var(--color-on-surface-variant)}.vehicle-detail__photo--placeholder .material-icons{font-size:3rem}.vehicle-detail__info{flex:1;min-width:14rem}.vehicle-detail__title{margin:0}.vehicle-detail__plate{color:var(--color-on-surface-variant);margin:.25rem 0}.vehicle-detail__rate{font-size:1.25rem;font-weight:700;margin:.5rem 0}.vehicle-detail__rate span{font-size:.9rem;font-weight:400;color:var(--color-on-surface-variant)}.vehicle-detail__chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.vehicle-detail__loc-chip{display:inline-flex;align-items:center;gap:.2rem;font-size:.8rem;padding:.2rem .6rem;border-radius:999px;background:var(--color-surface-container);color:var(--color-on-surface-variant)}.vehicle-detail__loc-chip .material-icons{font-size:1rem}.vehicle-detail__banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1.25rem;font-size:.9rem}.vehicle-detail__banner--maintenance{background:#fef3c7;color:#92400e}.vehicle-detail__banner--retired{background:#fee2e2;color:#991b1b}.vehicle-detail__calendar-card{background:var(--color-surface);border:1px solid var(--color-outline-variant);border-radius:.75rem;padding:1.25rem}.vcal__toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.vcal__nav{display:flex;align-items:center;gap:.5rem}.vcal__navbtn{padding:.3rem;min-width:0}.vcal__title{margin:0;min-width:10rem;text-align:center;text-transform:capitalize}.vcal__legend{display:flex;flex-wrap:wrap;gap:1rem;margin:.75rem 0 1rem;font-size:.8rem;color:var(--color-on-surface-variant)}.vcal__legend-item{display:inline-flex;align-items:center;gap:.35rem}.vcal__swatch{width:.85rem;height:.85rem;border-radius:.25rem;display:inline-block}.vcal__swatch--available{background:#bbf7d0}.vcal__swatch--pending{background:#fde68a}.vcal__swatch--confirmed{background:#bfdbfe}.vcal__progress{margin-bottom:.75rem}.vcal__error{display:flex;align-items:center;gap:.5rem;color:var(--color-error);padding:1rem 0}.vcal__main{display:flex;gap:1.25rem;align-items:flex-start}.vcal__cal{flex:1;min-width:0}.vcal__side{width:20rem;flex-shrink:0;border-left:1px solid var(--color-outline-variant);padding-left:1.25rem;max-height:26rem;overflow-y:auto}.vcal__side-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.vcal__side-title{margin:0;font-size:.95rem;text-transform:capitalize}.vcal__side-month{color:var(--color-on-surface-variant);font-weight:400}.vcal__side-all{padding:.15rem .4rem;min-width:0;white-space:nowrap}@media(max-width:880px){.vcal__main{flex-direction:column}.vcal__side{width:100%;border-left:none;border-top:1px solid var(--color-outline-variant);padding-left:0;padding-top:1rem;max-height:none}}.vcal__grid,.vcal__weekday-row{max-width:640px}.vcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.vcal__toolbar-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.vcal__toggle{display:inline-flex;border:1px solid var(--color-outline-variant);border-radius:999px;overflow:hidden}.vcal__toggle-btn{border:none;background:var(--color-surface);color:var(--color-on-surface-variant);font:inherit;font-size:.85rem;padding:.3rem .9rem;cursor:pointer}.vcal__toggle-btn--on{background:var(--color-primary);color:#fff}.vcal__year{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.vcal__mini{border:1px solid var(--color-outline-variant);border-radius:.6rem;background:var(--color-surface);padding:.6rem;font:inherit;cursor:pointer;text-align:left}.vcal__mini:hover{border-color:var(--color-primary)}.vcal__mini-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.4rem}.vcal__mini-name{font-weight:600;text-transform:capitalize}.vcal__mini-count{font-size:.7rem;color:var(--color-on-surface-variant)}.vcal__mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.vcal__mini-day{aspect-ratio:1 / 1;border-radius:2px;background:var(--color-surface-container)}.vcal__mini-day--out{background:transparent}.vcal__mini-day--available{background:#bbf7d0}.vcal__mini-day--pending{background:#fde68a}.vcal__mini-day--confirmed{background:#93c5fd}.vcal__mini-day--today{outline:1px solid var(--color-primary);outline-offset:-1px}@media(max-width:640px){.vcal__year{grid-template-columns:repeat(2,1fr)}}.calendar-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.calendar-dialog__title{margin:0}.calendar-dialog__sub{margin:.2rem 0 0;color:var(--color-on-surface-variant);font-size:.9rem}.calendar-dialog__close{padding:.25rem;min-width:0}.vcal__weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--color-on-surface-variant);padding-bottom:.25rem}.vcal__day{position:relative;min-height:2.75rem;border:1px solid var(--color-outline-variant);border-radius:.4rem;background:var(--color-surface);display:flex;align-items:flex-start;justify-content:flex-end;padding:.25rem .35rem;font:inherit;cursor:default}.vcal__day:not(:disabled){cursor:pointer}.vcal__day--out{visibility:hidden}.vcal__daynum{font-size:.8rem;color:var(--color-on-surface)}.vcal__day--available{background:#dcfce7;border-color:#86efac}.vcal__day--pending{background:#fef3c7;border-color:#fcd34d}.vcal__day--confirmed{background:#dbeafe;border-color:#93c5fd}.vcal__day--today{outline:2px solid var(--color-primary);outline-offset:-2px}.vcal__day--selected{box-shadow:0 0 0 2px var(--color-primary) inset}.vcal__dot{position:absolute;left:.35rem;bottom:.35rem;width:.45rem;height:.45rem;border-radius:999px}.vcal__dot--pending{background:#d97706}.vcal__dot--confirmed{background:#2563eb}.vcal__dot--available{background:#16a34a}.vcal__detail{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-outline-variant)}.vcal__detail-title{margin:0 0 .5rem;text-transform:capitalize}.vcal__booking{border-left:3px solid var(--color-outline-variant);padding:.5rem .75rem;margin-bottom:.5rem;background:var(--color-surface-container);border-radius:0 .5rem .5rem 0}.vcal__booking--confirmed{border-left-color:#2563eb}.vcal__booking--pending{border-left-color:#d97706}.vcal__booking-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.vcal__booking-name{font-weight:600}.vcal__booking-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem;color:var(--color-on-surface-variant);margin-top:.25rem}.vcal__booking-loc{display:inline-flex;align-items:center;gap:.2rem}.vcal__booking-loc .material-icons{font-size:1rem}.vcal__agenda{display:none;margin-top:1rem}.vcal__agenda-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.5rem .75rem;border-left:3px solid var(--color-outline-variant);background:var(--color-surface-container);border-radius:0 .5rem .5rem 0;margin-bottom:.5rem}.vcal__agenda-row--confirmed{border-left-color:#2563eb}.vcal__agenda-row--pending{border-left-color:#d97706}.vcal__agenda-dates{font-weight:600;min-width:8rem}.vcal__agenda-name{flex:1;color:var(--color-on-surface-variant)}.vcal__empty{color:var(--color-on-surface-variant);padding:.75rem 0}@media(max-width:640px){.vcal__agenda{display:block}.vcal__title{min-width:7rem;font-size:1rem}}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@keyframes spin{to{transform:rotate(360deg)}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial}}}
