@import "https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700;800&family=Sen:wght@400;500;600;700&display=swap";:root,[data-tf-theme]{--tf-font-display:"Jost", system-ui, sans-serif;--tf-font-body:"Sen", system-ui, sans-serif;--font-title:var(--tf-font-display);--font-body:var(--tf-font-body);--tf-space:.25rem;--tf-radius:14px;--tf-radius-sm:calc(var(--tf-radius) * .55);--tf-radius-lg:calc(var(--tf-radius) * 1.5);--tf-radius-pill:999px;--tf-ring:color-mix(in srgb, var(--tf-primary) 40%, transparent);--tf-ease:cubic-bezier(.2, .7, .2, 1);--tf-primary-soft:color-mix(in srgb, var(--tf-primary) 12%, var(--tf-surface));--tf-primary-tint:color-mix(in srgb, var(--tf-primary) 8%, var(--tf-surface));--tf-accent-soft:color-mix(in srgb, var(--tf-accent) 14%, var(--tf-surface));--tf-hairline:0 1px 0 #ffffff8c inset}:root,[data-tf-theme=lime]{--tf-bg:#f8f6e7;--tf-surface:#fff;--tf-elevated:#f0f2d9;--tf-ink:#222719;--tf-muted:#566049;--tf-faint:#8b9276;--tf-line:#e0e3c9;--tf-line-soft:#eef0db;--tf-primary:#74b30f;--tf-primary-deep:#4f7d10;--tf-accent:#fb5d2e;--tf-dough:#f2c14e;--tf-green:#4caf50;--tf-success:#4caf50;--tf-danger:#e8402b;--tf-radius:9px;--tf-shadow:0 18px 36px -16px #2832145c;--tf-atmo-1:#d8ec9a;--tf-atmo-2:#ffd98a}.tf-btn{--_pad-y:.62rem;--_pad-x:1.05rem;--_fs:.95rem;padding:var(--_pad-y) var(--_pad-x);font:inherit;font-family:var(--tf-font-display);font-size:var(--_fs);letter-spacing:0;color:var(--tf-ink);background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .14s var(--tf-ease), box-shadow .2s var(--tf-ease), background .2s var(--tf-ease), border-color .2s var(--tf-ease), color .2s var(--tf-ease);justify-content:center;align-items:center;gap:.5rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.tf-btn:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.tf-btn:active{transform:translateY(1px)}.tf-btn[data-disabled],.tf-btn:disabled,.tf-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.tf-btn--sm{--_pad-y:.42rem;--_pad-x:.7rem;--_fs:.82rem}.tf-btn--lg{--_pad-y:.8rem;--_pad-x:1.4rem;--_fs:1.05rem}.tf-btn--icon{--_pad-x:0;border-radius:var(--tf-radius);width:2.6rem;height:2.6rem}.tf-btn--block{width:100%;display:flex}.tf-btn--primary{color:#fff;background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary-deep) 86%, var(--tf-primary)), var(--tf-primary-deep));box-shadow:0 8px 18px -8px color-mix(in srgb, var(--tf-primary-deep) 80%, transparent), inset 0 1px 0 #ffffff47;border-color:#0000}.tf-btn--primary:hover{box-shadow:0 14px 26px -10px color-mix(in srgb, var(--tf-primary-deep) 75%, transparent), inset 0 1px 0 #ffffff52;transform:translateY(-1px)}.tf-btn--accent{color:#fff;background:linear-gradient(180deg, color-mix(in srgb, var(--tf-accent) 92%, #fff), var(--tf-accent));box-shadow:0 8px 18px -8px color-mix(in srgb, var(--tf-accent) 70%, transparent), inset 0 1px 0 #ffffff59;border-color:#0000}.tf-btn--accent:hover{transform:translateY(-1px)}.tf-btn--secondary{background:var(--tf-surface);color:var(--tf-ink)}.tf-btn--secondary:hover{background:var(--tf-elevated);border-color:color-mix(in srgb, var(--tf-primary) 35%, var(--tf-line))}.tf-btn--ghost{color:var(--tf-primary-deep);background:0 0;border-color:#0000}.tf-btn--ghost:hover{background:var(--tf-primary-soft)}.tf-field{gap:.32rem;display:grid}.tf-label{color:var(--tf-muted);letter-spacing:.01em;font-size:.82rem;font-weight:700}.tf-input,.tf-textarea{width:100%;font:inherit;color:var(--tf-ink);background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius);transition:border-color .18s var(--tf-ease), box-shadow .18s var(--tf-ease), background .18s var(--tf-ease);padding:.62rem .8rem}.tf-input::placeholder,.tf-textarea::placeholder{color:var(--tf-faint)}.tf-input:focus,.tf-textarea:focus{border-color:var(--tf-primary);box-shadow:0 0 0 3px var(--tf-ring);background:var(--tf-surface);outline:none}.tf-textarea{resize:vertical;min-height:4.5rem}.tf-hint{color:var(--tf-faint);font-size:.8rem}.tf-field[data-invalid] .tf-input,.tf-field[data-invalid] .tf-textarea{border-color:var(--tf-danger)}.tf-select__trigger{width:100%;font:inherit;color:var(--tf-ink);background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius);cursor:pointer;transition:border-color .18s var(--tf-ease), box-shadow .18s var(--tf-ease);justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .8rem;display:inline-flex}.tf-select__trigger:focus-visible{border-color:var(--tf-primary);box-shadow:0 0 0 3px var(--tf-ring);outline:none}.tf-select__trigger[data-expanded]{border-color:var(--tf-primary)}.tf-select__icon{color:var(--tf-faint);transition:transform .2s var(--tf-ease)}.tf-select__trigger[data-expanded] .tf-select__icon{transform:rotate(180deg)}.tf-select__placeholder{color:var(--tf-faint)}.tf-select__content{z-index:60;min-width:var(--kb-popper-anchor-width,12rem);max-width:min(var(--kb-popper-anchor-width,20rem), calc(100vw - 1.5rem));overscroll-behavior:contain;background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius);max-height:min(18rem,100dvh - 2rem);box-shadow:var(--tf-shadow), var(--tf-hairline);transform-origin:var(--kb-select-content-transform-origin);animation:tf-pop .16s var(--tf-ease);padding:.3rem;overflow-y:auto}.tf-select__content :where([role=listbox],ul,ol){margin:0;padding:0;list-style:none}.tf-select__item{border-radius:var(--tf-radius-sm);min-width:0;color:var(--tf-ink);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .55rem;display:flex}.tf-select__item--special{background:color-mix(in srgb, var(--tf-primary-soft) 58%, var(--tf-surface));border:1px solid color-mix(in srgb, var(--tf-primary) 42%, var(--tf-line-soft));color:var(--tf-primary-deep);margin-bottom:.18rem;font-weight:800}.tf-select__item>span:first-child{text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=620px){.tf-select__content{max-height:min(16rem,42dvh)}}.tf-select__item[data-highlighted]{background:var(--tf-primary-soft);color:var(--tf-primary-deep);outline:none}.tf-select__item[data-selected]{font-weight:700}.tf-select__item-indicator{color:var(--tf-primary)}@keyframes tf-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.tf-switch{cursor:pointer;align-items:center;gap:.6rem;display:inline-flex}.tf-switch__control{background:color-mix(in srgb, var(--tf-ink) 16%, var(--tf-elevated));border:1px solid var(--tf-line);width:2.6rem;height:1.5rem;transition:background .2s var(--tf-ease);border-radius:999px;padding:2px}.tf-switch__control[data-checked]{background:var(--tf-primary);border-color:#0000}.tf-switch__thumb{width:1.15rem;height:1.15rem;transition:transform .2s var(--tf-ease);background:#fff;border-radius:999px;display:block;box-shadow:0 2px 5px #00000040}.tf-switch__thumb[data-checked]{transform:translate(1.1rem)}.tf-check{cursor:pointer;align-items:center;gap:.55rem;display:inline-flex}.tf-check__control{border-radius:var(--tf-radius-sm);background:var(--tf-surface);border:1.5px solid var(--tf-line);color:#fff;width:1.3rem;height:1.3rem;transition:background .16s var(--tf-ease), border-color .16s var(--tf-ease);place-items:center;display:grid}.tf-check__control[data-checked]{background:var(--tf-primary);border-color:#0000}.tf-check__indicator{place-items:center;display:grid}.tf-radio-group{gap:.55rem;display:grid}.tf-radio{cursor:pointer;align-items:center;gap:.55rem;display:inline-flex}.tf-radio__control{background:var(--tf-surface);border:1.5px solid var(--tf-line);width:1.3rem;height:1.3rem;transition:border-color .16s var(--tf-ease);border-radius:999px;place-items:center;display:grid}.tf-radio__control[data-checked]{border-color:var(--tf-primary)}.tf-radio__control[data-checked]:after{content:"";background:var(--tf-primary);border-radius:999px;width:.66rem;height:.66rem}.tf-tabs__list{background:var(--tf-elevated);border:1px solid var(--tf-line);border-radius:var(--tf-radius-pill);gap:.15rem;padding:.28rem;display:inline-flex;position:relative}.tf-tab{z-index:1;color:var(--tf-muted);border-radius:var(--tf-radius-pill);cursor:pointer;transition:color .2s var(--tf-ease);padding:.45rem 1rem;font-size:.9rem;font-weight:700;position:relative}.tf-tab[data-selected]{color:var(--tf-primary-deep)}.tf-tabs__indicator{z-index:0;background:var(--tf-surface);border-radius:var(--tf-radius-pill);height:calc(100% - .56rem);box-shadow:0 4px 10px -4px #0003, var(--tf-hairline);transition:transform .25s var(--tf-ease), width .25s var(--tf-ease);position:absolute;top:.28rem}.tf-tooltip__content{z-index:60;color:var(--tf-surface);background:var(--tf-ink);border-radius:var(--tf-radius-sm);box-shadow:var(--tf-shadow);animation:tf-pop .14s var(--tf-ease);padding:.4rem .6rem;font-size:.82rem;font-weight:600}.tf-dialog__overlay{z-index:50;background:color-mix(in srgb, var(--tf-ink) 45%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:tf-fade .2s var(--tf-ease);position:fixed;inset:0}.tf-dialog__positioner{z-index:51;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.tf-dialog__content{background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius-lg);width:min(28rem,100%);box-shadow:var(--tf-shadow), var(--tf-hairline);animation:tf-pop .2s var(--tf-ease);padding:1.25rem}.tf-dialog__title{font-family:var(--tf-font-display);margin:0 0 .4rem;font-size:1.3rem}@keyframes tf-fade{0%{opacity:0}}.tf-notif-badge{color:#fff;background:var(--tf-accent);border:2px solid var(--tf-surface);border-radius:999px;justify-content:center;align-items:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;font-size:.7rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 2px 5px #0003}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--tf-ink);background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 12%, transparent), transparent 22rem), var(--tf-bg)}button,input,select,textarea{font:inherit}a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.notification-bell__panel,.map-layer-filter,.map-layer-filter__chip,.map-nav,.voice-command__button{color:canvastext;box-shadow:none;background:canvas;border-color:canvastext}.map-nav__side-action,.map-nav__add,.map-nav__add-glyph,.map-nav__add-label,.voice-command__button{color:buttontext;background:buttonface;border-color:buttontext}.voice-command__button:focus-visible{outline-offset:2px;outline:2px solid highlight}.voice-command__pulse{border-color:highlight}.voice-command__button[data-state=on]:after{background:highlight;box-shadow:0 0 0 3px canvas}}.eyebrow{color:var(--tf-primary-deep);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.72rem;font-weight:800}.entry-page{background:linear-gradient(140deg, color-mix(in srgb, var(--tf-primary) 14%, transparent), transparent 36%), linear-gradient(320deg, color-mix(in srgb, var(--tf-dough) 24%, transparent), transparent 42%), repeating-linear-gradient(135deg, color-mix(in srgb, var(--tf-line) 22%, transparent) 0, color-mix(in srgb, var(--tf-line) 22%, transparent) 1px, transparent 1px, transparent 18px), var(--tf-bg);place-items:center;min-height:100dvh;padding:clamp(1rem,4vw,2.25rem);display:grid}.entry-page--checking{background:var(--tf-bg)}.entry-card{text-align:center;border:1px solid color-mix(in srgb, var(--tf-line) 82%, transparent);border-radius:var(--tf-radius);background:linear-gradient(180deg, color-mix(in srgb, var(--tf-surface) 94%, var(--tf-elevated)), var(--tf-surface)), var(--tf-surface);width:min(100%,34rem);box-shadow:var(--tf-shadow);justify-items:center;padding:clamp(1.35rem,5vw,2.6rem);display:grid;position:relative;overflow:hidden}.entry-card:before{content:"";background:linear-gradient(90deg, var(--tf-primary), var(--tf-dough), var(--tf-accent));height:.45rem;position:absolute;inset:0 0 auto}.entry-card__logo-wrap{border:1px solid color-mix(in srgb, var(--tf-line) 72%, transparent);border-radius:var(--tf-radius);background:linear-gradient(180deg, color-mix(in srgb, var(--tf-dough) 20%, #fff), #fff), var(--tf-surface);width:clamp(4.6rem,18vw,6rem);height:clamp(4.6rem,18vw,6rem);animation:tf-ui-wiggle-enter 2s var(--tf-ease) both;place-items:center;margin:.45rem 0 1rem;display:grid;box-shadow:inset 0 1px #ffffffbf,0 .7rem 1.4rem #2227191f}.entry-card__logo{object-fit:contain;width:68%;height:68%}.entry-card__app{font-family:var(--font-title);color:var(--tf-ink);margin:0;font-size:clamp(2.05rem,7vw,3.3rem);font-weight:850;line-height:.95}.entry-card__headline{font-family:var(--font-title);color:var(--tf-primary-deep);margin:clamp(1.2rem,4vw,1.65rem) 0 0;font-size:clamp(1.15rem,4vw,1.65rem);font-weight:850;line-height:1.05}.entry-card__names{max-width:27rem;font-family:var(--font-body);color:color-mix(in srgb, var(--tf-muted) 82%, var(--tf-faint));margin:.45rem 0 0;font-size:clamp(.88rem,2.9vw,1.02rem);font-weight:500;line-height:1.45}.entry-card__meter{background:color-mix(in srgb, var(--tf-line) 72%, transparent);border-radius:999px;width:min(100%,18rem);height:.38rem;margin-top:clamp(1.2rem,4vw,1.8rem);overflow:hidden}.entry-card__meter>span{border-radius:inherit;background:linear-gradient(90deg, var(--tf-primary), var(--tf-dough));transform-origin:0;width:100%;height:100%;animation:8s linear forwards entry-meter;display:block;transform:scaleX(0)}@keyframes entry-meter{to{transform:scaleX(1)}}@keyframes tf-ui-wiggle-enter{0%{opacity:0;transform:translateY(.45rem)scale(.92)rotate(-4deg)}14%{opacity:1;transform:translateY(-.08rem)scale(1.05)rotate(3deg)}28%{transform:translateY(0)scale(.99)rotate(-2.6deg)}42%{transform:translateY(-.04rem)scale(1.02)rotate(1.8deg)}58%{transform:translateY(0)scale(1)rotate(-1deg)}74%{transform:translateY(0)scale(1.005)rotate(.45deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}.map-page__logo-mark,.map-layer-filter__chip,.map-page__nav-icon,.map-nav__side-action svg,.map-nav__add-glyph,.map-nav__voice-slot .voice-command__button,.map-page__placing-banner svg,.presence-pin,.bathroom-pin{animation:tf-ui-wiggle-enter 2s var(--tf-ease) both;animation-delay:var(--tf-wiggle-delay,0s);transform-origin:50%}.map-layer-filter__chip:first-child{--tf-wiggle-delay:80ms}.map-layer-filter__chip:nth-child(2){--tf-wiggle-delay:.16s}.map-page__actions .map-page__nav-icon:nth-child(2),.map-page__auth .map-page__nav-icon:nth-child(2){--tf-wiggle-delay:.12s}.map-page__actions .map-page__nav-icon:nth-child(3),.map-page__auth .map-page__nav-icon:nth-child(3){--tf-wiggle-delay:.2s}.map-nav__side-action svg{--tf-wiggle-delay:.12s}.map-nav__add-glyph{--tf-wiggle-delay:.2s}.map-nav__voice-slot .voice-command__button{--tf-wiggle-delay:.28s}.map-page{background:var(--tf-bg);grid-template-rows:auto minmax(0,1fr);min-height:100dvh;display:grid}.map-page__bar{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--tf-line) 78%, transparent);background:color-mix(in srgb, var(--tf-surface) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);align-items:center;gap:.55rem;min-height:4.25rem;padding:.75rem clamp(.85rem,2vw,1.5rem);display:flex;position:relative;box-shadow:0 1px #ffffff6b}.map-page__brand{grid-template-columns:2.25rem minmax(0,1fr);align-items:center;gap:.55rem;min-width:12rem;display:inline-grid}.map-page__logo-mark{width:2.25rem;height:2.25rem;display:block}.map-page__brand-copy{gap:.05rem;min-width:0;display:grid}.map-page__brand strong{font-family:var(--font-title);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1;overflow:hidden}.map-page__brand-copy>span{color:var(--tf-muted);font-size:.86rem}.map-page__auth{justify-content:flex-end;align-items:center;gap:.55rem;min-width:0;margin-left:0;display:inline-flex}.map-page__actions{justify-content:flex-end;align-items:center;gap:.55rem;min-width:0;margin-left:auto;display:inline-flex}.map-page__nav-icon{flex:none;justify-content:center;align-items:center;width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem;padding:0;line-height:1;display:inline-flex;position:relative}.map-page__tools-toggle{margin-left:0}.map-layer-filter{border:1px solid color-mix(in srgb, var(--tf-line) 82%, transparent);background:color-mix(in srgb, var(--tf-elevated) 76%, transparent);border-radius:999px;align-items:center;gap:.22rem;padding:.22rem;display:inline-flex;box-shadow:inset 0 1px #ffffff57}.map-layer-filter__chip{border:1px solid color-mix(in srgb, var(--tf-line) 78%, transparent);width:2.2rem;height:2.2rem;color:var(--tf-muted);background:color-mix(in srgb, var(--tf-surface) 88%, transparent);opacity:.62;cursor:pointer;transition:border-color .18s var(--tf-ease), color .18s var(--tf-ease), background .18s var(--tf-ease), opacity .18s var(--tf-ease), box-shadow .18s var(--tf-ease);border-radius:999px;place-items:center;padding:0;display:grid;position:relative;box-shadow:inset 0 1px #ffffff61}.map-layer-filter__chip:hover{color:var(--tf-ink);border-color:color-mix(in srgb, var(--tf-primary) 28%, var(--tf-line));background:color-mix(in srgb, var(--tf-primary) 7%, var(--tf-surface));opacity:.82}.map-layer-filter__chip--active{color:#fff;border-color:color-mix(in srgb, var(--tf-primary-deep) 78%, var(--tf-primary));background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 88%, #fff), var(--tf-primary-deep));opacity:1;box-shadow:inset 0 1px 0 #ffffff61, 0 7px 18px -10px color-mix(in srgb, var(--tf-primary-deep) 82%, transparent)}.map-layer-filter__chip--active:hover{color:#fff;border-color:color-mix(in srgb, var(--tf-primary-deep) 78%, var(--tf-primary));background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 88%, #fff), var(--tf-primary-deep));opacity:1}.map-layer-filter__chip:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.map-layer-filter__chip--active:focus-visible{box-shadow:0 0 0 3px var(--tf-ring), inset 0 1px 0 #ffffff61, 0 7px 18px -10px color-mix(in srgb, var(--tf-primary-deep) 82%, transparent)}.map-layer-filter__chip svg{width:1.25rem;height:1.25rem}.map-layer-filter__badge{border:2px solid var(--tf-surface);color:#fff;background:var(--tf-accent);min-width:.95rem;height:.95rem;font-family:var(--tf-font-display);border-radius:999px;justify-content:center;align-items:center;padding:0 .22rem;font-size:.58rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:-.2rem;right:-.16rem}.map-layer-filter__chip:not(.map-layer-filter__chip--active) .map-layer-filter__badge{color:color-mix(in srgb, var(--tf-muted) 86%, white);background:color-mix(in srgb, var(--tf-muted) 72%, white)}.map-page__nav-icon svg{width:1rem;height:1rem}.notification-bell{flex:none;display:inline-flex;position:relative}.notification-bell__badge{position:absolute;top:-.38rem;right:-.44rem}.notification-bell__panel{z-index:60;border:1px solid color-mix(in srgb, var(--tf-line) 86%, transparent);background:color-mix(in srgb, var(--tf-surface) 96%, transparent);width:min(22rem,100vw - 2rem);max-height:min(27rem,100vh - 7rem);box-shadow:var(--tf-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px;gap:.55rem;padding:.7rem;display:grid;position:absolute;top:calc(100% + .55rem);right:0;overflow:auto}.notification-bell__header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.notification-bell__header strong{font-size:.92rem}.notification-bell__close{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);width:1.8rem;height:1.8rem;color:var(--tf-ink);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:grid}.notification-bell__close:hover{background:color-mix(in srgb, var(--tf-accent) 18%, var(--tf-surface))}.notification-bell__close svg{width:1rem;height:1rem}.notification-bell__read{border:1px solid var(--tf-line-soft);color:var(--tf-primary-deep);background:color-mix(in srgb, var(--tf-primary) 9%, var(--tf-surface));cursor:pointer;border-radius:8px;justify-self:start;padding:.3rem .55rem;font-size:.78rem;font-weight:800}.notification-bell__read:disabled{cursor:wait;opacity:.68}.notification-bell__message,.notification-bell__empty{color:var(--tf-muted);margin:0;font-size:.82rem}.notification-bell__list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.notification-bell__item{border:1px solid color-mix(in srgb, var(--tf-line-soft) 82%, transparent);background:color-mix(in srgb, var(--tf-elevated) 58%, var(--tf-surface));border-radius:8px}.notification-bell__item--unread{border-color:color-mix(in srgb, var(--tf-primary) 32%, var(--tf-line));background:color-mix(in srgb, var(--tf-primary) 8%, var(--tf-surface))}.notification-bell__item-link{min-height:3.4rem;color:inherit;grid-template-columns:1.9rem minmax(0,1fr);align-items:start;gap:.6rem;padding:.55rem;text-decoration:none;display:grid}.notification-bell__item-link:hover{background:color-mix(in srgb, var(--tf-accent) 13%, transparent)}.notification-bell__item-icon{border:1px solid color-mix(in srgb, var(--tf-line-soft) 80%, transparent);width:1.9rem;height:1.9rem;color:var(--tf-primary-deep);background:color-mix(in srgb, var(--tf-primary) 10%, var(--tf-surface));border-radius:8px;place-items:center;display:grid}.notification-bell__item-icon svg{width:1rem;height:1rem}.notification-bell__item-copy{gap:.1rem;min-width:0;display:grid}.notification-bell__item-copy strong{overflow-wrap:anywhere;font-size:.84rem;line-height:1.24}.notification-bell__item-kind,.notification-bell__item-copy time{color:var(--tf-muted);font-size:.72rem}.map-page__canvas{--dock-w:clamp(15rem, 28vw, 22rem);background:color-mix(in srgb, var(--tf-primary) 9%, #dcebd9);min-height:28rem;position:relative;overflow:hidden}.map-page__canvas .maplibregl-map,.map-page__map{inset:0 var(--dock-w,0) 0 0;position:absolute}.map-page__canvas .maplibregl-ctrl-group{border:1px solid var(--tf-line);box-shadow:var(--tf-shadow);border-radius:8px;overflow:hidden}.map-page__loading{z-index:1;color:var(--tf-muted);background:linear-gradient(90deg, transparent, #ffffff5c, transparent), color-mix(in srgb, var(--tf-primary) 11%, var(--tf-bg));place-items:center;display:grid;position:absolute;inset:0}.map-page__canvas--placing .maplibregl-canvas-container,.map-page__canvas--placing .maplibregl-canvas{cursor:crosshair}.place-dock{z-index:9;width:var(--dock-w,22rem);border-left:1px solid color-mix(in srgb, var(--tf-line) 82%, transparent);background:color-mix(in srgb, var(--tf-surface) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-direction:column;min-height:0;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-18px 0 36px -28px #28321466}.place-dock__handle{display:none}.place-dock__bar{align-items:center;gap:.6rem;padding:.95rem 1rem .7rem;display:flex}.place-dock__titles{gap:.08rem;min-width:0;display:grid}.place-dock__eyebrow{color:var(--tf-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:800}.place-dock__title{color:var(--tf-ink);font-family:var(--font-title);margin:0;font-size:1.18rem;line-height:1.05}.place-dock__close{display:none}.place-dock__search{padding:0 1rem .55rem}.place-dock__search-input{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);border-radius:var(--tf-radius);width:100%;color:var(--tf-ink);background:var(--tf-surface);font:inherit;padding:.5rem .75rem;font-size:.88rem}.place-dock__search-input::placeholder{color:var(--tf-faint)}.place-dock__search-input:focus-visible{border-color:color-mix(in srgb, var(--tf-primary) 55%, transparent);box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-dock__scroll{overscroll-behavior:contain;min-height:0;padding:.2rem .7rem calc(.9rem + env(safe-area-inset-bottom));flex:1;align-content:start;gap:.85rem;display:grid;overflow-y:auto}.place-dock__section{gap:.4rem;min-width:0;display:grid}.place-dock__section-title{color:var(--tf-ink);font-family:var(--font-title);margin:0;padding:0 .3rem;font-size:.95rem}.place-dock__group{color:var(--tf-faint);letter-spacing:.04em;text-transform:uppercase;margin:.25rem 0 0;padding:0 .3rem;font-size:.7rem;font-weight:800}.place-dock__list{gap:.4rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.place-dock__empty{border:1px dashed color-mix(in srgb, var(--tf-line) 88%, transparent);border-radius:var(--tf-radius);color:var(--tf-muted);background:color-mix(in srgb, var(--tf-elevated) 48%, transparent);margin:0;padding:.6rem .7rem;font-size:.82rem}.place-row{--row-accent:var(--tf-primary);border:1px solid color-mix(in srgb, var(--tf-line) 84%, transparent);border-left:3px solid var(--row-accent);border-radius:var(--tf-radius);background:var(--tf-surface);min-width:0;transition:border-color .18s var(--tf-ease,ease);overflow:hidden}.place-row--open{border-color:color-mix(in srgb, var(--row-accent) 38%, var(--tf-line));box-shadow:0 10px 22px -18px #28321480}.place-row--selected{outline:2px solid color-mix(in srgb, var(--row-accent) 50%, transparent);outline-offset:1px}.place-row__head{width:100%;min-height:2.75rem;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.85rem minmax(0,1fr) auto;align-items:center;gap:.55rem;margin:0;padding:.4rem .6rem;display:grid}.place-row__head:hover{background:color-mix(in srgb, var(--row-accent) 7%, transparent)}.place-row__head:focus-visible{outline:2px solid var(--row-accent);outline-offset:-2px}.place-row__chip{color:#fff;background:var(--row-accent);place-items:center;width:1.85rem;height:1.85rem;display:grid;box-shadow:inset 0 1px #ffffff42}.place-row--puesto .place-row__chip{border-radius:999px}.place-row--bano .place-row__chip{border-radius:8px}.place-row__chip svg{width:1.02rem;height:1.02rem}.place-row__id{gap:.08rem;min-width:0;display:grid}.place-row__name{min-width:0;color:var(--tf-ink);font-family:var(--font-title);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:700;line-height:1.12;overflow:hidden}.place-row__status{min-width:0;color:var(--tf-muted);align-items:center;gap:.34rem;font-size:.74rem;font-weight:700;display:inline-flex}.place-row__status[data-status=open]{color:color-mix(in srgb, var(--tf-green) 68%, black)}.place-row__status[data-status=closed]{color:color-mix(in srgb, var(--tf-danger) 78%, black)}.place-row__pulse{background:var(--row-accent);border-radius:999px;flex:none;width:.42rem;height:.42rem}.place-row__caret{width:1.1rem;height:1.1rem;color:var(--tf-faint);transition:transform .18s var(--tf-ease,ease)}.place-row--open .place-row__caret{color:var(--row-accent);transform:rotate(180deg)}.place-row__body{gap:.5rem;padding:.15rem .7rem .7rem 2.95rem;display:grid}.place-row__meter{background:color-mix(in srgb, var(--tf-line-soft) 88%, transparent);border-radius:999px;width:min(12rem,100%);height:.34rem;overflow:hidden}.place-row__meter span{width:var(--pct,0%);border-radius:inherit;background:var(--row-accent);height:100%;display:block}.place-row__note,.place-row__access{min-width:0;color:var(--tf-muted);overflow-wrap:anywhere;margin:0;font-size:.82rem;line-height:1.4}.place-row__muted{color:var(--tf-faint);margin:0;font-size:.8rem;font-style:italic}.place-row__tags{flex-wrap:wrap;gap:.35rem;min-width:0;display:flex}.place-row__tag{border:1px solid color-mix(in srgb, var(--tf-line-soft) 90%, transparent);max-width:100%;color:var(--tf-muted);background:color-mix(in srgb, var(--tf-elevated) 62%, transparent);border-radius:999px;align-items:center;gap:.28rem;padding:.24rem .5rem;font-size:.72rem;font-weight:800;display:inline-flex}.place-row__tag svg{flex:none;width:.82rem;height:.82rem}.place-row__tag[data-condition=clean]{color:color-mix(in srgb, var(--tf-green) 72%, black);background:color-mix(in srgb, var(--tf-green) 12%, var(--tf-surface))}.place-row__tag[data-condition=dirty]{color:color-mix(in srgb, var(--tf-danger) 78%, black);background:color-mix(in srgb, var(--tf-danger) 10%, var(--tf-surface))}.place-row__access{align-items:flex-start;gap:.38rem;display:flex}.place-row__access svg{width:.9rem;height:.9rem;color:var(--tf-primary-deep);flex:none;margin-top:.06rem}.place-row--puesto{--row-accent:color-mix(in srgb, var(--tf-dough) 82%, black)}.place-row--puesto[data-confidence=fresh]{--row-accent:var(--tf-accent)}.place-row--puesto[data-confidence=stale]{--row-accent:var(--tf-faint)}.place-row--bano[data-status=open]{--row-accent:var(--tf-green)}.place-row--bano[data-status=closed]{--row-accent:var(--tf-danger)}.place-row__login{font-family:var(--tf-font-display);color:var(--tf-primary-deep);justify-self:start;font-size:.82rem;font-weight:700;text-decoration:none}.place-row__login:hover{text-decoration:underline}.place-row__actions{grid-template-columns:1fr 1fr auto;gap:.35rem;display:grid}.place-row__act{min-height:2.2rem;font-family:var(--tf-font-display);color:var(--tf-ink);background:var(--tf-surface);border:1px solid var(--tf-line);border-radius:var(--tf-radius);cursor:pointer;transition:transform .12s var(--tf-ease), background .18s var(--tf-ease), border-color .18s var(--tf-ease), color .18s var(--tf-ease);justify-content:center;align-items:center;gap:.28rem;padding:.34rem .45rem;font-size:.8rem;font-weight:700;display:inline-flex}.place-row__act svg{width:.96rem;height:.96rem}.place-row__act:active{transform:translateY(1px)}.place-row__act--yes:hover{color:#fff;background:var(--tf-primary);border-color:#0000}.place-row__act--no:hover{color:color-mix(in srgb, var(--tf-danger) 82%, black);background:color-mix(in srgb, var(--tf-danger) 9%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-danger) 42%, var(--tf-line))}.place-row__act--remove{color:color-mix(in srgb, var(--tf-danger) 78%, black);grid-column:3;padding:.34rem}.place-row__act--remove:hover{background:color-mix(in srgb, var(--tf-danger) 12%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-danger) 40%, var(--tf-line))}.place-row__comments{overscroll-behavior:contain;border-top:1px solid var(--tf-line-soft);gap:.28rem;max-height:11rem;padding-top:.1rem;display:grid;overflow-y:auto}.place-row__comment{min-width:0;color:var(--tf-muted);overflow-wrap:anywhere;margin:0;font-size:.82rem;line-height:1.4}.place-row__comment-author{color:var(--tf-ink);font-weight:700;text-decoration:none}.place-row__comment-author:hover{text-decoration:underline}.place-row__comment-form{grid-template-columns:minmax(0,1fr) auto;gap:.4rem;display:grid}.place-row__comment-input{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);border-radius:var(--tf-radius);width:100%;color:var(--tf-ink);background:var(--tf-surface);font:inherit;padding:.44rem .6rem;font-size:.84rem}.place-row__comment-input::placeholder{color:var(--tf-faint)}.place-row__comment-input:focus-visible{border-color:color-mix(in srgb, var(--tf-primary) 55%, transparent);box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-row__comment-send{font-family:var(--tf-font-display);color:#fff;background:var(--tf-primary);border-radius:var(--tf-radius);cursor:pointer;transition:background .18s var(--tf-ease), opacity .18s var(--tf-ease);border:1px solid #0000;padding:.44rem .8rem;font-size:.82rem;font-weight:700}.place-row__comment-send:hover:not(:disabled){background:var(--tf-primary-deep)}.place-row__comment-send:disabled{opacity:.5;cursor:not-allowed}.place-row__bano-form{gap:.5rem;display:grid}.place-row__conditions{flex-wrap:wrap;gap:.34rem;display:flex}.place-row__condition{border:1px solid color-mix(in srgb, var(--tf-line-soft) 90%, transparent);border-radius:var(--tf-radius-pill);color:var(--tf-muted);background:color-mix(in srgb, var(--tf-elevated) 62%, transparent);font-family:var(--tf-font-display);cursor:pointer;transition:color .16s var(--tf-ease), background .16s var(--tf-ease), border-color .16s var(--tf-ease);padding:.32rem .66rem;font-size:.74rem;font-weight:800}.place-row__condition:hover{border-color:color-mix(in srgb, var(--tf-line) 80%, transparent)}.place-row__condition[data-condition=clean][aria-pressed=true]{color:color-mix(in srgb, var(--tf-green) 72%, black);background:color-mix(in srgb, var(--tf-green) 18%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-green) 45%, transparent)}.place-row__condition[data-condition=dirty][aria-pressed=true]{color:color-mix(in srgb, var(--tf-danger) 78%, black);background:color-mix(in srgb, var(--tf-danger) 16%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-danger) 42%, transparent)}.place-row__condition[aria-pressed=true]{color:var(--tf-ink);background:color-mix(in srgb, var(--tf-primary) 16%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-primary) 45%, transparent)}.place-row__condition:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-dock__section-head{justify-content:space-between;align-items:center;gap:.5rem;padding:0 .3rem;display:flex}.place-dock__section-head .place-dock__section-title{padding:0}.place-dock__add{border:1px solid color-mix(in srgb, var(--tf-primary) 38%, transparent);border-radius:var(--tf-radius-pill);color:color-mix(in srgb, var(--tf-primary-deep) 85%, #000);background:color-mix(in srgb, var(--tf-primary) 12%, var(--tf-surface));font-family:var(--tf-font-display);cursor:pointer;transition:background .16s var(--tf-ease), border-color .16s var(--tf-ease);align-items:center;gap:.3rem;padding:.28rem .6rem;font-size:.74rem;font-weight:800;display:inline-flex}.place-dock__add svg{width:.85rem;height:.85rem}.place-dock__add:hover{background:color-mix(in srgb, var(--tf-primary) 18%, var(--tf-surface))}.place-dock__add:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-dock__create{border:1px solid color-mix(in srgb, var(--tf-line) 84%, transparent);border-radius:var(--tf-radius);background:color-mix(in srgb, var(--tf-elevated) 50%, transparent);gap:.5rem;padding:.6rem;display:grid}.place-dock__create-form{gap:.5rem;display:grid}.place-dock__field-label{color:var(--tf-faint);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:800}.place-row__cta{border:1px solid color-mix(in srgb, var(--tf-line) 80%, transparent);border-radius:var(--tf-radius);width:100%;color:var(--tf-ink);background:var(--tf-surface);font-family:var(--tf-font-display);cursor:pointer;transition:background .16s var(--tf-ease), border-color .16s var(--tf-ease), opacity .16s var(--tf-ease);justify-content:center;align-items:center;gap:.4rem;padding:.5rem .7rem;font-size:.82rem;font-weight:800;display:inline-flex}.place-row__cta svg{width:1rem;height:1rem}.place-row__cta:hover:not(:disabled){border-color:color-mix(in srgb, var(--tf-primary) 45%, var(--tf-line));background:color-mix(in srgb, var(--tf-primary) 8%, var(--tf-surface))}.place-row__cta:disabled{opacity:.55;cursor:not-allowed}.place-row__cta:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-row__cta--accent{color:#fff;background:color-mix(in srgb, var(--tf-primary-deep) 92%, #000);border-color:#0000}.place-row__cta--accent:hover:not(:disabled){background:color-mix(in srgb, var(--tf-primary-deep) 78%, #000);border-color:#0000}.place-row__cta--ghost{color:var(--tf-danger);background:color-mix(in srgb, var(--tf-danger) 8%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-danger) 32%, transparent)}.place-row__cta--ghost:hover:not(:disabled){background:color-mix(in srgb, var(--tf-danger) 14%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-danger) 32%, transparent)}.place-row__review{border-top:1px solid color-mix(in srgb, var(--tf-line) 70%, transparent);gap:.5rem;padding-top:.6rem;display:grid}.place-row__review-head{color:var(--tf-muted);font-family:var(--tf-font-display);align-items:center;gap:.35rem;font-size:.78rem;font-weight:800;display:inline-flex}.place-row__review-head svg{width:.9rem;height:.9rem;color:var(--tf-accent)}.place-row__ratings{gap:.2rem;display:inline-flex}.place-row__rating{color:color-mix(in srgb, var(--tf-faint) 70%, transparent);cursor:pointer;transition:color .14s var(--tf-ease), transform .14s var(--tf-ease);background:0 0;border:0;padding:.2rem;display:inline-flex}.place-row__rating svg{width:1.15rem;height:1.15rem}.place-row__rating:hover{transform:translateY(-1px)}.place-row__rating--on{color:var(--tf-accent)}.place-row__rating:focus-visible{border-radius:var(--tf-radius);box-shadow:0 0 0 3px var(--tf-ring);outline:none}.place-row__textarea{resize:vertical;min-height:3.4rem;line-height:1.4}.voice-command{place-items:center;display:grid;position:relative}.voice-command__button{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);width:2.75rem;height:2.75rem;color:var(--tf-ink);background:color-mix(in srgb, var(--tf-surface) 96%, transparent);box-shadow:var(--tf-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:grid;position:relative}.voice-command__button:hover,.voice-command__button:focus-visible,.voice-command__button[aria-pressed=true],.voice-command__button[data-state=on]{color:var(--tf-primary-deep);border-color:color-mix(in srgb, var(--tf-primary) 44%, var(--tf-line));background:color-mix(in srgb, var(--tf-primary) 12%, var(--tf-surface))}.voice-command__button[data-state=on]:after{content:"";background:var(--tf-primary);width:.48rem;height:.48rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--tf-primary) 18%, transparent);border-radius:999px;position:absolute;top:.42rem;right:.42rem}.voice-command__button svg{width:1.1rem;height:1.1rem}.voice-command__pulse{border:2px solid color-mix(in srgb, var(--tf-primary) 58%, transparent);pointer-events:none;border-radius:10px;position:absolute;inset:-.18rem}.voice-command__pulse--listening{animation:1.4s ease-out infinite voice-command-pulse}@keyframes voice-command-pulse{0%{opacity:.85;transform:scale(.96)}70%,to{opacity:0;transform:scale(1.12)}}.map-nav{bottom:1rem;left:calc(50% - var(--dock-w,0px) / 2);z-index:11;border:1px solid color-mix(in srgb, var(--tf-line) 86%, transparent);border-radius:var(--tf-radius-pill);background:color-mix(in srgb, var(--tf-surface) 90%, transparent);box-shadow:var(--tf-shadow), var(--tf-hairline);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.4rem .7rem;display:grid;position:absolute;transform:translate(-50%)}.map-nav__side-action,.map-nav__voice-slot{border-radius:var(--tf-radius);min-width:4.35rem;color:var(--tf-muted);background:0 0;border:0;justify-items:center;gap:.18rem;padding:.34rem .6rem;display:grid}.map-nav__side-action{cursor:pointer;transition:color .18s var(--tf-ease), background .18s var(--tf-ease);grid-column:1}.map-nav__side-action:not(:disabled):hover{color:var(--tf-ink)}.map-nav__side-action:disabled{cursor:not-allowed;opacity:.58}.map-nav__side-action:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.map-nav__side-action svg{width:1.5rem;height:1.5rem}.map-nav__label{font-family:var(--tf-font-display);letter-spacing:.01em;font-size:.72rem;font-weight:700}.map-nav__add{cursor:pointer;background:0 0;border:0;grid-column:2;align-content:center;justify-items:center;gap:.14rem;padding:0;display:grid}.map-nav__add-glyph{color:#fff;border:3px solid var(--tf-surface);background:linear-gradient(180deg, color-mix(in srgb, var(--tf-accent) 90%, #fff), var(--tf-accent));width:3.15rem;height:3.15rem;box-shadow:0 12px 24px -8px color-mix(in srgb, var(--tf-accent) 62%, transparent), inset 0 1px 0 #ffffff73;transition:transform .18s var(--tf-ease), box-shadow .2s var(--tf-ease), background .2s var(--tf-ease);border-radius:999px;place-items:center;margin-top:-1.7rem;display:grid}.map-nav__add-glyph svg{width:1.6rem;height:1.6rem;transition:transform .24s var(--tf-ease)}.map-nav__add:hover .map-nav__add-glyph{transform:translateY(-2px)scale(1.03)}.map-nav__add:active .map-nav__add-glyph{transform:translateY(0)scale(.97)}.map-nav__add:focus-visible{outline:none}.map-nav__add:focus-visible .map-nav__add-glyph{box-shadow:0 0 0 3px var(--tf-ring), inset 0 1px 0 #ffffff73}.map-nav__add--active .map-nav__add-glyph{background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 88%, #fff), var(--tf-primary-deep))}.map-nav__add--active .map-nav__add-glyph svg{transform:rotate(45deg)}.map-nav__add-label{font-family:var(--tf-font-display);letter-spacing:.01em;color:var(--tf-accent);transition:color .2s var(--tf-ease);font-size:.72rem;font-weight:700}.map-nav__add--active .map-nav__add-label{color:var(--tf-primary-deep)}.map-nav__voice-slot{grid-column:3;align-content:center;padding:0}.map-nav__voice-slot .voice-command__button{border-radius:var(--tf-radius);width:2.65rem;height:2.65rem;box-shadow:none}.map-nav__voice-slot .voice-command__pulse{border-radius:calc(var(--tf-radius) + 2px)}.map-page__placing-banner,.map-page__hint{z-index:6;max-width:min(34rem,100% - 2rem);box-shadow:var(--tf-shadow);text-align:center;border-radius:8px;position:absolute;left:50%;transform:translate(-50%)}.map-page__placing-banner{border:1px solid color-mix(in srgb, var(--tf-dough) 55%, var(--tf-line));color:var(--tf-ink);background:color-mix(in srgb, var(--tf-dough) 42%, var(--tf-surface));justify-content:center;align-items:center;gap:.45rem;padding:.65rem 1rem;display:inline-flex;top:1rem}.map-page__placing-banner svg{flex:none;width:1rem;height:1rem}.map-page__hint{color:#fff;background:color-mix(in srgb, var(--tf-danger) 82%, black);cursor:pointer;padding:.65rem 1rem;bottom:6.5rem}@keyframes tf-status-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--dot) 55%, transparent)}70%,to{box-shadow:0 0 0 .5rem #0000}}.presence-pin,.bathroom-pin{--iconPrimary:currentColor;appearance:none;width:2.35rem;height:2.35rem;color:var(--pin-fg,white);background:var(--pin-bg);box-shadow:0 0 0 6px var(--pin-ring), 0 8px 18px #1a304066;cursor:pointer;touch-action:manipulation;border:3px solid #fff;place-items:center;padding:0;display:grid}.presence-pin{--pin-bg:color-mix(in srgb, var(--tf-dough) 78%, black);--pin-ring:color-mix(in srgb, var(--tf-dough) 30%, transparent);border-radius:999px}.presence-pin[data-confidence=fresh]{--pin-bg:color-mix(in srgb, var(--tf-accent) 86%, black);--pin-ring:color-mix(in srgb, var(--tf-accent) 30%, transparent)}.presence-pin[data-confidence=fading]{--pin-bg:color-mix(in srgb, var(--tf-dough) 78%, black);--pin-ring:color-mix(in srgb, var(--tf-dough) 30%, transparent)}.presence-pin[data-confidence=stale]{--pin-bg:color-mix(in srgb, var(--tf-muted) 82%, black);--pin-ring:color-mix(in srgb, var(--tf-muted) 30%, transparent)}.bathroom-pin{--pin-bg:color-mix(in srgb, var(--tf-primary) 84%, black);--pin-ring:color-mix(in srgb, var(--tf-primary) 27%, transparent);border-radius:10px}.bathroom-pin[data-status=open]{--pin-bg:color-mix(in srgb, var(--tf-green) 78%, black);--pin-ring:color-mix(in srgb, var(--tf-green) 28%, transparent)}.bathroom-pin[data-status=closed]{--pin-bg:color-mix(in srgb, var(--tf-danger) 74%, black);--pin-ring:color-mix(in srgb, var(--tf-danger) 24%, transparent)}.presence-pin svg,.bathroom-pin svg{pointer-events:none;width:1.18rem;height:1.18rem}.presence-pin:hover,.bathroom-pin:hover{filter:saturate(1.12)brightness(1.04)}.presence-pin:focus-visible,.bathroom-pin:focus-visible{outline:3px solid color-mix(in srgb, var(--tf-accent) 80%, white);outline-offset:3px}.admin-page,.owner-page{background:linear-gradient(90deg, color-mix(in srgb, var(--tf-line) 52%, transparent) 1px, transparent 1px) 0 0 / 3rem 3rem, linear-gradient(180deg, color-mix(in srgb, var(--tf-dough) 15%, var(--tf-bg)), color-mix(in srgb, var(--tf-primary) 6%, var(--tf-bg)) 30rem, var(--tf-bg));min-height:100vh}.admin-shell,.owner-shell{flex-direction:column;gap:1rem;width:min(1180px,100% - 2rem);margin:0 auto;padding:clamp(1rem,3vw,2rem) 0 3.5rem;display:flex}.admin-header,.owner-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 1.5rem;padding:.4rem 0 .2rem;display:flex}.admin-header__intro,.owner-header__intro{max-width:46rem}.admin-header h1,.owner-header h1{font-family:var(--font-title);letter-spacing:-.01em;margin:.15rem 0 0;font-size:clamp(2.1rem,5vw,3.3rem);line-height:.97}.admin-header__intro p:not(.eyebrow),.owner-header__intro p:not(.eyebrow){max-width:40rem;color:color-mix(in srgb, var(--tf-muted) 88%, var(--tf-ink));margin:.55rem 0 0;font-size:1.02rem;line-height:1.45}.admin-header__nav,.owner-header__nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-header__user,.owner-header__user{max-width:13rem;color:var(--tf-muted);white-space:nowrap;text-overflow:ellipsis;margin-right:.1rem;font-size:.84rem;overflow:hidden}.admin-panel,.owner-card,.owner-empty-state{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);border-radius:var(--tf-radius);background:color-mix(in srgb, var(--tf-surface) 94%, transparent);box-shadow:var(--tf-shadow)}.admin-attention{border:1px solid color-mix(in srgb, var(--tf-line) 86%, transparent);border-radius:var(--tf-radius);background:linear-gradient(180deg, color-mix(in srgb, var(--tf-dough) 13%, var(--tf-surface)), var(--tf-surface));box-shadow:var(--tf-shadow);padding:clamp(.95rem,2vw,1.3rem)}.admin-attention__head{margin-bottom:.85rem}.admin-attention__head h2{font-family:var(--font-title);margin:.1rem 0 0;font-size:clamp(1.4rem,3vw,1.85rem);line-height:1.05}.admin-attention__list{grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.admin-attention__list>li{display:flex}.admin-attention-item{--tone:var(--tf-dough);border:1px solid var(--tf-line-soft);border-left:4px solid var(--tone);background:color-mix(in srgb, var(--tone) 7%, var(--tf-surface));width:100%;color:var(--tf-ink);transition:transform .16s var(--tf-ease), box-shadow .16s var(--tf-ease), background .16s var(--tf-ease);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"count label go""count detail go";align-content:center;gap:.1rem .85rem;padding:.8rem .9rem;text-decoration:none;display:grid}.admin-attention-item[data-tone=coral]{--tone:var(--tf-accent)}.admin-attention-item[data-tone=amber]{--tone:var(--tf-dough)}.admin-attention-item[data-tone=blue]{--tone:#2f86bf}.admin-attention-item:hover{background:color-mix(in srgb, var(--tone) 12%, var(--tf-surface));box-shadow:0 14px 26px -20px color-mix(in srgb, var(--tf-ink) 72%, transparent);transform:translateY(-1px)}.admin-attention-item>strong{font-family:var(--font-title);color:color-mix(in srgb, var(--tone) 70%, var(--tf-ink));grid-area:count;align-self:center;font-size:2.15rem;font-weight:800;line-height:1}.admin-attention-item__label{grid-area:label;align-self:end;font-size:.96rem;font-weight:800;line-height:1.2}.admin-attention-item__detail{color:var(--tf-muted);grid-area:detail;align-self:start;font-size:.81rem;line-height:1.3}.admin-attention-item__go{color:color-mix(in srgb, var(--tone) 66%, var(--tf-ink));white-space:nowrap;grid-area:go;align-self:center;font-size:.82rem;font-weight:800}.admin-attention__empty{align-items:center;gap:.8rem;display:flex}.admin-attention__empty strong{font-family:var(--font-title);font-size:1.25rem;display:block}.admin-attention__empty div span{color:var(--tf-muted);font-size:.9rem}.admin-attention__empty-dot{background:var(--tf-success);width:.85rem;height:.85rem;box-shadow:0 0 0 4px color-mix(in srgb, var(--tf-success) 22%, transparent);border-radius:50%;flex:none}.admin-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;display:grid}.admin-strip__item{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-surface) 90%, transparent);border-radius:8px;flex-direction:column;gap:.1rem;padding:.65rem .8rem;display:flex}.admin-strip__item strong{font-family:var(--font-title);font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800;line-height:1}.admin-strip__item span{color:var(--tf-muted);letter-spacing:.02em;font-size:.76rem;font-weight:700}.admin-grid{columns:2 22rem;column-gap:.85rem;margin-top:.1rem}.admin-panel{break-inside:avoid;min-width:0;margin:0 0 .85rem;padding:clamp(.95rem,1.7vw,1.15rem);scroll-margin-top:1.25rem}.admin-panel__head{border-bottom:1px solid var(--tf-line-soft);justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.85rem;padding-bottom:.7rem;display:flex}.admin-panel__head--stack{display:block}.admin-panel__head .eyebrow,.admin-panel__head--stack .eyebrow{margin-bottom:.1rem}.admin-panel h2{font-family:var(--font-title);margin:0;font-size:1.3rem;line-height:1.1}.admin-search{align-items:flex-end;gap:.5rem;width:min(24rem,100%);display:flex}.admin-search__field{flex:auto;min-width:8rem}.admin-search>button{color:var(--tf-surface);flex:none}.admin-alert{border:1px solid color-mix(in srgb, var(--tf-danger) 38%, var(--tf-line));background:color-mix(in srgb, var(--tf-danger) 9%, var(--tf-surface));color:color-mix(in srgb, var(--tf-danger) 72%, black);border-radius:8px;margin:0 0 .75rem;padding:.6rem .75rem;font-size:.86rem;font-weight:600}.admin-list{gap:.45rem;display:grid}.admin-user-row{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-elevated) 50%, var(--tf-surface));border-radius:8px;grid-template-columns:minmax(0,1fr) auto minmax(8.5rem,9rem);align-items:center;gap:.5rem .85rem;padding:.55rem .65rem;display:grid}.admin-user-row__identity{gap:.05rem;min-width:0;display:grid}.admin-user-row__identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;overflow:hidden}.admin-user-row__identity span{color:var(--tf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.admin-user-row__date{color:var(--tf-faint);white-space:nowrap;font-size:.78rem}.admin-empty{color:var(--tf-muted);margin:0;padding:.85rem .65rem;font-size:.88rem}.admin-vendor-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-vendor-row,.admin-claim-row{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-elevated) 50%, var(--tf-surface));border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem .85rem;padding:.6rem .7rem;display:grid}.admin-claim-row{align-items:start}.admin-vendor-row__main{gap:.12rem;min-width:0;display:grid}.admin-vendor-row__main strong{font-size:.96rem}.admin-vendor-row__main>span{color:var(--tf-muted);font-size:.8rem;line-height:1.35}.admin-vendor-row__controls{justify-items:end;gap:.4rem;min-width:11rem;display:grid}.admin-pill{border:1px solid var(--tf-line);background:color-mix(in srgb, var(--tf-elevated) 70%, var(--tf-surface));color:var(--tf-muted);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:800}.admin-inline-select{width:min(100%,15rem)}.admin-inline-select button[aria-haspopup=listbox]{justify-content:space-between;width:100%}.admin-danger-button{color:color-mix(in srgb, var(--tf-danger) 78%, var(--tf-ink))}.admin-danger-button:not(:disabled):hover{background:color-mix(in srgb, var(--tf-danger) 12%, transparent);color:var(--tf-danger)}.admin-claim-row__message{background:color-mix(in srgb, var(--tf-elevated) 75%, var(--tf-surface));color:color-mix(in srgb, var(--tf-ink) 88%, var(--tf-muted));border-radius:7px;margin:.15rem 0 0;padding:.4rem .55rem;font-size:.84rem;line-height:1.4}.admin-claim-row__actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.admin-claim-row__actions>button:first-child{color:var(--tf-surface)}.admin-manual-delete{border:1px dashed color-mix(in srgb, var(--tf-danger) 30%, var(--tf-line));background:color-mix(in srgb, var(--tf-danger) 5%, var(--tf-surface));border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:.5rem;margin-bottom:.85rem;padding:.7rem .75rem;display:grid}.admin-manual-delete__field{min-width:0}.admin-moderation-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.admin-mod{--risk:var(--tf-faint);border:1px solid var(--tf-line-soft);border-left:4px solid var(--risk);background:color-mix(in srgb, var(--tf-elevated) 46%, var(--tf-surface));border-radius:8px;gap:.5rem;padding:.85rem;display:grid}.admin-mod[data-risk=high]{--risk:var(--tf-accent)}.admin-mod[data-risk=medium]{--risk:var(--tf-dough)}.admin-mod[data-risk=low]{--risk:color-mix(in srgb, var(--tf-faint) 78%, var(--tf-line))}.admin-mod__head{align-items:center;gap:.7rem;display:flex}.admin-mod__risk{background:color-mix(in srgb, var(--risk) 16%, var(--tf-surface));min-width:3rem;color:color-mix(in srgb, var(--risk) 72%, black);font-family:var(--font-title);border-radius:7px;flex:none;place-items:center;padding:.32rem .45rem;font-size:1.02rem;font-weight:800;line-height:1;display:grid}.admin-mod__risk[data-level=high]{background:var(--tf-accent);color:var(--tf-surface)}.admin-mod__title{gap:.1rem;min-width:0;display:grid}.admin-mod__title strong{font-size:.96rem}.admin-mod__meta{color:var(--tf-muted);font-size:.81rem}.admin-mod__body{color:color-mix(in srgb, var(--tf-ink) 88%, var(--tf-muted));margin:0;font-size:.9rem;line-height:1.45}.admin-mod__summary{background:color-mix(in srgb, var(--tf-dough) 14%, var(--tf-surface));color:color-mix(in srgb, var(--tf-ink) 88%, var(--tf-muted));border-radius:7px;margin:0;padding:.5rem .6rem;font-size:.84rem;line-height:1.4}.admin-mod__detail{font-size:.85rem}.admin-mod__detail>summary{width:max-content;color:var(--tf-primary-deep);cursor:pointer;font-weight:700;list-style:none}.admin-mod__detail>summary::-webkit-details-marker{display:none}.admin-mod__detail>summary:before{content:"▸ "}.admin-mod__detail[open]>summary:before{content:"▾ "}.admin-mod__detail-grid{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-surface) 80%, var(--tf-elevated));border-radius:7px;gap:.55rem;margin-top:.55rem;padding:.7rem;display:grid}.admin-mod__detail-grid>div{gap:.12rem;display:grid}.admin-mod__detail-grid b{color:var(--tf-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.71rem;font-weight:800}.admin-mod__detail-grid span{color:var(--tf-ink);font-size:.84rem;line-height:1.35}.admin-mod__events ul{gap:.25rem;margin:.1rem 0 0;padding:0;list-style:none;display:grid}.admin-mod__events li{flex-wrap:wrap;gap:.3rem .55rem;font-size:.82rem;display:flex}.admin-mod__events li strong{color:var(--tf-ink)}.admin-mod__events li span{color:var(--tf-muted)}.admin-mod__actions{border-top:1px solid var(--tf-line-soft);flex-wrap:wrap;align-items:center;gap:.45rem .7rem;margin-top:.05rem;padding-top:.6rem;display:flex}.admin-mod__actions-primary,.admin-mod__actions-secondary{flex-wrap:wrap;gap:.4rem;display:flex}.admin-mod__actions-secondary{margin-left:auto}.admin-mod__actions-primary>button:first-child{color:var(--tf-surface)}.admin-mod__actions-secondary>button{color:var(--tf-muted)}.owner-alert{border:1px solid color-mix(in srgb, var(--tf-success) 38%, var(--tf-line));background:color-mix(in srgb, var(--tf-success) 11%, var(--tf-surface));color:color-mix(in srgb, var(--tf-success) 64%, black);border-radius:8px;margin:0;padding:.65rem .85rem;font-size:.9rem;font-weight:700}.owner-alert--error{border-color:color-mix(in srgb, var(--tf-danger) 40%, var(--tf-line));background:color-mix(in srgb, var(--tf-danger) 9%, var(--tf-surface));color:color-mix(in srgb, var(--tf-danger) 72%, black)}.owner-empty-state{justify-items:start;gap:.5rem;padding:clamp(1.4rem,4vw,2.4rem);display:grid}.owner-empty-state h2{font-family:var(--font-title);margin:0;font-size:clamp(1.5rem,3.5vw,2rem)}.owner-empty-state p{max-width:38rem;color:var(--tf-muted);margin:0;line-height:1.5}.owner-empty-state .eyebrow{margin:0}.owner-grid{gap:.9rem;display:grid}.owner-card{padding:0;overflow:hidden}.owner-card__top{border-bottom:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-elevated) 42%, transparent);justify-content:space-between;align-items:center;gap:1rem;padding:clamp(.9rem,2vw,1.15rem);display:flex}.owner-card__title{gap:.1rem;min-width:0;display:grid}.owner-card__title .eyebrow{margin:0}.owner-card h2{font-family:var(--font-title);margin:0;font-size:clamp(1.45rem,3vw,2rem);line-height:1.02}.owner-status-pill{--st:var(--tf-faint);border:1px solid color-mix(in srgb, var(--st) 35%, var(--tf-line));background:color-mix(in srgb, var(--st) 12%, var(--tf-surface));color:color-mix(in srgb, var(--st) 64%, black);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:.4rem;padding:.32rem .65rem;font-size:.76rem;font-weight:800;display:inline-flex}.owner-status-pill[data-status=open]{--st:var(--tf-success)}.owner-status-pill[data-status=closed]{--st:var(--tf-danger)}.owner-status-pill[data-status=unknown]{--st:var(--tf-faint)}.owner-status-pill__dot{background:var(--st);border-radius:50%;width:.5rem;height:.5rem}.owner-form{flex-direction:column;gap:.95rem;padding:clamp(.9rem,2vw,1.2rem);display:flex}.owner-field{width:100%}.owner-today{border:1px solid color-mix(in srgb, var(--tf-primary) 22%, var(--tf-line));background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 7%, var(--tf-surface)), var(--tf-surface));border-radius:8px;gap:.7rem;padding:clamp(.85rem,1.9vw,1.1rem);display:grid}.owner-today__head{flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;display:flex}.owner-today__head h3{font-family:var(--font-title);margin:0;font-size:1.2rem}.owner-today__head span{color:var(--tf-muted);font-size:.86rem}.owner-today__status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.owner-status-btn{--st:var(--tf-faint);border:1.5px solid var(--tf-line);background:var(--tf-surface);color:var(--tf-ink);text-align:left;cursor:pointer;transition:border-color .16s var(--tf-ease), background .16s var(--tf-ease), transform .12s var(--tf-ease);border-radius:8px;align-content:start;gap:.22rem;padding:.65rem .7rem;display:grid}.owner-status-btn[data-status=open]{--st:var(--tf-success)}.owner-status-btn[data-status=closed]{--st:var(--tf-danger)}.owner-status-btn[data-status=unknown]{--st:var(--tf-faint)}.owner-status-btn:hover{border-color:color-mix(in srgb, var(--st) 55%, var(--tf-line))}.owner-status-btn:active{transform:translateY(1px)}.owner-status-btn[data-active]{border-color:var(--st);background:color-mix(in srgb, var(--st) 13%, var(--tf-surface))}.owner-status-btn__dot{background:var(--st);width:.7rem;height:.7rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--st) 20%, transparent);border-radius:50%}.owner-status-btn[data-active][data-status=open] .owner-status-btn__dot{animation:tf-status-pulse 1.9s var(--tf-ease) infinite}.owner-status-btn__label{font-size:.92rem;font-weight:800}.owner-status-btn__hint{color:var(--tf-muted);font-size:.76rem;line-height:1.25}.owner-status-btn[data-active] .owner-status-btn__label{color:color-mix(in srgb, var(--st) 70%, black)}.owner-ready{border:1px solid color-mix(in srgb, var(--tf-success) 34%, var(--tf-line));background:color-mix(in srgb, var(--tf-success) 9%, var(--tf-surface));color:color-mix(in srgb, var(--tf-success) 60%, black);border-radius:8px;align-items:center;gap:.5rem;margin:0;padding:.55rem .75rem;font-size:.88rem;font-weight:700;display:flex}.owner-ready__dot{background:var(--tf-success);border-radius:50%;flex:none;width:.55rem;height:.55rem}.owner-gaps{border:1px dashed color-mix(in srgb, var(--tf-dough) 50%, var(--tf-line));background:color-mix(in srgb, var(--tf-dough) 8%, var(--tf-surface));border-radius:8px;gap:.45rem;padding:.7rem .8rem;display:grid}.owner-gaps__label{color:var(--tf-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.71rem;font-weight:800}.owner-gaps ul{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.owner-gap{--tone:var(--tf-dough);border:1px solid color-mix(in srgb, var(--tone) 45%, var(--tf-line));background:color-mix(in srgb, var(--tone) 14%, var(--tf-surface));color:color-mix(in srgb, var(--tone) 68%, black);border-radius:999px;padding:.32rem .65rem;font-size:.8rem;font-weight:700}.owner-gap[data-tone=coral]{--tone:var(--tf-accent)}.owner-gap[data-tone=amber]{--tone:var(--tf-dough)}.owner-menu{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-elevated) 32%, var(--tf-surface));border-radius:8px;gap:.55rem;padding:.85rem;display:grid}.owner-menu__head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.owner-menu__title{flex-wrap:wrap;align-items:baseline;gap:.3rem .55rem;display:flex}.owner-menu__title h3{font-family:var(--font-title);margin:0;font-size:1.15rem}.owner-menu__title span{color:var(--tf-muted);font-size:.84rem}.owner-add-dish{flex:none}.owner-dish-row{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-surface) 86%, var(--tf-elevated));border-radius:8px;grid-template-columns:minmax(0,1.6fr) minmax(7rem,.9fr) minmax(4.5rem,.45fr) auto;align-items:end;gap:.5rem;padding:.55rem;display:grid}.owner-dish-remove{flex:none}.owner-dish-kind button[aria-haspopup=listbox]{justify-content:space-between;width:100%}.owner-picker .tf-select__trigger{min-height:2.6rem;padding-inline:.55rem .65rem}.owner-picker .tf-select__value{text-align:left;text-overflow:ellipsis;min-width:0;overflow:hidden}.owner-dish-type-picker .tf-select__trigger{font-weight:800}.owner-dish-new-kind{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:.5rem;padding-top:.1rem;display:grid}.owner-dish-new-kind__field{min-width:0}.owner-dish-new-kind__create{color:var(--tf-surface)}.owner-dish-new-kind__error{color:color-mix(in srgb, var(--tf-danger) 76%, black);grid-column:1/-1;margin:0;font-size:.82rem;font-weight:700}.owner-empty-menu{color:var(--tf-muted);margin:0;font-size:.86rem}.owner-ficha{border:1px solid var(--tf-line-soft);background:color-mix(in srgb, var(--tf-surface) 68%, transparent);border-radius:8px;gap:.6rem;padding:.85rem;display:grid}.owner-ficha__head{flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;display:flex}.owner-ficha__head h3{font-family:var(--font-title);margin:0;font-size:1.1rem}.owner-ficha__head span{color:var(--tf-muted);font-size:.84rem}.owner-actions{border-top:1px solid var(--tf-line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:.85rem;display:flex}.owner-actions>span{color:var(--tf-muted);font-size:.84rem}.owner-save-button{min-width:11rem;color:var(--tf-surface)}.dev-persona{z-index:80;border:1px solid var(--tf-line);background:color-mix(in srgb, var(--tf-surface) 96%, transparent);box-shadow:var(--tf-shadow);border-radius:8px;align-items:center;gap:.25rem;padding:.35rem;display:flex;position:fixed;bottom:.75rem;left:.75rem}.dev-persona__label{color:var(--tf-muted);letter-spacing:.08em;text-transform:uppercase;padding:0 .35rem;font-size:.72rem;font-weight:800}.dev-persona__link{color:var(--tf-muted);border-radius:6px;padding:.28rem .45rem;font-size:.78rem;font-weight:700;text-decoration:none}.dev-persona__link:hover,.dev-persona__link--active{color:var(--tf-ink);background:color-mix(in srgb, var(--tf-accent) 18%, transparent)}.map-page+.dev-persona{bottom:6.6rem;left:50%;right:auto;transform:translate(-50%)}.owner-page+.dev-persona,.admin-page+.dev-persona{inset:.75rem .75rem auto auto}.viviana-error,.viviana-not-found{max-width:36rem;margin:4rem auto;padding:0 1.25rem}.viviana-error__actions,.viviana-not-found__actions{gap:.75rem;margin-top:1rem;display:flex}@media (width<=900px){.admin-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.owner-dish-row{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}.owner-dish-name{grid-column:1/-1}.owner-dish-kind{grid-column:1}.owner-dish-price{grid-column:2}.owner-dish-remove{grid-column:1/-1;justify-self:start}}@media (width<=620px){.map-page{grid-template-rows:auto minmax(26rem,1fr)}.map-page__canvas{--dock-w:0px}.place-dock{top:auto;right:.6rem;bottom:calc(6.25rem + env(safe-area-inset-bottom));border-left:0;border:1px solid color-mix(in srgb, var(--tf-line) 84%, transparent);border-radius:var(--tf-radius-lg);width:auto;max-height:3.2rem;box-shadow:var(--tf-shadow);transition:max-height .24s var(--tf-ease,ease);left:.6rem;overflow:hidden}.place-dock--open{max-height:min(76%,32rem)}.place-dock:not(.place-dock--open) .place-dock__eyebrow{display:none}.place-dock__handle{cursor:pointer;background:0 0;border:0;place-items:center;width:100%;padding:.5rem 0 .25rem;display:grid}.place-dock__grip{background:color-mix(in srgb, var(--tf-faint) 60%, transparent);border-radius:999px;width:2.4rem;height:.28rem}.place-dock__bar{padding-top:.35rem}.place-dock--open .place-dock__close{border:1px solid color-mix(in srgb, var(--tf-line) 84%, transparent);border-radius:var(--tf-radius-pill);width:2rem;height:2rem;color:var(--tf-muted);background:var(--tf-surface);cursor:pointer;place-items:center;margin-left:auto;display:inline-grid}.place-dock__close svg{width:1rem;height:1rem}.place-dock__close:focus-visible{box-shadow:0 0 0 3px var(--tf-ring);outline:none}.map-page__bar{flex-wrap:nowrap;align-items:center;gap:.35rem;min-height:0;padding:.5rem}.map-page__brand{flex:none;grid-template-columns:1.8rem;gap:0;width:1.8rem;min-width:0}.map-page__logo-mark{width:1.8rem;height:1.8rem}.map-page__brand-copy{display:none}.map-page__actions{flex:none;justify-content:flex-end;gap:.25rem;width:auto;margin-left:auto}.map-layer-filter{flex:none;order:0;margin-left:0}.map-layer-filter__chip{width:2.05rem;height:2.05rem}.map-page__auth{flex:0 auto;justify-content:flex-start;gap:.25rem;width:auto}.map-page__nav-icon{width:2.125rem;min-width:2.125rem;height:2.125rem;min-height:2.125rem}.map-page__tools-toggle{display:none}.notification-bell__panel{width:auto;max-height:min(28rem,100vh - 5.5rem);position:fixed;top:4.75rem;left:.75rem;right:.75rem}@media (width<=350px){.map-page__bar{gap:.25rem;padding-inline:.4rem}.map-layer-filter{gap:.12rem;padding:.16rem}.map-layer-filter__chip,.map-page__nav-icon{width:1.95rem;min-width:1.95rem;height:1.95rem;min-height:1.95rem}}.map-page__placing-banner{top:.75rem}.map-page__hint{bottom:calc(6.75rem + env(safe-area-inset-bottom))}.map-nav{padding:.4rem .6rem;padding-bottom:max(.4rem, env(safe-area-inset-bottom));background:color-mix(in srgb, var(--tf-surface) 96%, transparent);border-width:1px 0 0;border-radius:1.15rem 1.15rem 0 0;gap:.25rem;bottom:0;left:0;right:0;transform:none}.map-nav__side-action,.map-nav__voice-slot{min-width:0}.owner-shell,.admin-shell{width:min(100% - 1rem,1180px);padding-top:1.5rem}.admin-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-attention__list{grid-template-columns:1fr}.admin-attention-item{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"count label""count detail"}.admin-attention-item__go{display:none}.admin-panel__head{flex-direction:column;align-items:flex-start;gap:.4rem}.admin-search{flex-direction:column;align-items:stretch;width:100%}.admin-manual-delete{grid-template-columns:1fr}.admin-user-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}.admin-user-row__date{display:none}.admin-vendor-row,.admin-claim-row{grid-template-columns:1fr}.admin-vendor-row__controls{justify-items:start;min-width:0}.admin-inline-select{width:min(100%,16rem)}.admin-claim-row__actions{justify-content:flex-start}.admin-mod__actions-secondary{margin-left:0}.owner-today__status,.owner-dish-new-kind{grid-template-columns:1fr}.owner-card__top{flex-direction:column;align-items:flex-start;gap:.5rem}.owner-actions{flex-direction:column;align-items:stretch}.owner-save-button{width:100%;min-width:0}.map-page+.dev-persona{justify-content:center;width:max-content;max-width:calc(100% - 5.5rem);inset:6.05rem auto auto .75rem;overflow-x:auto;transform:none}}.profile-page{background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 12%, transparent), transparent 25rem), var(--tf-bg);min-height:100vh}.profile-page__shell{width:min(760px,100% - 2rem);margin:0 auto;padding:clamp(1.2rem,4vw,3rem) 0 3rem}.profile-page__status{color:var(--tf-muted);text-align:center;padding:3rem 0}.profile-header{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);box-shadow:var(--tf-shadow);border-radius:12px;align-items:center;gap:clamp(1rem,3vw,1.6rem);padding:clamp(1.2rem,3vw,2rem);display:flex}.profile-header__avatar{border:1px solid color-mix(in srgb, var(--tf-line) 80%, transparent);background:color-mix(in srgb, var(--tf-primary) 14%, var(--tf-surface));width:clamp(4.5rem,16vw,6rem);height:clamp(4.5rem,16vw,6rem);color:var(--tf-primary-deep);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.profile-header__avatar img{object-fit:cover;width:100%;height:100%}.profile-header__avatar svg{width:46%;height:46%}.profile-header__identity{min-width:0}.profile-header__name{font-family:var(--font-title);margin:0;font-size:clamp(1.7rem,5vw,2.6rem);line-height:1}.profile-header__handle{color:var(--tf-muted);margin:.3rem 0 0;font-size:.95rem}.profile-header__meta{color:var(--tf-muted);flex-wrap:wrap;align-items:center;gap:.45rem .7rem;margin:.75rem 0 0;font-size:.88rem;display:flex}.profile-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--tf-primary-deep);background:color-mix(in srgb, var(--tf-primary) 16%, transparent);border-radius:999px;align-items:center;padding:.16rem .6rem;font-size:.72rem;font-weight:800;display:inline-flex}.profile-badge[data-role=admin]{color:var(--tf-accent);background:color-mix(in srgb, var(--tf-accent) 18%, transparent)}.profile-page__empty{text-align:center;padding:clamp(2.5rem,8vw,5rem) 1rem}.profile-page__empty h1{font-family:var(--font-title);margin:.25rem 0 .5rem;font-size:clamp(1.6rem,5vw,2.4rem)}.profile-page__empty p:not(.eyebrow){max-width:30rem;color:var(--tf-muted);margin:0 auto 1.4rem}.profile-stats{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.8rem;margin:1.2rem 0 0;padding:0;list-style:none;display:grid}.profile-stats__tile{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);border-radius:10px;flex-direction:column;gap:.2rem;padding:.9rem 1rem;display:flex}.profile-stats__value{font-family:var(--font-title);color:var(--tf-primary-deep);font-size:1.7rem;line-height:1}.profile-stats__label{color:var(--tf-muted);font-size:.78rem}.profile-stats__empty{color:var(--tf-muted);margin:1.2rem 0 0}.profile-section{margin:1.8rem 0 0}.profile-section__title{font-family:var(--font-title);margin:0 0 .8rem;font-size:1.15rem}.profile-section__head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.profile-section__head .profile-section__title{margin-bottom:.8rem}.profile-section__link{color:var(--tf-primary-deep);flex:none;font-size:.85rem;font-weight:600;text-decoration:none}.profile-section__link:hover{text-decoration:underline}.profile-section__empty{color:var(--tf-muted);margin:0}.profile-puestos{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.profile-puestos__item{border:1px solid color-mix(in srgb, var(--tf-line) 85%, transparent);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);color:var(--tf-ink);border-radius:999px;align-items:center;gap:.45rem;padding:.5rem .85rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.profile-puestos__item:hover{border-color:var(--tf-primary);background:color-mix(in srgb, var(--tf-primary) 10%, var(--tf-surface))}.profile-puestos__item svg{width:1.05rem;height:1.05rem;color:var(--tf-primary-deep)}.profile-achievements{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.profile-achievement{border:1px solid color-mix(in srgb, var(--tf-accent) 35%, var(--tf-line));background:color-mix(in srgb, var(--tf-accent) 12%, var(--tf-surface));color:var(--tf-ink);border-radius:999px;align-items:center;gap:.45rem;padding:.5rem .85rem;font-weight:600;display:inline-flex}.profile-achievement__icon{font-size:1.1rem;line-height:1}.profile-achievement__title{font-size:.9rem}.profile-reviews{flex-direction:column;gap:.8rem;margin:0;padding:0;list-style:none;display:flex}.profile-review{border:1px solid color-mix(in srgb, var(--tf-line) 88%, transparent);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);border-radius:10px;padding:.9rem 1.1rem}.profile-review__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem .8rem;display:flex}.profile-review__vendor{color:var(--tf-primary-deep);font-weight:700;text-decoration:none}.profile-review__vendor:hover{text-decoration:underline}.profile-review__rating{color:var(--tf-accent);letter-spacing:.05em;font-size:.95rem}.profile-review__body{color:var(--tf-ink);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:.5rem 0 0;display:-webkit-box;overflow:hidden}.profile-review__date{color:var(--tf-muted);margin:.55rem 0 0;font-size:.8rem;display:block}.user-link{color:var(--tf-ink);font-weight:600;text-decoration:none}.user-link:hover,.user-link:focus-visible{color:var(--tf-primary);text-decoration:underline}.profile-header__dm{border:1px solid var(--tf-primary);background:var(--tf-primary);color:var(--tf-surface);font:inherit;cursor:pointer;border-radius:999px;align-self:start;margin-top:.65rem;padding:.4rem .95rem;font-weight:600}.profile-header__dm:hover{background:var(--tf-primary-deep);border-color:var(--tf-primary-deep)}.map-page__avatar-link{border-radius:50%;padding:0;overflow:hidden}.map-page__avatar{object-fit:cover;border-radius:50%;width:100%;height:100%}.logros-page{background:linear-gradient(180deg, color-mix(in srgb, var(--tf-accent) 14%, transparent), transparent 25rem), var(--tf-bg);min-height:100vh}.logros-shell{width:min(960px,100% - 2rem);margin:0 auto;padding:clamp(1rem,3vw,2rem) 0 3rem}.logros-hero{justify-content:space-between;align-items:end;gap:1.25rem;padding:1.2rem 0 1.4rem;display:flex}.logros-hero h1{font-family:var(--font-title);margin:0;font-size:clamp(2rem,6vw,4rem);line-height:.95}.logros-hero p:not(.eyebrow){max-width:42rem;color:var(--tf-muted);margin:.55rem 0 0;font-size:clamp(.98rem,1.6vw,1.12rem)}.logros-hero__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;min-width:11rem;display:flex}.logros-hero__user{max-width:15rem;color:var(--tf-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.logros-hero__link{color:var(--tf-primary-deep);font-weight:600;text-decoration:none}.logros-hero__link:hover{text-decoration:underline}.logros-loading,.logros-summary{color:var(--tf-muted);margin:.4rem 0 0}.logros-summary strong{color:var(--tf-ink)}.logros-group{margin:1.8rem 0 0}.logros-group__title{font-family:var(--font-title);margin:0 0 .9rem;font-size:1.2rem}.logros-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.logros-badge{border:1px solid var(--tf-line);background:color-mix(in srgb, var(--tf-surface) 92%, transparent);border-radius:.9rem;gap:.75rem;padding:.9rem 1rem;display:flex}.logros-badge[data-unlocked=false]{opacity:.72}.logros-badge[data-unlocked=true]{border-color:color-mix(in srgb, var(--tf-accent) 35%, var(--tf-line));background:color-mix(in srgb, var(--tf-accent) 12%, var(--tf-surface))}.logros-badge__icon{flex:none;font-size:1.7rem;line-height:1}.logros-badge[data-unlocked=false] .logros-badge__icon{filter:grayscale()}.logros-badge__body{flex:auto;min-width:0}.logros-badge__head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.logros-badge__title{font-weight:700}.logros-badge__state{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;flex:none;padding:.1rem .5rem;font-size:.7rem;font-weight:700}.logros-badge__state--done{background:color-mix(in srgb, var(--tf-accent) 25%, var(--tf-surface));color:var(--tf-primary-deep)}.logros-badge__state--locked{background:color-mix(in srgb, var(--tf-line) 45%, transparent);color:var(--tf-muted)}.logros-badge__desc{color:var(--tf-muted);margin:.3rem 0 0;font-size:.9rem}.logros-badge__date{color:var(--tf-primary-deep);margin-top:.45rem;font-size:.8rem;font-weight:600;display:block}.logros-progress{align-items:center;gap:.6rem;margin-top:.6rem;display:flex}.logros-progress__bar{background:color-mix(in srgb, var(--tf-line) 55%, transparent);border-radius:999px;flex:auto;height:.45rem;overflow:hidden}.logros-progress__fill{border-radius:inherit;background:var(--tf-primary);height:100%;display:block}.logros-progress__label{color:var(--tf-muted);font-variant-numeric:tabular-nums;flex:none;font-size:.78rem}@media (width<=640px){.logros-hero{flex-direction:column;align-items:stretch;gap:.8rem}.logros-hero__actions{justify-content:flex-start}}@media (forced-colors:active){.map-nav,.map-nav__side-action,.map-nav__add,.map-nav__add-glyph,.map-nav__add-label,.map-nav__add--active .map-nav__add-label{color:buttontext;box-shadow:none;background:buttonface;border-color:buttontext}.map-nav__side-action:focus-visible,.map-nav__add:focus-visible .map-nav__add-glyph{outline-offset:2px;box-shadow:none;outline:2px solid highlight}}
