:root{--ink:#16323f;--ink-soft:#4a6672;--paper:#fffcf7c7;--paper-solid:#fffaf3;--line:#16323f1a;--sea:#0f7c74;--sea-deep:#0b5c57;--sun:#f0b429;--coral:#e85d4c;--mist:#d7efe8;--shadow:0 18px 50px #0f373e24;--radius:22px;--font-display:"Fraunces", Georgia, serif;--font-body:"Plus Jakarta Sans", system-ui, sans-serif;--page-pad:max(.75rem, env(safe-area-inset-left));--page-pad-right:max(.75rem, env(safe-area-inset-right));color:var(--ink);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}*,:before,:after{box-sizing:border-box}html{width:100%;max-width:100%;height:100%;overflow-x:clip}html,body,#root{min-width:0;min-height:100%}body{background:#cfe8df;width:100%;max-width:100%;margin:0;position:relative;overflow-x:clip}#root{width:100%;max-width:100%;overflow-x:clip}img,svg,video,canvas{max-width:100%;height:auto}button,input,textarea,select{font:inherit;max-width:100%}button{cursor:pointer}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-weight:600}.app{width:100%;min-width:0;max-width:100%;min-height:100dvh;padding:max(.75rem, env(safe-area-inset-top)) var(--page-pad-right,max(.75rem, env(safe-area-inset-right))) calc(1.25rem + env(safe-area-inset-bottom)) var(--page-pad,max(.75rem, env(safe-area-inset-left)));flex-direction:column;display:flex;position:relative;overflow-x:clip}.atmosphere{z-index:-1;background:radial-gradient(80% 50% at 10% -10%,#fff6d8 0%,#0000 55%),radial-gradient(70% 45% at 95% 5%,#9fd7d0 0%,#0000 50%),radial-gradient(60% 40% at 50% 100%,#f7c4b0 0%,#0000 55%),linear-gradient(165deg,#e8f6f1 0%,#d5ebe4 42%,#f3e7d8 100%);position:fixed;inset:0}.atmosphere:after{content:"";opacity:.35;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%230f7c74' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");position:absolute;inset:0}.topbar{display:contents}.topbar .brand{text-align:center;order:0;width:100%;margin:0 0 .55rem}.app-actions{border-top:1px solid var(--line);background:0 0;order:50;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:stretch;gap:.35rem;margin-top:1.25rem;padding:.9rem .45rem .45rem;display:grid;position:static;overflow:visible}.nav-chip-wrap{z-index:1;min-width:0;display:grid;position:relative;overflow:visible}.nav-chip-wrap .icon-chip,.nav-chip-wrap .today-chip,.nav-chip-wrap .ghost-chip{width:100%}.icon-chip,.ghost-chip{border:1px solid var(--line);color:var(--ink);background:#ffffffb8;border-radius:999px;padding:.55rem .85rem;font-size:.85rem;font-weight:700;position:relative}.app-actions .icon-chip,.app-actions .ghost-chip,.app-actions .today-chip{text-align:center;white-space:nowrap;text-overflow:ellipsis;place-items:center;width:100%;min-width:0;height:2.85rem;padding:.35rem .2rem;font-size:.72rem;line-height:1.1;display:grid;overflow:hidden}.app-actions .icon-chip.active-tab{background:var(--ink);color:#fff;border-color:var(--ink)}.badge{background:var(--coral);color:#fff;border-radius:999px;place-items:center;min-width:1.2rem;height:1.2rem;padding:0 .28rem;font-size:.68rem;font-weight:800;line-height:1;display:inline-grid}.nav-chip-wrap .badge{z-index:5;pointer-events:none;min-width:1.25rem;height:1.25rem;position:absolute;top:0;right:0;transform:translate(35%,-35%);box-shadow:0 0 0 2px #fff}.notify-banner{background:linear-gradient(135deg,#0f7c741f,#f0b4292e);border:1px solid #0f7c7438;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;padding:.85rem 1rem;animation:.4s both rise;display:flex}.notify-banner span{color:var(--ink-soft)}.notify-top-btn{white-space:nowrap;flex:none;padding:.55rem .95rem;font-size:.85rem;position:relative}.notify-top-btn .notify-count{background:var(--coral);color:#fff;border-radius:999px;place-items:center;min-width:1.1rem;height:1.1rem;padding:0 .25rem;font-size:.65rem;display:grid;position:absolute;top:-.35rem;right:-.25rem}.banner.ok{color:var(--sea-deep);background:#0f7c741f;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.7rem .85rem;font-weight:600;display:flex}.banner.ok button{color:var(--sea-deep);background:0 0;border:0;font-weight:800}.login-screen{place-items:center;min-height:100dvh;padding:1.25rem;display:grid;position:relative}.login-card{background:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);z-index:1;border:1px solid #ffffffa6;padding:1.35rem 1.2rem 1.4rem;animation:.5s both rise}.login-copy{color:var(--ink-soft);margin:.6rem 0 1.1rem;line-height:1.45}.field select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:14px;padding:.8rem .9rem}.logged-as{background:#0f7c7414;border-radius:14px;align-items:center;gap:.45rem;margin-bottom:.9rem;padding:.65rem .8rem;font-size:.92rem;display:flex}.admin-sheet{max-width:640px}.admin-list{gap:.45rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.admin-list li{border:1px solid var(--line);background:#ffffffb3;border-radius:14px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.5rem;padding:.65rem .7rem;display:grid}.admin-user-meta{flex-direction:column;gap:.1rem;display:flex}.admin-user-meta span{color:var(--ink-soft);font-size:.75rem;font-weight:600}.admin-form h4{font-family:var(--font-display);margin:0 0 .7rem}.color-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.color-dot-btn{border:2px solid #0000;border-radius:50%;width:1.55rem;height:1.55rem}.color-dot-btn.active{border-color:var(--ink);transform:scale(1.08)}.check-row{align-items:center;gap:.5rem;margin-bottom:.85rem;font-weight:600;display:flex}.admin-form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.ghost-btn.danger{color:var(--coral)}.notif-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.notif-list>li{border:1px solid var(--line);background:#ffffffbf;border-radius:16px;padding:.85rem}.notif-list>li.unread{box-shadow:inset 3px 0 0 var(--sea);border-color:#0f7c7459}.notif-list>li.clickable{cursor:pointer}.notif-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.notif-time{color:var(--ink-soft);font-size:.75rem;font-weight:600}.notif-title{margin:0 0 .5rem;font-weight:700}.notif-events{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.notif-events li{grid-template-columns:1fr auto;gap:.2rem .5rem;font-size:.9rem;display:grid}.notif-events li span:not(.loc-badge){color:var(--ink-soft);text-transform:capitalize;grid-column:1;font-size:.8rem}.brand-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--sea-deep);margin:0 0 .15rem;font-size:.78rem;font-weight:700}.brand{color:var(--ink);overflow-wrap:anywhere;text-transform:uppercase;text-align:center;font-size:clamp(1.35rem,5.5vw,2.45rem);line-height:1.05}.today-chip{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:.55rem .95rem;font-size:.85rem;font-weight:700}.legend{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem .7rem;margin:.75rem 0 0;animation:.65s both rise;display:flex}.legend-item{color:var(--ink-soft);align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.legend-item.loc{color:var(--sea-deep)}.legend-sep{background:var(--line);width:1px;height:1rem}.swatch{border-radius:50%;width:.7rem;height:.7rem;display:inline-block}.layout{gap:1rem;width:100%;min-width:0;animation:.75s both rise;display:grid}.calendar-column{gap:0;min-width:0;display:grid}.calendar-shell,.day-panel{background:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #ffffffa6;min-width:0;max-width:100%;padding:.9rem;overflow-x:clip}.calendar-nav{grid-template-columns:2.5rem 1fr 2.5rem;align-items:center;gap:.5rem;margin-bottom:.75rem;display:grid}.month-title{text-align:center;text-transform:capitalize;font-size:clamp(1.2rem,4vw,1.55rem)}.nav-btn{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--ink);background:#ffffffb3;border-radius:14px;font-size:1.4rem;line-height:1}.weekday-row{text-align:center;letter-spacing:.06em;color:var(--ink-soft);grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:grid}.day-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;width:100%;min-width:0;display:grid}.day-cell{text-align:left;width:100%;min-width:0;min-height:4.4rem;color:var(--ink);-webkit-user-select:none;user-select:none;background:#ffffff59;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:stretch;gap:.15rem;padding:.28rem;transition:transform .15s,background .15s,border-color .15s;display:flex}.day-cell.in-month:hover{background:#ffffffb3;transform:translateY(-1px)}.day-cell.out-month{opacity:.38}.day-cell.today .day-num{background:var(--sea);color:#fff}.day-cell.selected{background:#ffffffeb;border-color:#0f7c7473;box-shadow:inset 0 0 0 1px #0f7c741f}.day-cell.has-location{background:#1f8a7052;border-color:#1f8a7080}.day-cell.has-location.in-month:hover{background:#1f8a7066}.day-cell.has-location.selected{background:#1f8a706b;box-shadow:inset 0 0 0 1px #1f8a7059}.day-cell.consult-pending{background:#d6454542;border-color:#d645457a}.day-cell.consult-pending.in-month:hover{background:#d6454557}.day-cell.consult-pending.selected{background:#d645455c;box-shadow:inset 0 0 0 1px #d6454559}.day-cell.in-range.has-location{background:#1f8a7066}.day-cell.in-range.consult-pending{background:#d6454557}.day-num{color:#1a1a1a;border-radius:999px;place-items:center;width:1.45rem;height:1.45rem;font-size:.78rem;font-weight:700;display:grid}.day-cell.holiday .day-num{color:#1d4ed8}.day-cell.today.holiday .day-num{color:#fff}.day-marks{flex-direction:column;flex:1;gap:.15rem;min-height:0;display:none}.event-chip{color:#fff;border-radius:6px;align-items:center;gap:.2rem;padding:.12rem .25rem;font-size:.62rem;font-weight:700;line-height:1.2;display:flex;overflow:hidden}.chip-icon{flex-shrink:0;place-items:center;display:grid}.chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.more-count{color:var(--ink-soft);font-size:.62rem;font-weight:700}.dot-row{flex-wrap:wrap;gap:.18rem;margin-top:auto;padding:.1rem .05rem;display:flex}.color-dot{color:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:1.05rem;height:1.05rem;line-height:0;display:inline-grid}.color-dot svg{width:.65rem;height:.65rem;display:block}.day-panel-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--sea-deep);margin:0;font-size:.72rem;font-weight:700}.day-panel h3{font-family:var(--font-display);text-transform:capitalize;margin:0;font-size:1.2rem;font-weight:650;line-height:1.2}.primary-btn{background:linear-gradient(135deg, var(--sea) 0%, var(--sea-deep) 100%);color:#fff;border:0;border-radius:999px;padding:.7rem 1.1rem;font-weight:700;box-shadow:0 10px 24px #0f7c7447}.primary-btn.full{width:100%;margin-top:.35rem}.primary-btn:disabled{opacity:.65}.empty-day{background:#ffffff73;border:1px dashed #0f7c7459;border-radius:16px;padding:1.1rem}.empty-day p{margin:0 0 .25rem;font-weight:700}.empty-day span{color:var(--ink-soft);font-size:.9rem}.event-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.event-card{border:1px solid var(--line);background:#ffffffb8;border-radius:16px;grid-template-columns:6px 1fr;gap:.75rem;display:grid;position:relative;overflow:hidden}.event-accent{min-height:100%}.event-body{padding:.75rem .75rem .75rem 0}.event-top{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.35rem;display:flex}.member-pill{border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.event-location{align-items:center;gap:.4rem;margin-bottom:.25rem;font-size:.9rem;font-weight:600;display:flex}.loc-badge{place-items:center;display:grid}.event-notes{color:var(--ink-soft);margin:.2rem 0 .5rem;font-size:.9rem}.event-actions{gap:.5rem;display:flex}.event-actions button,.ghost-btn{color:var(--ink-soft);background:0 0;border:0;padding:.2rem 0;font-size:.85rem;font-weight:700}.event-actions .danger{color:var(--coral)}.fab{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));background:linear-gradient(145deg, var(--coral), #d44838);color:#fff;z-index:20;border:0;border-radius:50%;width:3.5rem;height:3.5rem;font-size:2rem;line-height:1;animation:.5s both pop;position:fixed;box-shadow:0 14px 30px #e85d4c66}.sheet-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;padding:max(.55rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;background:#0c202673;justify-content:center;align-items:flex-start;animation:.2s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.sheet{width:min(560px,100%);max-height:min(calc(100svh - 1.4rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 760px);background:var(--paper-solid);box-shadow:var(--shadow);border-radius:22px;padding:.65rem 1rem 1.15rem;animation:.28s slide-up;overflow:auto}.sheet-handle{background:#16323f2e;border-radius:999px;width:2.5rem;height:.3rem;margin:.2rem auto .75rem}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.field{border:0;gap:.4rem;margin-bottom:.9rem;padding:0;display:grid}.field>span,.field>legend{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.78rem;font-weight:700}.field input,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:14px;padding:.8rem .9rem}.field input:focus,.field textarea:focus{border-color:#0000;outline:2px solid #0f7c7459}.member-grid,.location-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.member-choice,.loc-choice{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:14px;align-items:center;gap:.5rem;padding:.7rem .65rem;font-weight:700;display:flex}.member-choice.active{border-color:var(--member);box-shadow:0 0 0 2px color-mix(in srgb, var(--member) 25%, transparent)}.loc-choice.active{border-color:var(--sea);color:var(--sea-deep);box-shadow:0 0 0 2px #0f7c7433}.loc-icon-wrap{width:1.8rem;height:1.8rem;color:var(--sea-deep);background:#0f7c741a;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.form-error,.banner.error{color:#9b2c2c;background:#fde8e8;border-radius:12px;margin-bottom:.75rem;padding:.7rem .85rem;font-weight:600}.banner.error{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.banner.error button{color:#9b2c2c;background:0 0;border:0;font-weight:800}.loading{text-align:center;color:var(--ink-soft);pointer-events:none;opacity:.8;font-weight:700;position:absolute;inset:auto 1rem 7rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}@media (width>=880px){.app{max-width:1120px;margin:0 auto;padding:1.5rem 1.5rem 2rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;min-width:0;margin-bottom:.85rem;padding-right:0;animation:.55s both rise;display:flex}.topbar .brand{text-align:center;flex:auto;width:auto;min-width:0;margin:0}.app-actions{order:unset;-webkit-backdrop-filter:none;backdrop-filter:none;width:auto;max-width:36rem;box-shadow:none;background:0 0;border-top:0;flex:18rem;margin:0;padding:0;position:static}.app-actions .icon-chip,.app-actions .ghost-chip,.app-actions .today-chip{height:2.7rem;padding:.35rem .25rem;font-size:.75rem}.layout{grid-template-columns:1.45fr 1fr;align-items:start}.day-cell{min-height:5.6rem}.day-marks{display:flex}.dot-row,.fab{display:none}.sheet-backdrop{align-items:center}.sheet{border-radius:24px}}@media (width<=420px){.app{padding-left:max(.9rem, env(safe-area-inset-left));padding-right:max(.9rem, env(safe-area-inset-right))}.day-grid,.weekday-row{gap:.18rem}.day-cell{border-radius:10px;min-height:3.4rem;padding:.14rem}.day-num{width:1.2rem;height:1.2rem;font-size:.68rem}.calendar-shell,.day-panel{border-radius:16px;padding:.65rem}.month-title{font-size:1.05rem}.member-grid,.location-grid{grid-template-columns:1fr 1fr}.location-pick-grid.compact .location-pick-btn{min-height:3.8rem;padding:.5rem .3rem;font-size:.82rem}.app-actions .icon-chip,.app-actions .ghost-chip,.app-actions .today-chip{height:2.8rem;padding:.4rem .2rem;font-size:.7rem}}.schedule-nav{gap:.45rem;margin-bottom:.9rem;display:grid}.day-strip{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.4rem;display:grid}.hour-strip-wrap{gap:.25rem;display:grid}.all-day-check{color:var(--ink-soft);margin:0 .15rem .05rem;font-size:.8rem;font-weight:800}.day-strip-scroll,.hour-strip{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#ffffff73;border:1px solid #ffffff8c;border-radius:16px;gap:.35rem;padding:.25rem;display:flex;overflow-x:auto}.day-strip-scroll::-webkit-scrollbar{display:none}.hour-strip::-webkit-scrollbar{display:none}.day-chip,.hour-chip{color:var(--ink-soft);background:0 0;border:0;flex:none;font-weight:800}.day-chip{text-transform:capitalize;border-radius:12px;min-width:3.4rem;padding:.4rem .4rem .45rem;line-height:1.05;display:grid}.day-chip-name{opacity:.8;white-space:nowrap;justify-content:center;align-items:baseline;gap:.18rem;font-size:.58rem;font-weight:700;line-height:1;display:flex}.day-chip-month{color:var(--sea-deep);text-transform:uppercase;letter-spacing:.02em;opacity:1;font-weight:800}.day-chip.month-start{box-shadow:inset 2px 0 0 var(--sea)}.day-chip-num{font-size:1.15rem}.hour-chip{font-variant-numeric:tabular-nums;border-radius:10px;padding:.48rem .55rem;font-size:.78rem}.day-chip.active,.hour-chip.active{color:var(--sea-deep);background:#fff;box-shadow:0 8px 18px #0f373e14}.day-chip.in-range,.hour-chip.in-range{color:var(--sea-deep);background:#1f8a702e}.day-chip.in-range.active,.hour-chip.in-range.active,.day-chip.range-start,.hour-chip.range-start{background:#fff;box-shadow:inset 0 0 0 2px #1f8a708c}.range-tip{color:var(--ink-soft);margin:0;padding:0 .2rem;font-size:.78rem}.day-strip-next{width:2.4rem;color:var(--sea-deep);background:#fff;border:0;border-radius:14px;font-size:1.6rem;font-weight:400;line-height:1;box-shadow:0 8px 18px #0f373e14}.map-when{text-transform:capitalize;margin:0}.range-actions{gap:.65rem;display:grid}.range-actions-bar{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.range-actions-bar .st-btn{text-transform:uppercase;letter-spacing:.04em;border-radius:10px;flex:1 1 0;min-width:0;min-height:2.05rem;padding:.35rem .55rem;font-size:.75rem;font-weight:800}.range-actions-bar .all-day-check{white-space:nowrap;flex:none;margin:0;font-size:.78rem;font-weight:800}.spot-pick-list{gap:.35rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.spot-pick-list .check-row{border:1px solid var(--line);background:#ffffffb3;border-radius:12px;margin:0;padding:.55rem .7rem}.spot-sheet{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.04em}.spot-sheet h3,.spot-sheet button,.spot-sheet input,.spot-sheet select,.spot-sheet textarea,.spot-sheet label,.spot-sheet p,.spot-sheet span{font-family:var(--font-body)}.spot-sheet h3{letter-spacing:.06em;font-size:1.15rem;font-weight:800}.spot-sheet-meta,.spot-sheet-apply{color:var(--ink-soft);margin:0 0 .55rem;font-size:.78rem;font-weight:700}.spot-sheet-status{margin:0 0 1rem;font-size:.95rem;font-weight:800}.spot-range-block{gap:.15rem;margin-bottom:1rem;display:grid}.hour-range-fields{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.spot-range-block .field{margin-bottom:.55rem}.spot-status-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-bottom:.85rem;display:grid}.spot-extra-actions{grid-template-columns:1fr;gap:.45rem;margin-bottom:.85rem;display:grid}.spot-extra-actions:empty{margin:0;display:none}.spot-status-actions .st-btn,.spot-extra-actions .st-btn,.spot-extra-actions .ghost-btn,.spot-sheet .consult-inline .st-btn{letter-spacing:.05em;text-transform:uppercase;text-align:center;white-space:normal;border-radius:12px;place-items:center;width:100%;min-height:2.85rem;margin:0;padding:.45rem .25rem;font-size:.72rem;font-weight:800;line-height:1.15;display:grid}.spot-extra-actions .ghost-btn{border:1px solid var(--line);background:#fff}.spot-sheet .consult-inline .st-btn{grid-column:1/-1}.spot-sheet .check-row{letter-spacing:.05em;font-size:.78rem;font-weight:800}.check-row{align-items:center;gap:.55rem;margin:.4rem 0 .7rem;font-weight:700;display:flex}.consult-inline{gap:.65rem;margin-top:.85rem;display:grid}.admin-form-actions.wrap{flex-wrap:wrap}.houses-view{gap:1rem;width:100%;min-width:0;max-width:100%;animation:.55s both rise;display:grid;overflow-x:clip}.house-switch{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;min-width:0;display:grid}.house-tab{border:1px solid var(--line);color:var(--ink);background:#ffffffa6;border-radius:14px;justify-content:center;align-items:center;gap:.35rem;min-width:0;padding:.65rem .4rem;font-weight:800;display:flex}.house-tab.active{color:var(--sea-deep);background:#fff;border-color:#0f7c7466;box-shadow:0 0 0 2px #0f7c741f}.house-legend-row{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;gap:.75rem 1rem;font-size:.82rem;font-weight:700;display:flex}.house-legend-row span{align-items:center;gap:.35rem;display:inline-flex}.house-legend-row .legend-note{opacity:.9;width:100%;font-size:.75rem;font-weight:600}.st,.room-status-dot,.room-dot{border-radius:999px;display:inline-block}.st{width:.7rem;height:.7rem}.st.blocked,.room-dot.blocked,.room-status-dot.blocked{background:#1a1a1a}.st.free,.room-dot.free,.room-status-dot.free{background:#1f8a70}.st.occupied,.room-dot.occupied,.room-status-dot.occupied{background:#d64545}.st.consultar,.st.consult-dot,.room-dot.consultar,.room-status-dot.consultar{background:#f0b429}.st.unassigned,.room-dot.unassigned,.room-status-dot.unassigned{background:#1a1a1a}.house-day-grid .house-day{cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;min-width:0;min-height:4.2rem;overflow:visible}.house-day.others-free{background:#1f8a7052;border-color:#1f8a7080}.house-day.others-full{background:#d6454542;border-color:#d645457a}.house-day.others-free.selected{background:#1f8a706b;box-shadow:inset 0 0 0 1px #1f8a7059}.house-day.others-full.selected{background:#d645455c;box-shadow:inset 0 0 0 1px #d6454559}.house-day.in-range.others-free{background:#1f8a7066}.house-day.in-range.others-full{background:#d6454557}.house-day-grid .house-day:focus-visible{outline:2px solid var(--sea);outline-offset:1px}.room-dots{flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(.1rem,.8vw,.28rem);width:100%;max-width:100%;min-height:.7rem;margin-top:auto;padding:.32rem 0 .12rem;display:flex;overflow:visible}.room-dot{aspect-ratio:1;background:#1a1a1a;border:0;flex:0 auto;width:clamp(.34rem,2.4vw,.58rem);min-width:0;height:clamp(.34rem,2.4vw,.58rem);min-height:0;padding:0;display:inline-block;position:relative;box-shadow:0 0 0 1px #ffffffa6}.room-dot-who{pointer-events:none;z-index:1;border-radius:999px;width:.22rem;height:.22rem;position:absolute;bottom:calc(100% + 1px);left:50%;transform:translate(-50%);box-shadow:0 0 0 .5px #ffffffe6}.blocked-by{display:block;color:var(--ink-soft)!important;font-size:.72rem!important;font-weight:700!important}.room-side-actions{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.room-claim-actions{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;display:flex}.st-btn.mini{border-radius:999px;padding:.35rem .55rem;font-size:.72rem}.day-cell.range-start,.day-cell.range-endpoint{outline:2px solid var(--sea);outline-offset:-2px}.day-cell.in-range{background:#0f7c7424}.range-hint{color:var(--sea-deep);background:#0f7c741a;border:1px solid #0f7c7438;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .85rem;padding:.65rem .8rem;font-size:.88rem;font-weight:600;display:flex}.range-tip{margin:0 0 .85rem;font-size:.85rem}.room-list{gap:.55rem;width:100%;min-width:0;margin:0 0 1rem;padding:0;list-style:none;display:grid}.room-list li{border:1px solid var(--line);background:#ffffffb8;border-radius:14px;justify-content:space-between;align-items:center;gap:.5rem;min-width:0;padding:.7rem .75rem;display:flex}.room-meta{flex:auto;align-items:center;gap:.6rem;min-width:0;display:flex}.room-meta>div{flex-direction:column;gap:.1rem;min-width:0;display:flex}.room-meta span{font-size:.8rem;font-weight:700}.room-status-dot{flex-shrink:0;width:.85rem;height:.85rem}.room-status-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:800}.my-room-actions,.house-footer-actions{gap:.65rem;display:grid}.house-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%;min-width:0;margin:.75rem 0 .85rem;display:grid}.house-quick-actions.with-occupy{grid-template-columns:repeat(2,minmax(0,1fr))}.house-quick-actions .st-btn{text-overflow:ellipsis;white-space:nowrap;border-radius:999px;min-width:0;padding:.55rem .25rem;font-size:.72rem;line-height:1.15;overflow:hidden}.house-quick-actions.with-occupy .st-btn{padding:.55rem .2rem;font-size:.7rem}.house-quick-actions .st-btn.consult{background:linear-gradient(135deg, var(--sea) 0%, var(--sea-deep) 100%)}.st-btn.consult{background:linear-gradient(135deg, var(--sea) 0%, var(--sea-deep) 100%);color:#fff}.house-no-room{margin:.75rem 0}.status-actions{grid-template-columns:1fr;gap:.4rem;display:grid}@media (width>=520px){.status-actions{grid-template-columns:repeat(3,1fr)}.house-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.house-quick-actions.with-occupy{grid-template-columns:repeat(4,minmax(0,1fr))}.house-quick-actions .st-btn{padding:.5rem .3rem;font-size:.76rem}.house-quick-actions.with-occupy .st-btn{padding:.48rem .25rem;font-size:.72rem}}.st-btn{color:#fff;border:0;border-radius:12px;padding:.65rem .5rem;font-size:.82rem;font-weight:800}.st-btn.blocked{background:#1a1a1a}.st-btn.free{background:#1f8a70}.st-btn.occupied{background:#d64545}.st-btn:disabled{opacity:.6}.ghost-chip.active-chip{border-color:var(--sea);color:var(--sea-deep);background:#0f7c7426}.house-requests{gap:.65rem;display:grid}.house-requests-open{text-align:left;width:100%;box-shadow:var(--shadow);color:var(--ink);cursor:pointer;background:linear-gradient(135deg,#e85d4c1f 0%,#0f7c741a 100%);border:1px solid #e85d4c59;border-radius:16px;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.house-requests-open span:first-child{gap:.2rem;display:grid}.house-requests-open small{color:var(--ink-soft);font-size:.82rem}.house-requests-open[role=status]{cursor:default;border-color:#0f7c7459}.house-requests-sheet{gap:.75rem;padding-bottom:.5rem;display:grid}.banner.house-consult-banner{background:#e85d4c1f;border-color:#e85d4c59}.house-requests h3{margin:0;font-size:1.05rem}.house-request-card{background:var(--paper);box-shadow:var(--shadow);border:1px solid #e85d4c40;border-radius:16px;padding:.85rem}.house-request-question{margin:0 0 .55rem;font-size:1rem;line-height:1.35}.house-request-card .location-pick-grid.icons-row{margin-top:.55rem}.muted{color:var(--ink-soft);font-size:.9rem}.day-location-pick{margin-bottom:1rem}.location-pick-grid.icons-row{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.location-pick-btn.icon-only{border-radius:12px;gap:0;height:2.6rem;min-height:0;padding:.35rem}.location-pick-btn.icon-only .loc-icon-wrap{margin:0}.field-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .45rem;font-size:.78rem;font-weight:700}.location-pick-copy{margin:0 0 .85rem}.location-pick-grid{grid-template-columns:1fr 1fr;gap:.55rem;display:grid}.location-pick-grid.compact{gap:.45rem}.location-pick-btn{border:1px solid var(--line);min-height:5.2rem;color:var(--ink);background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:.75rem .5rem;font-weight:800;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.location-pick-grid.compact .location-pick-btn{min-height:4.4rem;font-size:.9rem}.location-pick-btn:active{transform:scale(.98)}.location-pick-btn:hover{border-color:#0f7c7466;box-shadow:0 0 0 2px #0f7c741f}.location-pick-btn.active{border-color:var(--sea);color:var(--sea-deep);background:#0f7c741a;box-shadow:0 0 0 2px #0f7c7433}.loc-icon-wrap.large{border-radius:12px;width:2.4rem;height:2.4rem}.location-pick-sheet .location-pick-btn{min-height:5.6rem}@media (width>=880px){.houses-view{grid-template-columns:1.45fr 1fr;align-items:start}.house-switch,.house-legend-row,.house-requests,.house-quick-actions,.banner.error{grid-column:1/-1}.house-grid-shell{min-width:0}}@media (width<=420px){.house-grid-shell{padding:.55rem}.house-day-grid{gap:.12rem}.house-day-grid .house-day{border-radius:8px;min-height:3.2rem;padding:.1rem}.house-legend-row{gap:.45rem .7rem;font-size:.75rem}}.community-switch{flex-wrap:wrap;justify-content:center;align-self:center;gap:.45rem;width:100%;margin-bottom:.85rem;display:flex}.community-switch.super-tabs{justify-content:stretch;align-self:stretch}.community-switch.super-tabs .house-tab{flex:1 1 0}.community-assign{border:0;gap:.45rem;margin:0;padding:0;display:grid}.community-assign>span{color:var(--ink-soft);font-size:.78rem;font-weight:700}.assign-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.assign-list li{border:1px solid var(--line);background:#ffffffa6;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;padding:.55rem .65rem;display:flex}.community-switch .house-tab{flex:0 auto}.parking-map-view{gap:.85rem;animation:.55s both rise;display:grid}.map-tools{border:1px solid var(--line);background:#ffffff8c;border-radius:16px;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;padding:.3rem;display:grid}.map-tools button{color:var(--ink-soft);background:0 0;border:0;border-radius:12px;padding:.55rem .3rem;font-size:.82rem;font-weight:800}.map-tools button.active{color:var(--sea-deep);background:#fff;box-shadow:0 8px 18px #0f373e14}@media (width<=520px){.map-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.map-tools button{padding:.5rem .2rem;font-size:.72rem}}.parking-plan{width:100%;min-height:0;box-shadow:none;touch-action:none;background:0 0;border:0;border-radius:0;overflow:visible}.parking-plan svg{cursor:default;width:100%;height:auto;display:block}.parking-plan:not(.tool-view){background:#ffffff38;border:1px solid #16323f1a;border-radius:22px;min-height:18rem}.parking-plan:not(.tool-view) svg{aspect-ratio:auto;height:min(68dvh,560px)}.parking-plan.tool-line svg,.parking-plan.tool-stall svg{cursor:crosshair}.parking-plan.tool-erase svg{cursor:not-allowed}.plan-bg{fill:none}@media (width<=879px){.community-switch{display:none}.app{padding-top:max(.65rem, env(safe-area-inset-top));padding-left:max(.95rem, env(safe-area-inset-left));padding-right:max(.95rem, env(safe-area-inset-right))}.topbar .brand{display:none}.app-actions{border-top:0;border-bottom:1px solid var(--line);order:0;margin-top:0;margin-bottom:.85rem;padding:.55rem .35rem .65rem;overflow:visible}.schedule-nav{gap:.7rem;margin-bottom:1.15rem}.day-strip{grid-template-columns:minmax(0,1fr)}.day-strip-next{display:none}.day-strip-scroll,.hour-strip{background:#ffffff94;border-color:#ffffffbf;border-radius:18px;gap:.45rem;padding:.4rem}.day-chip{border-radius:14px;min-width:3.65rem;padding:.5rem .4rem .55rem}.day-chip-name{gap:.22rem;font-size:.6rem}.day-chip-num{margin-top:.12rem;font-size:1.2rem}.hour-chip{border-radius:12px;padding:.58rem .7rem;font-size:.8rem}.parking-map-view{gap:.9rem;animation:none}.range-actions{gap:.75rem}.range-actions-bar{gap:.55rem}.range-actions-bar .st-btn{border-radius:14px;min-height:2.5rem;padding:.5rem .7rem;font-size:.78rem}.house-legend-row{gap:.7rem 1.15rem;padding:.25rem 0 .2rem;font-size:.78rem}.app-actions{gap:.4rem;margin-top:0;margin-bottom:.85rem;padding:.55rem .35rem .7rem;overflow:visible}.app-actions .icon-chip,.app-actions .ghost-chip,.app-actions .today-chip{border-radius:14px;height:2.8rem;padding:.4rem .2rem;font-size:.7rem}.map-tools{display:none}.parking-plan:not(.tool-view){background:#ffffff80;border:1px solid #ffffffb8;border-radius:20px;min-height:0;padding:.5rem .35rem}.parking-plan:not(.tool-view) svg{height:auto}.sheet-backdrop{z-index:80;justify-content:stretch;align-items:stretch;padding:0}.sheet{width:100%;max-width:none;min-height:100dvh;max-height:none;padding:max(.45rem, env(safe-area-inset-top)) .8rem calc(.7rem + env(safe-area-inset-bottom));border-radius:0;animation:.2s fade}.sheet-handle{display:none}.sheet-head{margin-bottom:.4rem}.spot-sheet h3{font-size:.92rem}.spot-sheet-meta,.spot-sheet-apply{margin-bottom:.3rem;font-size:.68rem}.spot-sheet-status{margin-bottom:.45rem;font-size:.78rem}.spot-range-block{margin-bottom:.5rem}.spot-range-block .field{margin-bottom:.35rem}.spot-range-block .field>span,.spot-sheet .field>span{font-size:.68rem}.spot-sheet .field input,.spot-sheet .field select,.spot-sheet .field textarea{border-radius:10px;padding:.42rem .55rem;font-size:.78rem}.hour-range-fields{gap:.4rem}.spot-sheet .check-row{margin:.15rem 0 .35rem;font-size:.7rem}.spot-status-actions,.spot-extra-actions{gap:.3rem;margin-bottom:.5rem}.spot-status-actions .st-btn,.spot-extra-actions .st-btn,.spot-extra-actions .ghost-btn,.spot-sheet .consult-inline .st-btn{border-radius:9px;min-height:2rem;padding:.28rem .2rem;font-size:.65rem}.consult-inline{gap:.4rem;margin-top:.45rem}}.plan-grid{fill:#16323f1f;pointer-events:none}.plan-wall{stroke:#16323f;stroke-width:1.6px;stroke-linecap:square;fill:none}.plan-aisle{stroke:#16323f;stroke-width:1.1px;stroke-dasharray:4 3;stroke-linecap:round;fill:none;opacity:.55}.plan-draft{stroke:var(--sea);stroke-width:1.4px;stroke-dasharray:3 2;fill:none}.plan-stall{cursor:pointer}.plan-stall .stall-fill-base,.plan-stall rect{stroke:#16323f;stroke-width:1.15px;fill:#d645458c}.plan-stall.free .stall-fill-base,.plan-stall.free>rect:not(.stall-fill-occ){fill:#1f8a708c}.plan-stall.consultar .stall-fill-base,.plan-stall.consultar>rect:not(.stall-fill-occ){fill:#f0b429b8}.plan-stall.unassigned .stall-fill-base,.plan-stall.unassigned>rect:not(.stall-fill-occ){fill:#1a1a1a;stroke:#2c2c2c}.plan-stall.occupied .stall-fill-base,.plan-stall.occupied>rect:not(.stall-fill-occ){fill:#d645458c}.plan-stall .stall-fill-occ{fill:#d64545c7;stroke:none;pointer-events:none}.plan-stall.unassigned text{fill:#fff8ef}.plan-stall .stall-hours{fill:#7a1f1f;font-weight:900}.plan-stall.dragging{opacity:.8}.plan-stall text{fill:#16323f;pointer-events:none;font-weight:800}.map-admin-bar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.st-btn.consult.mini{color:#16323f;background:linear-gradient(135deg,#e2a317 0%,#c4840c 100%)}.chat-app{min-height:min(68dvh,640px);max-height:min(74dvh,720px);box-shadow:var(--shadow);background:#dceee8b3;border:1px solid #ffffff8c;border-radius:22px;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.chat-list-head{padding:.9rem 1rem .55rem}.chat-list-head h2{margin:0;font-size:1.2rem}.chat-list-head p{color:var(--ink-soft);margin:.2rem 0 0;font-size:.85rem}.chat-list{padding:.25rem .45rem .7rem;overflow:auto}.chat-row{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.7rem .55rem;display:grid}.chat-row:hover,.chat-row:focus-visible{background:#ffffff8c}.chat-row-body{gap:.12rem;min-width:0;display:grid}.chat-row-body strong,.chat-row-body small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-row-body small{color:var(--ink-soft);font-size:.82rem}.chat-row-meta{color:var(--ink-soft);font-variant-numeric:tabular-nums;justify-items:end;gap:.25rem;font-size:.72rem;display:grid;position:relative}.chat-avatar{color:#fff;background:var(--sea);border-radius:999px;flex-shrink:0;place-items:center;width:2.55rem;height:2.55rem;font-weight:800;display:grid}.chat-avatar.group{background:linear-gradient(145deg, var(--sea), var(--sea-deep))}.chat-thread-head{border-bottom:1px solid var(--line);background:#ffffffb8;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.55rem;padding:.55rem .7rem;display:grid}.chat-thread-head strong,.chat-thread-head small{display:block}.chat-thread-head small{color:var(--ink-soft);font-size:.75rem}.chat-thread-head .ghost-btn{width:2.1rem;padding:0;font-size:1.4rem;line-height:1}.chat-bubbles{background:radial-gradient(80% 40% at 10% 0,#ffffff59,#0000 55%),#cee8e0d9;align-content:start;gap:.45rem;padding:.85rem .75rem .5rem;display:grid;overflow:auto}.chat-empty,.chat-error{margin:.4rem .9rem}.chat-bubble{border-radius:14px;max-width:min(82%,22rem);padding:.45rem .65rem .3rem;box-shadow:0 8px 18px #0f373e14}.chat-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-bubble time{text-align:right;opacity:.7;margin-top:.2rem;font-size:.68rem;display:block}.chat-bubble-name{color:var(--sea-deep);margin-bottom:.12rem;font-size:.72rem;font-weight:800;display:block}.chat-bubble.mine{background:#d8f8d0;border-bottom-right-radius:4px;justify-self:end}.chat-bubble.theirs{background:#fff;border-bottom-left-radius:4px;justify-self:start}.chat-composer{padding:.55rem .65rem calc(.65rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#ffffffc7;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;display:grid}.chat-composer input{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.7rem .95rem}.chat-composer .st-btn{border-radius:999px;min-width:5.2rem}
