:root{--bg:#f5f6f4;--paper:#ffffff;--ink:#21352c;--muted:#637168;--green:#253f35;--lime:#e4f29b;--line:#e1e6e0;--soft:#edf2ed;--peach:#f5e6d8;--radius:18px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,label:has(input:focus-visible){outline:3px solid #96ac59;outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid #93a65d;outline-offset:1px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.045em}h1{font-size:36px;line-height:1.2}h2{font-size:20px;line-height:1.3}h3{font-size:17px;line-height:1.4;letter-spacing:-.025em}p{color:var(--muted)}button{border:0;background:none}small{font-size:12px}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button .icon,a .icon{pointer-events:none}.button{min-height:46px;padding:12px 18px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:650;line-height:1.3;transition:background .15s,transform .15s}.button:hover{transform:translateY(-1px)}.primary{background:var(--green);color:#fff}.primary:hover{background:#365346}.secondary{background:var(--soft);color:var(--green)}.secondary:hover{background:#e1e7d5}.light{background:var(--lime);color:var(--green)}.full{width:100%}.danger{color:#a54233;background:#faebe5}.text-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0;font-size:12px;font-weight:650;text-align:left}.text-button:hover{text-decoration:underline}.text-button .icon{width:16px;height:16px}.icon-button{height:42px;min-width:42px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}.icon-button:hover{background:var(--soft)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;line-height:1.5}.tag{display:inline-flex;border-radius:5px;background:var(--soft);padding:5px 9px;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.peach{background:var(--peach)!important}.app-shell{max-width:1680px;min-height:100vh;margin:auto;display:flex}.sidebar{width:237px;flex-shrink:0;border-right:1px solid var(--line);padding:34px 25px 20px;display:flex;flex-direction:column;position:fixed;height:100dvh;z-index:10;background:var(--bg)}.brand{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:750;letter-spacing:-.7px}.brand small{display:block;font-size:8px;letter-spacing:1.7px;font-weight:600;margin-top:1px}.sidebar-label{font-size:9px;font-weight:600;letter-spacing:1.5px;color:#8c9084;margin:53px 12px 17px}.desktop-nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:14px;width:100%;height:48px;padding:0 16px;border-radius:10px;color:#6f776c;font-size:13px;text-align:left}.nav-item.active{background:#e8edda;font-weight:650;color:var(--green)}.nav-item:hover{background:#eceee3}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}.sidebar-bottom{margin-top:auto}.little-london{font-size:32px;letter-spacing:5px;font-weight:800;color:#d4d8c8;border-bottom:1px solid var(--line);padding:22px 8px}.little-london span{display:block;font-size:8px;letter-spacing:1.5px;margin-top:5px;color:#8e9784}.profile{display:flex;align-items:center;gap:10px;text-align:left;padding:22px 0 0;width:100%}.profile>span:nth-child(2){flex:1;font-size:13px;font-weight:650}.profile small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:3px}.profile>.icon{width:17px;color:#8b9382}.avatar{width:36px;height:36px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;background:#dfdfcb;color:#596243;font-size:11px;font-weight:700;flex-shrink:0;letter-spacing:.5px}.color-1{background:#efdbca;color:#8b634f}.color-2{background:#dce4ec;color:#5e7386}.color-3{background:#e9dbdf;color:#8a6670}.color-4{background:#d6e3d7;color:#4f7357}.main-wrap{margin-left:237px;width:calc(100% - 237px);min-height:100vh;display:flex;flex-direction:column}.topbar{height:84px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:16px}.desktop-breadcrumb{font-size:11px;color:#899080}.desktop-breadcrumb span{padding:0 13px;color:#b4b8aa}.top-actions{display:flex;align-items:center;gap:13px}.connection{font-size:10px;color:#78826f;display:flex;align-items:center;gap:6px}.connection i,.status-dot{width:6px;height:6px;background:#859960;border-radius:50%;display:inline-block}.connection.offline i{background:#bb8150}.top-avatar{padding:0}.top-avatar .avatar{width:31px;height:31px;font-size:9px}.mobile-brand,.mobile-nav{display:none}main#main{padding:35px 42px 45px;max-width:1220px;width:100%;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading .eyebrow{color:#85916d;display:block;margin-bottom:10px}.page-heading p{font-size:12px;margin-top:9px}.hero{background:var(--green);border-radius:var(--radius);min-height:272px;position:relative;overflow:hidden;color:#fff;display:flex;align-items:center}.hero-copy{position:relative;z-index:2;padding:30px 34px}.hero-pill{display:inline-flex;align-items:center;gap:7px;color:#e1eabe;background:#ffffff0d;border:1px solid #ffffff20;border-radius:20px;padding:6px 10px;font-size:8px;letter-spacing:1.2px;font-weight:650}.hero-pill i{width:5px;height:5px;border-radius:50%;background:var(--lime)}.hero h2{font-size:39px;letter-spacing:-1.5px;line-height:1.15;margin:17px 0 12px;font-weight:550}.hero em{font-family:Georgia,serif;font-weight:400;color:var(--lime)}.hero p{color:#becbb8;font-size:10px}.hero p span{padding:0 7px}.hero .button{margin-top:22px;font-size:11px;min-height:39px;padding:10px 15px}.hero-art{position:absolute;right:-23px;bottom:-7px;width:57%;height:100%;object-fit:contain;object-position:center bottom;opacity:.9}.hero-stamp{position:absolute;right:25px;top:26px;border:1px solid #b0c18c60;border-radius:50%;width:61px;height:61px;text-align:center;font-weight:700;font-size:13px;letter-spacing:1px;display:flex;flex-direction:column;justify-content:center;transform:rotate(13deg);color:#c6d1a6}.hero-stamp small{font-size:7px;letter-spacing:2px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px;margin-bottom:27px}.quick-actions button{min-height:62px;background:var(--paper);border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;padding:12px 17px;gap:12px;text-align:left}.quick-actions button:hover{border-color:#aab897;background:#f0f2e7}.quick-actions span{flex:1;font-size:11px;font-weight:650}.quick-actions .icon{width:18px;height:18px}.quick-actions .icon:last-child{width:15px;color:#8b9480}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;min-height:30px}.section-head h2{font-size:16px;letter-spacing:-.4px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:23px;margin-bottom:24px}.next-card{min-height:251px;display:flex;flex-direction:column;align-items:flex-start}.next-card .empty-icon{margin-bottom:18px}.next-card>p{font-size:12px;line-height:1.65;display:flex;align-items:center;gap:7px;margin:7px 0 21px}.next-card .button{margin-top:auto;font-size:11px}.next-time{font-size:35px;font-weight:550;letter-spacing:-1px;line-height:1.2;margin:17px 0 12px}.next-time small{display:block;font-size:10px;letter-spacing:0;color:var(--muted);margin-top:4px}.empty-icon{width:43px;height:43px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);color:#7b8960;flex-shrink:0}.empty-icon .icon{width:22px;height:22px}.crew-status{display:flex;align-items:center;gap:11px}.crew-status h3{font-size:15px}.crew-status p{font-size:10px;margin-top:3px}.status-icon{color:#819566}.status-icon .icon{width:27px;height:27px}.crew-status .status-dot{margin-left:auto;flex-shrink:0}.avatar-line{display:flex;align-items:center;margin:22px 0 19px;flex-wrap:wrap;row-gap:7px}.avatar-line .avatar{width:31px;height:31px;font-size:9px;border:2px solid var(--paper);margin-right:-7px}.avatar-line .more{background:var(--soft)}.member-count{font-size:10px;color:var(--muted);margin-left:16px}.crew-card .button{font-size:11px;min-height:41px}.meetup-link{justify-content:center;width:100%;margin-top:9px;font-size:10px;color:#7a856c}.meetup{border-top:1px dashed var(--line);padding-top:17px;margin-top:20px}.meetup a{display:block;font-weight:600;margin-top:7px}.meetup small{display:block;color:var(--muted);margin:4px 0}.group-summary{display:flex;gap:12px;margin:-5px 0 15px}.group-summary span{flex:1;padding:8px 11px;border-radius:7px;background:var(--soft);font-size:11px}.group-summary b{float:right}.essentials{display:flex;gap:14px;padding:21px}.essential-icon{color:#949d80;margin-top:2px}.essentials .eyebrow{font-size:8px;color:#969b8a;letter-spacing:1.4px}.essentials a{display:block;font-size:12px;font-weight:600;margin-top:6px;overflow-wrap:anywhere}.essentials p{font-size:10px;line-height:1.65;margin-top:6px;white-space:pre-line;overflow-wrap:anywhere}.essentials .text-button{font-size:11px;min-height:29px}.poll-empty{display:flex;gap:15px;align-items:flex-start;padding:22px}.poll-empty h3{font-size:13px}.poll-empty p{font-size:10px;margin:4px 0}.poll-empty .text-button{font-size:11px;min-height:29px}.poll-card .eyebrow{font-size:8px;color:#8d977e}.poll-card h3{margin:9px 0 16px;font-size:15px}.poll-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:43px;border:1px solid var(--line);border-radius:8px;padding:10px;margin:7px 0;text-align:left;font-size:12px;gap:12px}.poll-option>span{display:flex;align-items:center;gap:10px;overflow-wrap:anywhere}.poll-option b{font-size:11px}.poll-option.selected{background:var(--soft);border-color:#bbc8a4}.poll-option .icon{width:16px;height:16px}.radio-dot{display:inline-block;width:14px;height:14px;border:1px solid #b8bead;border-radius:50%;flex-shrink:0}.poll-card>small{font-size:9px;color:var(--muted);display:block;margin-top:12px}.album-empty{padding:24px;display:flex;align-items:center;gap:18px;border:1px dashed #ccd3bc;border-radius:var(--radius);width:100%;text-align:left;background:#eff1e5}.album-empty .empty-icon{background:#e5e9d8}.album-empty b{display:block;font-size:13px;font-weight:600}.album-empty small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.round-arrow{margin-left:auto;border:1px solid #c5cfb1;border-radius:50%;width:31px;height:31px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.round-arrow .icon{width:17px;height:17px}.count{font-size:10px;padding:3px 6px;border-radius:5px;background:#e9ecdf;vertical-align:middle;margin-left:6px}.photo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.photo-strip button{padding:0;border-radius:12px;overflow:hidden;aspect-ratio:1.25}.photo-strip img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.photo-strip button:hover img{transform:scale(1.04)}.page-footer{display:flex;justify-content:space-between;margin:0 42px;padding:19px 0 25px;border-top:1px solid var(--line);font-size:9px;color:#909780}.page-footer span:last-child{font-size:8px;letter-spacing:1.5px}.day-tabs{display:flex;gap:12px;border-bottom:1px solid var(--line);padding-bottom:24px;margin:30px 0;overflow-x:auto}.day-tabs button{min-width:83px;padding:13px 20px;border-radius:13px;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;align-items:center}.day-tabs button.active{background:var(--green);color:var(--lime);border-color:var(--green)}.day-tabs span{font-size:10px;text-transform:uppercase;letter-spacing:1px}.day-tabs b{font-size:27px;font-weight:550;line-height:1.4}.day-tabs small{font-size:10px;opacity:.7}.timeline-row{display:flex;gap:26px}.timeline-time{width:60px;flex-shrink:0;font-weight:650;font-size:14px;padding-top:28px;position:relative;text-align:left}.timeline-time:after{content:'';position:absolute;right:-14px;top:43px;width:1px;height:calc(100% - 10px);background:var(--line)}.timeline-row:last-child .timeline-time:after{display:none}.timeline-time span{position:absolute;width:9px;height:9px;border:2px solid var(--bg);border-radius:50%;background:#9bae70;right:-18px;top:35px}.plan-card{display:flex;justify-content:space-between;gap:12px;flex:1;min-width:0}.plan-card>div{min-width:0}.plan-card h2{font-size:21px;margin:12px 0 10px;overflow-wrap:anywhere}.location-link{display:inline-flex;align-items:center;gap:7px;color:#738460;font-size:12px;overflow-wrap:anywhere}.location-link .icon{width:16px;height:16px}.plan-notes{font-size:12px;white-space:pre-line;margin-top:15px;overflow-wrap:anywhere}.large-empty{border:1px dashed #cdd3c0;border-radius:var(--radius);text-align:center;padding:65px 20px;background:#f0f2e7}.large-empty>.empty-icon{width:60px;height:60px;margin-bottom:22px;background:#e5ead8}.large-empty h2{font-size:26px;margin:4px 0 12px}.large-empty p{font-size:13px;line-height:1.8}.large-empty .button{margin-top:26px}.photo-empty{background:var(--paper);padding-top:50px}.photo-empty>small{display:block;font-size:10px;color:var(--muted);margin-top:19px}.photo-placeholder-stack{height:132px;position:relative;width:190px;margin:0 auto 24px}.photo-placeholder-stack span{position:absolute;left:20px;top:5px;width:105px;height:118px;display:flex;align-items:center;justify-content:center;border:7px solid white;border-bottom-width:24px;background:#dfe7cb;box-shadow:0 4px 15px #33412b12;transform:rotate(-12deg);color:#869b65}.photo-placeholder-stack span:last-child{left:74px;top:5px;transform:rotate(11deg);background:#eedbc7;color:#aa8264}.photo-placeholder-stack .icon{width:34px;height:34px}.photo-empty .eyebrow{font-size:9px;color:#8b9777}.album-meta{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px;font-size:11px;color:var(--muted)}.album-meta .icon{width:16px;margin-right:7px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.photo-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;align-self:start}.photo-open{display:block;padding:0;width:100%;aspect-ratio:1;overflow:hidden}.photo-open img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.photo-open:hover img{transform:scale(1.04)}.photo-info{padding:14px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px}.photo-info b{font-size:11px}.photo-info small{font-size:9px;color:var(--muted)}.photo-info p{width:100%;font-size:11px;overflow-wrap:anywhere;margin-top:2px}.money-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}.money-stats strong{display:block;font-size:39px;font-weight:500;letter-spacing:-1.8px;margin:9px 0}.money-stats p{font-size:11px}.money-stats .eyebrow{color:#7e896f;font-size:9px}.green-card{background:var(--green);color:var(--lime);border-color:var(--green)}.green-card .eyebrow,.green-card p{color:#bfcca9}.expense-list{padding:0 23px}.expense-row{display:flex;align-items:center;gap:13px;padding:20px 0;border-bottom:1px solid var(--line)}.expense-row:last-child{border:0}.expense-row>div{flex:1;min-width:0}.expense-row h3{font-size:13px;overflow-wrap:anywhere}.expense-row p{font-size:10px;margin-top:4px}.expense-row>b{font-size:13px;white-space:nowrap}.expense-row .empty-icon{width:36px;height:36px}.expense-row .empty-icon .icon{width:18px}.expense-row .icon-button{width:33px;height:36px;min-width:33px;color:#a6ab9b}.expense-row .icon-button .icon{width:16px}.inline-empty{text-align:center;padding:43px 15px}.inline-empty h3{font-size:16px}.inline-empty p{font-size:12px;margin-top:7px}.settlement{display:flex;justify-content:space-between;gap:15px;padding:13px 0;font-size:12px;border-bottom:1px solid var(--line)}.settlement>span{display:flex;align-items:center;gap:12px}.settlement .icon{width:14px}.fine-print{font-size:11px;color:#858b7c;line-height:1.6;margin-top:16px}.offline-banner{padding:12px 15px;border:1px solid #decc9f;border-radius:9px;background:#faf1d9;color:#776132;font-size:12px;margin-bottom:20px}.loading{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.loading p{font-size:13px}dialog{border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);width:calc(100% - 32px);max-width:510px;padding:28px;max-height:90dvh;overflow:auto;box-shadow:0 24px 90px #14261a25}dialog::backdrop{background:#14231c70;backdrop-filter:blur(4px)}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:24px}.modal-heading h2{font-size:25px;margin:4px 0;overflow-wrap:anywhere}.modal-heading p{font-size:12px;line-height:1.6}.modal-heading>.icon-button{flex-shrink:0;width:35px;min-width:35px;height:35px}.modal-heading>.icon-button .icon{width:18px}form>label,form>.form-grid>label,dialog>label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:12px;margin-bottom:17px}input,textarea,select{width:100%;min-height:46px;border:1px solid #dce0d2;border-radius:9px;background:#fffefb;color:var(--ink);padding:11px 12px;font-size:14px}input::placeholder,textarea::placeholder{color:#a6aa9c;font-size:12px;font-weight:400}textarea{resize:vertical;min-height:87px}select{padding-right:25px}input[type=checkbox]{width:17px;min-height:17px;height:17px;accent-color:var(--green);margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid>label{min-width:0}.form-grid input{min-width:0}.form-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.form-buttons .danger{margin-right:auto}.form-error{color:#af4436;font-size:12px;line-height:1.6;margin-top:12px}.form-error:empty{display:none}.info-note{display:flex;align-items:flex-start;gap:10px;padding:13px;background:var(--soft);border-radius:9px;color:#77846a;font-size:11px}.info-note .icon{width:17px}.crew-modal-status{display:flex;align-items:center;justify-content:space-between;gap:10px}.group-picker{margin:20px 0;padding:16px;background:#f0f2e7;border-radius:12px;display:flex;gap:7px;flex-wrap:wrap}.group-picker>p{width:100%;font-size:11px;margin-bottom:3px}.group-picker .button{padding:10px 12px;font-size:11px;min-height:40px}.roster{margin:14px 0 25px}.roster>div{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.roster b{font-size:13px}.roster b small{font-weight:400;color:var(--muted)}.roster>div>span:last-child{margin-left:auto;font-size:10px;color:var(--muted)}fieldset{padding:0;border:0;margin:23px 0 0;min-width:0}legend{font-size:12px;font-weight:650}.selection-buttons{display:flex;gap:17px;margin:5px 0 10px}.selection-buttons .text-button{font-size:11px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;min-height:44px;padding:10px 12px;font-size:12px;cursor:pointer}.check-label:has(input:checked){background:var(--soft);border-color:#becbaa}.check-label span{overflow-wrap:anywhere;min-width:0}.photo-upload-art{border:1px dashed #c8d1b9;border-radius:14px;background:#f0f2e7;text-align:center;padding:30px 15px}.photo-upload-art>.icon{width:40px;height:40px;color:#91a36f;margin-bottom:15px}.photo-upload-art h3{font-size:20px}.photo-upload-art p{font-size:11px;margin-top:7px}.photo-pick-buttons{display:flex;gap:10px;margin:15px 0 23px}.photo-pick-buttons label{flex:1;cursor:pointer;font-size:12px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;padding:0;border:0}.upload-preview{display:block;max-height:300px;width:100%;object-fit:contain;border-radius:12px;background:var(--soft)}#photo-selection>.text-button{margin:10px 0 18px}.full-photo{width:100%;max-height:60dvh;object-fit:contain;border-radius:10px;background:#f0f2e7}.photo-caption{margin-top:16px;font-size:14px;color:var(--ink);overflow-wrap:anywhere}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#253f35;color:#f7faee;box-shadow:0 7px 30px #1a2b2425;padding:13px 21px;border-radius:11px;max-width:calc(100% - 32px);font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1680px){.sidebar{margin-left:0}}@media(min-width:1400px){main#main{padding-left:60px;padding-right:60px}.hero{min-height:300px}.hero h2{font-size:46px}.hero-copy{padding:35px 40px}.hero-art{right:0;width:56%}}@media(max-width:1100px){.sidebar{width:205px;padding:29px 18px}.main-wrap{margin-left:205px;width:calc(100% - 205px)}.topbar{padding:0 28px}main#main{padding:29px 28px 40px}.page-footer{margin:0 28px}.hero-art{right:-90px;width:64%;opacity:.7}.hero h2{font-size:35px}.hero-copy{padding:28px}.hero p{max-width:220px;line-height:1.8}.hero p span{padding:0 3px}.quick-actions button{padding:11px;gap:8px}.quick-actions span{font-size:10px}.quick-actions .icon:last-child{display:none}.card{padding:20px}.crew-status{gap:8px}.crew-status h3{font-size:13px}.crew-status p{font-size:9px}.poll-empty{gap:10px}.poll-empty .empty-icon{width:32px;height:32px;border-radius:9px}.poll-empty h3{font-size:12px}.photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){body{font-size:14px}.sidebar{display:none}.main-wrap{margin-left:0;width:100%;padding-bottom:75px}.topbar{height:70px;padding:0 21px;padding-top:env(safe-area-inset-top)}.mobile-brand{display:flex;align-items:center;gap:9px;font-size:20px;letter-spacing:-.7px}.desktop-breadcrumb{display:none}.top-actions{gap:8px}.top-actions .top-avatar{display:none}.connection{font-size:9px}.topbar .icon-button{height:36px;min-width:36px}.topbar .icon-button .icon{width:19px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffefbf7;border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom));z-index:20;backdrop-filter:blur(12px)}.mobile-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;color:#919782;min-height:47px;justify-content:center;font-size:9px}.mobile-nav .icon{width:21px;height:21px}.mobile-nav button.active{color:var(--green);font-weight:750}.mobile-nav button.active .icon{stroke-width:2.2}.mobile-nav button.active:before{content:'';position:absolute;top:0;height:2px;width:31px;background:var(--green);border-radius:0 0 3px 3px}main#main{padding:26px 21px 30px}.page-heading{margin-bottom:22px;gap:12px;align-items:flex-start}.page-heading .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:9px}.page-heading h1{font-size:28px;letter-spacing:-1.1px}.page-heading p{font-size:11px;line-height:1.65;margin-top:7px}.page-heading>.button{font-size:0;width:43px;min-height:43px;padding:0;border-radius:12px;flex-shrink:0;margin-top:22px;gap:0}.page-heading>.button .icon{width:20px;height:20px}.hero{min-height:263px;border-radius:16px;align-items:flex-start}.hero-copy{padding:25px 23px}.hero h2{font-size:34px;letter-spacing:-1.1px;line-height:1.16;margin-top:18px}.hero p{font-size:9px;max-width:210px;line-height:1.9}.hero p span{padding:0 4px}.hero-art{width:83%;right:-91px;bottom:-3px;height:72%;opacity:.65}.hero-stamp{right:18px;top:22px;width:47px;height:47px;font-size:10px}.hero-stamp small{font-size:5px}.hero .button{font-size:10px;margin-top:18px;min-height:37px;padding:10px 13px}.hero .button .icon{width:14px}.hero-pill{font-size:7px;letter-spacing:1px;padding:5px 8px}.quick-actions{gap:8px;margin:12px 0 24px}.quick-actions button{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:8px;min-height:77px;border-radius:11px;padding:12px 6px}.quick-actions span{font-size:9px;flex:0;white-space:nowrap}.quick-actions .icon{width:19px;height:19px}.section-head{margin-bottom:10px}.section-head h2{font-size:16px}.section-head .text-button{font-size:11px}.card{padding:22px;border-radius:15px;margin-bottom:23px}.next-card{min-height:225px}.next-card .empty-icon{margin-bottom:15px}.next-card h3{font-size:17px}.next-card>p{font-size:12px}.next-card .button{min-height:43px;font-size:12px}.crew-status h3{font-size:16px}.crew-status p{font-size:11px}.crew-status{gap:12px}.crew-card .button{font-size:12px;min-height:43px}.avatar-line .avatar{width:34px;height:34px;font-size:10px}.member-count{font-size:10px}.meetup-link{font-size:11px}.poll-empty .empty-icon{width:40px;height:40px}.poll-empty{gap:15px}.poll-empty h3{font-size:15px}.poll-empty p{font-size:11px}.poll-empty .text-button{font-size:12px;margin-top:5px}.essentials .eyebrow{font-size:9px}.essentials .text-button{font-size:12px}.essentials p{font-size:11px}.album-empty{padding:20px 16px;gap:12px}.album-empty b{font-size:12px}.album-empty small{font-size:10px;line-height:1.6}.album-empty .empty-icon{width:36px;height:36px}.album-empty .round-arrow{width:27px;height:27px}.page-footer{margin:0 21px;padding:18px 0;font-size:8px}.page-footer span:last-child{font-size:7px}.photo-strip{grid-template-columns:repeat(2,1fr);gap:10px}.day-tabs{gap:9px;margin-top:25px}.day-tabs button{min-width:65px;padding:12px 15px;flex:1}.timeline-row{gap:17px}.timeline-time{font-size:12px;width:43px}.timeline-time span{right:-11px}.timeline-time:after{right:-7px}.plan-card{padding:17px;gap:4px}.plan-card h2{font-size:18px}.plan-card>.icon-button{min-width:27px;width:27px;height:32px}.plan-card>.icon-button .icon{width:16px}.location-link{font-size:11px;gap:4px}.plan-notes{font-size:11px}.large-empty{padding:45px 17px}.large-empty h2{font-size:23px}.large-empty p{font-size:12px}.album-meta{font-size:10px;align-items:flex-start}.album-meta>span:last-child{font-size:9px;max-width:115px;text-align:right}.photo-grid{gap:11px}.photo-info{padding:10px}.photo-info b{font-size:10px}.photo-info small{font-size:8px}.photo-info p{font-size:10px}.money-stats{gap:11px}.money-stats .card{padding:18px 15px}.money-stats .eyebrow{font-size:8px;letter-spacing:1px}.money-stats strong{font-size:31px}.money-stats p{font-size:10px}.expense-list{padding:0 16px}.expense-row{gap:10px}.expense-row .empty-icon{display:none}.expense-row h3{font-size:13px}.expense-row> b{font-size:12px}.expense-row .icon-button{min-width:27px;width:27px}.settlement{font-size:11px}.settlement>span{gap:8px}dialog{padding:23px;max-height:88dvh;border-radius:19px}.modal-heading h2{font-size:23px}input,select,textarea{font-size:16px}.photo-pick-buttons{gap:8px}.photo-pick-buttons label{font-size:11px;padding:12px 9px}.check-grid{gap:7px}.check-label{padding:10px;font-size:11px}#toast{bottom:calc(83px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100% - 32px);font-size:11px;text-align:center}}@media(max-width:360px){main#main{padding-left:16px;padding-right:16px}.topbar{padding-left:16px;padding-right:16px}.connection{font-size:8px}.hero-copy{padding-left:20px}.hero h2{font-size:31px}.hero-art{right:-105px}.hero-stamp{right:13px}.quick-actions span{font-size:8px}.photo-pick-buttons label{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Shared place picker and ownership controls. */
.poll-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px}
.poll-heading .icon-button{height:34px;min-width:34px;color:#879279}
.poll-heading .icon-button .icon{width:16px;height:16px}
.expense-payer{align-items:center;margin-top:4px}
.place-field{position:relative;margin-bottom:17px}
.place-field>label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:12px}
.place-status{font-size:10px;line-height:1.5;margin:6px 0 0;color:var(--muted)}
.place-suggestions{position:relative;border:1px solid #cbd5bc;border-radius:10px;background:var(--paper);box-shadow:0 8px 20px #253f3510;margin-top:6px;overflow:hidden}
.place-suggestions[hidden]{display:none}
.place-suggestions [role=listbox]{max-height:245px;overflow-y:auto;overscroll-behavior:contain}
.place-suggestions [role=option]{display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;padding:12px 13px;min-height:54px;border-bottom:1px solid var(--line)}
.place-suggestions [role=option]:hover,.place-suggestions [role=option][aria-selected=true]{background:var(--soft)}
.place-suggestions b{font-size:12px;font-weight:650;overflow-wrap:anywhere}
.place-suggestions span{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.place-suggestions>small{display:block;font-size:9px;color:var(--muted);padding:8px 12px}
.place-suggestions a{text-decoration:underline}
.older-polls{order:6;margin-bottom:20px}
.older-polls>summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:12px;font-weight:650}
.older-polls>summary:focus-visible{outline:3px solid #96ac59;outline-offset:2px;border-radius:6px}

/* Keep the next stop prominent, and put secondary controls inside the crew. */
.home-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"next essentials" "poll poll";column-gap:24px;align-items:start}
.next-section{grid-area:next;min-width:0}.crew-section{grid-area:crew;min-width:0}.poll-section{grid-area:poll;min-width:0}.essentials-section{grid-area:essentials;min-width:0}
.trip-active .home-columns{grid-template-areas:"poll essentials"}
.trip-active>.next-section .next-card{min-height:0;padding:25px 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:25px}
.trip-active .next-card .tag{justify-self:start;grid-column:1}.trip-active .next-time{grid-column:2;grid-row:1 / span 3;margin:0;text-align:right;align-self:center}
.trip-active .next-card h3{grid-column:1;margin-top:12px;font-size:25px}.trip-active .next-card>p{grid-column:1;margin-bottom:0}.trip-active .next-card>.button{grid-column:1 / -1;margin-top:22px;max-width:250px;justify-self:start}
.trip-banner{border-radius:13px;background:var(--soft);padding:15px 20px;display:flex;align-items:center;gap:12px;margin-bottom:15px}
.trip-banner>div{flex:1}.trip-banner b{font-size:13px}.trip-banner p{font-size:10px;margin-top:2px}.trip-banner .text-button{font-size:11px}
.meetup-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf0e3;border-color:#cdd7ba}
.meetup-card>div{min-width:0}.meetup-card a{display:flex;align-items:center;gap:8px;font-weight:650;margin:8px 0;overflow-wrap:anywhere}.meetup-card small{display:block;color:var(--muted);font-size:11px}.meetup-card .eyebrow{font-size:9px;color:#708157}
.expense-people{display:block;color:var(--muted);font-size:10px;margin-top:3px;overflow-wrap:anywhere}
.repayment-history{margin-bottom:24px}.repayment-history>summary{cursor:pointer;font-size:12px;font-weight:650;padding:12px 0;min-height:44px}.repayment-history>summary:focus-visible{outline:3px solid #96ac59;outline-offset:2px}
.repayment-row{padding:17px 0;border-bottom:1px solid var(--line)}.repayment-row:first-child{padding-top:0}.repayment-row:last-child{border:0;padding-bottom:0}
.repayment-row>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 13px}.repayment-row b{font-size:12px;overflow-wrap:anywhere}.repayment-row strong{font-size:15px}.repayment-row p{grid-column:1 / -1;font-size:11px}.repayment-row .icon{width:14px}
.repayment-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.repayment-actions .button{font-size:11px;min-height:40px}.repayment-actions .text-button{font-size:11px}
.pending-repayments{border-color:#cbd7b6}.settlement{align-items:center;flex-wrap:wrap}.settlement>span{flex:1;min-width:0}.settlement .text-button,.settlement>small{font-size:11px;flex-basis:100%;justify-content:flex-end}.settlement>small{color:var(--muted);text-align:right}.settlements>.fine-print:first-child{margin-top:0}
@media(max-width:760px){
  .home-columns,.trip-active .home-columns{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"next" "essentials" "poll";gap:0}
  .trip-active .home-columns{grid-template-areas:"essentials" "poll"}
  .trip-active>.page-heading{margin-bottom:19px}.trip-active>.page-heading p{margin-top:4px}.trip-active>.page-heading .eyebrow{display:none}
  .trip-active>.next-section .next-card{display:flex;align-items:flex-start;padding:22px;gap:0}.trip-active .next-time{text-align:left;margin:13px 0 8px;font-size:32px;align-self:flex-start}.trip-active .next-card h3{font-size:23px;margin-top:0}.trip-active .next-card>p{margin-top:7px}.trip-active .next-card>.button{max-width:none;margin-top:20px}
  .trip-banner{padding:13px;gap:9px}.trip-banner b{font-size:12px}.trip-banner p{font-size:9px}.trip-banner .text-button{font-size:10px}.trip-banner>img{width:27px;height:27px}.trip-banner .icon{width:14px}
  .meetup-card{padding:18px}.meetup-card a{font-size:13px}.meetup-card small{font-size:10px}
  .expense-row{gap:7px}.expense-row .icon-button{min-width:30px}.expense-row .expense-people{font-size:9px}
}
.essentials .eyebrow{display:block}
/* Location sharing stays optional and visible without interrupting the trip. */
[hidden]{display:none!important}
.location-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;margin-bottom:20px}
.location-controls p{margin:0 0 6px;font-weight:600}.location-controls small{display:block;color:var(--muted,#697169);line-height:1.6;max-width:520px}.location-controls button{flex-shrink:0}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;font-size:13px;color:#697169}
.map-canvas{height:440px;border:1px solid #dedfd6;border-radius:16px;z-index:0;background:#e8ece5}
.map-connection:empty,.map-error:empty{display:none}.map-connection,.map-error{font-size:13px;color:#8b542c}
.location-list{list-style:none;padding:0 20px;margin:20px 0}.location-list li{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid #e8e8df}.location-list li:last-child{border:0}.location-list li>div{flex:1;min-width:0}.location-list b{display:block;overflow-wrap:anywhere}.location-list small{display:block;font-size:12px;color:#697169;margin-top:4px}
.location-initials,.person-marker{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#253f35;color:#e4f29b;border:2px solid white;border-radius:50%;font:600 12px/1 system-ui;flex-shrink:0}
.person-marker{box-shadow:0 2px 6px #0004}.stale{background:#737971;color:white;border-style:dashed}.location-badge{font-size:11px;color:#253f35}.install-button{margin-bottom:24px}.leaflet-container{font-family:inherit}.leaflet-control-attribution a{color:#255742}
@media(max-width:760px){.location-controls{flex-direction:column;align-items:stretch;padding:16px;gap:14px}.map-canvas{height:360px}.location-list{padding:0 16px}.location-badge{font-size:10px;max-width:62px;text-align:center}.mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-nav button{min-width:0;padding-left:4px;padding-right:4px}.mobile-nav button span{font-size:10px}}

.hero-stamp{width:76px;height:76px;align-items:center;gap:5px;line-height:1.15;padding:8px;letter-spacing:.5px}.hero-stamp>span{font-size:10px;max-width:100%;overflow-wrap:anywhere;text-align:center}.hero-stamp small{display:block;letter-spacing:1.6px;padding-left:1.6px}
.location-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.location-actions .text-button{min-height:44px;display:inline-flex;align-items:center}.map-route{display:block;margin-top:8px;font-weight:600}
@media(max-width:760px){.hero-stamp{width:64px;height:64px;gap:4px;padding:6px}.hero-stamp>span{font-size:8px;letter-spacing:.35px}.hero-stamp small{font-size:5px}.location-actions{gap:10px}.location-actions .text-button{font-size:12px}.location-list li{gap:10px}}

.auth-switch{margin-top:20px;min-height:44px}.sign-out-button{margin-top:24px;min-height:44px}

.avatar,.location-initials{position:relative;overflow:hidden}.person-marker{overflow:hidden}.avatar img,.location-initials img,.person-marker img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.maplibregl-map{font-family:inherit;overflow:hidden}.maplibregl-ctrl-attrib{font-size:10px!important;background:#fffffff0!important}.maplibregl-ctrl-attrib a{color:#255742}.maplibregl-popup-content{border-radius:12px;padding:15px 24px 15px 15px;font:13px/1.5 inherit;box-shadow:0 4px 18px #15261924}.maplibregl-popup-close-button{padding:2px 7px;font-size:20px}.maplibregl-ctrl-group{border-radius:9px;overflow:hidden}.maplibregl-marker.person-marker{padding:0;cursor:pointer;box-shadow:0 2px 8px #142f2938}.maplibregl-marker.person-marker:focus-visible{outline:3px solid #557c65;outline-offset:3px}
.profile-trigger{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:50%}.profile-trigger .avatar{width:34px;height:34px}
.account-person{display:flex;align-items:center;gap:18px;margin:4px 0 26px}.account-person>.avatar{width:76px;height:76px;flex-shrink:0;font-size:24px}.account-person>div{min-width:0}.account-person b{display:block;font-size:20px;overflow-wrap:anywhere}.account-person .text-button{display:block;min-height:44px;text-align:left;font-size:13px}
.account-menu{display:grid;border-top:1px solid var(--line)}.account-row{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:14px;width:100%;min-height:58px;text-align:left;padding:14px 2px;border-bottom:1px solid var(--line);font-size:14px}.account-row>.icon:first-child{width:21px;height:21px;color:var(--muted)}.account-row>.icon:last-child{width:16px;height:16px;color:var(--muted)}.account-row span{overflow-wrap:anywhere}.account-row:hover{background:var(--soft)}
#profile-picture-preview{display:flex;justify-content:center;margin:8px 0 24px}#profile-picture-preview .avatar,.profile-preview{width:160px;height:160px;border-radius:50%;object-fit:cover;font-size:42px}.profile-picture-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.profile-picture-choices label{margin:0;cursor:pointer;font-size:13px}.profile-picture-choices label:focus-within{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:400px){.profile-picture-choices{grid-template-columns:1fr}.account-person{gap:14px}.account-row{gap:12px}}

.auth-page{min-height:100dvh;display:grid;place-items:center;padding:40px 24px;padding-top:max(40px,env(safe-area-inset-top));padding-bottom:max(40px,env(safe-area-inset-bottom))}
.auth-shell{width:100%;max-width:400px}
.auth-brand{display:block;width:fit-content;margin:0 auto 32px}
.auth-brand h1{font-size:30px;font-weight:750;letter-spacing:.04em;line-height:1.2}
.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:32px}
.auth-card h2{font-size:22px;letter-spacing:-.5px;margin-bottom:26px}
.auth-card .fine-print{margin:-5px 0 20px;line-height:1.6}
.auth-card .auth-switch{display:flex;justify-content:center;width:100%;text-align:center;color:var(--muted)}
.auth-card input{font-size:16px}
@media(max-width:430px){.auth-page{padding-left:20px;padding-right:20px}.auth-card{padding:26px 24px}.auth-brand{margin-bottom:28px}}

/* Shared visual rhythm across the trip screens. */
h1,h2,h3{letter-spacing:-.035em}
.button{min-height:46px;border-radius:12px;font-size:13px;transition:background .15s}
.button:hover{transform:none}
.text-button{min-height:44px;font-size:13px}
.card{border-radius:18px;box-shadow:0 2px 5px #21352c03}
.empty-icon{background:var(--soft);color:#526e5c;border-radius:12px}
.eyebrow{font-size:10px;letter-spacing:1px}
.sidebar{padding:30px 22px;background:var(--paper)}
.sidebar .brand{font-size:21px;gap:10px}
.sidebar .brand img{width:34px;height:34px}
.sidebar-label{margin:40px 14px 14px;color:var(--muted)}
.nav-item{font-size:14px;border-radius:12px;min-height:48px}
.nav-item.active{background:var(--soft)}
.profile{border-top:1px solid var(--line);padding-top:20px;padding-bottom:4px}
.profile small{font-size:12px}
.topbar{height:76px;border-bottom:1px solid var(--line);background:var(--paper)}
.desktop-breadcrumb{font-size:14px;font-weight:600;color:var(--ink)}
main#main{padding-top:32px;padding-bottom:40px}
.page-heading{margin-bottom:24px}
.page-heading h1{font-size:32px;font-weight:650}
.page-heading p{font-size:13px;line-height:1.5}
.hero{min-height:232px;border-radius:20px}
.hero-copy{padding:26px 30px}
.hero-pill{font-size:11px;letter-spacing:0;font-weight:500;padding:5px 10px;color:#e3ebd9}
.hero h2{font-size:40px;font-weight:600;margin:14px 0 8px}
.hero p{font-size:12px;color:#d1dccd;line-height:1.6}
.hero .button{font-size:12px;min-height:42px;margin-top:20px}
.hero-art{width:53%;right:-12px;opacity:.65}
.hero-stamp{transform:none;border-color:#ffffff30;color:#dbe5c8}
.hero-stamp>span{font-size:9px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-actions{gap:12px;margin:14px 0 28px}
.quick-actions button{min-height:64px;border-radius:14px;padding:14px 16px}
.quick-actions span{font-size:13px}
.quick-actions .icon{width:20px;height:20px}
.section-head{margin-bottom:10px}
.section-head h2{font-size:17px;font-weight:650}
.section-head .text-button{font-size:12px;color:#53685a}
.next-card{min-height:220px}
.next-card>p{font-size:13px;line-height:1.6}
.next-card .button{font-size:13px}
.next-time{font-variant-numeric:tabular-nums}
.next-time small{font-size:12px;line-height:1.5}
.essentials .eyebrow{font-size:10px;letter-spacing:.8px;color:var(--muted)}
.essentials a,.essentials .text-button{font-size:13px;min-height:44px}
.essentials p{font-size:12px;line-height:1.6}
.poll-empty h3{font-size:16px}
.poll-empty p{font-size:12px}
.poll-empty .text-button{min-height:44px;font-size:13px}
.poll-empty .peach{background:var(--soft)!important}
.poll-card h3{font-size:18px}
.poll-card .eyebrow{font-size:10px;color:var(--muted)}
.poll-option{min-height:48px;border-radius:12px;font-size:14px;padding:12px}
.poll-option b{font-size:12px}
.poll-option.selected{border-color:#91a999;background:var(--soft)}
.poll-voters{margin:0 12px 12px;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.poll-card>small{font-size:12px;line-height:1.5}
.album-empty{border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.album-empty .empty-icon{background:var(--soft)}
.album-empty b{font-size:14px}
.album-empty small{font-size:12px}
.day-tabs{gap:10px}
.day-tabs button{border-radius:14px}
.day-tabs button span,.day-tabs button small{font-size:12px}
.plan-card h2{font-size:20px}
.location-link,.plan-notes{font-size:13px;line-height:1.6}
.plan-card>.icon-button{min-width:40px;height:44px}
.large-empty h2{font-size:25px}
.large-empty p{font-size:14px;line-height:1.6}
.album-meta{font-size:13px}
.photo-card{border-radius:16px}
.photo-info b,.photo-info p{font-size:13px}
.photo-info small{font-size:11px}
.money-stats .eyebrow{font-size:10px;letter-spacing:.8px}
.money-stats strong{font-variant-numeric:tabular-nums;font-size:36px;font-weight:600;letter-spacing:-1.2px}
.money-stats p{font-size:12px;line-height:1.5}
.expense-row h3{font-size:14px}
.expense-row p,.expense-row .expense-people{font-size:12px;line-height:1.5}
.expense-row>b{font-size:14px;font-variant-numeric:tabular-nums}
.expense-row .icon-button{min-width:36px;width:36px;min-height:44px;color:var(--muted)}
.settlement{font-size:13px}
.fine-print{font-size:12px;line-height:1.6}
input,textarea,select{border-color:var(--line);background:var(--paper);border-radius:12px;min-height:48px}
input::placeholder,textarea::placeholder{font-size:14px;color:#748076}
form>label,form>.form-grid>label,dialog>label,.place-field>label{font-size:13px}
dialog{border-radius:22px;box-shadow:0 24px 80px #14261a24}
dialog::backdrop{background:#192b2459;backdrop-filter:blur(5px)}
.modal-heading h2{font-size:24px}
.auth-card{box-shadow:0 4px 24px #21352c04}
@media(max-width:760px){
  .topbar{height:68px;background:var(--bg);border-bottom:0}
  .mobile-brand{font-size:19px;letter-spacing:-.5px}
  .mobile-brand img{width:28px;height:28px}
  main#main{padding:20px 20px 32px}
  .page-heading h1{font-size:30px}
  .page-heading{margin-bottom:22px}
  .page-heading p{font-size:13px}
  .page-heading>.button{min-height:44px;width:44px;margin-top:0;border-radius:13px}
  .hero{min-height:224px}
  .hero-copy{padding:22px;max-width:100%}
  .hero h2{font-size:34px;margin:12px 0 7px}
  .hero-pill{font-size:10px}
  .hero p{font-size:11px;max-width:230px}
  .hero .button{margin-top:17px;min-height:40px}
  .hero-art{width:67%;height:63%;right:-64px;bottom:0;opacity:.45}
  .hero-stamp{width:60px;height:60px;right:18px;top:20px}
  .hero-stamp>span{font-size:8px}
  .quick-actions{gap:9px;margin:12px 0 24px}
  .quick-actions button{padding:13px 4px;min-height:76px;gap:9px}
  .quick-actions span{font-size:11px;font-weight:600}
  .card{padding:20px;margin-bottom:24px}
  .section-head{flex-wrap:wrap;column-gap:12px;row-gap:0}
  .next-card{min-height:210px}
  .next-card>p{margin:7px 0 16px}
  .essentials{gap:12px}
  .poll-empty{gap:14px}
  .money-stats{gap:12px;margin-top:24px}
  .money-stats .card{padding:18px 16px}
  .money-stats strong{font-size:30px}
  .expense-list{padding:0 16px}
  .expense-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px}
  .expense-row .empty-icon{display:none}
  .expense-row>b{font-size:13px}
  .mobile-nav{gap:4px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#ffffffed;border-top:1px solid var(--line)}
  .mobile-nav button{min-height:50px;border-radius:12px;gap:4px;color:var(--muted)}
  .mobile-nav button span{font-size:11px}
  .mobile-nav button.active{background:var(--soft);color:var(--green)}
  .mobile-nav button.active:before{display:none}
  .mobile-nav .icon{width:21px;height:21px}
  .main-wrap{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .trip-active .next-card>p{font-size:13px}
  .trip-banner p{font-size:11px}
}
@media(max-width:360px){.quick-actions span{font-size:10px}.hero-copy{padding:20px}.hero p{font-size:10px}}

.roster>div{display:flex;align-items:center;gap:12px}.roster .member-name{flex:1;min-width:0}.member-name b{display:block;overflow-wrap:anywhere}.member-name>small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.remove-member{min-width:44px;min-height:44px;color:#a54233}

.password-field{margin-bottom:17px}.password-field>label{display:block;margin-bottom:7px;font-size:13px;font-weight:600}.password-input{position:relative}.password-input input{padding-right:54px}.password-toggle{position:absolute;right:3px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9px;color:var(--muted)}.password-toggle:hover{background:var(--soft);color:var(--ink)}.password-toggle .icon{width:20px;height:20px}

/* Quiet feedback, with no animation on background refreshes. */
@keyframes panel-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
dialog[open]{animation:panel-enter .18s ease-out}
dialog[open]::backdrop{animation:backdrop-enter .18s ease-out}
.page-enter{animation:panel-enter .16s ease-out}
.nav-item,.mobile-nav button,.icon-button{transition:background-color .15s,color .15s}
.button:active:not(:disabled){transform:scale(.98)}
.button.save-complete{opacity:1;background:var(--green);color:white}
#toast.visible:has(button){pointer-events:auto}
#toast .text-button{color:inherit;margin-left:14px;min-height:44px;text-decoration:underline}
.album-meta{flex-wrap:wrap;gap:12px}
.album-meta>.text-button{margin-right:auto}
.photo-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 18px}
.photo-filters label{display:flex;flex:1 1 130px;min-width:0;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}
.photo-filters select{font-size:16px;background:var(--paper);text-overflow:ellipsis}
.photo-filters>.text-button{min-height:46px}

.photo-stage{height:min(45dvh,380px);background:var(--soft);border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none}
.photo-stage .full-photo{display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:0;border-radius:0;object-fit:contain;transform-origin:center;opacity:0}
.photo-stage.photo-ready .full-photo{opacity:1}
.photo-stage.photo-failed .full-photo{display:none}
.photo-stage.zoomed{cursor:grab}
.photo-stage.zoomed:active{cursor:grabbing}
.photo-load-error{position:absolute;padding:24px;text-align:center;color:var(--ink)}
.photo-load-error .text-button{color:var(--green);display:block;margin:auto}
.photo-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.photo-controls .icon-button{min-width:44px;height:44px;font-size:24px}
.photo-controls button:disabled{cursor:default;opacity:.3}
.previous-arrow{transform:rotate(180deg)}
.photo-counter{font-size:12px;font-variant-numeric:tabular-nums;min-width:42px;text-align:center}
.photo-browse,.photo-zoom-controls{display:flex;align-items:center;gap:4px}
.photo-zoom{justify-content:center;font-size:12px;font-variant-numeric:tabular-nums;min-width:44px;min-height:44px}
.photo-details{padding-top:14px}
.photo-caption{color:var(--ink);font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 6px}
.photo-caption:empty{display:none}
.photo-byline{font-size:12px}
.photo-details .form-buttons{margin-top:16px;align-items:center}
.photo-remove{color:#a54233;margin-right:auto}
.recap-intro{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;margin-bottom:12px}
.recap-progress{font-size:12px;margin-top:12px}
.recap-day{margin-top:28px}
.recap-day h3{font-size:15px;margin-bottom:12px}
.recap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.recap-grid button{padding:0;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--soft)}
.recap-grid img{display:block;width:100%;height:100%;object-fit:cover}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .button:hover,.button:active:not(:disabled){transform:none}
}

.notification-trigger{position:relative;flex-shrink:0}
.notification-count{position:absolute;right:0;top:0;min-width:16px;height:16px;padding:0 4px;line-height:16px;border-radius:9px;background:var(--green);color:#fff;font-size:10px;font-weight:650;border:1px solid var(--bg)}
.notification-settings{padding-bottom:20px;border-bottom:1px solid var(--line)}
.notification-settings .fine-print{margin-top:10px}
.notification-row{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}
.notification-row>span:nth-child(2){flex:1;overflow-wrap:anywhere}
.notification-row small{display:block;color:var(--muted);margin-top:5px;font-size:11px}
.notification-row.unread>span:nth-child(2){font-weight:650}
.notification-row>.icon{width:16px;color:var(--muted)}
.notification-empty{padding:24px 0;font-size:13px}
.upload-list{display:flex;flex-direction:column;gap:10px;margin:18px 0;max-height:36dvh;overflow:auto}
.upload-item{display:flex;align-items:center;gap:12px;padding:8px;background:var(--soft);border-radius:12px}
.upload-item img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.upload-item>div{flex:1;min-width:0;font-size:12px}
.upload-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-item small{display:block;color:var(--muted);margin-top:4px}
.upload-item .icon-button{font-size:24px;min-width:44px}
@media(max-width:760px){.top-actions{gap:6px}.notification-trigger{min-width:40px;width:40px}.top-actions .connection{max-width:56px}.location-badge{font-size:10px}}

@media(max-width:760px){.mobile-brand{min-width:0}.mobile-brand b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-brand img,.top-actions{flex-shrink:0}}

.upload-placeholder{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--line);color:var(--muted);flex-shrink:0}

.crawl-start{margin:-8px 0 22px;font-size:13px}
.crawl-card{padding:20px;margin-bottom:24px}
.crawl-card .section-head{margin-bottom:3px}
.crawl-meta,.crawl-toolbar>p{font-size:12px;color:var(--muted)}
.crawl-next{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:18px}
.crawl-next>div{min-width:0}.crawl-next .eyebrow{font-size:9px;color:var(--muted)}
.crawl-next h3{margin-top:5px;overflow-wrap:anywhere}
.crawl-next .button{flex-shrink:0;min-height:44px;padding:10px 12px}
.crawl-finished{margin-top:14px;font-size:13px}
.crawl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.crawl-stops{padding:0;margin:0;list-style:none}
.crawl-stops li{display:flex;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}
.crawl-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--soft);font-size:12px;font-weight:650}
.crawl-stops .next .crawl-number{background:var(--green);color:#fff}
.crawl-stops .visited .crawl-number{color:var(--muted)}
.crawl-number .icon{width:16px;height:16px}
.crawl-stop-content{flex:1;min-width:0}.crawl-stop-content h3{font-size:15px;overflow-wrap:anywhere}
.crawl-stop-content>p{font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-top:4px}
.crawl-stop-actions,.crawl-edit-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.crawl-edit-actions{justify-content:flex-start}.crawl-edit-actions .icon-button{font-size:22px;min-width:44px;height:44px}
.crawl-edit-actions .photo-remove{margin-left:auto;margin-right:0}
.crawl-footer{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px}
.crawl-footer .photo-remove{margin-left:auto;margin-right:0}
@media(max-width:360px){.crawl-next{align-items:flex-start;flex-direction:column}.crawl-toolbar{align-items:flex-start}}

.crawl-walk-leg{font-size:12px;color:var(--muted);margin-top:6px}.crawl-walk-total{font-size:12px;color:var(--green);margin-top:8px}.crawl-attribution{font-size:10px;color:var(--muted);margin-top:14px;line-height:1.6}.crawl-attribution a{text-decoration:underline}.crawl-edit-actions{flex-wrap:wrap}
.crawl-sort { margin: 0 0 16px; }
.crawl-tools { display: flex; flex-wrap: wrap; gap: 10px; }
.crawl-sort p { margin: 8px 0 0; font-size: .8rem; color: var(--muted); }
.crawl-map-sections { display: grid; gap: 12px; margin: 20px 0; }
.crawl-map-sections .button { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; text-align: left; }
.crawl-map-sections span { font-weight: 400; font-size: .8rem; overflow-wrap: anywhere; }

/* The crawl overview keeps the whole route and progress together. */
.crawl-overview{margin:16px 0 20px}
.crawl-overview-summary{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}
.crawl-overview-summary strong{display:block;font-size:14px;line-height:1.5;color:var(--green)}
.crawl-overview-summary span{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.crawl-overview progress{display:block;width:100%;height:5px;margin:16px 0;border:0;border-radius:5px;overflow:hidden;accent-color:var(--green);background:var(--soft)}
.crawl-overview progress::-webkit-progress-bar{background:var(--soft)}
.crawl-overview progress::-webkit-progress-value{background:var(--green)}
.crawl-overview progress::-moz-progress-bar{background:var(--green)}
.crawl-overview-map{height:240px;border:1px solid var(--line);border-radius:14px;background:var(--soft);z-index:0;overflow:hidden}
.crawl-map-status{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}.crawl-map-status:empty{display:none}
.crawl-pin{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;background:var(--paper);color:var(--green);border:2px solid var(--green);border-radius:50%;font:650 13px/1 system-ui;box-shadow:0 2px 6px #0003;cursor:pointer}
.crawl-pin.next{background:var(--green);color:white}.crawl-pin.visited{background:#e6eae3;border-color:#849180;color:#53614f}
.crawl-pin:focus-visible{outline:3px solid #96ac59;outline-offset:3px}

.crawl-start-label{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:6px;background:var(--soft);color:var(--green);font-size:11px;font-weight:600}

.crawl-timing{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px 16px;margin:12px 0 18px;border-radius:12px;background:var(--soft)}
.crawl-timing button{text-align:left;min-height:44px}.crawl-timing>div{align-self:center}
.crawl-timing small{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.crawl-timing strong{font-size:16px;color:var(--green);line-height:1.4}.crawl-timing .icon{width:13px;height:13px;margin-left:4px;vertical-align:middle}
.crawl-stop-content>.crawl-arrival{font-weight:600;color:var(--green);margin-top:8px}
[data-crawl-card-finish]:empty{display:none}

.crawl-timeline-card{padding:20px}.crawl-timeline-card>div{min-width:0;width:100%}.crawl-timeline-card .crawl-meta{margin-top:6px}.crawl-timeline-card .text-button{margin-top:8px}.crawl-timeline-card h2{overflow-wrap:anywhere}
@media(max-width:760px){.crawl-timeline-card{padding:17px}}

.crawl-conflicts:empty{display:none}.crawl-conflicts{display:grid;gap:8px;margin-top:12px}
.crawl-conflict{display:block;width:100%;padding:12px;text-align:left;border:1px solid #ead6ad;border-radius:10px;background:#fbf3e3;color:#78551e;overflow-wrap:anywhere}
.crawl-conflict b{display:block;font-size:12px;line-height:1.5}.crawl-conflict span{display:block;margin-top:4px;font-size:11px;line-height:1.5}
.crawl-conflict:hover{background:#f6ebd4}.crawl-conflict:focus-visible{outline:2px solid #a1752a;outline-offset:2px}

.notification-preferences summary{cursor:pointer;font-weight:650;min-height:38px}.notification-preferences{margin:16px 0}.notification-preferences .check-grid{margin:14px 0}.notification-preferences .preference-status{margin-top:8px}

.venue-photo{margin:12px 0}.venue-photo img{display:block;width:100%;max-height:170px;object-fit:cover;border-radius:10px}.venue-photo figcaption{font-size:10px;color:var(--muted);line-height:1.4;margin-top:5px;overflow-wrap:anywhere}.venue-photo figcaption a{text-decoration:underline}.venue-photo-actions{display:flex;gap:20px;margin-top:18px}.booking-files{margin-top:12px}.booking-files summary{cursor:pointer;font-size:13px;font-weight:650}.booking-file{padding:10px 0;border-bottom:1px solid var(--line)}.booking-file>a{display:block;text-decoration:underline;overflow-wrap:anywhere;font-size:13px}.booking-file>small{color:var(--muted)}.booking-file>div{display:flex;gap:16px}.booking-files>.text-button{margin-top:8px}.plan-card>div:first-child{min-width:0;flex:1}

.essentials>div{min-width:0;flex:1}
.essentials .venue-photo figcaption a{display:inline;font-size:inherit;font-weight:inherit;min-height:0;margin:0}
.venue-photo-slot>.text-button+.text-button{margin-left:16px}

.football-link{margin:12px 0 0;min-height:44px}
.football-match{padding:20px 0;border-bottom:1px solid var(--line)}
.football-match:last-child{border-bottom:0}
.football-match h3{font-size:17px;margin:0 0 8px}
.football-match p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 10px}
.football-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.football-actions .button{font-size:12px;padding:11px 13px}
.football-match .location-link{overflow-wrap:anywhere}

.football-teams{display:flex;flex-direction:column;gap:3px}
.football-team{display:flex;align-items:center;gap:12px;min-width:0}
.football-team img{width:36px;height:36px;object-fit:contain;flex:none}
.football-team>span{overflow-wrap:anywhere}
.football-versus{font-size:11px;font-weight:400;color:var(--muted);padding-left:48px}

.plan-football-logos{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.plan-football-logos img{width:36px;height:36px;object-fit:contain}
.plan-football-logos span{font-size:11px;color:var(--muted)}

.plan-participation{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}
.plan-participation .button{font-size:12px;padding:10px 12px;min-height:44px}
.plan-participation summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:12px}
.plan-participation p,.plan-participation small{font-size:11px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}
.crawl-required{font-size:12px;color:var(--muted);margin:6px 0 12px}
.crawl-card .section-head{flex-wrap:wrap}

/* Plan-only layout: a slim continuous rail and wide, readable cards. */
.timeline .timeline-row{display:block;position:relative;padding-left:20px;margin-bottom:24px}
.timeline .timeline-row:before{content:'';position:absolute;left:5px;top:13px;bottom:-37px;width:2px;background:#cbd7c3}
.timeline .timeline-row:last-child:before{bottom:20px}
.timeline .timeline-time{width:auto;padding:0;margin:0 0 10px;font-size:14px;line-height:24px;color:#385139;font-variant-numeric:tabular-nums}
.timeline .timeline-time:after{display:none}
.timeline .timeline-time span{display:block;left:-20px;right:auto;top:6px;width:12px;height:12px;border:3px solid var(--bg);background:#637f50;box-shadow:0 0 0 1px #b1c1a5}
.timeline .plan-card{margin:0;border:1px solid #d8e1d3;border-radius:14px;box-shadow:0 2px 6px #253f3505}
.timeline .plan-activity{display:block;width:100%;padding:18px}
.plan-activity .plan-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.plan-activity .plan-heading h2{flex:1;min-width:0;margin:0;font-size:20px;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}
.plan-activity .plan-heading .icon-button{flex:none;width:44px;min-width:44px;height:44px;margin:-8px -8px 0 0;color:#586e5b}
.plan-activity .location-link{display:flex;align-items:flex-start;gap:7px;font-size:13px;line-height:1.6;color:#4b654c}
.plan-activity .location-link span{min-width:0;overflow-wrap:anywhere}
.plan-activity .location-link .icon{flex:none;margin-top:3px}
.plan-activity .plan-location-empty{font-size:13px}
.plan-activity .plan-football-logos{margin:0 0 14px}
.plan-activity .plan-details{margin-top:8px}
.plan-activity .plan-details summary{min-height:44px;padding:12px 0;font-size:12px;font-weight:600;color:#4b604c;cursor:pointer}
.plan-activity .plan-details p{font-size:13px;line-height:1.7;margin:0 0 10px;overflow-wrap:anywhere;white-space:pre-wrap}
.plan-activity .booking-files{margin:0 0 12px}
.plan-activity .booking-files summary{min-height:44px;padding:12px 0;font-size:12px;color:#4b604c}
.plan-activity .plan-participation{margin:12px -18px -18px;padding:16px 18px;background:#f4f7f1;border-top:1px solid #e2e8dd;border-radius:0 0 14px 14px}
.plan-activity .plan-participation>.button{display:flex;justify-content:center;width:100%;min-height:44px;border:1px solid #c1cfb9;background:white;font-size:13px}
.plan-activity .plan-participation>.button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:white}
.plan-activity .plan-participation summary{padding:12px 0 0;font-size:12px;line-height:1.6;min-height:32px}
.plan-activity .plan-participation small{display:block;margin-top:6px}
.timeline .crawl-required{display:inline-block;background:#eef3e8;border-radius:6px;padding:5px 8px;color:#46613d;font-size:12px}
@media(max-width:380px){.timeline .timeline-row{padding-left:16px}.timeline .timeline-time span{left:-16px}}

.timeline-options{display:grid;gap:12px;min-width:0}
.timeline .timeline-time small{font-size:12px;font-weight:400;color:var(--muted)}
.plan-participation .plan-warning{padding:10px 12px;margin:0 0 12px;border-left:3px solid #c6a66b;background:#faf3e6;border-radius:4px;font-size:12px;line-height:1.6;color:#6e5429}
.next-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:14px 0;text-align:left;border-top:1px solid var(--line)}
.next-option b{font-size:14px;overflow-wrap:anywhere}
.next-option span{font-size:12px;color:var(--muted)}
.next-options .next-option{grid-column:1 / -1}

.timeline .plan-options-card{margin:0;padding:6px;border:1px solid #d8e1d3;border-radius:14px;overflow:hidden}
.plan-option-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 10px;min-height:72px;text-align:left;border-radius:9px}
.plan-option-row+.plan-option-row{border-top:1px solid var(--line)}
.plan-option-row.confirmed{background:#edf3e6}
.plan-option-row .option-symbol{display:flex;align-items:center;justify-content:center;flex:none;width:48px;gap:2px;color:#637752}
.option-symbol img{width:23px;height:26px;object-fit:contain}
.option-copy{flex:1;min-width:0}
.option-copy b{display:block;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.option-copy small{display:block;margin-top:4px;font-size:11px;color:#60715f;line-height:1.5}
.plan-option-row>.icon{width:16px;height:16px;flex:none;color:#557245}
#modal .plan-activity{display:block;margin:16px 0 0;padding:0;border:0;background:none}
#modal .plan-activity .plan-participation{margin:16px 0 0;border-radius:10px;padding:14px}
#modal .plan-heading h2{font-size:20px}

.crawl-required-badge,.crawl-card>.crawl-required{display:inline-block;width:fit-content;max-width:100%;padding:4px 7px;border:1px solid #c8dac1;border-radius:6px;background:#edf5e8;color:#38602d;font-size:11px;font-weight:600;line-height:1.4}
.option-copy .crawl-required-badge{margin-top:6px}
.next-option .crawl-required-badge{color:#38602d;font-size:11px}

/* Today and Plan: keep the next action close and secondary details compact. */
.home-content .hero{min-height:210px}
.home-content .hero-copy{padding:24px}
.home-content .hero h2{margin:12px 0 8px}
.home-content .hero .button{margin-top:16px}
.home-content .quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 24px}
.home-content .quick-actions button{min-height:52px;padding:10px 12px;gap:8px}
.home-content .quick-actions .icon:last-child{display:none}
.home-content .next-card,.trip-active>.next-section .next-card{display:flex;align-items:stretch;min-height:0;padding:22px;gap:0}
.home-content .next-time,.trip-active .next-time{align-self:flex-start;text-align:left;margin:0 0 12px;font-size:32px}
.home-content .next-card h3{margin:0;font-size:23px}
.home-content .next-card>p{margin:8px 0 0}
.home-content .next-card .next-attendance{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.next-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}
.home-content .next-actions .button{width:auto;min-width:0;min-height:46px;margin-top:0;padding:12px 10px}
.next-actions .button:only-child{grid-column:1 / -1}
.home-content .next-card>.venue-photo-slot{width:100%;margin-top:4px}
.home-content .next-card>.venue-photo-slot:empty{display:none}
.home-content .next-card>.button{margin-top:16px}
.decision-prompt{display:flex;align-items:center;gap:10px;width:100%;padding:12px 0;min-height:48px;text-align:left;border-bottom:1px solid var(--line)}
.decision-prompt span{flex:1;font-size:13px;font-weight:600}
.poll-section{scroll-margin-top:20px}
.poll-section>.poll-empty{display:block;padding:0 0 20px;font-size:13px;line-height:1.6}
.home-content .essentials{padding:18px;gap:12px}
.home-content .album-empty{padding:16px;gap:12px}
.trip-finished .home-columns{grid-template-areas:"essentials poll"}
.trip-wrap-up{padding:24px;margin-top:16px}
.trip-wrap-up h2{font-size:26px;margin:10px 0}
.trip-wrap-up p{max-width:48ch;font-size:14px;line-height:1.6}
.wrap-up-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.day-tabs{gap:8px;margin:12px 0 20px;padding:0 0 16px}
.day-tabs button{min-width:64px;min-height:72px;padding:8px 14px;border-radius:12px;gap:0}
.day-tabs button span,.day-tabs button small{font-size:11px;line-height:1.3}
.day-tabs button b{font-size:23px;line-height:1.2}
.plan-day{min-height:45dvh;touch-action:pan-y pinch-zoom;overflow:clip}
.plan-day-enter-next>*{animation:plan-day-next .22s cubic-bezier(.2,.7,.2,1)}
.plan-day-enter-previous>*{animation:plan-day-previous .22s cubic-bezier(.2,.7,.2,1)}
@keyframes plan-day-next{from{opacity:.4;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}
@keyframes plan-day-previous{from{opacity:.4;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
.timeline .timeline-row{margin-bottom:20px}
.timeline .timeline-row:before{bottom:-33px}
.option-copy .option-place{display:block;margin-top:4px;font-size:12px;font-weight:400;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.plan-add-options{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.plan-add-options:empty{display:none}
.plan-add-options .text-button{min-height:44px}
@media(max-width:760px){
  .home-content .hero{min-height:194px}
  .home-content .hero-copy{padding:20px}
  .home-content .hero-art{width:48%;opacity:.6}
  .home-content .hero-stamp{right:16px;top:16px}
  .home-content .next-card,.trip-active>.next-section .next-card{padding:20px}
  .home-content .quick-actions button{flex-direction:row;justify-content:center;min-height:56px;padding:10px 8px;gap:6px}
  .home-content .quick-actions span{flex:0 1 auto;font-size:12px;line-height:1.3;white-space:normal}
  .home-content .quick-actions .icon{width:17px;height:17px}
  .home-content .quick-actions .icon:last-child{display:none}
  .trip-finished .home-columns{grid-template-areas:"essentials" "poll"}
  .trip-wrap-up{padding:20px}
}
.plan-comments{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}
.plan-comments h3{display:flex;align-items:center;gap:8px}.plan-comments h3 span{font-size:12px;color:var(--muted);font-weight:400}
.plan-comment-list{list-style:none;margin:12px 0 18px;padding:0}.plan-comment-list>li{padding:10px 0;border-bottom:1px solid var(--line)}
.plan-comment-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plan-comment-heading b{font-size:12px;overflow-wrap:anywhere}.plan-comment-heading time{font-size:10px;color:var(--muted)}
.plan-comment-heading .icon-button{margin-left:auto;width:36px;height:36px;min-width:36px}.plan-comment-heading .icon{width:15px;height:15px}
.plan-comment-list p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);font-size:13px;line-height:1.6}
#plan-comment-form textarea{min-height:74px;resize:vertical}#plan-comment-form .button{margin-top:8px}
.person-label{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;font-size:12px;line-height:1.4;color:var(--muted)}
.person-label .avatar,.people-faces .avatar{width:24px;height:24px;font-size:9px;letter-spacing:0}
.person-name{min-width:0;overflow-wrap:anywhere}
.people-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.poll-voters{margin-top:7px}.people-list{margin-top:8px}
.people-faces{display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;padding-left:4px}
.people-faces .avatar{margin-left:-4px;border:2px solid var(--paper)}.people-more{margin-left:4px;font-size:10px;color:var(--muted)}
.plan-comment-heading .person-label{flex:1;font-weight:650;color:var(--ink)}.plan-comment-heading .avatar{width:28px;height:28px;font-size:10px}
.next-attendance{font-size:12px;color:var(--muted)}

.people-disclosure>summary{cursor:pointer;min-height:44px;align-content:center;font-size:12px;line-height:1.6}
.people-disclosure .people-list{margin-top:4px;margin-bottom:10px}
