:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--bg-app: #eef3ee;--bg-sidebar: #08150f;--surface-1: #ffffff;--surface-2: #f7fbf8;--surface-3: #edf5f0;--border-subtle: rgba(45, 82, 59, .14);--border-strong: rgba(45, 82, 59, .26);--text-primary: #17211b;--text-secondary: #58695f;--text-muted: #718078;--primary: #2f7f4b;--primary-hover: #3b9659;--primary-active: #24683b;--danger: #d7473f;--danger-hover: #e45a52;--danger-surface: rgba(215, 71, 63, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--shadow-card: 0 10px 30px rgba(0, 0, 0, .1);color:#17211b;background:#eef3ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}:root[data-theme=dark]{--bg-app: #07110d;--bg-sidebar: #08150f;--surface-1: #0e1d15;--surface-2: #13251b;--surface-3: #193022;--border-subtle: rgba(180, 220, 190, .12);--border-strong: rgba(180, 220, 190, .22);--text-primary: #f3f7f4;--text-secondary: #a8b7ad;--text-muted: #74847a;--primary: #34834c;--primary-hover: #409b5b;--primary-active: #286c3d;--danger: #df5148;--danger-hover: #ed6259;--danger-surface: rgba(223, 81, 72, .08);--shadow-card: 0 10px 30px rgba(0, 0, 0, .14)}*{box-sizing:border-box}body{margin:0;font-size:1rem;line-height:1.5}body.drawer-open{overflow:hidden}button,input,textarea,select{font:inherit}button{min-height:42px;border:0;border-radius:8px;background:#1f7a4d;color:#fff;padding:.65rem 1rem;cursor:pointer;font-weight:700;font-size:.95rem;line-height:1.15}button:disabled{opacity:.55;cursor:not-allowed}.auth-screen{min-height:100dvh;overflow-y:auto;display:flex;flex-direction:column;padding:max(24px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at top,rgba(42,132,83,.16),transparent 42%),#f3f7f3}.auth-shell{width:min(100%,520px);margin:auto;display:flex;flex-direction:column;gap:24px}.auth-hero{padding:24px 4px 0}.auth-logo{display:grid;place-items:center;width:58px;height:58px;margin-bottom:20px;border-radius:18px;background:#1f7a4d;color:#fff;font-size:2rem;font-weight:900;box-shadow:0 12px 28px #1f7a4d3d}.auth-title{margin:0;font-size:clamp(2.2rem,9vw,4rem);line-height:1.02;letter-spacing:-.04em}.auth-description{margin:16px 0 0;max-width:38rem;font-size:1.05rem;line-height:1.5}.auth-card{width:100%;padding:22px;border-radius:24px;background:#fff;box-shadow:0 18px 48px #1637231f}.auth-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin-bottom:20px;border-radius:15px;background:#edf3ee}.auth-mode-tab{min-height:46px;border:0;border-radius:11px;padding:8px 10px;background:transparent;color:#173b27;font-size:.95rem;font-weight:700}.auth-mode-tab[aria-selected=true]{background:#fff;box-shadow:0 4px 14px #183e271a}.auth-form{display:grid;gap:14px}.auth-label{display:grid;gap:7px;font-weight:700}.auth-input{width:100%;min-height:54px;padding:0 16px;border:1px solid #b8c7bd;border-radius:14px;font-size:16px}.auth-primary-button{width:100%;min-height:54px;border-radius:14px;font-size:18px;font-weight:800}.auth-error{margin:0;padding:12px 14px;border-radius:12px;background:#fff0f0;color:#922020;line-height:1.4}.auth-help{margin:0;font-size:.92rem;line-height:1.45;color:#5a665e}.auth-footer{display:flex;justify-content:center;text-align:center}.auth-footer a{display:inline-flex;min-height:44px;align-items:center;padding:8px 12px;color:#24583a}@media(max-height:700px){.auth-shell{margin:0 auto;gap:16px}.auth-hero{padding-top:8px}.auth-logo{margin-bottom:12px}}button.secondary{background:#dbe7df;color:#173b27}button.tiny{padding:.22rem .45rem;font-size:.76rem;background:#9f3a38}input,textarea,select{width:100%;min-height:42px;border:1px solid #c7d6cd;border-radius:8px;padding:.65rem .75rem;background:#fff;color:#17211b;font-size:1rem}textarea{min-height:74px;resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.5rem,3vw,2.2rem)}h2{font-size:1.28rem}h3{font-size:1.05rem}h4{font-size:.98rem}.topbar{background:#123321;color:#fff;padding:1.2rem max(1rem,calc((100vw - 1400px)/2))}.topbar h1{margin-bottom:.2rem;font-size:clamp(1.6rem,3vw,2.4rem)}.topbar p{margin-bottom:0;color:#d6e6da}.app-shell{width:calc(100% - 32px);max-width:1400px;margin:1.25rem auto 3rem}.panel{background:#fff;border:1px solid #d9e4dd;border-radius:10px;padding:clamp(1rem,1.5vw,1.5rem);box-shadow:0 6px 18px #162c1f0f;margin-bottom:1rem}.nick-panel,.section-head,.inline-form,.button-row,.plan-title{display:flex;gap:.62rem;align-items:center;justify-content:space-between}.nick-panel>div{min-width:220px}.language-panel{display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.language-panel label{font-weight:700}.language-panel select{width:auto;min-width:150px}.translation-provider{color:#64766c;font-size:.78rem}.translation-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.35rem 0 .55rem;color:#64766c;font-size:.88rem}.translation-controls button{padding:.32rem .55rem;font-size:.82rem}.alert-inline{color:#9f3a38;font-weight:700}.inline-link{width:auto;padding:0;background:transparent;color:inherit;font-size:inherit;font-weight:800}.owner-tools-toggle{display:grid;gap:.3rem;margin-bottom:.7rem}.inline-form{align-items:stretch}.layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:1rem}.chat-panel{min-height:560px;display:flex;flex-direction:column}.messages{height:auto;max-height:460px;min-height:300px;overflow:auto;border:1px solid #e0e9e4;border-radius:8px;padding:.58rem;background:#f8fbf9}.message{max-width:82%;margin:0 0 .55rem;padding:.55rem .65rem;background:#fff;border:1px solid #d9e4dd;border-radius:8px;position:relative}.message.mine{margin-left:auto;background:#e3f3e9;border-color:#b9d8c6}.message.mentioned-me{border-color:#b7791f;background:#fff8df}.mention-chip{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone;border-radius:6px;background:#dbe7df;color:#173b27;padding:0 .22rem;font-weight:700}.public-chat-admin-form{display:grid;grid-template-columns:minmax(8rem,.5fr) minmax(10rem,1fr) minmax(14rem,2fr) 6rem auto auto;gap:.5rem;align-items:center;margin-bottom:.5rem}@media(max-width:720px){.public-chat-admin-form{grid-template-columns:1fr}}.message div,.participants,.trail-grid,.admin-grid{display:flex;gap:.5rem;flex-wrap:wrap}.message>div{align-items:center}.name-button{width:auto;padding:0;background:transparent;color:inherit;font-weight:700}.message-menu-button{margin-left:auto;background:transparent;color:#365342;padding:.1rem .28rem;font-size:1rem;opacity:.72}.message:hover .message-menu-button,.message-menu-button:focus{opacity:1}.message-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-message-link{color:inherit;overflow-wrap:anywhere;word-break:break-word;text-decoration:underline;text-underline-offset:2px;font-weight:700}.chat-message-link:hover,.chat-message-link:focus{text-decoration-thickness:2px}.edited-label,.desktop-helper{color:#64766c;font-size:.78rem}.inline-edit{display:grid;gap:.45rem;margin-top:.45rem}.inline-edit textarea{min-height:70px}.action-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:end center;background:#0c161038;padding:.75rem}.action-sheet{width:min(420px,100%);display:grid;gap:.35rem;border:1px solid #d9e4dd;border-radius:8px;background:#fff;padding:.55rem;box-shadow:0 16px 44px #162c1f38}.action-sheet button{width:100%;background:#eef5f0;color:#17211b;text-align:left}.user-results{display:grid;gap:.45rem;margin-top:.7rem}.user-result{display:flex;gap:.55rem;align-items:center;justify-content:space-between;border:1px solid #dbe6df;border-radius:8px;padding:.5rem}.success{color:#1f7a4d;font-weight:700}.app-update-prompt{position:fixed;z-index:120;right:24px;bottom:24px;display:flex;width:min(520px,calc(100% - 48px));align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-1);color:var(--text-primary);box-shadow:0 20px 55px #00000047}.app-update-prompt p{margin:.35rem 0 0;color:var(--danger);font-size:.9rem}.app-update-prompt .button-row{flex:0 0 auto}.message time,.muted,.section-head span,.empty{color:#64766c}.message p,.plan p,.trail-card p{margin-bottom:.34rem;line-height:1.38}.chat-form,.plan-form{display:grid;gap:.55rem;margin-top:.62rem}.plan-location-fields{display:grid;gap:.55rem}.plan-location-map{height:320px;min-height:280px;border-radius:8px;border:1px solid #cbd8d0;overflow:hidden}.meeting-location-fields{min-width:0;margin:.8rem 0;padding:.8rem;border:1px solid #cbd8d0;border-radius:8px}.meeting-location-fields legend{font-weight:700;padding:0 .35rem}.meeting-point-summary{overflow-wrap:anywhere;border-left:4px solid #7c3aed;padding-left:.8rem}.meeting-point-marker span{display:grid;place-items:center;width:34px;height:34px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#7c3aed;box-shadow:0 2px 8px #0000004d}.meeting-point-marker span:first-letter{transform:rotate(45deg)}.archived-rooms-section{margin-top:.8rem}.archived-rooms-section summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.room-card.archived{opacity:.82;border-style:dashed;background:#f5f6f5}.archived-room-banner{margin-bottom:.8rem;padding:.9rem;border:1px solid #a7aaa8;border-radius:8px;background:#f3f4f3}.room-archive-settings{margin-bottom:2rem;padding:1rem;border:1px solid #c5cbc7;border-radius:8px}.custom-location-marker span,.custom-plan-marker span{display:block;width:24px;height:24px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid #fff;background:#7b5bbd;box-shadow:0 2px 8px #00000059}.custom-location-marker span{background:#c9472d}.plan-location-detail{border:1px solid #dbe6df;border-radius:8px;padding:.55rem;background:#fbfdfc}.weather-card{display:grid;gap:.55rem;border:1px solid #dbe6df;border-radius:8px;padding:.65rem;background:#f7fbf8;margin:.7rem 0}.weather-card.compact{background:#eef7f1}.weather-card h3,.weather-card h4,.weather-card p{margin-bottom:0}.weather-summary{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;color:#365342}.weather-icon{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:7px;background:#fff;border:1px solid #dbe6df;font-size:1.15rem}.weather-warning{color:#7a4b08;background:#fff8df;border:1px solid #ead28d;border-radius:8px;padding:.48rem .6rem}.weather-hour-list{display:grid;gap:.3rem}.weather-hour{display:grid;grid-template-columns:4.2rem 2rem repeat(3,minmax(0,1fr));gap:.35rem;align-items:center;padding:.35rem .45rem;border:1px solid #dbe6df;border-radius:7px;background:#fff}.weather-hour time{color:#64766c}.weather-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.45rem}.weather-day{border:1px solid #dbe6df;border-radius:8px;background:#fff;padding:.55rem}.attachment-picker{display:grid;gap:.45rem}.attach-button{display:inline-flex;align-items:center;gap:.35rem;width:max-content;border-radius:7px;background:#dbe7df;color:#173b27;padding:.5rem .7rem;font-weight:800;cursor:pointer}.attach-button input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.pending-attachments{display:grid;gap:.45rem}.message-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pending-attachment{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:.45rem;align-items:center;border:1px solid #dbe6df;border-radius:8px;padding:.35rem;background:#fff}.pending-attachment img{width:44px;height:44px;object-fit:cover;border-radius:6px}.pending-attachment span{min-width:0;overflow-wrap:anywhere}.pending-attachment small{display:block;color:#64766c}.file-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:6px;background:#eef5f0;color:#173b27;font-weight:800;font-size:.78rem}.chat-image-attachment{border:0;padding:0;background:transparent;cursor:pointer;border-radius:8px;overflow:hidden;max-width:220px}.chat-image-attachment img{display:block;max-width:220px;max-height:220px;width:auto;height:auto;object-fit:cover;border-radius:8px;border:1px solid #cbd8d0}.chat-file-attachment{display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:8px 10px;border-radius:8px;color:inherit;text-decoration:none;border:1px solid #dbe6df;background:#fbfdfc}.chat-file-attachment small{color:#64766c;font-size:.8rem;white-space:nowrap}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d1;display:flex;align-items:center;justify-content:center;padding:24px}.image-lightbox-content{max-width:min(96vw,1200px);max-height:92vh;display:flex;flex-direction:column;align-items:center}.image-lightbox-content img{max-width:100%;max-height:84vh;object-fit:contain;border-radius:14px}.image-lightbox-close{position:fixed;top:16px;right:16px;z-index:10000;width:44px;height:44px;border-radius:999px;border:0;font-size:28px;line-height:1;cursor:pointer;padding:0;display:grid;place-items:center}.image-lightbox-caption{margin-top:10px;color:#fff;font-size:14px;opacity:.9;max-width:90vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-link-card{display:grid;gap:.45rem;width:min(420px,100%);margin-top:.48rem;border:1px solid #cbded3;border-radius:8px;padding:.62rem;background:#fbfdfc;color:#17211b}.room-link-card.unavailable{color:#84201e}.room-link-head{display:flex;justify-content:space-between;gap:.55rem;align-items:flex-start}.room-link-head span{border-radius:999px;background:#eef5f0;color:#365342;padding:.12rem .45rem;font-size:.74rem;font-weight:800;white-space:nowrap}.room-link-card p{margin-bottom:0}.room-link-card button{width:max-content}.selected-room-share{display:grid;gap:.35rem}.share-room-button{width:max-content}.share-room-list{display:grid;gap:.55rem;max-height:56vh;overflow:auto}.share-room-option{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.share-room-option .room-link-card{width:100%;margin-top:0}.mention-input-wrap{position:relative}.mention-menu{position:absolute;left:0;right:0;bottom:calc(100% + .3rem);z-index:5;max-height:220px;overflow:auto;border:1px solid #c7d6cd;border-radius:8px;background:#fff;box-shadow:0 10px 28px #162c1f24;padding:.25rem}.mention-option{width:100%;display:flex;justify-content:space-between;gap:.5rem;align-items:center;border-radius:6px;background:transparent;color:#17211b;text-align:left;padding:.45rem .55rem}.mention-option.active,.mention-option:hover{background:#e9f1ec}.mention-option small{color:#64766c}.direct-layout{display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);gap:.75rem}.direct-list{display:grid;align-content:start;gap:.45rem}.direct-conversation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.22rem .5rem;width:100%;background:#eef5f0;color:#17211b;text-align:left}.direct-conversation>.profile-avatar-shell{grid-row:1 / 3;grid-column:1;align-self:center}.direct-conversation>strong{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.direct-conversation>span:not(.profile-avatar-shell){grid-column:3}.direct-conversation.active{background:#1f7a4d;color:#fff}.direct-conversation small{grid-column:2 / 4;color:inherit;opacity:.8;font-weight:500}.direct-conversation span{border-radius:999px;background:#9f3a38;color:#fff;padding:.05rem .4rem;font-size:.78rem}.direct-chat{min-width:0}.plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.hidden-date-picker{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.plan-form textarea,.plan-form button,.plan-form input:first-child,.plan-form .section-head,.plan-form .button-row{grid-column:1 / -1}.plan-list{display:grid;gap:.62rem;margin-top:.75rem}.plan,.trail-card,.interest-box{border:1px solid #dbe6df;border-radius:8px;padding:.68rem;background:#fbfdfc}.plan-detail{margin-top:.9rem;border-top:1px solid #dbe6df;padding-top:.9rem;max-height:520px;overflow-y:auto}.clamped-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.checklist-panel{display:grid;gap:.62rem;margin-top:.7rem}.checklist-head{align-items:stretch}.checklist-head h4{margin:0}.checklist-head select{max-width:240px}.checklist-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(90px,.35fr) minmax(160px,.5fr);gap:.65rem}.checklist-form textarea,.checklist-form .button-row{grid-column:1 / -1}.checklist-list{display:grid;gap:.65rem}.checklist-item{border:1px solid #dbe6df;border-radius:8px;padding:.58rem;background:#fff}.checklist-item.done{background:#f1f6f3}.checklist-item.done strong{text-decoration:line-through;color:#64766c}.checklist-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:.45rem 0}.checklist-meta span{border-radius:999px;background:#e9f1ec;padding:.22rem .55rem;font-size:.86rem}.compact-actions{justify-content:flex-start;gap:.45rem}.admin-plan-list,.admin-plan-item{display:grid;gap:.65rem}.admin-plan-item{border-bottom:1px solid #e7eee9;padding-bottom:.75rem}.admin-plan-item:last-child{border-bottom:0}.text-link{width:auto;display:inline;border:0;border-radius:0;padding:0;background:transparent;color:#1f6f46;font-weight:700;text-decoration:underline}.trail-card.focused{border-color:#1f7a4d;box-shadow:0 0 0 2px #1f7a4d29}.participants span{border-radius:999px;background:#e9f1ec;padding:.28rem .6rem;font-size:.9rem}.plan-participants-box,.attendance-manager,.participant-group{display:grid;gap:.55rem}.attendance-summary{display:flex;gap:.45rem;flex-wrap:wrap}.attendance-summary span{border-radius:999px;background:#eef5f0;padding:.28rem .6rem;font-size:.9rem;font-weight:700}.attendance-tools{display:grid;grid-template-columns:minmax(180px,1fr) 180px;gap:.5rem}.attendance-section{display:grid;gap:.65rem;margin-top:1rem;border-top:1px solid #dbe6df;padding-top:.9rem}.attendance-plan-select{position:sticky;top:.5rem;z-index:5;display:grid;gap:.35rem;background:#fbfdfc;border:1px solid #dbe6df;border-radius:8px;padding:.55rem}.attendance-member-list{display:grid;gap:.45rem}.attendance-member-row{display:grid;grid-template-columns:minmax(140px,1fr) auto minmax(220px,auto);gap:.5rem;align-items:center;border:1px solid #dbe6df;border-radius:8px;padding:.45rem}.room-attendance{display:grid;gap:14px;margin-top:16px;padding:18px;border:1px solid var(--border-subtle, #dbe6df);border-radius:var(--radius-md, 12px);background:var(--surface-2, #eef5f0)}.room-attendance h3,.room-attendance h4,.room-attendance p{margin:0}.room-attendance-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.room-attendance-actions .attendance-choice{min-height:48px;font-size:1rem}.room-attendance-actions .attendance-choice.active{background:var(--primary, #34834c);color:#fff;box-shadow:inset 0 0 0 2px color-mix(in srgb,#fff 22%,transparent)}.room-attendance-actions .attendance-choice.active.negative{background:var(--danger, #b84640)}.room-attendance-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.room-attendance-current .link-button{min-height:0;width:auto;padding:2px 0;border:0;background:transparent;color:var(--text-secondary, #52665a);text-decoration:underline}.room-attendance-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.room-attendance-counts span{display:grid;gap:2px;min-width:0;padding:10px;border-radius:var(--radius-sm, 8px);background:var(--surface-1, #fff);color:var(--text-secondary, #52665a);font-size:.82rem}.room-attendance-counts strong{color:var(--text-primary, #17251c);font-size:1.25rem}.room-attendance-people{display:grid;gap:9px}.attendance-avatar-list{display:flex;gap:10px;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:thin}.attendance-avatar-list button{display:grid;justify-items:center;flex:0 0 68px;gap:5px;min-height:68px;padding:6px 3px;border:0;background:transparent;color:var(--text-primary, #17251c)}.attendance-avatar-list button span:last-child{width:100%;overflow:hidden;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.map{height:420px;width:100%;border-radius:8px;border:1px solid #cbd8d0;overflow:hidden}.trail-marker span{display:block;width:22px;height:22px;border-radius:50%;border:3px solid #fff;background:#d94d2b;box-shadow:0 2px 8px #00000059}.trail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:1rem}.interest-box{margin-top:1rem}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1rem}.admin-grid>div{border:1px solid #dbe6df;border-radius:8px;padding:.8rem;max-height:320px;overflow:auto}.alert{color:#84201e;background:#fde8e7;border:1px solid #f3b9b6;border-radius:8px;padding:.65rem .8rem;margin-bottom:0}@media(max-width:820px){:root{font-size:16px}body{font-size:1rem}h1{font-size:1.42rem}h2{font-size:1.12rem}h3{font-size:1rem}.attendance-tools,.attendance-member-row{grid-template-columns:1fr}.room-attendance{gap:16px;margin-inline:-2px;padding:16px;border:0;border-radius:var(--radius-lg, 20px)}.room-attendance-actions{position:sticky;bottom:calc(var(--bottom-nav-height, 72px) + var(--safe-area-bottom, 0px) + 8px);z-index:8;padding:6px;border-radius:var(--radius-md, 14px);background:color-mix(in srgb,var(--surface-2, #13251b) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-attendance-actions .attendance-choice{min-height:52px}.nearby-camping-row{grid-template-columns:1fr;gap:4px}.nearby-camping-row>a{min-height:44px;display:flex;align-items:center}button{min-height:42px;padding:.55rem .7rem;font-size:.95rem;border-radius:7px}input,textarea,select{min-height:42px;padding:.55rem .65rem;font-size:1rem}textarea{min-height:66px}.layout,.plan-form,.checklist-form,.room-form,.nick-panel,.language-panel{grid-template-columns:1fr;display:grid}.language-panel select{width:100%}.room-card{flex-direction:column}.inline-form,.section-head,.plan-title{align-items:stretch;flex-direction:column}.checklist-head select{max-width:none}.message{max-width:100%}.desktop-helper{display:none}.action-backdrop{align-items:end;padding:0}.action-sheet{border-radius:8px 8px 0 0;padding:.7rem}.direct-layout{grid-template-columns:1fr}.messages,.map{height:300px}.panel{padding:.62rem;margin-bottom:.58rem}.plan,.trail-card,.interest-box,.room-card,.room-preview{padding:.55rem}}@media(max-width:600px){.image-lightbox-overlay{padding:12px}.image-lightbox-content img{max-height:80vh;border-radius:10px}}.legend{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 .8rem}.legend span,.check-row{display:inline-flex;align-items:center;gap:.35rem}.legend i{width:.8rem;height:.8rem;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #a9b8af}.trail-admin{border:1px solid #dbe6df;border-radius:8px;padding:.78rem;margin:.75rem 0;background:#fbfdfc}.trail-tools,.trail-edit-form,.import-form{display:grid;gap:.55rem;margin-top:.62rem}.trail-tools{grid-template-columns:220px 1fr}.trail-tools select,.trail-edit-form select{border:1px solid #c7d6cd;border-radius:7px;padding:.58rem .7rem;background:#fff;color:#17211b;font:inherit}.trail-table-wrap{overflow:auto;max-height:min(520px,55vh);margin-top:.8rem;border:1px solid #dbe6df;border-radius:8px}.trail-table{width:100%;min-width:860px;border-collapse:collapse;background:#fff}.trail-table th,.trail-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid #e7eee9;vertical-align:top}.trail-table th{position:sticky;top:0;z-index:1;background:#eef6f1;color:#244431;font-size:.9rem}.trail-table input[type=checkbox],.check-row input[type=checkbox]{width:auto}.table-actions{display:flex;gap:.4rem;flex-wrap:wrap}.trail-edit-form{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #dbe6df;padding-top:.9rem}.trail-edit-form h4,.trail-edit-form textarea,.trail-edit-form .button-row,.trail-edit-form .check-row,.import-form h4,.import-form textarea,.import-form button{grid-column:1 / -1}.import-form{border-top:1px solid #dbe6df;padding-top:.9rem}.import-form textarea{min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.success{color:#195c37;background:#e4f5eb;border:1px solid #aedcc1;border-radius:8px;padding:.65rem .8rem;margin-bottom:0}@media(max-width:820px){.trail-tools,.trail-edit-form{grid-template-columns:1fr}}.map-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.45fr) minmax(190px,.45fr) auto;gap:.55rem;align-items:stretch;margin-bottom:.62rem}.map-toolbar select{border:1px solid #c7d6cd;border-radius:7px;padding:.58rem .7rem;background:#fff;color:#17211b;font:inherit}.map-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}.map-box{min-height:520px}.map-box .map{height:520px}.live-hike-panel{border:1px solid #b9d8c6;background:#f7fbf8;border-radius:8px;padding:.72rem;margin:.72rem 0;display:grid;gap:.55rem}.live-hike-panel h3{margin:0}.live-participants{display:grid;gap:.45rem}.live-participant{border:1px solid #d5e3da;background:#fff;border-radius:7px;padding:.55rem .65rem;display:grid;gap:.18rem}.live-participant span{color:#4f6157;font-size:.92rem}.live-participant.live strong{color:#0f766e}.live-participant.stale{opacity:.74}.wake-lock-row{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}.live-hike-marker{background:transparent;border:0}.live-hike-marker span{width:28px;height:28px;border-radius:999px;border:3px solid #fff;box-shadow:0 3px 10px #00000047;display:block;position:relative}.live-hike-marker span i{position:absolute;left:8px;top:-5px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:9px solid #fff}.live-hike-marker.stale span{opacity:.48;filter:grayscale(.45)}.transport-panel,.memories-panel,.memory-detail{display:grid;gap:.7rem}.transport-form,.memory-form,.memory-entry-form{display:grid;gap:.55rem;border:1px solid #d5e3da;border-radius:8px;padding:.7rem;background:#f9fcfa}.ride-list,.memory-grid{display:grid;gap:.7rem}.ride-card,.memory-card,.memory-entry{border:1px solid #d5e3da;border-radius:8px;padding:.7rem;background:#fff;overflow-wrap:anywhere}.transport-passengers,.ride-needs{display:grid;gap:.35rem}.memory-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:.75rem;align-items:start}.memory-card>img,.memory-placeholder{width:112px;aspect-ratio:4 / 3;border-radius:7px;object-fit:cover;background:#e8f0eb}.memory-timeline{display:grid;gap:.75rem;border-left:2px solid #cfe0d6;padding-left:.8rem}.memory-entry{position:relative}.memory-entry:before{content:"";position:absolute;left:-.98rem;top:1rem;width:.55rem;height:.55rem;border-radius:999px;background:#1f7a4d}.memory-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.45rem}.memory-photo-grid button{padding:0;border:0;background:transparent}.memory-photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px}.privacy-page,.privacy-settings{display:grid;gap:.85rem}.privacy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.privacy-grid article,.delete-confirm-box{border:1px solid #d5e3da;border-radius:8px;padding:.75rem;background:#fff}.privacy-request-form{display:grid;gap:.55rem;max-width:720px}.privacy-request-form textarea{min-height:120px}.trails-panel{max-height:520px;overflow-y:auto;padding-right:8px;display:grid;gap:.75rem;align-content:start}.trails-panel .trail-card{margin:0}@media(max-width:900px){.map-toolbar{grid-template-columns:1fr 1fr}.map-toolbar button{grid-column:1 / -1}}@media(max-width:768px){.map-layout{grid-template-columns:1fr}.map-box{min-height:360px}.map-box .map{height:360px}.trails-panel{max-height:320px}.memory-card{grid-template-columns:1fr}.memory-card>img,.memory-placeholder{width:100%}.memory-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.map-toolbar{grid-template-columns:1fr}}.rooms-panel{display:grid;gap:.62rem}.room-list{display:grid;gap:.55rem}.room-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:flex-start;border:1px solid #dbe6df;border-radius:8px;padding:.78rem;background:#fbfdfc}.room-card.active{border-color:#1f7a4d;box-shadow:0 0 0 2px #1f7a4d24}.room-card h3,.room-card p{margin-bottom:.35rem}.room-card h3{font-size:1.08rem}.room-card-main{min-width:0}.room-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem}.room-card-top h3{margin:0 0 .25rem}.room-meta{display:flex;flex-wrap:wrap;gap:.38rem .8rem;color:#415247;font-size:.88rem;line-height:1.3;margin:.45rem 0}.room-full-text{color:#84201e;font-weight:800}.room-badges,.room-actions,.room-management,.room-form,.moderation-box,.invite-box{display:flex;flex-wrap:wrap;gap:.5rem}.room-badges span{border-radius:999px;background:#eef5f0;color:#365342;padding:.16rem .48rem;font-size:.74rem;font-weight:800}.room-actions{justify-content:flex-end}.room-form,.room-management,.moderation-box,.invite-box{display:grid}.room-form{grid-template-columns:repeat(2,minmax(0,1fr))}.room-form h3,.room-form input,.room-form textarea,.room-form button,.moderation-box,.invite-box{grid-column:1 / -1}.app-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;background:#123321;color:#fff;padding:.56rem max(1rem,calc((100vw - 1400px)/2))}.app-header h1{margin:0;font-size:1.18rem;text-align:center}.app-header p{margin:.15rem 0 0;color:#d6e6da;text-align:center}.header-user{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}.header-user .theme-toggle{min-width:2.25rem;padding-inline:.55rem}.notification-bell{position:relative}.notification-button{white-space:nowrap}.notification-panel{position:absolute;top:calc(100% + .45rem);right:0;z-index:70;width:min(360px,calc(100vw - 1rem));max-height:520px;overflow:auto;background:#fff;color:#17211b;border:1px solid #d9e4dd;border-radius:8px;padding:.72rem;box-shadow:0 18px 42px #162c1f33}.notification-list,.notification-settings,.notification-preferences,.notification-block{display:grid;gap:.65rem}.navigation-sync-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .85rem;border:1px solid #b9d7c6;background:#edf8f1;border-radius:8px}.notification-item{border:1px solid #dbe6df;border-radius:8px;padding:.62rem;background:#fbfdfc}.notification-item.unread{border-color:#1f7a4d;background:#eef8f1}.notification-item p{margin-bottom:.25rem}.notification-item time{color:#64766c;font-size:.82rem}.landing-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:#eef3ee}.landing-hero{width:min(560px,100%);background:#fff;border:1px solid #d9e4dd;border-radius:8px;padding:clamp(1.2rem,4vw,2rem);box-shadow:0 16px 48px #162c1f1f}.landing-hero h1{font-size:clamp(2rem,6vw,3.4rem);margin-bottom:.4rem}.landing-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;margin-top:1rem}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;padding:0;border-radius:0;background:#0c16106b}.mobile-drawer-overlay,.mobile-drawer,.mobile-title{display:none}.rooms-drawer{position:fixed;inset:0 auto 0 0;z-index:50;width:min(360px,calc(100vw - 1rem));padding:.78rem;overflow:auto;background:#fff;border-right:1px solid #d9e4dd;box-shadow:12px 0 36px #162c1f33;transform:translate(-105%);transition:transform .16s ease;display:grid;gap:.75rem;align-content:start}.rooms-drawer.open{transform:translate(0)}.drawer-head,.room-title-row,.availability-counts,.vote-list,.plan-tools,.two-col{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.drawer-head{justify-content:space-between}.drawer-head h2,.room-title-row h3{margin:0}.room-filters,.room-settings,.availability-box{display:grid;gap:.65rem}.rooms-directory{display:grid;gap:.75rem}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#dbe7df;color:#173b27;padding:.18rem .5rem;font-size:.78rem;font-weight:800}.badge.danger{background:#fde8e7;color:#84201e}.home-view,.suggested-rooms{display:grid;gap:.8rem}.room-list.compact{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.availability-box{border:1px solid #e1ece5;border-radius:8px;background:#f7fbf8;padding:.58rem;margin:.6rem 0;display:grid;gap:.5rem}.availability-counts span,.vote-list span{border-radius:999px;background:#e9f1ec;padding:.22rem .55rem;font-size:.86rem}.plan-tools{align-items:stretch;margin-top:.8rem}.plan-tools>*{min-width:150px;flex:1}.compact-plan-tools{align-items:center;gap:.45rem}.compact-plan-tools span{min-width:0;flex:0 0 auto;color:#64766c;font-weight:700}.compact-plan-tools select,.compact-plan-tools button{min-width:120px}.plan-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.55rem}.collapsible-form{margin:.7rem 0;border:1px solid #e1ece5;border-radius:8px;background:#f8fbf9;padding:.7rem}.room-plans-panel,.room-chat-panel{display:flex;flex-direction:column;min-height:0}.room-plans-list{max-height:650px;overflow-y:auto;padding-right:.25rem}.room-chat-messages{flex:1 1 auto;min-height:320px;max-height:460px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.room-chat-panel .chat-form{flex:0 0 auto;margin-top:auto;padding-bottom:max(.35rem,var(--safe-area-bottom))}.room-chat-head-actions{display:flex;align-items:center;gap:8px}.room-chat-head-actions button{width:auto;min-width:44px}.room-chat-head-actions .room-chat-more-button{font-size:1.25rem}.room-chat-head .mobile-chat-back{display:none}.chat-load-error{display:grid;justify-items:center;gap:.45rem;padding:.75rem}.room-message{position:relative}.room-message>div{align-items:baseline}.message-delete{opacity:0;margin-left:auto;background:transparent;color:#84201e;padding:.1rem .22rem;font-size:.72rem}.room-message:hover .message-delete,.message-delete:focus{opacity:1}.subtle-danger{background:#ead8d5;color:#84201e}.vote-actions button{min-width:auto}@media(max-width:820px){.app-header{grid-template-columns:1fr;align-items:stretch}.app-header h1,.app-header p{text-align:left}.header-user,.landing-form{display:grid;grid-template-columns:1fr}.rooms-drawer{width:100vw}.two-col{grid-template-columns:1fr}.weather-hour{grid-template-columns:3.8rem 1.6rem repeat(3,minmax(3.2rem,1fr));font-size:.86rem;overflow-x:auto}}.navbar{grid-template-columns:auto minmax(0,1fr) auto}.brand-button{background:transparent;color:#fff;padding-left:0;font-size:1.02rem}.brand{display:inline-flex;align-items:center;gap:8px}.brand-icon{width:28px;height:28px;border-radius:8px;display:block;flex:0 0 auto}.main-nav{display:flex;justify-content:center;gap:.45rem;flex-wrap:wrap}.nav-toggle{display:none}.header-user select{width:auto;min-width:76px;padding:.44rem .55rem}.header-user .theme-toggle{padding-inline:.58rem;font-size:.82rem}.room-tabs{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1rem}.room-tabs button{min-height:44px;padding-inline:1.1rem}.room-workspace-head{display:flex;justify-content:space-between;align-items:center;padding-block:.72rem}.room-workspace-head h2,.room-workspace-head p{margin-bottom:.12rem}.room-overview-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.room-settings-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:1.25rem;align-items:start}.room-settings-layout>*{min-width:0}.room-settings{gap:.9rem}.room-access-settings{position:sticky;top:5rem}@media(max-width:900px){.room-overview-grid,.room-settings-layout{grid-template-columns:1fr}.room-access-settings{position:static}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1rem;background:#0c161073}.pairing-modal{width:min(520px,100%)}.settings-panel,.pairing-code{display:grid;gap:.8rem}.pairing-code{border:1px solid #dbe6df;border-radius:8px;background:#f7fbf8;padding:1rem}.pairing-code.expired{background:#fff7f5;border-color:#f0c9c1}.pairing-code strong{font-size:2rem;letter-spacing:.08em}.pairing-code-value{display:block;padding:.75rem 1rem;border:2px solid #8bb49a;border-radius:12px;background:#fff;color:#102b1c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(2rem,8vw,3rem)!important;font-variant-numeric:tabular-nums;letter-spacing:.12em!important;line-height:1.15;text-align:center;-webkit-user-select:all;user-select:all}.pairing-code-input{min-height:56px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem;font-variant-numeric:tabular-nums;letter-spacing:.12em;text-align:center}:root[data-theme=dark] .pairing-code{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-primary)}:root[data-theme=dark] .pairing-code-value{background:#f4fbf6;color:#071b10;border-color:#65a77b}:root[data-theme=dark] .pairing-code.expired{background:#2b1c1a;border-color:#70423d}@media(max-width:820px){.room-overview-grid{grid-template-columns:1fr}}.room-preview{border:1px solid #dbe6df;border-radius:8px;background:#fbfdfc;padding:1rem;display:grid;gap:.75rem}:root[data-theme=dark]{color:#e7f0ea;background:#0f1712;color-scheme:dark}:root[data-theme=dark] body,:root[data-theme=dark] .landing-page{background:#0f1712;color:#e7f0ea}:root[data-theme=dark] .app-header,:root[data-theme=dark] .topbar{background:#07100b;color:#f3faf5;border-bottom:1px solid #20352a}:root[data-theme=dark] .mobile-drawer{background:#17231b;border-color:#2b4034;color:#e7f0ea}:root[data-theme=dark] .mobile-nav-item{background:transparent;color:#e7f0ea}:root[data-theme=dark] .mobile-nav-item.active,:root[data-theme=dark] .mobile-nav-item:hover{background:#253a2e;color:#dff0e5}:root[data-theme=dark] .panel,:root[data-theme=dark] .landing-hero,:root[data-theme=dark] .rooms-drawer,:root[data-theme=dark] .notification-panel,:root[data-theme=dark] .notification-item,:root[data-theme=dark] .room-preview,:root[data-theme=dark] .plan,:root[data-theme=dark] .trail-card,:root[data-theme=dark] .interest-box,:root[data-theme=dark] .checklist-item,:root[data-theme=dark] .trail-admin,:root[data-theme=dark] .admin-grid>div,:root[data-theme=dark] .room-card,:root[data-theme=dark] .room-link-card,:root[data-theme=dark] .message,:root[data-theme=dark] .live-hike-panel,:root[data-theme=dark] .live-participant,:root[data-theme=dark] .ride-card,:root[data-theme=dark] .memory-card,:root[data-theme=dark] .memory-entry,:root[data-theme=dark] .transport-form,:root[data-theme=dark] .memory-form,:root[data-theme=dark] .memory-entry-form,:root[data-theme=dark] .privacy-grid article,:root[data-theme=dark] .delete-confirm-box{background:#17231b;border-color:#2b4034;color:#e7f0ea;box-shadow:0 8px 24px #0000003d}:root[data-theme=dark] .live-participant span{color:#a7baaf}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select,:root[data-theme=dark] .trail-tools select,:root[data-theme=dark] .trail-edit-form select,:root[data-theme=dark] .map-toolbar select,:root[data-theme=dark] .trail-table,:root[data-theme=dark] .messages{background:#101912;border-color:#31483a;color:#e7f0ea}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#91a99a}:root[data-theme=dark] button.secondary,:root[data-theme=dark] .badge,:root[data-theme=dark] .participants span,:root[data-theme=dark] .attendance-summary span,:root[data-theme=dark] .room-badges span,:root[data-theme=dark] .room-link-head span,:root[data-theme=dark] .availability-counts span,:root[data-theme=dark] .vote-list span,:root[data-theme=dark] .checklist-meta span{background:#253a2e;color:#dff0e5}:root[data-theme=dark] .message.mine,:root[data-theme=dark] .checklist-item.done,:root[data-theme=dark] .notification-item.unread,:root[data-theme=dark] .availability-box,:root[data-theme=dark] .collapsible-form,:root[data-theme=dark] .weather-card{background:#1d3326;border-color:#365844}:root[data-theme=dark] .weather-card.compact,:root[data-theme=dark] .weather-hour,:root[data-theme=dark] .weather-day,:root[data-theme=dark] .weather-icon{background:#17291f;border-color:#365844}:root[data-theme=dark] .weather-summary{color:#dff0e5}:root[data-theme=dark] .weather-warning{background:#3b321b;border-color:#76602c;color:#ffe7a8}:root[data-theme=dark] .subtle-danger{background:#3f2826;color:#ffd9d7}:root[data-theme=dark] .message time,:root[data-theme=dark] .notification-item time,:root[data-theme=dark] .muted,:root[data-theme=dark] .section-head span,:root[data-theme=dark] .empty,:root[data-theme=dark] .room-meta,:root[data-theme=dark] .translation-provider{color:#a8bdaf}:root[data-theme=dark] .trail-table th{background:#1d3025;color:#dff0e5}:root[data-theme=dark] .text-link,:root[data-theme=dark] a{color:#79d9a2}:root[data-theme=dark] .alert{background:#401f1f;border-color:#7a3634;color:#ffd9d7}:root[data-theme=dark] .success{background:#173522;border-color:#39724f;color:#d4f5df}:root[data-theme=dark] .drawer-overlay,:root[data-theme=dark] .mobile-drawer-overlay,:root[data-theme=dark] .modal-backdrop{background:#0000009e}@media(max-width:820px){.app-header.navbar{grid-template-columns:44px minmax(0,1fr) auto;gap:.35rem;align-items:center;padding:max(.42rem,var(--safe-area-top)) .55rem .42rem;position:sticky;top:0;z-index:30}.brand-button{width:auto!important;min-height:0;padding:.28rem .1rem;font-size:.98rem;line-height:1.1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-icon{width:26px;height:26px}.desktop-brand{display:none}.mobile-title{display:inline}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;grid-column:1;justify-self:start;width:auto!important;min-width:44px;min-height:44px;padding:0;font-size:1.25rem}.header-user{display:flex;grid-column:3;gap:0;justify-content:flex-end;align-items:center;min-width:0}.header-user select,.header-user span{display:none}.header-user>button,.header-user .theme-toggle{display:none}.header-user .notification-bell{display:block}.header-user .notification-button{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:0;font-size:1rem}.main-nav{display:none}.mobile-drawer-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;padding:0;border-radius:0;background:#0c16107a}.mobile-drawer{position:fixed;inset:0 auto 0 0;z-index:90;display:grid;align-content:start;gap:.9rem;width:82vw;max-width:340px;padding:.9rem;overflow-y:auto;background:#fff;border-right:1px solid #d9e4dd;box-shadow:14px 0 38px #162c1f3d;transform:translate(-105%);transition:transform .22s ease}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.mobile-drawer-head button{min-width:44px;min-height:44px;padding:0;font-size:1.25rem}.mobile-nav-group{display:grid;gap:.28rem}.mobile-nav-group small{color:#64766c;font-weight:800;text-transform:uppercase;font-size:.72rem;letter-spacing:.03em;margin:.25rem 0}.mobile-room-name{margin:0 0 .35rem;color:#365342;font-weight:800;line-height:1.25}.mobile-nav-item{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:44px;width:100%;border-radius:7px;background:transparent;color:#17211b;text-align:left;padding:.65rem .75rem .65rem .95rem;font-weight:700}.mobile-nav-item.active{background:#e3f3e9;color:#123321;font-weight:900}.mobile-nav-item.active:before{content:"";position:absolute;left:.35rem;top:.55rem;bottom:.55rem;width:3px;border-radius:999px;background:#1f7a4d}.mobile-nav-item span{min-width:1.35rem;border-radius:999px;background:#9f3a38;color:#fff;text-align:center;padding:.05rem .35rem;font-size:.78rem}.app-shell{width:min(100% - .75rem,1180px);margin-top:.42rem}}@media(max-width:420px){.app-header.navbar{padding:max(.26rem,var(--safe-area-top)) .38rem .26rem}.mobile-title{font-size:.92rem}}.hub-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1.15rem;border-color:#b7d7c4;background:linear-gradient(180deg,#f7fbf8,#edf7f1)}.hub-hero h2,.hub-card h2,.hub-section h2{margin-bottom:.25rem}.hub-hero h2{font-size:1.55rem}.hub-hero p{margin-bottom:.22rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.hub-card{display:flex;align-items:center;justify-content:space-between;gap:.9rem}.general-chat-card{border-color:#b9d8c6;background:#f4fbf6}.primary-section{border-color:#c6dbcf}.secondary-section{background:#fcfdfc}.empty-state{border:1px dashed #c7d6cd;border-radius:8px;padding:.75rem;background:#f8fbf9}.empty-state h3{margin-bottom:.3rem}.scroll-list{max-height:420px;overflow:auto;padding-right:.25rem}.hub-section .section-head{align-items:flex-start}:root[data-theme=dark] .hub-hero,:root[data-theme=dark] .general-chat-card,:root[data-theme=dark] .empty-state{background:#142018;border-color:#365844}@media(max-width:820px){.room-card{grid-template-columns:1fr}.room-card-top{align-items:stretch}.room-card-top button,.room-actions button{width:100%}.room-actions{justify-content:stretch}.hub-hero{grid-template-columns:1fr;align-items:stretch;padding:.85rem}.hero-actions{justify-content:stretch}.hero-actions button{flex:1 1 160px}.hub-card{align-items:stretch;flex-direction:column}.scroll-list{max-height:340px}.room-chat-messages{max-height:none;min-height:0}.room-chat-panel{min-height:420px;max-height:78dvh;overflow:hidden}.room-plans-list{max-height:650px;overflow-y:auto;padding-right:.2rem}.plan-filters{grid-template-columns:1fr}}.message-reactions{position:relative;display:flex;align-items:center;gap:.28rem;margin-top:.4rem;min-height:1.55rem}.message-reactions:not(.has-reactions){margin-top:.15rem}.reaction-pill,.reaction-add-button,.reaction-choice{width:auto;display:inline-flex;align-items:center;justify-content:center;gap:.22rem;border:1px solid #d6e2db;border-radius:999px;background:#f4f8f5;color:#17211b;padding:.18rem .45rem;min-height:1.45rem;font-size:.86rem;line-height:1}.reaction-pill strong{font-size:.78rem}.reaction-pill.active,.reaction-choice.active{border-color:#1f7a4d;background:#d7efe1;color:#123321}.reaction-add-button{padding:.16rem .38rem;opacity:.78}.message-reactions:not(.has-reactions) .reaction-add-button{opacity:0}.message:hover .reaction-add-button,.message:focus-within .reaction-add-button,.reaction-add-button:focus{opacity:1}.reaction-picker{display:flex;flex-wrap:wrap;gap:.3rem}.reaction-picker.floating{position:absolute;left:0;bottom:calc(100% + .28rem);z-index:8;width:max-content;max-width:min(280px,90vw);padding:.35rem;border:1px solid #d9e4dd;border-radius:8px;background:#fff;box-shadow:0 10px 28px #162c1f29}.reaction-picker.sheet{justify-content:center;padding:.2rem 0 .35rem}.reaction-picker.sheet .reaction-choice{flex:1 1 2.2rem;min-height:2.25rem;font-size:1.05rem}@media(hover:none){.message-reactions:not(.has-reactions) .reaction-add-button{opacity:1}}.reaction-details-sheet{position:relative;z-index:30;width:min(100%,560px);max-height:min(75dvh,720px);overflow:auto;padding:1.25rem;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-card)}.reaction-filter{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.6rem}.reaction-filter button,.reaction-user-row{min-height:44px}.reaction-user-group{border-top:1px solid var(--border-subtle);padding-top:.65rem}.reaction-user-group h4{color:var(--text-primary)}.reaction-user-row{display:flex;align-items:center;gap:.75rem;overflow:hidden;padding:.4rem 0;color:var(--text-primary);opacity:1}.reaction-user-details{display:grid;min-width:0;gap:.1rem;overflow-wrap:anywhere}.reaction-user-name{color:var(--text-primary);opacity:1;font-weight:750}.reaction-user-secondary{display:block;color:var(--text-secondary);opacity:1}.reaction-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 28%,var(--surface-3));color:var(--text-primary);font-weight:800}.danger-zone{margin-top:2rem;padding:1rem;border:1px solid #b42318;border-radius:8px}.danger-button{min-height:44px;background:#b42318;border-color:#b42318;color:#fff}.confirmation-modal{width:min(92vw,520px);max-height:88vh;overflow:auto}.delete-room-modal{display:grid;gap:1rem;width:min(100%,500px);padding:1.5rem}.delete-room-modal h3,.delete-room-modal p{margin-bottom:0}.delete-room-name{display:grid;gap:.5rem;font-weight:700}.delete-room-check{align-items:flex-start;line-height:1.45}.delete-room-check input{width:20px;min-width:20px;min-height:20px;margin-top:.1rem}.modal-actions{justify-content:flex-end;margin-top:.5rem}.app-notice{padding:.8rem 1rem;border:1px solid #9dd2b3;border-radius:8px;background:#e9f7ef}@media(max-width:820px){.app-shell{width:calc(100% - 32px);margin-top:1rem}.delete-room-modal{padding:1.1rem}.modal-actions{align-items:stretch}}.desktop-sidebar{position:fixed;inset:0 auto 0 0;z-index:45;display:flex;width:240px;flex-direction:column;overflow:hidden;border-right:1px solid #1f382b;background:linear-gradient(180deg,#08140e,#0d1c14);color:#eaf4ed}.sidebar-brand{display:flex;min-height:68px;align-items:center;justify-content:flex-start;gap:.75rem;border-radius:0;padding:0 1.5rem;background:transparent;font-size:1.05rem}.sidebar-brand img{width:30px;height:30px}.sidebar-scroll{flex:1;overflow-y:auto;padding:1.25rem .75rem}.sidebar-section{display:grid;gap:.35rem;padding-bottom:1.4rem;margin-bottom:1.2rem;border-bottom:1px solid #1b3024}.sidebar-section small,.sidebar-footer small{padding:0 .75rem .45rem;color:#8fa298;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sidebar-link{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:.55rem;align-items:center;min-height:42px;width:100%;padding:.55rem .75rem;background:transparent;color:#becdc3;text-align:left;font-weight:600}.sidebar-link>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-link i{color:#8fa298;font-size:.68rem;font-style:normal}.sidebar-link:hover,.sidebar-link.active{background:#143724;color:#f4fbf6}.sidebar-link.active{box-shadow:inset 3px 0 #4fca78}.sidebar-empty{padding:.4rem .75rem;color:#8fa298;font-size:.85rem}.sidebar-footer{display:grid;gap:.35rem;padding:1rem .75rem 1.25rem;border-top:1px solid #1b3024}.sidebar-user{display:flex;align-items:center;gap:.7rem;width:100%;padding:.65rem .75rem;background:transparent;color:#eaf4ed;text-align:left}.sidebar-user>span:last-child{display:grid;min-width:0}.sidebar-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{color:#8fa298}.sidebar-user.active{background:#143724}.app-header{min-height:68px;margin-left:240px;padding:0 32px;border-bottom:1px solid #d8e4dc;background:#fffffff5;color:#17211b;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header .brand-button{display:none}.main-nav{justify-content:flex-start}.main-nav button{min-height:40px;background:transparent;color:#526159;white-space:nowrap}.main-nav button:hover,.main-nav button.active{background:#dcefe3;color:#174c2e}.main-nav .create-room-nav{margin-left:.5rem;background:#247444;color:#fff}.main-nav .create-room-nav:hover{background:#1c6038;color:#fff}.user-menu-button{display:flex;align-items:center;gap:.6rem;background:transparent;color:#24362b}.user-avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#2e764a;color:#fff}.app-shell{width:min(calc(100% - 304px),1440px);max-width:1440px;margin:24px auto 48px;margin-left:max(272px,calc(240px + (100vw - 1680px)/2))}.mobile-bottom-nav{display:none}.room-workspace-head{padding:.25rem 0 1rem;border-bottom:0}.room-back-link{min-height:36px;margin:0 0 .5rem -.65rem;background:transparent;color:#64766c;font-weight:600}.room-heading-line{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.room-heading-line h1{margin:0;font-size:clamp(1.8rem,3vw,2.1rem);letter-spacing:-.025em}.room-heading-meta{margin:.45rem 0 0;color:#64766c}.room-status{display:inline-flex;align-items:center;border-radius:5px;padding:.2rem .45rem;background:#dff4e6;color:#176437;font-size:.75rem;font-weight:800}.room-status.archived{background:#e5e9e6;color:#57645d}.room-more-button{width:44px;padding:0;font-size:1.35rem}.room-tabs{flex-wrap:nowrap;overflow-x:auto;margin-bottom:1.25rem;border-bottom:1px solid #d8e4dc;scrollbar-width:none}.room-tabs::-webkit-scrollbar{display:none}.room-tabs button{flex:0 0 auto;border-radius:7px 7px 0 0;border-bottom:2px solid transparent;background:transparent;color:#617067;font-weight:650}.room-tabs button:hover,.room-tabs button.active{border-bottom-color:#2a8a51;background:#e7f3eb;color:#176437}.room-settings-layout{grid-template-columns:minmax(320px,1.1fr) minmax(320px,1fr) minmax(260px,.65fr);gap:1rem}.room-settings-layout>.panel{height:max-content;margin:0}.room-settings-layout .room-access-settings{position:static}.room-settings-layout .participants{display:grid;gap:0}.room-settings-layout .participants>span{display:flex;min-height:48px;align-items:center;gap:.4rem;padding:.45rem 0;border-bottom:1px solid #e2e9e4}.room-settings-layout .moderation-box{margin-top:1rem}.room-settings-layout .room-archive-settings,.room-settings-layout .danger-zone{margin:0 0 1rem}.room-settings-layout .danger-zone{background:#fff8f7}:root[data-theme=dark] .app-header{background:#08140ef5;border-color:#20352a}:root[data-theme=dark] .main-nav button,:root[data-theme=dark] .user-menu-button{color:#b9c9bf}:root[data-theme=dark] .main-nav button:hover,:root[data-theme=dark] .main-nav button.active,:root[data-theme=dark] .room-tabs button:hover,:root[data-theme=dark] .room-tabs button.active{background:#173824;color:#dff6e6}:root[data-theme=dark] .room-tabs{border-color:#2b4034}:root[data-theme=dark] .room-settings-layout .participants>span{border-color:#2b4034}:root[data-theme=dark] .room-settings-layout .danger-zone{background:#241715}@media(max-width:1180px){.room-settings-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.room-settings-layout .room-access-settings{grid-column:1 / -1}}@media(max-width:900px){body{padding-bottom:calc(72px + var(--safe-area-bottom))}.desktop-sidebar{display:none}.app-header{min-height:58px;margin-left:0;padding:max(.42rem,var(--safe-area-top)) .75rem .42rem;background:#0b1a12;color:#fff}.app-header .brand-button{display:inline-flex}.main-nav,.user-menu-button{display:none}.app-shell{width:calc(100% - 32px);max-width:none;margin:16px auto 32px}.room-settings-layout{grid-template-columns:1fr}.room-settings-layout .room-access-settings{grid-column:auto}.room-workspace-head{align-items:flex-start}.room-heading-line h1{font-size:clamp(1.4rem,6vw,1.65rem)}.room-tabs{margin-inline:-16px;padding-inline:16px}.mobile-bottom-nav{position:fixed;inset:auto 0 0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);padding:.35rem .5rem max(.35rem,var(--safe-area-bottom));border-top:1px solid #294035;background:#08140ef7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-bottom-nav button{display:grid;min-width:0;min-height:54px;place-items:center;gap:.1rem;padding:.25rem;background:transparent;color:#9fb0a6}.mobile-bottom-nav button span{font-size:1.2rem;line-height:1}.mobile-bottom-nav button small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}.mobile-bottom-nav button.active{border-radius:8px;background:#143724;color:#eaf7ee}}html{min-width:320px;background:var(--bg-app)}body{min-height:100dvh;background:var(--bg-app);color:var(--text-primary)}button,input,textarea,select,a{-webkit-tap-highlight-color:transparent}button{background:var(--primary);border-radius:var(--radius-sm)}button:hover:not(:disabled){background:var(--primary-hover)}button:active:not(:disabled){background:var(--primary-active)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px}.panel{border-color:var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-card)}.muted,.empty,.message time,.section-head span{color:var(--text-secondary)}.panel>h2:first-child,.section-head h2{font-size:clamp(1.25rem,1.5vw,1.55rem);letter-spacing:-.015em}.panel h3{line-height:1.3}.secondary,button.secondary{background:var(--surface-3);color:var(--text-primary)}button.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--surface-3) 75%,var(--primary))}.danger-button{background:var(--danger)}.danger-button:hover:not(:disabled){background:var(--danger-hover)}input,textarea,select{border-color:var(--border-strong);background:var(--surface-2);color:var(--text-primary)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}.home-view{gap:var(--space-4)}.hub-hero,.hub-card,.hub-section{padding:clamp(1.25rem,2vw,2rem)}.hub-hero{min-height:150px}.hub-hero h2{font-size:clamp(1.65rem,2.5vw,2.25rem)}.room-list.compact{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.room-card{min-height:160px;padding:1rem;border-radius:var(--radius-md)}.room-card h3{font-size:1.1rem;line-height:1.3}.scroll-list{max-height:min(620px,65dvh)}.chat-panel{min-height:calc(100dvh - 116px);max-height:calc(100dvh - 116px);margin-bottom:0;overflow:hidden}.chat-panel>.messages{flex:1 1 auto;min-height:360px;max-height:none;padding:1rem;border-color:var(--border-subtle);background:var(--surface-2)}.chat-panel .chat-form{flex:0 0 auto}.chat-form textarea{min-height:88px}.message{max-width:min(78%,820px);margin-bottom:.75rem;padding:.75rem .9rem;border-color:var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.message.mine{background:color-mix(in srgb,var(--surface-2) 78%,var(--primary))}.direct-panel{display:flex;flex-direction:column;min-height:calc(100dvh - 116px);max-height:calc(100dvh - 116px);margin-bottom:0;overflow:hidden}.direct-layout{grid-template-columns:minmax(260px,320px) minmax(0,1fr);flex:1;min-height:0;gap:1rem}.direct-list{min-height:0;overflow-y:auto;padding-right:.35rem;border-right:1px solid var(--border-subtle)}.direct-conversation{min-height:64px;padding:.75rem;border-radius:var(--radius-sm)}.direct-chat{display:flex;min-height:0;flex-direction:column}.direct-chat>.messages{flex:1 1 auto;min-height:300px;max-height:none;padding:1rem;background:var(--surface-2)}.direct-chat>.chat-form{flex:0 0 auto}.map-toolbar{gap:.75rem;margin-bottom:1rem}.map-layout{grid-template-columns:minmax(0,2.2fr) minmax(320px,.8fr);gap:1rem}.map-box{min-height:clamp(540px,68dvh,780px)}.map-box .map{height:clamp(540px,68dvh,780px);border-radius:var(--radius-md)}.trails-panel{max-height:clamp(540px,68dvh,780px);gap:1rem}.trail-card,.plan,.interest-box,.checklist-item,.ride-card,.memory-card,.memory-entry{padding:1rem;border-radius:var(--radius-md)}.privacy-page{gap:1.25rem}.privacy-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.privacy-grid article{min-height:190px;padding:1.1rem;border-radius:var(--radius-md)}.privacy-request-form{max-width:900px}.settings-panel,.notification-settings,.privacy-settings{padding:clamp(1.25rem,2vw,2rem);gap:1rem}.settings-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.settings-dashboard>.panel{margin:0}.settings-dashboard>.notification-settings{grid-row:span 2}.modal-backdrop{padding:1.5rem;background:#020905b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confirmation-modal,.pairing-modal{width:min(100%,560px);padding:1.5rem;border-radius:var(--radius-lg)}.action-sheet{padding:.75rem;border-radius:var(--radius-md)}:root[data-theme=dark] .panel,:root[data-theme=dark] .message,:root[data-theme=dark] .plan,:root[data-theme=dark] .trail-card,:root[data-theme=dark] .room-card,:root[data-theme=dark] .privacy-grid article,:root[data-theme=dark] .direct-conversation,:root[data-theme=dark] .checklist-item{background:var(--surface-1);border-color:var(--border-subtle);color:var(--text-primary)}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select,:root[data-theme=dark] .messages,:root[data-theme=dark] .direct-conversation{background:var(--surface-2);color:var(--text-primary)}:root[data-theme=dark] .direct-conversation.active{background:var(--primary);color:#fff}@media(max-width:1180px){.map-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr)}.direct-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}}@media(max-width:900px){.panel{padding:1rem;border-radius:10px}.hub-hero,.hub-card,.hub-section{padding:1rem}.room-list.compact{grid-template-columns:1fr}.chat-panel,.direct-panel{min-height:calc(100dvh - 150px - var(--safe-area-bottom));max-height:calc(100dvh - 150px - var(--safe-area-bottom))}.chat-panel>.messages{min-height:0}.direct-layout{grid-template-columns:1fr}.direct-list{display:flex;max-height:112px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--border-subtle);padding:0 0 .65rem}.direct-conversation{min-width:210px}.direct-chat>.messages{min-height:0}.map-layout{grid-template-columns:1fr}.map-box,.map-box .map{min-height:52dvh;height:52dvh}.trails-panel{max-height:none;overflow:visible;padding-right:0}.privacy-grid,.settings-dashboard{grid-template-columns:1fr}.settings-dashboard>.notification-settings{grid-row:auto}.button-row{flex-wrap:wrap}}@media(max-width:520px){.app-shell{width:calc(100% - 24px)}.panel{padding:.9rem}.chat-panel,.direct-panel{margin-inline:-4px}.message{max-width:92%;padding:.7rem .8rem}.chat-form textarea{min-height:74px}.map-box,.map-box .map{min-height:48dvh;height:48dvh}.modal-backdrop{padding:.75rem}.confirmation-modal,.pairing-modal{padding:1rem}}.empty-state,.map-loading,.chat-load-error{display:grid;min-height:120px;place-content:center;justify-items:center;gap:.75rem;padding:1.5rem;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-secondary);text-align:center}.map-loading{min-height:clamp(360px,52dvh,680px)}.alert,.success,.app-notice{border-radius:var(--radius-sm);padding:.85rem 1rem;line-height:1.5}button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.58}@media(pointer:coarse){button,.attach-button,.mobile-nav-item{min-height:44px}button.tiny{min-width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:more){:root{--border-subtle: rgba(180, 220, 190, .3);--border-strong: rgba(180, 220, 190, .5)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline-width:4px}}.create-room-flow{width:min(100%,1080px);margin-inline:auto}.create-room-head{margin-bottom:1.25rem}.create-room-head h1{margin-bottom:.35rem;font-size:clamp(1.8rem,3vw,2.5rem)}.create-room-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:0;margin:0 0 1.25rem;list-style:none}.create-room-steps li{display:flex;min-width:0;align-items:center;gap:.5rem;padding:.7rem;border-bottom:2px solid var(--border-subtle);color:var(--text-muted);font-weight:700}.create-room-steps li button{display:flex;width:100%;min-height:0;align-items:center;gap:.5rem;padding:0;background:transparent;color:inherit;text-align:left}.create-room-steps li button:hover:not(:disabled),.create-room-steps li button:active:not(:disabled){background:transparent;color:var(--text-primary)}.create-room-steps li button:disabled{opacity:.55}.create-room-steps li span{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:50%;background:var(--surface-3)}.create-room-steps li.active{border-color:var(--primary);color:var(--text-primary)}.create-room-steps li.active span,.create-room-steps li.done span{background:var(--primary);color:#fff}.schedule-fields{margin:0;padding:1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.schedule-fields legend{padding:0 .5rem;color:var(--text-primary);font-weight:700}.room-schedule-summary h2{margin:.35rem 0;font-size:clamp(1.25rem,2vw,1.75rem)}.creation-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.creation-type-grid>button{display:grid;min-height:190px;align-content:center;gap:.75rem;padding:1.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-primary);text-align:left}.creation-type-grid>button:hover{border-color:var(--primary);background:var(--surface-3)}.creation-type-grid strong{font-size:1.25rem}.creation-type-grid span{color:var(--text-secondary);font-weight:500;line-height:1.55}.creation-location-card,.creation-details-form{display:grid;gap:1rem;padding:clamp(1.25rem,2.5vw,2rem)}.creation-location-card label,.creation-details-form label{display:grid;gap:.45rem;font-weight:700}.creation-location-card .plan-location-map{height:min(48dvh,460px)}.creation-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:.5rem}.selected-location-summary,.creation-summary{display:grid;gap:.35rem;padding:1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-2)}.selected-location-summary span{color:var(--text-secondary)}.creation-details-form small{color:var(--text-secondary);font-weight:500}.room-activity-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.room-activity-summary h3{margin:.2rem 0}.room-activity-summary p{margin-bottom:0}.nearby-rmk-marker span{display:grid;width:30px;height:30px;place-items:center;border:2px solid #fff;border-radius:50%;background:#247444;color:#fff;box-shadow:0 3px 10px #0000004d}.nearby-camping-list{display:grid;gap:.5rem;padding:1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2)}.nearby-camping-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.nearby-camping-row>button{display:flex;justify-content:space-between;min-width:0;text-align:left}.nearby-camping-row>a{padding:8px 4px;white-space:nowrap}.nearby-camping-list small{color:var(--text-secondary)}.profile-page,.people-page{display:grid;gap:1.25rem;width:min(100%,1100px);margin-inline:auto}.profile-page>header h1,.people-page>header h1{margin-bottom:.3rem;font-size:clamp(1.8rem,3vw,2.4rem)}.profile-form{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1rem 1.25rem;align-items:start}.profile-form>label,.profile-form>button,.profile-form>p{grid-column:2}.profile-avatar{display:grid;width:96px;height:96px;place-items:center;border-radius:50%;background:linear-gradient(145deg,var(--primary),var(--surface-3));color:#fff;font-size:2rem;font-weight:900}.profile-avatar img,.profile-avatar-shell img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.profile-avatar-shell{display:inline-grid;width:52px;height:52px;flex:0 0 52px;place-items:center;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,var(--primary),var(--surface-3));color:#fff;font-weight:900}.profile-avatar-shell.small{width:34px;height:34px;flex-basis:34px}.profile-avatar-shell.sm{width:38px;height:38px;flex-basis:38px}.profile-avatar-shell.xs{width:28px;height:28px;flex-basis:28px;font-size:.75rem}.profile-avatar-shell.large{width:96px;height:96px;flex-basis:96px;font-size:2rem}.profile-avatar-shell.tiny-avatar,.profile-avatar-shell.message-avatar{width:28px;height:28px;flex-basis:28px;font-size:.75rem}.message-author{display:flex;align-items:center;gap:.45rem}.message-author .message-avatar{margin-right:.1rem}.avatar-status{position:absolute;right:0;bottom:0;width:9px;height:9px;border:2px solid var(--surface-1);border-radius:50%;background:var(--primary)}.profile-avatar-editor{display:grid;justify-items:center;gap:.6rem}.avatar-upload-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--primary);color:#fff;cursor:pointer;font-weight:800}.avatar-upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.profile-avatar.small{width:52px;height:52px;font-size:1.1rem}.people-search{display:grid;gap:1rem}.people-search-box{display:flex;align-items:center;gap:.65rem;padding-inline:.85rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);font-size:1.3rem}.people-search-box input{border:0;background:transparent}.people-grid{display:grid;gap:.75rem}.person-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2)}.person-card h3,.person-card p{margin-bottom:.2rem}.person-actions{display:flex;gap:.5rem}.profile-modal{position:relative;display:grid;justify-items:center;gap:.75rem;width:min(100%,520px);text-align:center}.mini-profile-sheet{position:relative;display:grid;gap:.85rem;width:min(100%,560px);color:var(--text-primary)}.profile-overlay{max-height:min(86dvh,760px);overflow-y:auto;overscroll-behavior:contain}.profile-overlay-back{width:max-content;padding-inline:.75rem;background:transparent}.full-profile-details dl{display:grid;gap:.55rem;margin:0}.full-profile-details dl>div{display:grid;grid-template-columns:minmax(110px,.4fr) minmax(0,1fr);gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border-subtle)}.full-profile-details dt{color:var(--text-secondary);font-weight:700}.full-profile-details dd{min-width:0;margin:0;overflow-wrap:anywhere}.mini-profile-sheet>.profile-avatar-shell{justify-self:center}.mini-profile-sheet>h2,.mini-profile-sheet>p{margin-bottom:0;text-align:center}.profile-interest-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}.profile-interest-list span{padding:.3rem .6rem;border-radius:999px;background:var(--surface-3);color:var(--text-primary);font-size:.85rem}.mini-profile-actions{display:flex;flex-wrap:wrap;gap:.5rem}.mini-profile-actions button{flex:1 1 140px}.mini-profile-overflow{display:grid;gap:.4rem;padding:.6rem;border-radius:var(--radius-md);background:var(--danger-surface)}.mini-profile-overflow button{background:transparent;color:var(--danger);text-align:left}.avatar-clickable{cursor:pointer}.profile-close{position:absolute;top:.75rem;right:.75rem;width:44px;padding:0;font-size:1.4rem}@media(max-width:700px){.profile-form{grid-template-columns:1fr}.profile-form>label,.profile-form>button,.profile-form>p{grid-column:1}.profile-avatar{justify-self:center}.person-card{grid-template-columns:auto minmax(0,1fr)}.person-actions{grid-column:1 / -1}.person-actions button{flex:1}}@media(max-width:760px){.create-room-steps{grid-template-columns:repeat(5,auto);overflow-x:auto}.create-room-steps li{min-width:120px;font-size:.85rem}.creation-type-grid{grid-template-columns:1fr}.creation-type-grid>button{min-height:130px}.creation-actions{align-items:stretch;flex-direction:column-reverse}.creation-actions button{width:100%}}@media(min-width:901px){.app-shell{--desktop-content-gutter: max(24px, calc((100vw - 1840px)/2) );width:auto;max-width:none;margin-top:24px;margin-right:var(--desktop-content-gutter);margin-bottom:48px;margin-left:calc(240px + var(--desktop-content-gutter))}.app-shell:has(>.chat-panel),.app-shell:has(>.direct-panel),.app-shell:has(>.map-panel){margin-right:24px;margin-left:264px}.home-view,.rooms-directory,.room-workspace,.privacy-page,.settings-dashboard{width:100%;max-width:none}.room-list.compact{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.home-view .hub-section,.home-view .hub-card,.home-view .hub-hero,.chat-panel,.direct-panel,.map-panel{width:100%}}@media(max-width:767px){body.chat-workspace-open{height:var(--visual-viewport-height, 100dvh);min-height:0;overflow:hidden;padding:0}body.chat-workspace-open .desktop-sidebar,body.chat-workspace-open .app-header,body.chat-workspace-open .mobile-bottom-nav{display:none}body.chat-workspace-open .app-shell{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:var(--visual-viewport-height, 100dvh);margin:0;padding:0;overflow:hidden}body.chat-workspace-open .chat-panel,body.chat-workspace-open .direct-panel,body.chat-workspace-open .room-chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:var(--visual-viewport-height, 100dvh);min-height:0;max-height:none;margin:0;padding:0;overflow:hidden;border:0;border-radius:0;box-shadow:none;background:var(--bg-app)}body.chat-workspace-open .room-workspace{height:var(--visual-viewport-height, 100dvh);overflow:hidden}body.chat-workspace-open .room-workspace>:not(.room-chat-panel){display:none}body.chat-workspace-open .chat-panel>.section-head,body.chat-workspace-open .direct-panel>.section-head,body.chat-workspace-open .room-chat-panel>.section-head{grid-row:1;min-height:calc(56px + var(--safe-area-top));margin:0;padding:max(.55rem,var(--safe-area-top)) .75rem .55rem;border-bottom:1px solid var(--border-subtle);background:var(--surface-1);z-index:3}body.chat-workspace-open .room-chat-panel>.room-chat-head{display:flex;flex-direction:row;align-items:center;gap:.4rem}body.chat-workspace-open .room-chat-head .mobile-chat-title{min-width:0;flex:1 1 auto}body.chat-workspace-open .room-chat-head .mobile-chat-title>div{min-width:0}body.chat-workspace-open .room-chat-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.chat-workspace-open .room-chat-head .mobile-chat-back{display:block;flex:0 0 44px}body.chat-workspace-open .room-chat-head .muted,body.chat-workspace-open .room-chat-head-actions>span{display:none}body.chat-workspace-open .room-chat-head-actions{display:flex;flex:0 0 auto;gap:2px}body.chat-workspace-open .room-chat-head-actions button{width:44px;min-width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent}body.chat-workspace-open .room-chat-members-button span{font-size:.72rem}body.chat-workspace-open .section-head h2{margin:0;font-size:1.05rem}body.chat-workspace-open .chat-panel>.section-head p,body.chat-workspace-open .chat-panel>.section-head>span,body.chat-workspace-open .direct-panel>.section-head .muted{display:none}body.chat-workspace-open .chat-panel>.button-row{position:fixed;z-index:5;top:max(.45rem,var(--safe-area-top));left:.45rem;width:44px;margin:0}body.chat-workspace-open .chat-panel>.button-row button{width:44px;min-width:44px;height:44px;padding:0;overflow:hidden;font-size:0;background:transparent}body.chat-workspace-open .chat-panel>.button-row button:before{content:"←";font-size:1.35rem}body.chat-workspace-open .chat-panel>.section-head{padding-left:3.7rem}.mobile-chat-title{display:flex;align-items:center;gap:.55rem}.mobile-chat-back{width:44px;min-width:44px;padding:0;background:transparent;font-size:1.35rem}body.chat-workspace-open .add-friend-button{width:44px;padding:0;overflow:hidden;font-size:0}body.chat-workspace-open .add-friend-button:before{content:"⋮";font-size:1.4rem}body.chat-workspace-open .chat-panel>.messages,body.chat-workspace-open .room-chat-panel>.messages{grid-row:2}body.chat-workspace-open .messages,body.chat-workspace-open .room-chat-messages,body.chat-workspace-open .direct-chat>.messages{min-height:0;max-height:none;height:auto;overflow-y:auto;overscroll-behavior-y:contain;padding:.75rem;border:0;border-radius:0;background:var(--bg-app);scrollbar-gutter:stable}body.chat-workspace-open .message{max-width:88%;margin-bottom:.6rem;padding:.65rem .75rem;border-radius:14px 14px 14px 4px}body.chat-workspace-open .message.mine{margin-left:auto;border-radius:14px 14px 4px}body.chat-workspace-open .message time{font-size:.72rem}body.chat-workspace-open .chat-form{grid-row:3;display:grid;grid-template-columns:44px 44px minmax(0,1fr) 44px;gap:.35rem;align-items:end;min-width:0;margin:0;padding:.5rem .6rem max(.5rem,var(--safe-area-bottom));border-top:1px solid var(--border-subtle);background:var(--surface-1);z-index:4}body.chat-workspace-open .chat-form .mention-input-wrap{grid-column:3;grid-row:1;min-width:0}body.chat-workspace-open .chat-form textarea{width:100%;min-height:44px;max-height:96px;padding:.65rem .8rem;resize:none;border-radius:18px;font-size:16px;line-height:1.35}body.chat-workspace-open .chat-form .attachment-picker{grid-column:1;grid-row:1;align-self:end}body.chat-workspace-open .attach-button{display:grid;width:44px;height:44px;place-items:center;overflow:hidden;padding:0;border-radius:50%;font-size:0;background:var(--surface-3)}body.chat-workspace-open .attach-button:before{content:"+";font-size:1.55rem;color:var(--text-primary)}body.chat-workspace-open .share-room-button{grid-column:2;grid-row:1;width:44px;height:44px;overflow:hidden;padding:0;border-radius:50%;font-size:0}body.chat-workspace-open .share-room-button:before{content:"⌁";font-size:1.3rem}body.chat-workspace-open .chat-form>button[type=submit],body.chat-workspace-open .chat-form>button:not([type]){grid-column:4;grid-row:1;width:44px;height:44px;padding:0;overflow:hidden;border-radius:50%;font-size:0}body.chat-workspace-open .chat-form>button[type=submit]:before,body.chat-workspace-open .chat-form>button:not([type]):before{content:"➤";font-size:1.05rem}body.chat-workspace-open .desktop-helper{display:none}body.chat-workspace-open .selected-room-share,body.chat-workspace-open .pending-attachments{grid-column:1 / -1;grid-row:2;max-height:96px;overflow-y:auto}body.chat-workspace-open .direct-panel{grid-template-rows:auto auto minmax(0,1fr)}body.chat-workspace-open .direct-layout{display:grid;grid-template-rows:auto minmax(0,1fr);grid-row:2 / 4;min-height:0;gap:0}body.chat-workspace-open .direct-list{display:flex;max-height:72px;min-height:72px;padding:.35rem .6rem;overflow-x:auto;border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}body.chat-workspace-open .direct-conversation{min-width:180px;min-height:58px;padding:.45rem .6rem}body.chat-workspace-open .direct-chat{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}body.chat-workspace-open .direct-chat .chat-form{grid-template-columns:44px minmax(0,1fr) 44px}body.chat-workspace-open .direct-chat .chat-form>textarea{grid-column:2;grid-row:1}body.chat-workspace-open .direct-chat .chat-form .attachment-picker{grid-column:1}body.chat-workspace-open .direct-chat .chat-form>button:not([type]){grid-column:3}body.chat-workspace-open .room-chat-panel .chat-form{grid-template-columns:44px minmax(0,1fr) 44px}body.chat-workspace-open .room-chat-panel .chat-form .mention-input-wrap{grid-column:2}body.chat-workspace-open .room-chat-panel .chat-form .attachment-picker{grid-column:1}body.chat-workspace-open .room-chat-panel .chat-form>button[type=submit],body.chat-workspace-open .room-chat-panel .chat-form>button:not([type]){grid-column:3}body.chat-workspace-open .chat-panel>.alert,body.chat-workspace-open .direct-panel>.alert,body.chat-workspace-open .room-chat-panel>.alert{position:fixed;z-index:20;right:.75rem;bottom:calc(70px + var(--safe-area-bottom));left:.75rem}}@media(max-width:900px){.home-view{padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 24px)}.home-view .suggested-rooms,.home-view .primary-section{height:auto;min-height:0;max-height:none;overflow:visible}.home-view .room-list.compact.scroll-list,.rooms-directory .room-list,.scheduled-rooms-view .room-grid{display:flex;width:100%;min-width:0;height:auto;min-height:0;max-height:none;flex-direction:column;align-items:stretch;gap:16px;padding:0;overflow:visible;grid-auto-rows:auto;scrollbar-width:auto}.home-view .room-list>.room-card,.rooms-directory .room-list>.room-card,.scheduled-rooms-view .room-card{position:relative;inset:auto;display:flex;width:100%;min-width:0;height:auto;min-height:0;max-height:none;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:14px;margin:0;padding:16px;overflow:visible;transform:none;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:0 8px 22px #0000001f}.home-view .room-card-main,.home-view .room-card-top,.home-view .room-meta,.home-view .room-badges,.home-view .room-actions{position:static;width:auto;min-width:0;height:auto;max-height:none;overflow:visible;transform:none}.home-view .room-card-top h3,.rooms-directory .room-card-top h3{margin:0;overflow-wrap:anywhere;font-size:1.06rem;line-height:1.3}.home-view .room-card-main>p,.rooms-directory .room-card-main>p{display:block;margin:10px 0 12px;overflow:visible;font-size:.94rem;line-height:1.5;-webkit-box-orient:initial;-webkit-line-clamp:unset}.home-view .room-meta,.rooms-directory .room-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0;font-size:.84rem;line-height:1.4}.home-view .room-meta span,.rooms-directory .room-meta span{min-width:0;overflow-wrap:anywhere}.home-view .room-meta span:first-child,.home-view .room-meta span:nth-child(3),.rooms-directory .room-meta span:first-child,.rooms-directory .room-meta span:nth-child(3){grid-column:1 / -1}.home-view .room-actions,.rooms-directory .room-actions{display:grid;grid-template-columns:1fr;margin:0}.home-view .room-actions button,.rooms-directory .room-actions button{position:static;width:100%;min-height:48px;margin:0}}@media(max-width:900px){.rooms-directory{display:grid;align-content:start;gap:24px;min-height:0;padding:18px 16px calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 28px);overflow:visible}.rooms-directory>section,.rooms-directory>details,.rooms-directory .room-list{min-width:0;height:auto;max-height:none;overflow:visible}.rooms-directory .room-list,.room-list{display:flex;flex-direction:column;align-items:stretch;gap:16px;grid-auto-rows:auto}.rooms-directory .room-card,.room-list>.room-card{position:relative;inset:auto;display:flex;width:100%;min-width:0;height:auto;min-height:0;max-height:none;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:14px;margin:0;padding:16px;overflow:visible;transform:none;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:0 8px 22px #0000001f;isolation:isolate}.rooms-directory .room-card-main,.rooms-directory .room-card-top,.rooms-directory .room-meta,.rooms-directory .room-badges,.rooms-directory .room-actions{position:static;min-width:0;height:auto;max-height:none;overflow:visible;transform:none}.rooms-directory .room-card-top{display:flex;align-items:flex-start;gap:10px}.rooms-directory .room-card-top h3{min-width:0;margin:0;overflow-wrap:anywhere;font-size:1.08rem;line-height:1.3}.rooms-directory .room-card-main>p{display:block;margin:10px 0 12px;overflow:visible;font-size:.95rem;line-height:1.5;-webkit-line-clamp:unset}.rooms-directory .room-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0;font-size:.86rem;line-height:1.4}.rooms-directory .room-meta span{min-width:0;overflow-wrap:anywhere}.rooms-directory .room-meta span:first-child,.rooms-directory .room-meta span:nth-child(3){grid-column:1 / -1}.rooms-directory .room-badges{display:flex;gap:7px;margin-top:12px}.rooms-directory .room-actions{display:grid;grid-template-columns:1fr;margin:0}.rooms-directory .room-actions button{position:static;width:100%;min-height:48px;margin:0}.rooms-directory .empty{min-height:96px;margin:0}}@media(max-width:900px){:root{--mobile-page-padding: 16px;--mobile-section-gap: 24px;--mobile-card-padding: 16px;--touch-target: 44px;--input-height: 48px;--header-height: 60px;--bottom-nav-height: 72px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px}html{overflow-x:hidden}body{min-width:320px;overflow-x:hidden;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom));font-size:16px}button,input,textarea,select{min-height:var(--touch-target);font-size:16px}button{border-radius:var(--radius-sm)}input,textarea,select{min-height:var(--input-height);border-radius:var(--radius-sm);padding:.75rem .875rem}h1{font-size:clamp(1.7rem,7.5vw,2.15rem);line-height:1.12;letter-spacing:-.03em}h2{font-size:1.3rem;line-height:1.2}h3{font-size:1.05rem}p{line-height:1.55}.app-header.navbar{position:sticky;top:0;z-index:50;min-height:calc(var(--header-height) + var(--safe-area-top));padding:var(--safe-area-top) 10px 0;grid-template-columns:var(--touch-target) minmax(0,1fr) var(--touch-target);gap:8px;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 70%,transparent);background:color-mix(in srgb,var(--bg-sidebar) 92%,transparent);box-shadow:0 8px 28px #00000024;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-header .nav-toggle,.app-header .notification-button{width:var(--touch-target)!important;height:var(--touch-target);min-width:var(--touch-target);padding:0;border-radius:50%;background:transparent;color:#eef8f1}.app-header .brand-button{display:flex;min-width:0;align-items:center;justify-content:center;gap:8px;color:#f4faf6}.brand-icon{width:24px;height:24px}.mobile-title{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:1rem;font-weight:800;white-space:nowrap}.app-shell{width:100%;margin:0;padding:var(--mobile-page-padding)}.app-shell>*{min-width:0}.home-view,.rooms-directory,.room-workspace,.create-room-flow,.profile-page,.people-page,.privacy-page,.scheduled-rooms-view,.settings-dashboard{width:100%;max-width:none;gap:var(--mobile-section-gap)}.panel{margin-bottom:0;padding:var(--mobile-card-padding);border:0;border-radius:var(--radius-lg);box-shadow:0 10px 30px #0000001c}.home-view .panel,.room-workspace>.panel,.settings-dashboard>.panel{background:color-mix(in srgb,var(--surface-1) 94%,var(--bg-app))}.section-head{align-items:flex-start;gap:12px}.section-head>div{min-width:0}.section-head h1,.section-head h2,.section-head h3{margin-bottom:4px}.hub-hero{min-height:0;padding:20px;border:0;border-radius:var(--radius-lg);background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 82%,var(--primary)),var(--surface-1))}.hub-hero h2{font-size:1.75rem}.hub-hero .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hub-hero .hero-actions button:first-child{grid-column:1 / -1}.hub-card{padding:18px}.hub-section{padding:0;background:transparent;box-shadow:none}.hub-section>.section-head{padding-inline:2px}.room-list.compact,.room-grid,.people-grid{display:grid;grid-template-columns:1fr;gap:12px}.room-card,.person-card{min-height:0;padding:16px;border:0;border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:0 8px 24px #00000017}.room-card-top{align-items:flex-start}.room-card-top h3{font-size:1.18rem}.room-card-top button{width:auto;min-width:88px}.room-card>p,.room-card-main>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.room-meta{gap:7px 12px;font-size:.88rem}.room-badges{margin-top:10px}.room-actions{margin-top:12px}.empty-state,.empty,.chat-load-error{min-height:112px;padding:20px;border:0;border-radius:var(--radius-lg);background:var(--surface-2);text-align:center}.room-workspace{gap:16px}.room-workspace-head{position:relative;padding:4px 0 2px}.room-workspace-head .room-back-link{margin-bottom:6px}.room-heading-line{padding-right:46px}.room-heading-line h1{font-size:1.65rem}.room-more-button{position:absolute;top:38px;right:0;border-radius:50%}.room-heading-meta{font-size:.88rem}.room-workspace:not(.room-tab-overview)>.room-activity-summary,.room-workspace:not(.room-tab-overview)>.room-schedule-summary,.room-workspace:not(.room-tab-overview)>.meeting-point-summary{display:none}.room-activity-summary,.room-schedule-summary,.meeting-point-summary{padding:16px;border-left:0}.room-tabs{position:sticky;top:calc(var(--header-height) + var(--safe-area-top));z-index:20;margin:0 calc(var(--mobile-page-padding) * -1) 4px;padding:6px var(--mobile-page-padding);border:0;background:color-mix(in srgb,var(--bg-app) 94%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.room-tabs button{min-height:var(--touch-target);padding:8px 13px;border:0;border-radius:var(--radius-pill)}.room-tabs button.active{border:0;background:var(--primary);color:#fff}.room-overview-grid,.room-settings-layout{display:grid;grid-template-columns:1fr;gap:16px}.room-overview-grid .room-chat-panel{display:none}.create-room-head,.create-room-head p{margin-bottom:0}.create-room-steps{position:sticky;top:calc(var(--header-height) + var(--safe-area-top));z-index:20;display:flex;justify-content:space-between;gap:4px;margin:0 calc(var(--mobile-page-padding) * -1);padding:10px var(--mobile-page-padding);overflow:visible;background:color-mix(in srgb,var(--bg-app) 94%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.create-room-steps li{min-width:0;flex:1;justify-content:center;padding:4px 0 8px;border-bottom-width:2px;font-size:0}.create-room-steps li span{width:32px;height:32px;flex-basis:32px;font-size:.85rem}.create-room-steps li.active{flex:1.7;gap:6px;font-size:.78rem}.creation-type-grid{gap:12px;padding:0;background:transparent;box-shadow:none}.creation-type-grid>button{min-height:112px;padding:18px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:left}.creation-location-card,.creation-details-form{display:grid;gap:16px;padding:18px}.creation-location-card .map,.plan-location-map{min-height:46dvh;border:0;border-radius:var(--radius-md)}.two-col{grid-template-columns:1fr;gap:14px}.creation-actions{position:sticky;bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom));z-index:15;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin:4px -2px -2px;padding-top:10px;background:var(--surface-1)}.creation-actions button{width:auto}.creation-actions button:last-child{width:100%}.profile-page>header,.people-page>header{padding-inline:2px}.profile-form{display:grid;grid-template-columns:1fr;gap:16px}.profile-form>label,.profile-form>button,.profile-form>p{grid-column:1}.profile-avatar-editor{padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.people-search{position:sticky;top:calc(var(--header-height) + var(--safe-area-top) + 8px);z-index:18}.person-card{grid-template-columns:52px minmax(0,1fr);gap:12px}.person-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr}.settings-dashboard{display:grid;grid-template-columns:1fr;gap:16px}.settings-panel,.notification-settings,.privacy-settings{padding:18px}.privacy-grid{grid-template-columns:1fr;gap:12px}.privacy-grid article{min-height:0;padding:16px;border:0;border-radius:var(--radius-lg)}.map-panel{display:grid;gap:12px;margin:0 calc(var(--mobile-page-padding) * -1);padding:0;border-radius:0;background:transparent;box-shadow:none}.map-panel>.section-head,.map-toolbar,.map-panel>h2,.map-panel>p{margin-inline:var(--mobile-page-padding)}.map-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-toolbar>:first-child{grid-column:1 / -1}.map-layout{display:grid;grid-template-columns:1fr;gap:16px}.map-box,.map-box .map{width:100%;min-height:58dvh;height:58dvh;border-radius:0}.trails-panel{padding:0 var(--mobile-page-padding)}.trail-card{border:0;box-shadow:0 8px 20px #00000014}.mobile-bottom-nav{min-height:calc(var(--bottom-nav-height) + var(--safe-area-bottom));grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 6px max(7px,var(--safe-area-bottom));border-top:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-sidebar) 94%,transparent);box-shadow:0 -10px 30px #00000029;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-bottom-nav button{min-height:52px;gap:4px;border-radius:var(--radius-md)}.mobile-bottom-nav button span{font-size:1.28rem}.mobile-bottom-nav button small{font-size:.69rem;font-weight:700}.mobile-bottom-nav button.active{background:color-mix(in srgb,var(--primary) 35%,transparent);color:#f0fff4}.mobile-drawer{width:min(88vw,380px);max-width:none;padding:max(18px,var(--safe-area-top)) 14px max(18px,var(--safe-area-bottom));gap:18px;border:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--surface-1)}.mobile-nav-group{gap:4px}.mobile-nav-item{min-height:48px;border-radius:var(--radius-md);padding:10px 14px}.modal-backdrop{align-items:end;padding:0;overflow:hidden}.modal-backdrop>.panel,.modal-backdrop>.reaction-details-sheet{width:100%;max-width:none;max-height:min(88dvh,calc(var(--visual-viewport-height, 100dvh) - var(--safe-area-top)));margin:0;padding:20px 18px max(20px,var(--safe-area-bottom));overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -18px 50px #0000004d}.profile-overlay-backdrop>.profile-overlay{max-height:min(90dvh,var(--visual-viewport-height, 90dvh))}.profile-overlay-back{position:sticky;top:0;z-index:2;background:var(--surface-1)}.action-backdrop{padding:0}.action-sheet{width:100%;padding:10px 10px max(10px,var(--safe-area-bottom));border:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.action-sheet button{min-height:52px;border-radius:var(--radius-md)}.button-row{gap:10px}.compact-actions button{min-height:var(--touch-target)}.alert,.success,.navigation-sync-banner{border:0;border-radius:var(--radius-md);padding:14px 16px}.app-update-prompt{right:12px;bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 10px);left:12px;width:auto;flex-direction:column;align-items:stretch;padding:16px;border-radius:var(--radius-lg)}.app-update-prompt .button-row{display:grid;grid-template-columns:1fr 1fr}}@media(max-width:767px){body.chat-workspace-open .chat-panel>.section-head,body.chat-workspace-open .direct-panel>.section-head,body.chat-workspace-open .room-chat-panel>.section-head{min-height:calc(var(--header-height) + var(--safe-area-top));padding-top:max(8px,var(--safe-area-top));border-bottom:0;box-shadow:0 8px 22px #00000014}body.chat-workspace-open .messages,body.chat-workspace-open .room-chat-messages,body.chat-workspace-open .direct-chat>.messages{padding:12px 10px 18px;scrollbar-gutter:auto}body.chat-workspace-open .message{max-width:86%;padding:9px 11px;border:0;box-shadow:0 3px 12px #00000014}body.chat-workspace-open .chat-form{padding:8px 10px max(8px,var(--safe-area-bottom));border-top:0;box-shadow:0 -8px 24px #0000001a}body.chat-workspace-open .chat-form textarea{min-height:44px;max-height:120px;border:0;background:var(--surface-2)}body.chat-workspace-open .direct-list{min-height:68px;max-height:68px;border:0;box-shadow:0 6px 16px #0000000f}body.chat-workspace-open .direct-conversation{min-width:168px;border:0;border-radius:var(--radius-pill)}}.account-card{display:block}.account-card__content{width:100%;max-width:720px}.account-card__header{display:block;margin:0 0 1.5rem}.account-card__header h2{margin:0;line-height:1.25}.account-card__header p{max-width:66ch;margin:.75rem 0 0;line-height:1.55}.account-card__form{display:grid;width:100%;gap:1rem}.account-card__form label{display:grid;gap:.45rem;width:100%;font-weight:600}.account-card__form input{width:100%;min-height:48px}.account-card__form button{width:max-content;max-width:100%;min-height:44px;margin-top:.25rem}.account-card__registered{display:grid;gap:1rem}.account-card__registered>*{margin-block:0}.device-session-list{display:grid;gap:.75rem}.device-session-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3rem;padding:.75rem 0;border-bottom:1px solid var(--border-subtle)}@media(max-width:767px){.app-header.navbar{min-height:var(--header-height);padding-top:var(--safe-area-top)}.app-header .nav-toggle,.app-header .notification-button{flex:0 0 var(--touch-target);max-width:var(--touch-target)}.room-workspace{align-content:start;gap:12px}.room-workspace-head{min-height:0;padding-block:2px 6px}.room-workspace-head .room-back-link{min-height:36px;padding:4px 8px}.room-heading-line h1{font-size:clamp(1.45rem,7vw,1.75rem)}.room-heading-meta{margin-top:6px;line-height:1.35}.room-tab-overview>.room-activity-summary,.room-tab-overview>.room-schedule-summary{display:none}.room-tab-overview>.meeting-point-summary{gap:10px;padding:14px 16px}.meeting-point-summary .button-row{display:flex;flex-wrap:wrap}.meeting-point-summary .button-row button{width:auto}.room-tabs{scroll-padding-inline:var(--mobile-page-padding);overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.room-tabs button{gap:5px;padding-inline:12px;font-size:.88rem;white-space:nowrap}.room-overview-details{padding:16px}.room-overview-details>h2{display:none}.room-overview-details>p{margin-bottom:.75rem}.room-overview-details .weather-summary,.room-overview-details .room-attendance{margin-top:1rem}.room-plans-panel>.section-head{margin-bottom:0}.room-plans-panel .empty-state{margin-top:0}.room-plans-panel .empty-state button{width:100%}.account-card__content{max-width:none}.account-card__header{margin-bottom:1.25rem}.account-card__form{gap:.875rem}.account-card__form button{width:100%}.device-session-row{align-items:flex-start;flex-direction:column}}
