:root{--ink:#351b09;--muted:#795632;--gold:#b67c29;--red:#bb0d28;--blue:#0679b2;--paper:#fff0c9;--hour:58px;font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:#0878b7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:linear-gradient(#038ad1,#075489);min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button,a,input,select,textarea,summary{outline-offset:3px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #087cad}input:focus,textarea:focus,select:focus{outline:2px solid #087cad}button{min-height:38px;border:1px solid #b98c4a;border-radius:3px;padding:8px 15px;background:linear-gradient(100deg,#fff4d5,#f7dca3);font-weight:bold;box-shadow:inset 0 0 0 2px #fff1ca88;transition:filter .15s,transform .15s}button:hover{filter:brightness(1.07);transform:translateY(-1px)}button:active{transform:translateY(1px)}button.primary,button.blue,.nav-btn.active{color:white;border:2px solid #7e1120;background:linear-gradient(135deg,#d21b36,#aa0620 70%,#d12335);box-shadow:inset 0 0 0 1px #f97c5180,0 3px 3px #74361b33;clip-path:polygon(1% 0,97% 0,99% 10%,98% 29%,100% 36%,99% 61%,100% 79%,97% 98%,3% 100%,1% 88%,2% 67%,0 53%,1% 28%,0 12%)}button.blue{background:linear-gradient(135deg,#048ccd,#006797);border-color:#034e78}button.active:not(.nav-btn){background:#087eb5;color:#fff;border-color:#056594}.hidden,[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3,p{margin-top:0}a{color:#006999}.muted,.section-caption{color:var(--muted)}.small{font-size:13px}.app-shell{width:100%;max-width:1680px;margin:auto;filter:drop-shadow(0 15px 40px #001e4477)}.masthead{position:relative;aspect-ratio:1586/268;background:url('assets/hero-approved.webp') top center/100% auto no-repeat}.navigation-deck{position:absolute;left:21%;right:15%;top:69%;height:26%;display:flex;align-items:center;gap:25px}.navigation-deck nav{display:flex;flex:1;gap:8px;height:80%}.nav-btn{background:none;border:0;box-shadow:none;padding:4px 10px;flex:1;white-space:nowrap;font-size:clamp(15px,1.65vw,26px)}.nav-btn span{font-size:1.35em;vertical-align:middle;margin-right:6px}.nav-btn.active{border-width:1px}.crew-button{padding:0;border:0;background:none;box-shadow:none;flex:none;min-height:0}.crew-button:hover{filter:brightness(1.04);transform:none}#header-crew{display:flex;gap:1px}#header-crew .avatar{width:clamp(30px,4.5vw,72px);height:auto;aspect-ratio:1/1}.art-crop{position:relative;display:block;overflow:hidden;isolation:isolate;aspect-ratio:var(--crop-ratio)}.art-crop img{position:absolute;max-width:none;pointer-events:none;user-select:none}.avatar{width:34px;height:34px;border-radius:50%;flex:none}.main-frame{border-style:solid;border-width:0 clamp(15px,4.4vw,70px) clamp(30px,4vw,65px);border-image-source:url('assets/hero-approved.webp');border-image-slice:270 70 65 fill;border-image-repeat:stretch;min-height:calc(100vh - 17vw);margin-top:-1px}.main-content{padding:12px 12px 0;min-width:0}.page{display:none}.page.active{display:block}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 12px}.toolbar h2{font-size:clamp(34px,3.6vw,57px);line-height:1;margin:0;text-transform:uppercase;font-weight:900;letter-spacing:-2px;position:relative}.toolbar h2:after{content:'';position:absolute;background:#bf162a;height:4px;width:50%;bottom:-6px;left:2px;transform:rotate(-3deg);clip-path:polygon(0 25%,100% 0,90% 60%,0 100%)}.event-toolbar{min-height:75px}.event-toolbar input{min-width:120px;flex:1;max-width:370px}.toolbar .primary{font-size:20px;white-space:nowrap;padding:10px 20px}.status-filters{display:flex;gap:5px}.status-filters button{font-size:13px;padding:8px 12px;min-height:38px}.secondary-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;font-family:Arial,sans-serif;font-size:11px;color:#7d5d36}.more-tools{position:relative;z-index:5;flex:none}.more-tools summary{cursor:pointer;padding:4px;font-weight:bold}.more-tools-body{position:absolute;right:0;top:25px;width:245px;padding:15px;background:#ffefc6;border:2px solid #b48335;box-shadow:0 12px 25px #613e2855;display:grid;gap:9px}input,select,textarea{background:#fff6dd;border:1px solid #c49a5e;border-radius:3px;padding:10px 12px;font-family:Arial,sans-serif;font-size:14px;max-width:100%}input::placeholder{color:#7c644b}select{cursor:pointer}textarea{resize:vertical}.event-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:start}.framed{border:16px solid transparent;border-image:url('assets/panel-frame.webp') 85 fill stretch;filter:drop-shadow(0 3px 2px #76481925);min-width:0}.event-card{padding:4px 7px 3px;position:relative;min-width:0;transition:transform .18s;overflow-wrap:anywhere}.event-card:hover{transform:translateY(-3px)}.event-card.dragging-card{opacity:.5}.event-card.drag-target{outline:3px solid #0089c0}.event-scene{position:relative;margin-bottom:8px}.scene{width:100%;border-radius:2px}.event-scene>.scene{aspect-ratio:2.6/1;clip-path:polygon(0 1%,97% 0,100% 5%,99% 30%,100% 60%,99% 100%,64% 99%,35% 100%,1% 99%)}.status-ribbon{position:absolute;z-index:1;top:-2px;left:-4px;padding:5px 11px;background:#ffd83e;color:#382000;font-weight:900;font-size:13px;text-transform:uppercase;box-shadow:0 2px 3px #5f391666;transform:rotate(-3deg);clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,3% 50%)}.status-ribbon.selected{background:#399423;color:white}.status-ribbon.scheduled{background:#007eaf;color:white}.drag-handle{position:absolute;right:4px;bottom:3px;color:white;background:#593609bb;cursor:grab;border-radius:3px;padding:0 4px;font-size:24px;line-height:1.1}.event-card h3{font-size:clamp(21px,2.0vw,31px);line-height:1.05;text-transform:uppercase;letter-spacing:-.5px;margin:8px 0}.event-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;font-size:13px;font-weight:bold;margin-bottom:7px}.event-description{font-size:16px;line-height:1.25;min-height:40px;margin:0 0 12px}.ratings-heading{display:flex;align-items:center;justify-content:space-between;font-family:Arial,sans-serif;font-size:13px;margin-bottom:3px}.ratings-heading small{color:#84603a}.rating-row{display:flex;align-items:center;gap:10px;margin:4px 0;font-family:Arial,sans-serif;font-size:13px;min-width:0}.rating-row>span:not(.avatar){flex:1;font-weight:600;min-width:0}.rating-options{display:flex;gap:10px;margin-right:18px}.rating{border-radius:50%;width:29px;height:29px;min-height:29px;padding:0;font:20px Georgia,serif;color:#8c6635;background:#f9e5b7;border:1px solid #caab75;box-shadow:inset 0 0 0 1px #fff7d9}.rating.chosen{background:radial-gradient(#fff04a,#ffdd26);color:#231500;border-color:#d27d16;box-shadow:0 0 0 1px #fff8c6;font-weight:bold}.event-actions-row{display:flex;gap:12px;margin-top:14px}.event-actions-row button{flex:1;font-size:16px;min-height:42px}.event-details{margin-top:10px;border-top:1px solid #d2b57b;padding-top:7px;color:#76512a;font-size:12px;font-family:Arial,sans-serif}.event-details summary{cursor:pointer}.event-details-body{padding:12px 0;font-size:14px}.event-details-body button{margin-top:8px}.expense-line{display:flex;justify-content:space-between;gap:8px;margin:6px 0}.blockout-card{min-height:240px;padding-top:35px}.blockout-card .status-ribbon{top:0}.empty{text-align:center;padding:25px;color:#795832;line-height:1.5}.app-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 6px 0;color:#684719;font-size:12px;font-style:italic}.sync-status{font-size:11px;font-family:Arial,sans-serif;font-style:normal}.sync-status.error{color:#a4152c}.sync-status.online{color:#24603a}
/* Schedule */
.schedule-toolbar{flex-wrap:wrap;min-height:75px}.day-controls{display:flex;gap:3px;align-items:center}.day-controls button{padding:8px 10px}.day-controls select{width:175px;text-align:center;font-family:Georgia,serif;font-weight:bold}.schedule-view-toggle{display:flex}.schedule-view-toggle button{border-radius:0;min-width:64px}.week-nav-controls{display:flex;gap:8px;justify-content:flex-end;margin:10px 0}.section-caption{font-size:13px;margin:4px 0}.schedule-help{font:12px Arial,sans-serif;color:#795b36;margin:0 0 12px}.schedule-shell{display:grid;grid-template-columns:27% minmax(0,1fr);gap:12px;align-items:start}.unscheduled-panel{padding:9px 5px;min-height:530px}.unscheduled-panel h3{font-size:23px;margin:0 0 15px;line-height:1.15}.unscheduled-item{display:grid;grid-template-columns:34% minmax(0,1fr);gap:10px;border:1px solid #c59c5c;padding:9px;margin-bottom:12px;background:#fff2d0;cursor:grab}.queue-scene{height:120px;aspect-ratio:auto}.queue-scene{background:#eac48d}.unscheduled-item strong{font-size:19px}.unscheduled-item p{font-size:12px;margin:6px 0}.unscheduled-item button{padding:6px 12px;min-height:34px}.timeline-panel{padding:4px 0 6px}.timeline-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 4px 12px}.timeline-caption strong{font-size:20px}.timeline-caption span{font-size:12px;max-width:270px}.calendar-scroll{height:510px;overflow:auto;scrollbar-color:#bb9553 #f9eac6;scrollbar-width:thin}.calendar{display:grid;grid-template-columns:64px repeat(var(--days),minmax(95px,1fr));min-width:100%;position:relative}.calendar.day-calendar{grid-template-columns:64px minmax(0,1fr)}.calendar-header{position:sticky;top:0;z-index:5;background:#efd6a0;text-align:center;font-size:12px;padding:8px 2px;border-right:1px solid #d6b87e;border-bottom:1px solid #c49b55;min-height:48px}.calendar-header strong,.calendar-header span{display:block}.day-calendar>.calendar-header{display:none}.time-col,.day-col{position:relative;height:1102px}.day-col{border-right:1px solid #d8bd89}.time-col{border-right:1px solid #d8bd89}.time-label{position:absolute;right:9px;font-size:12px;line-height:1.2;padding-top:1px}.hour-line{position:absolute;left:0;right:0;height:1px;border-top:1px dashed #d8bc83}.calendar-event{position:absolute;z-index:2;overflow:hidden;padding:8px 12px 6px 26px;border:2px solid #0385c6;border-radius:5px;background:linear-gradient(90deg,#c4e8fa,#acd9f2);color:#251c0c;box-shadow:0 3px 5px #91703c25;cursor:pointer;isolation:isolate}.calendar-event strong{position:relative;z-index:2;display:block;font-size:18px;text-shadow:0 1px #fff}.event-time{position:relative;z-index:2;display:block;font-size:12px;margin-top:6px;font-family:Arial,sans-serif;font-weight:600}.calendar-scene{position:absolute;right:0;top:0;width:40%;height:100%;opacity:.48;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000 30%)}.calendar-event.interest-solid{background:#d9ebb3;border-color:#5b9a32}.calendar-event.interest-favorite{background:#ffe1b5;border-color:#c38b30}.calendar-event.interest-legendary{background:#f6c6bb;border-color:#c33336}.calendar-event.blockout{background:#e6d0ee;border-color:#96729e}.calendar-event:hover{filter:brightness(1.05);z-index:4}.move-handle{position:absolute;left:5px;top:40%;font-size:22px;cursor:grab;touch-action:none}.drag-over{background:#72cbdf44}.trip-day-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.trip-day-card{background:#ffefc5;border:2px solid #c5984d;padding:12px;min-height:200px}.trip-day-card header{display:flex;justify-content:space-between;border-bottom:1px solid #d9b678;padding-bottom:8px}.trip-weekday{display:block;font-size:11px;color:#8c663b}.trip-day-number{color:#9b742e}.trip-day-events{display:grid;gap:7px;margin-top:10px}.trip-event-chip,.trip-queue-chip{text-align:left;width:100%;background:#d4eafa;border-color:#70a8c7;padding:8px}.trip-event-chip span,.trip-queue-chip span{display:block;font-size:11px}.trip-event-chip strong{display:block;margin:3px 0}.trip-free-day{font-size:13px;display:grid;gap:5px;text-align:center;color:#896d42;padding:18px 0}.trip-overview-hero{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.trip-overview-hero h3{font-size:28px;margin:5px 0}.trip-overview-hero p{font-size:14px}.trip-overview-hero img{width:70px;height:85px;object-fit:contain}.trip-section-kicker{font-size:11px;letter-spacing:2px}.trip-unscheduled{margin-top:20px}.trip-unscheduled-list{display:flex;gap:10px}.trip-unscheduled-list>*{flex:1}
/* Budget: each illustrated card has its own sprite region. */
.budget-toolbar{margin:0;height:0}.budget-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:8px 0 16px}.summary-card{position:relative;aspect-ratio:1.44;background-image:url('assets/event-card-standard.webp');background-size:400% 100%;background-position:var(--metric-position) 0;background-repeat:no-repeat;min-width:0}.metric-value{position:absolute;left:12%;right:9%;top:61%;bottom:12%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffecc2}.metric-value strong{font:bold clamp(20px,2.7vw,43px) Georgia,serif;letter-spacing:-1px}.metric-value small{font:clamp(9px,.9vw,14px) Arial,sans-serif;white-space:nowrap;color:#65421c;margin-top:5px}.budget-tabbar{display:flex;gap:30px;align-items:center;margin-bottom:12px}.budget-tabs{display:flex;gap:12px;flex:1}.budget-tabs button{flex:1;font-size:19px}.budget-tabbar>.primary{font-size:21px;padding:10px 22px}.budget-panel{padding:2px 12px 10px;margin-bottom:16px}.budget-panel h3{font-size:30px;margin:0 0 12px}.budget-panel h3 small{float:right;font-size:13px;font-weight:normal;font-style:italic;margin-top:8px}.expense-table-head,.expense-table-row{display:grid;grid-template-columns:2fr 1.3fr 1.3fr .8fr 48px;gap:14px;align-items:center;padding:10px 14px;border:1px solid #d6b77e;border-top:0;font:14px Arial,sans-serif}.expense-table-head{background:#efd7a9;border-top:1px solid #d6b77e;font-weight:bold}.expense-name,.payer{display:flex;gap:15px;align-items:center}.expense-name strong{font:bold 18px Georgia,serif}.expense-thumb{width:105px;flex:none;aspect-ratio:1.8}.expense-amount{font:bold 26px Georgia,serif;text-align:right}.split-label{font-weight:bold}.expense-table-row>button{font-size:22px;padding:3px;min-height:33px}.settlement-row{display:grid;grid-template-columns:1fr 50px 1fr 120px;align-items:center;gap:12px;border-bottom:1px solid #d7ba87;padding:7px 14px}.settlement-row>span{display:flex;align-items:center;gap:15px;font:14px Arial,sans-serif}.settlement-row>strong{text-align:right;font-size:24px}.cost-row{display:flex;align-items:center;gap:16px;padding:9px;border-bottom:1px solid #d7ba87}.cost-row>strong{flex:1}.cost-row>span:last-child{font-size:24px}.balance-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:10px;padding:12px;border-bottom:1px solid #d7ba87;font:14px Arial,sans-serif}.balance-head{background:#efd7a9;font-weight:bold}.net-positive{color:#28653d}.net-negative{color:#a2172d}
/* Forms */
dialog{width:min(650px,calc(100% - 24px));max-height:90dvh;padding:20px 24px;border:20px solid transparent;border-image:url('assets/panel-frame.webp') 85 fill stretch;background:transparent;color:var(--ink);filter:drop-shadow(0 18px 35px #001c45aa);overflow:auto}dialog::backdrop{background:#00243ac2;backdrop-filter:blur(4px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #caa462;margin-bottom:16px;padding-bottom:10px}.dialog-header h2{font-size:31px;margin:0}.dialog-header button{font:30px Georgia;border:0;background:none;box-shadow:none;padding:0 8px;min-height:30px}form>label,.form-grid>label{display:flex;flex-direction:column;gap:6px;font:600 13px Arial,sans-serif;margin-bottom:13px}form input,form select,form textarea{width:100%;min-height:42px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field-hint{font:11px/1.4 Arial,sans-serif;color:#80623e}.event-form-note{font:12px/1.5 Arial,sans-serif;padding:12px;background:#eed8ac;margin:3px 0 15px}.dialog-actions{display:flex;gap:10px;align-items:center;border-top:1px solid #caa462;padding-top:13px}.spacer{flex:1}.danger{color:#a6112e}.split-fieldset{border:1px solid #c9a46a;margin:0 0 16px;padding:12px}.split-fieldset legend{font-weight:bold}.split-people{display:grid;grid-template-columns:1fr 1fr;gap:10px}.split-person{display:flex;align-items:center;gap:8px;font:14px Arial,sans-serif}.split-person input{width:20px;height:20px;min-height:0;accent-color:#087db2}.voter-name-inputs{display:grid;gap:12px}.crew-name-row{display:flex;align-items:center;gap:14px}.crew-name-row input{flex:1}.crew-name-row .avatar{width:45px;height:45px}#crew-dialog>p{font:13px/1.5 Arial,sans-serif;margin:12px 0}.app-toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);z-index:1000;max-width:90%;padding:13px 22px;background:#3f2914;color:#fff2d0;border:1px solid #d6a64d;box-shadow:0 5px 18px #0004;font:14px Arial,sans-serif;opacity:0;pointer-events:none;transition:.2s}.app-toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1680px){.main-frame{min-height:calc(100vh - 283px)}}
@media(max-width:1150px){.navigation-deck{gap:8px}.event-toolbar{flex-wrap:wrap;gap:12px}.event-toolbar h2{flex:1}.event-toolbar input{order:3;max-width:none;flex-basis:40%}.status-filters{order:4}.event-list{gap:8px}.event-card{padding:2px}.framed{border-width:12px}.rating-options{gap:5px;margin-right:0}.rating-row{gap:5px}.event-meta{font-size:11px}.event-description{font-size:14px}.event-card h3{font-size:24px}.rating-row>span:not(.avatar){font-size:12px}.event-actions-row{gap:6px}.event-actions-row button{padding:8px;font-size:14px}.budget-panel{padding:4px}.expense-table-head,.expense-table-row{gap:8px;padding:10px 5px}.expense-thumb{width:65px}.expense-amount{font-size:23px}.timeline-caption span{display:none}.unscheduled-panel h3{font-size:19px}.unscheduled-item{display:block}.queue-scene{height:auto;aspect-ratio:2.6;margin-bottom:7px}.trip-day-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.event-list{grid-template-columns:repeat(2,minmax(0,1fr))}.navigation-deck{left:20%;right:14%}.crew-button{display:none}.nav-btn{font-size:18px}.main-frame{border-left-width:22px;border-right-width:22px}.main-content{padding:12px 2px}.budget-tabs button{font-size:15px}.budget-tabbar{gap:10px}.budget-tabbar>.primary{font-size:15px;padding:8px 12px}.schedule-shell{grid-template-columns:1fr}.unscheduled-panel{min-height:0;order:2}.unscheduled-item{display:grid;grid-template-columns:100px 1fr}.unscheduled-panel h3{font-size:22px}.calendar-scroll{height:500px}.timeline-caption span{display:block;max-width:160px}.timeline-panel{order:1}.trip-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{aspect-ratio:1.1}.metric-value strong{font-size:24px}.metric-value small{font-size:9px}}
@media(max-width:600px){.app-shell{overflow:hidden}.masthead{height:145px;aspect-ratio:auto;background-size:180% auto;background-position:center top}.navigation-deck{position:static}.navigation-deck nav{position:fixed;left:0;right:0;bottom:0;height:auto;z-index:90;display:flex;gap:5px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:linear-gradient(#ffeec4,#e3bc70);border-top:4px ridge #b1853a;box-shadow:0 -5px 14px #51351944}.nav-btn{font-size:18px;padding:6px 8px;min-height:46px}.nav-btn span{display:block;font-size:22px;line-height:1;margin:0 0 3px}.crew-button{display:block;position:absolute;right:15px;top:118px;background:#ffebbd;border:1px solid #b9883c;border-radius:15px;padding:2px 6px;z-index:6}#header-crew{gap:0}#header-crew .avatar{width:24px;height:24px}.main-frame{border-width:0 13px 36px;min-height:calc(100vh - 145px);margin-bottom:78px}.main-content{padding:10px 6px 0}.event-toolbar{gap:10px;margin:5px 0 10px}.toolbar h2{font-size:37px;text-transform:none;letter-spacing:-1px}.toolbar h2:after{height:3px}.toolbar .primary{font-size:17px;padding:8px 13px}.event-toolbar input{order:3;flex-basis:100%;font-size:13px;padding:9px}.status-filters{order:4;width:100%;justify-content:space-between;gap:3px}.status-filters button{font-size:12px;flex:1;min-height:34px;padding:6px 4px}.secondary-toolbar{font-size:10px;margin-bottom:10px}.secondary-toolbar>span{max-width:220px}.event-list{grid-template-columns:minmax(0,1fr);gap:18px}.framed{border-width:13px}.event-card{padding:3px 3px 4px}.event-card h3{font-size:27px;margin:9px 0}.event-meta{font-size:12px;gap:6px}.event-description{font-size:15px;min-height:0;margin-bottom:12px}.rating-row{gap:9px;margin:6px 0}.rating-row>.avatar{width:33px;height:33px}.rating-row>span:not(.avatar){font-size:13px}.rating-options{gap:12px;margin-right:10px}.rating{width:32px;height:30px;min-height:30px;font-size:19px}.ratings-heading{font-size:13px}.event-actions-row button{font-size:16px;min-height:41px}.event-details{font-size:11px}.app-footer{font-size:10px;flex-direction:column;gap:5px;margin-top:16px}.sync-status{font-size:10px}.schedule-toolbar{gap:10px}.schedule-toolbar h2{width:100%;margin:3px 0 8px}.day-controls{width:100%;justify-content:center}.day-controls select{flex:1;max-width:240px;min-height:40px}.schedule-view-toggle{flex:1}.schedule-view-toggle button{min-width:0;flex:1;font-size:13px;padding:8px}.schedule-toolbar>.primary{font-size:13px;padding:8px 10px}.schedule-help{font-size:11px;line-height:1.4}.timeline-caption strong{font-size:16px}.timeline-caption span{font-size:9px;max-width:90px}.calendar{grid-template-columns:48px repeat(var(--days),minmax(95px,1fr))}.calendar.day-calendar{grid-template-columns:45px minmax(0,1fr)}.time-label{font-size:10px;right:4px}.calendar-event{padding:5px 5px 5px 17px;border-width:1px}.calendar-event strong{font-size:14px}.event-time{font-size:10px;line-height:1.4;margin-top:3px}.calendar-scene{width:35%;opacity:.25}.move-handle{left:2px;font-size:19px}.timeline-panel{padding:0}.calendar-scroll{height:450px}.unscheduled-item strong{font-size:20px}.trip-day-grid{grid-template-columns:1fr}.trip-overview-hero h3{font-size:22px}.trip-overview-hero p{font-size:12px}.trip-unscheduled-list{flex-direction:column}.budget-summary-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:8px}.summary-card{aspect-ratio:1.05}.metric-value{left:13%;right:9%;top:62%;bottom:13%}.metric-value strong{font-size:24px;letter-spacing:-.5px}.metric-value small{font-size:8px;margin-top:2px}.budget-tabbar{flex-wrap:wrap;gap:10px}.budget-tabs{width:100%;flex:auto;gap:5px}.budget-tabs button{font-size:14px;padding:9px 3px}.budget-tabbar>.primary{margin-left:auto;min-height:40px;font-size:17px}.budget-panel{padding:2px 1px 5px;margin-bottom:12px}.budget-panel h3{font-size:24px;margin:0 0 12px}.budget-panel h3 small{display:none}.expense-table-head{display:none}.expense-table-row{grid-template-columns:1fr auto;gap:8px;padding:12px 2px;border:0;border-top:1px solid #d4b078}.expense-name{grid-column:1;gap:9px}.expense-name strong{font-size:17px}.expense-thumb{width:61px}.payer{grid-row:2;grid-column:1;gap:6px;font-size:12px}.payer .avatar{width:23px;height:23px}.expense-amount{grid-row:1;grid-column:2;font-size:24px}.split-label{grid-row:3;grid-column:1;font-size:11px}.expense-table-row>button{grid-row:2/4;grid-column:2;width:40px;justify-self:end}.settlement-row{grid-template-columns:1fr 17px 1fr auto;padding:9px 1px;gap:6px}.settlement-row>span{gap:5px;font-size:11px}.settlement-row .avatar{width:23px;height:23px}.settlement-row>strong{font-size:18px}.balance-row{gap:4px;font-size:11px;padding:10px 3px}.cost-row{gap:8px;padding:10px 1px;font-size:14px}.cost-row>span:last-child{font-size:20px}dialog{padding:12px 8px;border-width:16px;max-height:88dvh;width:calc(100% - 16px)}.dialog-header h2{font-size:27px}.form-grid{grid-template-columns:1fr}.dialog-actions{gap:5px}.dialog-actions button{padding:9px 10px;font-size:14px}.split-people{grid-template-columns:1fr}.app-toast{bottom:95px;width:max-content;text-align:center;font-size:12px}.empty{padding:20px 10px}.event-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.queue-scene{height:auto;aspect-ratio:2.6}

/* Visual QA corrections */
.app-shell{filter:none}.summary-card{mix-blend-mode:multiply}.navigation-deck{right:14%}.calendar-scroll{height:565px}.metric-value small{font-size:12px}.metric-value{top:62%;bottom:15%}
@media(max-width:600px){.main-frame{border-image-slice:270 70 65;background:#fff0cb}.calendar-scroll{height:450px}.metric-value small{font-size:8px}.navigation-deck{right:auto}.masthead{height:132px}.crew-button{top:105px} .main-frame{min-height:calc(100vh - 132px)}}

.mobile-agenda{display:none}@media(max-width:600px){.show-mobile-agenda .calendar-scroll{display:none}.show-mobile-agenda .mobile-agenda{display:grid;gap:12px}.agenda-card{display:flex;gap:12px;text-align:left;padding:12px 9px;background:linear-gradient(110deg,#d1eaf8,#f2f0d7);border:1px solid #65a6c6;border-radius:5px;min-height:105px}.agenda-scene{width:86px;flex:none;align-self:center;aspect-ratio:1.35}.agenda-copy{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.agenda-copy strong{font-size:20px;line-height:1.1}.agenda-copy>span{font:12px Arial,sans-serif}.agenda-copy small{font:10px Arial,sans-serif;background:#fff1ba;padding:5px;border:1px solid #cba764;align-self:flex-start}.timeline-caption{margin-bottom:15px}.timeline-panel{padding-bottom:5px}.unscheduled-panel{margin-top:8px}.schedule-toolbar>.primary{white-space:nowrap}.schedule-view-toggle{min-width:170px}.app-toast{bottom:95px}}

.mobile-trip-label{display:none}@media(max-width:600px){.mobile-trip-label{display:block;position:absolute;top:91px;left:20px;color:#70502c;font:10px Arial,sans-serif;letter-spacing:1px}.budget-toolbar{height:auto;margin:5px 0 18px}.budget-toolbar h2.sr-only{position:relative;width:auto;height:auto;margin:0;clip:auto;overflow:visible;white-space:normal}.crew-button{top:88px}.masthead{height:122px}}
.metric-value strong{line-height:1;font-size:clamp(20px,2.5vw,40px)}.metric-value small{line-height:1.1;margin-top:3px}.metric-value{top:61%;bottom:13%}.budget-summary-grid{background:#fff0cb}@media(max-width:600px){.metric-value strong{font-size:24px}.metric-value{top:62%;bottom:13%}.metric-value small{margin-top:2px}}

/* V22 annotated corrections */
.calendar-event.overlapping{background:rgba(118,200,239,.58);border-color:#187eab}.calendar-event.overlapping.interest-solid{background:rgba(152,204,101,.58)}.calendar-event.overlapping.interest-favorite{background:rgba(240,184,85,.58)}.calendar-event.overlapping.interest-legendary{background:rgba(237,140,110,.58)}.calendar-event.overlapping:hover,.calendar-event.overlapping:focus-within{z-index:50!important;background:rgba(255,237,182,.95)}.calendar-event .calendar-scene{opacity:.2}.resize-handle{position:absolute;bottom:0;left:0;width:100%;height:13px;min-height:13px;padding:0;background:#76522733;border:0;border-radius:0;box-shadow:none;cursor:ns-resize;touch-action:none;font:14px/10px Arial;z-index:10}.resize-handle:hover{transform:none;background:#79532877;color:white}.resizing{z-index:100!important;opacity:.9}.drop-unscheduled{outline:4px dashed #087eb5;background:#bfebec;filter:brightness(1.08)}
.full-trip-shell{grid-template-columns:200px minmax(0,1fr)}.full-trip-calendar{grid-template-columns:42px repeat(15,minmax(64px,1fr));font-size:10px}.full-trip-calendar .calendar-header{font-size:10px;padding:6px 1px}.full-trip-calendar .calendar-event{padding:4px 3px 14px 12px}.full-trip-calendar .calendar-event strong{font-size:12px}.full-trip-calendar .event-time{font-size:9px}.full-trip-calendar .move-handle{font-size:15px;left:1px}.full-trip-calendar .time-label{font-size:10px;right:3px}
/* Source image is four 512 by 683 tiles: keep the source ratio. */
.summary-card{aspect-ratio:512/683}.budget-summary-grid{max-width:1100px;margin-left:auto;margin-right:auto}.metric-value{top:63%;bottom:15%}.metric-value strong{font-size:clamp(22px,2.4vw,38px)}
/* Draw the outer art once at its natural ratio; never stretch a barrel down a long page. */
.main-frame{border-image:none;border:0;position:relative;isolation:isolate;background:#fff0cb;margin-top:-1px;padding:0 clamp(18px,4.4vw,70px) 55px;overflow:hidden}.main-frame::before{content:'';position:absolute;z-index:-1;inset:0;background-image:url('assets/hero-approved.webp');background-size:100% auto;background-position:center calc(-1 * min(16.9vw,284px));background-repeat:no-repeat;pointer-events:none}.main-frame::after{content:'';position:absolute;z-index:-2;inset:0;border-left:12px ridge #a37431;border-right:12px ridge #a37431;pointer-events:none}.main-content{position:relative}
.event-card{isolation:isolate}.event-card::after{content:'';position:absolute;inset:-8px;pointer-events:none;z-index:-1;mix-blend-mode:multiply;transition:background .35s}.event-card.interest-low::after{background:transparent}.event-card.interest-maybe::after{background:#b5e9fa99}.event-card.interest-solid::after{background:#b0eaa7bb}.event-card.interest-favorite::after{background:#ffce5ecc}.event-card.interest-legendary::after{background:#ff986fcc}.event-card.interest-legendary{filter:drop-shadow(0 0 6px #ee8f23)}.custom-scene{overflow:hidden;aspect-ratio:2.6;display:block}.custom-scene img{position:static;width:100%;height:100%;object-fit:cover}.artwork-note{font-size:11px}.event-details-body [data-artwork]{margin-left:4px}
@media(max-width:760px){.full-trip-shell{grid-template-columns:1fr}.full-trip-calendar{min-width:1100px}.summary-card{aspect-ratio:512/683}.metric-value strong{font-size:25px}}
@media(max-width:600px){.main-frame{padding:0 15px 35px;margin-bottom:78px}.main-frame::before{background-size:760px auto;background-position:center -270px}.budget-summary-grid{gap:10px}.summary-card{aspect-ratio:512/683}.metric-value{top:63%;bottom:15%}.metric-value strong{font-size:25px}.metric-value small{font-size:9px}.resize-handle{height:18px;min-height:18px}.event-card::after{inset:-7px}}
/* Keep the lower illustration at the page bottom, at its original scale. */
.main-frame::before{top:auto;bottom:0;height:min(100%,min(45.6vw,766px));background-position:center bottom;background-size:100% auto}.full-trip-shell .unscheduled-item{display:block}.full-trip-shell .queue-scene{margin-bottom:8px}.full-trip-shell .unscheduled-item button{width:100%;font-size:13px;padding:7px 3px}.full-trip-shell .unscheduled-panel h3{font-size:20px}@media(max-width:600px){.main-frame::before{height:min(100%,350px);background-size:760px auto;background-position:center bottom}}

/* V22: continuous parchment and fixed-proportion calendar illustrations. */
.main-frame{background:#fff0cb url('assets/panel-frame.webp') center/100% auto repeat-y}
.main-frame::before{height:min(100%,min(45.6vw,766px));mask-image:linear-gradient(to bottom,transparent,#000 170px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 170px)}
.full-trip-calendar{grid-template-columns:52px repeat(15,200px);min-width:3052px;font-size:13px}
.full-trip-calendar .calendar-header{font-size:13px;padding:10px 5px}
.full-trip-calendar .calendar-event{padding:8px 8px 18px 20px}
.full-trip-calendar .calendar-event strong{font-size:16px}
.full-trip-calendar .event-time{font-size:12px}
.calendar-event .calendar-scene{width:100%;height:auto;aspect-ratio:var(--crop-ratio,2.6);top:auto;bottom:14px;opacity:.23;mask-image:none;max-height:none}
.calendar-event{overflow:hidden}
.avatar{object-fit:cover}
.calendar-scroll{scrollbar-width:auto}

.main-frame{background-size:140% auto;background-position:center center}

/* V22 feedback: same graphics, more physical controls. */
button{transition:filter .18s,box-shadow .18s,transform .18s cubic-bezier(.2,.9,.3,1.4)}
@media(hover:hover){button:hover{transform:translateY(-3px);filter:brightness(1.12);box-shadow:0 5px 0 #76502055,0 8px 16px #48210730}.event-card:hover{transform:translateY(-4px);filter:drop-shadow(0 8px 5px #52341533)}}
button:active{transform:translateY(2px) scale(.96);box-shadow:0 1px 0 #76502055}
.event-card{transition:transform .25s,filter .25s}.rating.chosen{box-shadow:0 0 0 2px #d9a132,0 0 14px #ffc94c88}
dialog[open]{animation:treasure-drop .38s cubic-bezier(.2,.8,.2,1.2)}
@keyframes treasure-drop{0%{opacity:0;transform:translateY(-26px) scale(.94)}75%{opacity:1;transform:translateY(4px) scale(1.005)}100%{transform:none}}
.page.active{animation:page-arrive .24s ease-out}@keyframes page-arrive{from{opacity:.6;transform:translateY(7px)}to{opacity:1;transform:none}}
.reward-spark{position:fixed;z-index:9999;color:#eab42d;text-shadow:0 1px #6e3611;pointer-events:none;font-size:18px}
.backup-controls{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:20px;font:12px Arial,sans-serif}.backup-controls button{font-size:12px}.backup-controls small{color:#795632}
.robin-avatar{display:block;position:relative;overflow:hidden;border:3px solid #dcae50;box-shadow:inset 0 0 0 1px #674221;background:#138bdf}.robin-avatar img{position:absolute;width:170%;height:170%;max-width:none;left:-35%;top:-28%;object-fit:cover}
.calendar-event .fill-scene{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;opacity:.35;background-size:cover;background-position:center;mask-image:none;z-index:-1;pointer-events:none}
.fill-scene svg{display:block;width:100%;height:100%}.calendar-event strong,.calendar-event .event-time{text-shadow:0 1px 3px #fff5df,0 0 8px #fff5df}
/* Keep decorative side art below the page controls, without translucent bleed. */
.main-frame::before{mask-image:none;-webkit-mask-image:none;clip-path:polygon(0 32%,4.4% 32%,4.4% 91%,95.6% 91%,95.6% 32%,100% 32%,100% 100%,0 100%)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:hover,.event-card:hover{transform:none}}
.main-frame::before{height:100%;background-color:#087bb6;background-size:100% auto;background-position:center bottom;clip-path:polygon(0 0,4.4% 0,4.4% 94%,95.6% 94%,95.6% 0,100% 0,100% 100%,0 100%)}
/* Calendar coordinates stay stable throughout page changes and pointer drags. */
#schedule-page.active{animation:none}

/* Independent rails exclude the masthead pixels at every page height. */
.main-frame::before,.main-frame::after{display:none}
.main-frame{padding-bottom:100px}
.voyage-rail{position:absolute;top:0;bottom:0;width:70px;z-index:-1;pointer-events:none;overflow:hidden;background:#087bb6}.voyage-rail.left{left:0}.voyage-rail.right{right:0}.voyage-rail svg{display:block}
.voyage-footer-art{position:absolute;left:0;right:0;bottom:0;z-index:-1;pointer-events:none}.voyage-footer-art svg{width:100%;display:block}
.robin-avatar{border:0;box-shadow:none}.robin-avatar img{position:static;width:100%;height:100%;object-fit:contain}
.avatar{transition:filter .18s,transform .22s,box-shadow .18s}
@media(hover:hover){.avatar:hover{filter:brightness(1.2) saturate(1.15);transform:translateY(-3px) scale(1.09);box-shadow:0 0 0 2px #ffda64,0 0 18px #ffb91ccc}.rating-row:hover>.avatar{filter:brightness(1.12);box-shadow:0 0 12px #ffcb62aa}}
#crew-button:focus-visible .avatar{box-shadow:0 0 0 2px #ffda64,0 0 14px #ffb91c}
.calendar-event .fill-scene{opacity:.13}
.calendar-event strong{padding:4px 6px;background:rgba(255,247,220,.92);border:1px solid #ac753f55;border-radius:3px;box-shadow:0 1px 3px #54311020;text-shadow:none;line-height:1.12}
.calendar-event .event-time{display:inline-block;background:rgba(255,247,220,.8);padding:2px 5px;border-radius:2px;text-shadow:none}
.calendar-event.overlapping{background:rgba(118,200,239,.72)}.calendar-event.overlapping.interest-solid{background:rgba(152,204,101,.72)}.calendar-event.overlapping.interest-favorite{background:rgba(240,184,85,.72)}.calendar-event.overlapping.interest-legendary{background:rgba(237,140,110,.72)}
.metric-value{left:17%;right:15%;top:64%;bottom:20%;background:#ffe1a2}
.metric-value strong{font-size:clamp(20px,2.2vw,35px)}
@media(max-width:760px){.voyage-rail{width:18px}.voyage-rail.right svg{transform:translateX(-52px);width:70px}.voyage-rail.left svg{width:70px}.main-frame{padding-bottom:55px}.metric-value strong{font-size:24px}.metric-value small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.avatar:hover{transform:none}}

.metric-value{left:10%;right:8%;top:63%;bottom:19%;background:#ffe1a2}

.voyage-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.voyage-actions button{font-size:15px}.captains-guide{margin:12px 0;border:1px solid #ba8a3d;border-radius:6px;background:#fff0cbe6;max-width:850px}.captains-guide summary{cursor:pointer;font-weight:bold;padding:10px 14px;color:#794715}.captains-guide .event-details-body{padding:4px 15px 10px;line-height:1.5}.captains-guide p{margin-bottom:9px}.voyage-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.voyage-progress>div{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(120deg,#fff4d5,#edc66b);border:2px solid #b17a25;border-radius:7px;padding:12px;box-shadow:0 4px 0 #93612344}.voyage-progress strong{font-size:25px}.stay-strip{padding:14px 18px;margin:18px 0;background:linear-gradient(110deg,#d4ece8,#fff0c9);border:2px solid #3e8586;border-radius:8px}.stay-strip h3{margin-bottom:8px;font-size:23px}.stay-strip h3 small{font:12px Arial;color:#4d6e69;margin-left:10px}.stay-strip p{margin:0;color:#586f67}.stay-list{display:flex;gap:12px;flex-wrap:wrap}.stay-ticket{display:flex;flex-direction:column;gap:6px;text-align:left;max-width:480px;white-space:normal;border:1px solid #3e8586;box-shadow:0 3px 0 #24605d55}.stay-ticket strong{font-size:20px}.stay-ticket span{font:12px/1.4 Arial}.blockout-card{background:repeating-linear-gradient(135deg,#eee2d0,#eee2d0 10px,#e0ccb4 10px,#e0ccb4 20px)}
button.primary:hover,button.blue:hover{filter:brightness(1.18) drop-shadow(0 0 7px #f8bf55aa)}.rating.chosen{animation:coin-land .42s ease-out}@keyframes coin-land{0%{transform:scale(.65) rotate(-16deg)}65%{transform:scale(1.18) rotate(6deg)}100%{transform:none}}.captains-guide[open] summary{color:#006c89}.stay-ticket:hover{border-color:#b77915;box-shadow:0 4px 0 #ae762e77,0 0 12px #efc66877}
/* Join the header to the rails with a deliberate timber cap; footer paints over rail ends. */
.main-frame{border-top:7px ridge #ac742b;margin-top:-2px}.voyage-footer-art{z-index:0}.main-content{z-index:1}.voyage-rail{bottom:calc(5.8vw - 2px)}
@media(max-width:600px){.voyage-progress{gap:5px}.voyage-progress>div{padding:8px 5px;flex-direction:column;gap:6px;text-align:center;font-size:11px}.voyage-progress strong{font-size:22px}.stay-strip{padding:10px}.stay-strip h3 small{display:block;margin:5px 0}.voyage-actions button{font-size:13px}.voyage-rail{bottom:25px}}
@media(prefers-reduced-motion:reduce){.rating.chosen{animation:none}}

.calendar-event.unavailable-block{background:repeating-linear-gradient(135deg,#ddd0b9dd,#ddd0b9dd 12px,#bba88fdd 12px,#bba88fdd 24px);border:2px dashed #795639}.calendar-event.unavailable-block strong{background:#fff1d9}
.detail-icon{display:inline-block;flex:none;width:38px;height:38px;background-image:url('assets/scene-discovery.webp');background-size:300% 200%;vertical-align:middle;pointer-events:none}.icon-0{background-position:0 0}.icon-1{background-position:50% 0}.icon-2{background-position:100% 0}.icon-3{background-position:0 100%}.icon-4{background-position:50% 100%}.icon-5{background-position:100% 100%}
.add-cluster{display:flex;gap:2px;margin-left:auto;align-items:stretch;position:relative;z-index:12}.add-menu{position:relative;background:#b80c29;color:white;border:2px solid #80192a}.add-menu summary{cursor:pointer;padding:10px;list-style:none;font-size:20px}.add-menu-panel{position:absolute;right:0;top:100%;width:240px;background:#fff0ce;padding:10px;border:2px solid #a97128;box-shadow:0 10px 20px #40240966;display:grid;gap:8px;animation:treasure-drop .45s}.add-menu-panel button{display:flex;align-items:center;gap:8px}.add-blockout-color{background:#643052;color:white}.add-stay-color{background:#08796e;color:white}.compact-actions{margin:2px 0}.compact-actions:empty{display:none}
.compact-guide{position:relative;flex:none;margin:0 6px 0 -10px;border:0;background:none;width:40px;z-index:15}.compact-guide summary{padding:0;list-style:none}.compact-guide>.event-details-body{position:absolute;top:42px;left:0;width:min(380px,75vw);padding:15px;border:2px solid #ad7d34;background:#fff0cb;box-shadow:0 8px 18px #40230955;font-size:14px}.compact-guide[open] .event-details-body{animation:treasure-drop .4s}.event-toolbar,.schedule-toolbar{gap:10px}.event-toolbar h2,.schedule-toolbar h2{flex:none}
.status-ribbon{font-size:16px!important;padding:9px 14px!important}.voyage-progress{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.voyage-progress>div{padding:3px 10px 3px 4px;gap:8px;flex:none;border-width:1px;background:linear-gradient(120deg,#fff2d0,#efce81)}.voyage-progress strong{font-size:20px}.voyage-progress span:not(.detail-icon){font-size:12px}.voyage-progress .detail-icon{width:34px;height:34px}.stay-strip{padding:8px 12px;margin:8px 0 14px}.stay-strip h3{font-size:19px;margin:0 0 4px}.stay-strip>p{font-size:12px}.mini-help{font:12px Arial;border-radius:50%;padding:0;min-height:22px;width:22px;height:22px;margin-left:8px}.expense-related{display:block;margin-top:4px}.expense-related button{font:12px Arial;padding:2px 0;min-height:0;border:0;box-shadow:none;background:none;color:#00728d;text-decoration:underline}.follow-date{display:flex;align-items:center;gap:7px}.follow-date input{width:auto}.projected-item{display:flex;gap:10px;align-items:center;justify-content:space-between}.projected-item button{font-size:12px;min-height:30px}.frame-knot{position:absolute;top:-35px;width:80px;height:80px;z-index:3}.frame-knot.left{left:-5px}.frame-knot.right{right:-5px;transform:scaleX(-1)}
#reward-banner{position:fixed;left:50%;top:25px;transform:translate(-50%,-150px) rotate(-4deg);opacity:0;z-index:9998;display:flex;align-items:center;gap:12px;padding:12px 24px;background:linear-gradient(115deg,#fff2b7,#ffc854,#f3ac26);border:3px solid #a86417;border-radius:12px;box-shadow:0 8px 0 #5d351933,0 15px 40px #27100855;pointer-events:none;transition:transform .55s cubic-bezier(.2,1.5,.4,1),opacity .25s;max-width:90vw}#reward-banner.visible{transform:translate(-50%,0) rotate(0);opacity:1}#reward-banner .detail-icon{width:66px;height:66px}#reward-banner strong{font-size:26px;display:block}#reward-banner span:not(.detail-icon){display:block;font:14px Arial;margin-top:5px}.flying-coin{position:fixed;width:44px;height:44px;z-index:9999;pointer-events:none}
.sea-life{position:absolute;inset:0;overflow:hidden;pointer-events:none}.sea-glint{position:absolute;width:140px;height:30px;border-radius:50%;background:radial-gradient(ellipse,#fff9,transparent 65%);animation:sea-shimmer 5s ease-in-out infinite;mix-blend-mode:screen}.g1{left:1%;bottom:12%}.g2{right:0;bottom:15%;animation-delay:-2s}.g3{left:8%;top:10%;width:40px;height:40px;animation-delay:-3s}@keyframes sea-shimmer{0%,100%{opacity:.15;transform:translateX(-25px) scaleX(.8)}50%{opacity:.85;transform:translateX(25px) scaleX(1.25)}}.gull{position:absolute;top:10%;color:white;text-shadow:0 1px #35657c;font-size:45px;animation:gull-drift 18s linear infinite}.gull-one{left:2%}.gull-two{right:0;animation-delay:-9s}@keyframes gull-drift{from{transform:translateX(-80px) translateY(5px);opacity:0}15%,75%{opacity:1}to{transform:translateX(180px) translateY(-16px);opacity:0}}
.effects-off *, .effects-off *::before,.effects-off *::after{animation:none!important;transition:none!important}.effects-off .sea-life{display:none}
@media(max-width:600px){.add-cluster{margin-left:auto}.compact-guide{margin-left:0}.compact-guide>.event-details-body{left:-45px;width:280px}.status-ribbon{font-size:13px!important;padding:7px 10px!important}.voyage-progress>div{flex-direction:row;gap:4px;padding:3px;font-size:10px}.voyage-progress .detail-icon{width:24px;height:24px}.voyage-progress strong{font-size:17px}.voyage-progress span:not(.detail-icon){font-size:9px}.frame-knot{width:42px;height:42px;top:-18px}.expense-related button{max-width:180px;white-space:normal}#reward-banner{padding:8px 12px;top:12px}#reward-banner strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.sea-life{display:none}#reward-banner{transition:none}}

.frame-knot{top:-3px}.masthead .sea-life{z-index:0}.navigation-deck{z-index:1}.stay-strip h3 .mini-help{vertical-align:middle}
/* Remove the accidental full-width timber seam. */
.main-frame{border-top:0;margin-top:-1px}.frame-knot{top:-2px}
.detail-icon:not(.frame-knot){background-image:url('assets/scene-discovery.webp')}.compact-guide summary>.detail-icon{background-image:url('assets/scene-discovery.webp')}
.budget-tabbar>#add-projected,.budget-tabbar>#add-expense-btn{font-size:20px;min-height:48px;padding:10px 20px;white-space:nowrap}
.estimate-breakdown{margin-top:8px;font:13px/1.6 Arial;color:#75522d;max-width:500px}.estimate-breakdown span{display:flex;justify-content:space-between;gap:25px}.estimate-breakdown b{font-weight:normal}.overview-sort{display:flex;justify-content:space-between;border-bottom:1px solid #ba914d;padding:8px 0}.overview-sort button,.expense-table-head button{border:0;background:transparent;box-shadow:none;padding:4px 7px;font-size:13px;min-height:30px}.expense-table-head{align-items:center}.expense-table-head>span:first-child{display:flex;flex-wrap:wrap}.expense-table-head{display:grid!important}
.compact-guide{width:auto;min-width:105px;margin-right:5px}.compact-guide summary{display:flex;align-items:center;gap:3px;padding:2px 5px;border:1px dashed #a37939;border-radius:6px;background:#ffedb6}.compact-guide summary .detail-icon{width:27px;height:27px}.help-label{font:11px/1.2 Arial;color:#694717;white-space:nowrap}.compact-guide summary:hover{box-shadow:0 0 15px #ffca5888}.compact-guide>.event-details-body{font-size:14px}.captains-guide p+.detail-icon,.captains-guide p+p{margin-top:12px}.captains-guide p .detail-icon{width:27px;height:27px;margin-right:6px}
.has-count-help{position:relative;z-index:6}.has-count-help>strong{cursor:help;border-bottom:2px dotted #6e5435;outline-offset:3px}.count-tip{display:none;position:absolute;left:0;top:100%;width:260px;background:#fff0c9;border:2px solid #aa792d;box-shadow:0 6px 16px #48250044;padding:12px;font:13px/1.5 Arial!important;z-index:25;white-space:normal}.has-count-help:has(strong:hover) .count-tip,.has-count-help:has(strong:focus) .count-tip,.has-count-help.tip-open .count-tip{display:block;animation:treasure-drop .25s}.stay-strip>p{display:none}.calendar-event.unavailable-block{background:repeating-linear-gradient(135deg,#843356e8,#843356e8 16px,#552243ed 16px,#552243ed 32px);border:2px solid #401c36;color:#fff0df}.calendar-event.unavailable-block strong{background:#4c1738ed;color:#fff4df;border-color:#da8399}.calendar-event.unavailable-block .event-time{background:#59243c;color:#fff4df}
.flying-coin{width:76px;height:76px}.flying-ballot{position:fixed;width:75px;height:75px;z-index:9999;pointer-events:none}.pirate-confetti{position:fixed;z-index:9997;pointer-events:none;width:12px;height:22px;border-radius:2px}.emblem-confetti{width:62px;height:62px}.living-painting{position:absolute;inset:0;overflow:hidden;pointer-events:none}.paint-layer{position:absolute;inset:0;background:url('assets/hero-approved.webp') top center/100% auto no-repeat;transform-origin:center}.paint-layer.boat{clip-path:polygon(87% 0,100% 0,100% 94%,89% 84%);animation:boat-rock 7s ease-in-out infinite;transform-origin:96% 65%}.paint-layer.clouds{clip-path:polygon(0 0,24% 0,18% 30%,0 42%);animation:cloud-breathe 13s ease-in-out infinite}.paint-layer.waves-left{clip-path:polygon(0 49%,11% 65%,15% 88%,0 90%);animation:wave-surge 4.5s ease-in-out infinite}.paint-layer.waves-right{clip-path:polygon(89% 72%,100% 62%,100% 96%,91% 91%);animation:wave-surge 5s ease-in-out infinite reverse}@keyframes boat-rock{0%,100%{transform:rotate(-.7deg) translateY(-2px)}50%{transform:rotate(1deg) translateY(4px)}}@keyframes cloud-breathe{0%,100%{transform:translateX(-3px) scale(1.005)}50%{transform:translateX(7px) scale(1.015)}}@keyframes wave-surge{0%,100%{transform:translate(-3px,0) scale(1.005)}50%{transform:translate(5px,-4px) scale(1.018)}}
.effects-off .living-painting{display:none}@media(prefers-reduced-motion:reduce){.living-painting{display:none}}
@media(max-width:600px){.budget-tabbar>#add-projected,.budget-tabbar>#add-expense-btn{font-size:15px;padding:8px 12px;min-height:44px;margin:0}.compact-guide{min-width:100px}.expense-table-head{display:flex!important;flex-wrap:wrap;gap:4px}.expense-table-head>span:last-child{display:none}.count-tip{width:190px}.has-count-help:last-child .count-tip{left:auto;right:0}.paint-layer{background-size:180% auto}.estimate-breakdown{font-size:11px}.flying-coin,.flying-ballot{width:54px;height:54px}}
.count-tip{pointer-events:none}#stay-strip:not(:has(.stay-ticket)){display:none}
/* Object-silhouette animation. No translated rectangular scenery patches. */
.masthead{background-image:url('assets/hero-approved.webp')}.living-painting{overflow:visible;z-index:0}.isolated-ship{position:absolute;right:1%;top:0;width:14%;height:88%;object-fit:contain;transform-origin:55% 85%;animation:ship-at-anchor 7s ease-in-out infinite;pointer-events:none}@keyframes ship-at-anchor{0%,100%{transform:translateY(-2px) rotate(-1deg)}50%{transform:translateY(3px) rotate(1.3deg)}}
.effects-off .living-painting{display:block}.effects-off .isolated-ship{animation:none}.voyage-footer-art{bottom:0;z-index:0}.voyage-rail{bottom:0}.main-frame{padding-bottom:clamp(75px,7.4vw,124px)}
/* Help is a scroll that opens downward rather than a cramped tooltip. */
.compact-guide{margin:0 16px 0 5px;min-width:125px}.compact-guide summary{gap:6px;padding:5px 8px}.compact-guide>.event-details-body{top:calc(100% + 10px);width:min(440px,80vw);padding:22px 23px;transform-origin:top center;background:#fff0ca url('assets/panel-frame.webp') center/100% 100%;border:0;border-top:7px ridge #bb863a;border-bottom:7px ridge #bb863a;border-radius:8px;box-shadow:0 12px 25px #4d291c55}.compact-guide[open]>.event-details-body{animation:scroll-unfurl .55s cubic-bezier(.2,.8,.2,1)}@keyframes scroll-unfurl{0%{clip-path:inset(0 0 100%);transform:scaleY(.12);opacity:.5}70%{clip-path:inset(0);transform:scaleY(1.035);opacity:1}100%{clip-path:inset(0);transform:scaleY(1)}}
.voyage-progress>div:nth-child(2){background:linear-gradient(120deg,#087b75,#065f61);border-color:#064e50;color:#fff5df}.voyage-progress>div:nth-child(3){background:linear-gradient(120deg,#763551,#49263f);border-color:#49213c;color:#fff0dc}.voyage-progress .has-count-help>strong{border-bottom-color:#f5dfad}.count-tip{color:#422710}
.blockout-card{background:linear-gradient(140deg,#8b4663,#4f2844)!important;color:#fff3df;isolation:isolate}.blockout-card h3{margin-top:70px;color:#fff3df}.blockout-card:before{content:'';position:absolute;inset:18px;background:repeating-linear-gradient(135deg,transparent,transparent 17px,#e8b87512 17px,#e8b87512 19px);pointer-events:none;z-index:-1}.blockout-card .status-ribbon{background:#68334f;color:#fff3df;font-size:18px!important;display:flex;align-items:center;gap:8px}.blockout-card .status-ribbon .detail-icon{width:36px;height:36px}.blockout-card button{background:#f6dfb9;color:#4f2540}
/* Crew-vote finishes replace the old full-card color washes. */
.event-card:not(.blockout-card)::after{background:transparent!important}.event-card:not(.blockout-card){filter:none;isolation:isolate;position:relative;--foil-x:50%;--foil-y:40%}.finish-label{display:inline-flex;padding:5px 10px;margin:2px 0 8px;border-radius:20px;border:1px solid #ad8b50;background:#ffefc7;color:#60431f;font-size:12px;font-weight:bold;position:relative;z-index:2}.card-foil{position:absolute;inset:0;border-radius:7px;pointer-events:none;z-index:1;opacity:0}.event-card.interest-maybe{box-shadow:0 0 0 2px #bec4c8,0 4px 9px #31241333}.interest-maybe .card-foil{opacity:.2;background:linear-gradient(115deg,transparent 32%,#fff 45%,#bad2dd 49%,transparent 58%);background-size:220% 100%;background-position:var(--foil-x) 50%;mix-blend-mode:soft-light}.event-card.interest-solid{box-shadow:0 0 0 3px #d4b361,0 0 0 5px #816323,0 8px 14px #57381444}.interest-solid .card-foil{opacity:.3;background:repeating-linear-gradient(115deg,#fff0 0%,#fff3b533 12%,#fff9 18%,#bfa56622 24%,#fff0 32%);background-position:var(--foil-x) var(--foil-y);background-size:220% 220%;mix-blend-mode:soft-light}.interest-solid .finish-label{background:linear-gradient(100deg,#b9872e,#fff0b0,#c99941);color:#4b3211}
.event-card.interest-favorite{box-shadow:0 0 0 3px #d4c9a7,0 0 0 5px #9299b5,0 8px 20px #58406c44}.interest-favorite .card-foil,.interest-legendary .card-foil{opacity:.32;background:radial-gradient(circle at var(--foil-x) var(--foil-y),#fff9,transparent 38%),repeating-linear-gradient(120deg,#e9a6dc55,#91e3ed55 16%,#fff5a666 30%,#cba4eb55 45%,#e9a6dc55 60%);background-size:160% 160%;background-position:var(--foil-x) var(--foil-y);mix-blend-mode:soft-light}.interest-favorite .finish-label{background:linear-gradient(110deg,#eec4df,#b5e6ef,#f5e8b5,#d4c7ec);color:#423755}
.event-card.interest-legendary{box-shadow:0 0 0 3px #ffe798,0 0 0 6px #b07c2a,0 0 24px #eac34a77}.interest-legendary .card-foil{opacity:.5;background-image:radial-gradient(circle at var(--foil-x) var(--foil-y),#fff,transparent 30%),repeating-linear-gradient(120deg,#f3a4de77,#77ddec77 16%,#ffe58488 30%,#baa1eb66 45%,#f3a4de77 60%);animation:collector-light 9s ease-in-out infinite}.interest-legendary .finish-label{background:linear-gradient(110deg,#9f6923,#fff0a3,#cfa149);color:#4b2d0a;box-shadow:0 0 10px #eec75677}.interest-legendary .event-scene{outline:2px solid #eed277;outline-offset:2px}@keyframes collector-light{0%,100%{background-position:0 30%}50%{background-position:100% 60%}}.event-card .event-actions-row,.event-card .crew-ratings,.event-card .event-details{position:relative;z-index:2}
@media(max-width:600px){.isolated-ship{width:23%;right:-2%;height:85%}.compact-guide{margin:0 8px 0 3px;min-width:110px}.compact-guide>.event-details-body{left:-40px;width:min(320px,83vw)}.blockout-card h3{margin-top:60px}.main-frame{padding-bottom:55px}}
@media(prefers-reduced-motion:reduce){.living-painting{display:block}.isolated-ship,.card-foil{animation:none!important}.compact-guide[open]>.event-details-body{animation:none}}
/* Keep the illustrated border without its parchment fill over Ashore colors. */
.blockout-card{border-image-slice:85}
/* V23: illustrated silhouettes, full-card finishes and calendar lodging lanes. */
.event-card[class*=interest-]{box-shadow:none!important;outline:none!important}.interest-legendary .event-scene{outline:none}
.event-card:not(.blockout-card):not(.stay-card).interest-maybe{border-image-slice:85;background:linear-gradient(120deg,#f2e4cb,#e7f4f1,#f8ebcb)}
.event-card:not(.blockout-card):not(.stay-card).interest-solid{border-image-slice:85;background:repeating-radial-gradient(ellipse at 25% 20%,#f7e3a7 0 3px,#d5b876 4px,#faecc4 6px 12px)}
.event-card:not(.blockout-card):not(.stay-card).interest-favorite,.event-card:not(.blockout-card):not(.stay-card).interest-legendary{border-image-slice:85;background:linear-gradient(135deg,#f5c6ec,#bdebf0 24%,#fbebae 46%,#d2c2f0 68%,#b4e7dc)}
.event-card .card-foil{z-index:1;border-radius:0;mix-blend-mode:overlay;opacity:.48;animation:foil-tide 8s ease-in-out infinite}.interest-low .card-foil{display:none}.interest-solid .card-foil{opacity:.65}.interest-favorite .card-foil,.interest-legendary .card-foil{opacity:.8;background:repeating-linear-gradient(115deg,transparent 0 12%,#fff9 15%,#df90dd77 22%,#80dedd77 29%,transparent 40%);background-size:240% 200%;mix-blend-mode:overlay}
.event-card.interest-legendary{background:linear-gradient(130deg,#f7d18d,#9edbec,#f1b8d8,#fff0b4)!important}.event-card.interest-legendary:before,.event-card.interest-favorite:before{content:'';position:absolute;inset:15% 0 0;pointer-events:none;background:url('assets/scene-discovery.webp') center bottom/100% 300% no-repeat;opacity:.3;z-index:0}
.event-card.interest-favorite .event-description,.event-card.interest-legendary .event-description,.event-card.interest-favorite .crew-ratings,.event-card.interest-legendary .crew-ratings{background:#fff1d6d9;border-radius:8px;padding:8px}.event-card h3,.event-card .event-meta,.event-card .event-description,.event-card .ratings-heading{position:relative;z-index:2}.interest-legendary .event-scene{margin:-4px -7px 8px}.interest-legendary .event-scene>.scene{aspect-ratio:1.9}
@keyframes foil-tide{0%,100%{background-position:0 20%}50%{background-position:100% 80%}}
.event-card.stay-card{border-image-slice:85;background:linear-gradient(140deg,#087e79,#084e59)!important;color:#fff4da}.stay-card h3,.stay-card .ratings-heading small,.stay-card .event-details,.stay-card a{color:#fff3d6}.stay-card .status-ribbon{background:#075e62}.stay-card .crew-ratings,.stay-card .event-description{background:none!important}.stay-card button{color:#382514}.stay-card .card-foil{display:none}
.compact-guide>.event-details-body{border:0!important;border-radius:0;box-shadow:none!important;background:none!important;padding:20px 18px!important;border-image:url('assets/panel-frame.webp') 85 fill stretch!important;border-width:12px!important;border-style:solid!important}.compact-guide>.event-details-body:before,.compact-guide>.event-details-body:after{display:none!important}
.has-count-help{cursor:help}.has-count-help:hover .count-tip,.has-count-help:focus .count-tip{display:block;animation:treasure-drop .25s}
#stay-strip{display:none!important}.calendar-stay-lane{display:grid;grid-template-columns:52px repeat(var(--days),minmax(0,1fr));gap:5px 0;padding:6px 0;background:#d0e9dd;border-bottom:2px solid #367d79;position:sticky;top:52px;z-index:7;min-height:58px}.calendar-stay{position:relative;overflow:hidden;text-align:left;border:2px solid #176b6d;margin:0 3px;padding:7px 12px;background:linear-gradient(100deg,#07565c,#14857d);color:#fff4d5;min-height:54px;border-radius:8px;isolation:isolate}.calendar-stay strong,.calendar-stay small{position:relative;z-index:1;display:block;text-shadow:0 1px 2px #003438}.calendar-stay small{font:11px Arial;margin-top:5px}.stay-lane-art{position:absolute;right:0;top:0;width:40%;height:100%;opacity:.45;mask-image:linear-gradient(90deg,transparent,#000);z-index:0}.stay-lane-empty{grid-column:2/-1;font:12px Arial;color:#24635e;align-self:center}.stay-lane-label{grid-column:1;grid-row:1;align-self:center;text-align:center;color:#075e62;font-size:22px}
.sea-wave,.sky-bird{position:absolute;display:block;background-image:url('assets/scene-discovery.webp');background-repeat:no-repeat;pointer-events:none}.sea-wave{width:20%;height:26%;background-size:100% 300%;background-position:center top;bottom:9%;z-index:2;animation:sea-surge 5s ease-in-out infinite}.wave-left{left:-1%}.wave-right{right:0;animation-delay:-2.5s}.isolated-ship{top:8%;height:76%}.sky-bird{width:4%;height:16%;background-size:100% 300%;background-position:center center;top:10%;animation:gull-flight 13s ease-in-out infinite}.bird-left{left:10%}.bird-right{right:12%;top:3%;animation-delay:-6s;animation-direction:reverse}@keyframes sea-surge{0%,100%{transform:translate(-7px,3px) scaleY(.88)}50%{transform:translate(8px,-3px) scaleY(1.1)}}@keyframes gull-flight{0%,100%{transform:translate(-25px,5px) rotate(-8deg)}50%{transform:translate(45px,-12px) rotate(8deg)}}
.effects-off .sea-wave,.effects-off .sky-bird,.effects-off .card-foil{animation:none!important}@media(prefers-reduced-motion:reduce){.sea-wave,.sky-bird,.card-foil{animation:none!important}}@media(max-width:600px){.calendar-stay-lane{grid-template-columns:48px repeat(var(--days),minmax(0,1fr))}.day-calendar .calendar-stay-lane{grid-template-columns:45px minmax(0,1fr)}.sea-wave{width:28%}.sky-bird{width:8%}}
.event-card{background-clip:padding-box!important}.event-card.interest-favorite:before,.event-card.interest-legendary:before{inset:auto 0 30%;height:auto;aspect-ratio:4.5;background-size:100% 300%;opacity:.5}.event-card.stay-card:before{display:none}.stay-card button.blue,.stay-card button.primary{color:white}.sky-bird{top:18%;height:9%;width:5%;animation-name:gull-flight}.bird-right{top:14%}.calendar-stay-lane{position:relative;top:auto}.full-card-art{position:absolute;inset:0;width:100%;height:100%;opacity:.22;pointer-events:none;z-index:0;mask-image:linear-gradient(transparent,#000 35%)}.full-card-art img{object-fit:cover}.event-card.interest-legendary .full-card-art{opacity:.34}
.event-card.framed[class*=interest-],.event-card.framed.blockout-card{background-clip:padding-box!important}
/* V24: equal card proportions, engraved labels and separate overlap lanes. */
.event-card .event-scene{position:relative;z-index:3;background:#ffefc8;margin:0 0 8px!important;isolation:isolate}.event-card .event-scene>.scene{aspect-ratio:2.6!important;opacity:1!important}.event-card .card-foil{inset:27% 0 0;z-index:0}.full-card-art{display:none!important}
.event-card:not(.stay-card):not(.blockout-card).interest-solid{background:linear-gradient(115deg,#a98951,#f4df9b 20%,#fff2c3 43%,#d2b67a 65%,#f4dfab)!important;background-clip:padding-box!important}
.event-card:not(.stay-card):not(.blockout-card).interest-solid .card-foil{background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 4px);opacity:.4}
.event-card:not(.stay-card):not(.blockout-card).interest-maybe h3{border-bottom:1px solid #aa9565;padding-bottom:7px;text-shadow:0 1px #fff}
.event-card:not(.stay-card):not(.blockout-card).interest-solid h3,.event-card:not(.stay-card):not(.blockout-card).interest-favorite h3,.event-card:not(.stay-card):not(.blockout-card).interest-legendary h3{padding:8px 10px;margin:8px 0;background:linear-gradient(110deg,#452c15,#795327,#3b2615);color:#fff1c4;border-block:3px double #dfb35c;letter-spacing:.4px;font-size:clamp(21px,1.8vw,28px);text-shadow:0 2px #2b170d}
.event-card:not(.stay-card):not(.blockout-card).interest-favorite h3{background:linear-gradient(110deg,#263d57,#574772,#263c50);border-color:#cfbddf}.event-card:not(.stay-card):not(.blockout-card).interest-legendary h3{background:linear-gradient(110deg,#351626,#65304d,#302445);border-color:#f4d078;color:#ffedb0}
.event-card:not(.stay-card):not(.blockout-card).interest-solid .event-meta,.event-card:not(.stay-card):not(.blockout-card).interest-favorite .event-meta,.event-card:not(.stay-card):not(.blockout-card).interest-legendary .event-meta{padding:6px 8px;background:#fff1cfeb;border-block:1px solid #b78a42;font-size:12px}
.event-card .event-description{min-height:40px}.event-card:not(.stay-card):not(.blockout-card).interest-solid .crew-ratings,.event-card:not(.stay-card):not(.blockout-card).interest-favorite .crew-ratings,.event-card:not(.stay-card):not(.blockout-card).interest-legendary .crew-ratings{padding:8px;border:2px solid #b79a64;background:linear-gradient(115deg,#fff3dce8,#e9cf9ee8);border-radius:3px;box-shadow:inset 0 0 0 2px #fff7df,inset 0 0 0 4px #b6965155}
.event-card.interest-legendary .ratings-heading{color:#4d2044;font-variant:small-caps;letter-spacing:1px}.event-card.interest-legendary .finish-label{border:3px double #946226;border-radius:3px;letter-spacing:1px}.event-card.interest-favorite .finish-label{border:3px double #8982a1;border-radius:3px}.event-card.interest-legendary .rating-row{border-bottom:1px solid #9a743b33}.event-card.interest-legendary .event-actions-row button{border:3px double #bf9141}.event-card.interest-legendary:before,.event-card.interest-favorite:before{bottom:1%;opacity:.16}
.calendar-event{padding:8px 7px 20px 20px!important;opacity:1!important;border-radius:8px;min-width:0}.calendar-event strong{background:linear-gradient(100deg,#382616e8,#674520dc)!important;color:#fff2ce!important;border:0!important;border-left:3px solid #dfb969!important;border-radius:0 5px 5px 0!important;padding:5px 7px!important;font-size:15px!important;line-height:1.2;text-shadow:0 1px 1px #241608!important;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.calendar-event .event-time{background:#382616d9!important;color:#fff1ce!important;border-radius:0 0 5px 5px!important;padding:4px 6px!important;font:11px/1.25 Arial!important;margin-top:3px;display:block;width:fit-content;max-width:100%}.calendar-event:hover{z-index:4}.week-calendar{min-width:1300px;grid-template-columns:52px repeat(var(--days),minmax(175px,1fr))}.calendar-event.overlapping strong{font-size:13px!important}.calendar-event .calendar-scene{opacity:.62!important}.calendar-event.unavailable-block strong{background:#49203dea!important;border-left-color:#e3a3bb!important}.calendar-event .move-handle{left:3px;top:auto;bottom:24px;font-size:17px}.calendar-stay{cursor:grab;padding-right:25px}.stay-resize{position:absolute;right:0;top:0;bottom:0;width:18px;display:grid;place-items:center;background:#003e4a99;cursor:ew-resize;touch-action:none;z-index:3}.calendar-stay:active{cursor:grabbing}
.navigation-deck{z-index:5}.sea-wave{width:14%;height:18%;bottom:14%;animation:surf-travel 6s linear infinite;filter:url('#surf-motion')}.wave-left{left:0}.wave-right{right:0}.sea-wave:after{content:'';position:absolute;inset:15% 0 -10%;background:inherit;background-size:100% 300%;opacity:.6;animation:surf-return 4s ease-in-out infinite}.isolated-ship{top:17%;height:72%;right:.5%;animation:ship-waterline 6s ease-in-out infinite}.sky-bird{width:4%;height:8%;animation:gull-crossing 16s ease-in-out infinite;background-position:center 49%}.bird-left{top:16%;left:5%}.bird-right{top:9%;right:5%;animation-delay:-8s}@keyframes surf-travel{0%{transform:translateX(-7px);opacity:.65}50%{opacity:1}100%{transform:translateX(7px);opacity:.65}}@keyframes surf-return{0%,100%{transform:translate(6px,2px)}50%{transform:translate(-8px,-1px)}}@keyframes ship-waterline{0%,100%{transform:translateY(1px) rotate(-.6deg)}50%{transform:translateY(-2px) rotate(.6deg)}}@keyframes gull-crossing{0%,100%{transform:translate(-20px,5px) rotate(-5deg)}25%{transform:translate(15px,-8px) rotate(3deg) scaleY(.65)}50%{transform:translate(40px,0) rotate(7deg)}75%{transform:translate(10px,8px) rotate(-3deg) scaleY(.7)}}
#stay-fields input[type=time]{margin-top:5px}#stay-fields .field-hint{grid-column:1/-1}.effects-off .sea-wave:after{animation:none}@media(prefers-reduced-motion:reduce){.sea-wave:after{animation:none}}@media(max-width:600px){.week-calendar{min-width:1300px}.sea-wave{width:17%;bottom:10%}}
.week-calendar,.full-trip-calendar{grid-template-columns:52px repeat(var(--days),var(--day-width,200px));min-width:max-content}.calendar-event{padding-left:7px!important}.calendar-event strong{font-size:14px!important;overflow-wrap:normal;word-break:normal}.calendar-event .event-time{font-size:11px!important}.event-list{align-items:stretch}.event-card{display:flex;flex-direction:column}.event-card .event-scene,.event-card .crew-ratings,.event-card .event-actions-row{flex-shrink:0}.event-card .event-description{flex-grow:1}
/* V25: trading-card treatments and dense browsing. */
.event-list{align-items:start!important}.event-card{align-self:start;min-height:0}.blockout-card{height:auto!important;min-height:0!important}
.event-card:not(.stay-card):not(.blockout-card).interest-solid{background:repeating-linear-gradient(125deg,#fff3c7 0 2px,#a78038 3px,#e9d296 4px 7px,#b49251 8px)!important;box-shadow:inset 0 0 0 2px #fff4bc,inset 0 0 0 6px #745222,0 5px 12px #35270a55!important}
.event-card.interest-solid .event-description{background:#fff0cceF;padding:8px}.event-card.interest-solid .finish-label{background:linear-gradient(120deg,#503510,#ffe8a4,#ae7c23,#fff2b1);border:3px double #513614;color:#392609;letter-spacing:2px}
.event-card:not(.stay-card):not(.blockout-card).interest-favorite{background:repeating-linear-gradient(125deg,#aff3dc,#d6b8f7 15%,#f9bce3 27%,#f6e7a7 40%,#8fdbe9 55%)!important;box-shadow:inset 0 0 0 2px #ecffff,inset 0 0 0 5px #69699d,0 5px 17px #735ab455!important}
.event-card.interest-favorite .card-foil{inset:0;opacity:.48;background:repeating-linear-gradient(115deg,transparent 0 5px,#fff9 6px,transparent 7px 16px),radial-gradient(circle at var(--foil-x,50%) var(--foil-y,30%),#fff,transparent 40%);mix-blend-mode:soft-light}.event-card.interest-favorite .event-description{background:#f5effceE;padding:8px}.event-card.interest-favorite .finish-label{background:linear-gradient(100deg,#155d77,#694498,#af5284);color:white;letter-spacing:2px}
.event-card:not(.stay-card):not(.blockout-card).interest-legendary{background:#ebd4a5 url('assets/event-card-special.webp') center/cover!important;padding:22px 20px!important;box-shadow:inset 0 0 0 2px #f5dfa0,inset 0 0 0 5px #583a17,0 6px 18px #432b1c66!important}.event-card.interest-legendary .event-scene{margin-top:48px!important}.event-card.interest-legendary .event-description{padding:9px;background:#fff0d5ed;color:#3d281d}.event-card.interest-legendary .ratings-heading{background:#331c2cec;color:#ffe4a4;padding:7px}.event-card.interest-legendary .crew-ratings{background:#fff0d9ed!important}.event-card.interest-legendary .finish-label{background:linear-gradient(115deg,#1f111c,#62324a,#1f111c);color:#ffe59b;border:3px double #ffe097;padding:9px;letter-spacing:2px}.event-card.interest-legendary .card-foil{inset:0;opacity:.22;mix-blend-mode:soft-light}.event-card.interest-legendary .event-details{background:#fff0ddeb}.event-card.interest-legendary:before{display:none}
.density-tools,.calendar-zoom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px}.density-tools label{display:flex;align-items:center;gap:8px}.density-tools span{font:12px Arial}.density-tools select{width:auto}.calendar-zoom{margin:0}.calendar-zoom output{font:12px Arial;min-width:34px;text-align:center}.card-reveal{display:none}
body:not([data-card-density=full]) .event-list{grid-template-columns:repeat(auto-fill,minmax(245px,1fr))}
body:not([data-card-density=full]) .event-card{padding:9px!important;border-width:7px!important}
body:not([data-card-density=full]) .event-card h3{font-size:19px!important}
body:not([data-card-density=full]) .event-card .event-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;margin:5px 0}
body:not([data-card-density=full]) .event-card:not(.details-expanded) :is(.crew-ratings,.ratings-heading,.event-details){display:none}
body:not([data-card-density=full]) .card-reveal{display:block;margin-top:8px;width:100%}
body:not([data-card-density=full]) .event-card.interest-legendary .event-scene{margin-top:20px!important}
@media(hover:hover){body[data-card-density=hover] .event-card:hover :is(.crew-ratings,.ratings-heading,.event-details),body[data-card-density=hover] .event-card:focus-within :is(.crew-ratings,.ratings-heading,.event-details){display:block;animation:reveal-v25 .25s ease-out}body[data-card-density=hover] .event-card:hover .crew-ratings{display:grid}}
@keyframes reveal-v25{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* Restrict all moving sea artwork to the scenery gutters, outside the central frame. */
.living-painting{clip-path:polygon(0 0,100% 0,100% 100%,88% 100%,88% 0,12% 0,12% 100%,0 100%)}
.wave-right{right:-2%;width:12%}.wave-left{left:-2%;width:12%}
.calendar-event.overlapping{opacity:.88!important}.calendar-event:hover,.calendar-event:focus-within{z-index:12!important;opacity:1!important}
.stack-picker{position:sticky;top:0;z-index:14;font:11px Arial;min-height:28px;width:100%;padding:5px;background:#392c49;color:#fff3d1;border:1px solid #cbb379}
.stack-dialog{max-width:440px;padding:22px;background:#ffedc6}.stack-dialog>button{display:block;width:100%;margin:9px 0;text-align:left}
.week-calendar,.full-trip-calendar{grid-template-columns:52px repeat(var(--days),minmax(var(--calendar-day-width,200px),1fr))!important;min-width:calc(52px + var(--days)*var(--calendar-day-width,200px))!important}
@media(prefers-reduced-motion:reduce){body[data-card-density=hover] .event-card *{animation:none!important}}
/* V26: remembered crew selection and consistent finish geometry. */
.character-select{width:min(1180px,96vw);max-width:1180px;max-height:96dvh;padding:26px;border:3px solid #e6bd64;border-radius:18px;background:radial-gradient(ellipse at top,#176b83,#052e49 75%);color:#ffedba;box-shadow:0 0 0 6px #46331c,0 24px 100px #000b}
.character-select::backdrop{background:#001829ed;backdrop-filter:blur(9px)}.selection-intro{text-align:center}.selection-intro>span{font:11px Arial;letter-spacing:3px;color:#b7e7ef}.selection-intro h2{font-size:clamp(28px,4vw,48px);margin:12px 0}.selection-intro p{font:15px/1.5 Arial;color:#d4eef0;max-width:670px;margin:0 auto 24px}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.character-option{display:flex;flex-direction:column;overflow:hidden;border:2px solid #b99952;padding:0 0 15px;background:linear-gradient(#075269,#09273c);color:#ffe9b0;border-radius:10px;box-shadow:0 8px 0 #001725;transition:transform .2s,box-shadow .2s}.selection-portrait{display:block;width:100%;aspect-ratio:.49;background:url('assets/content-frame.webp') calc(var(--character)*100%/3) top/400% 100% no-repeat}.character-person{font:800 23px Georgia;margin:9px 0 4px}.character-option strong{font-size:15px;color:#c4e4e9}.character-option small{margin-top:10px;font:12px Arial;color:#ffe2a2}.character-option:hover,.character-option:focus-visible{transform:translateY(-9px);box-shadow:0 8px 0 #001725,0 0 30px #49d8f588;border-color:#ffe399}.selection-note{text-align:center;margin:20px 0 0;font:12px Arial;color:#b8dce4}.active-character{float:right;font:12px Arial;margin:0 0 6px 12px}.main-content>.active-character+main{clear:both}.page{clear:both}.rating:disabled{cursor:default;filter:saturate(.55);opacity:.62;transform:none!important}.rating:disabled.chosen{opacity:.95}.rating-row.my-vote{background:#fff4ca;border-radius:5px;outline:1px solid #c2993f}.rating-row.my-vote>span:after{content:' · you';font:10px Arial;color:#806123}.density-tools{margin:0;display:inline-flex}.density-tools label{white-space:nowrap}.timeline-caption{flex-wrap:wrap;justify-content:flex-start}.timeline-caption>span{margin-left:auto}.timeline-caption .calendar-zoom{margin:0}.stack-picker{position:absolute;right:0;width:auto;max-width:100%;font-size:10px;min-height:25px;transform:translateY(-100%);z-index:15}
.event-card:not(.stay-card):not(.blockout-card).interest-legendary{padding:2px!important}.event-card.interest-legendary .event-scene,body:not([data-card-density=full]) .event-card.interest-legendary .event-scene{margin:0 0 8px!important}.event-card.interest-legendary .finish-label{padding:3px 8px!important;border-width:3px!important}.event-card.interest-legendary .ratings-heading{padding:0!important}.event-card.interest-legendary .event-description{padding:8px}.event-card:not(.stay-card):not(.blockout-card) h3{min-height:42px}.event-card.interest-legendary h3{font-variant:small-caps;text-shadow:0 1px #fff5,0 2px 2px #000;letter-spacing:1px!important}.event-card.interest-legendary .card-foil{z-index:4!important;inset:0;opacity:.23;pointer-events:none;background:repeating-linear-gradient(115deg,transparent 0 15%,#64dce999 20%,#f890e799 30%,#ffe5a999 40%,transparent 50%),radial-gradient(circle at var(--foil-x,30%) var(--foil-y,40%),#fff,transparent 45%);mix-blend-mode:soft-light;background-size:200% 200%;animation:collector-light 8s ease-in-out infinite}.interest-legendary .crew-ratings,.interest-favorite .crew-ratings{background-image:linear-gradient(#fff5dcf0,#fff5dcf0),url('assets/event-card-special.webp')!important;background-size:cover!important}.interest-legendary .rating,.interest-favorite .rating{border:3px double #b28b44;box-shadow:0 2px 2px #52381855,inset 0 0 0 1px #fff7d8;clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);border-radius:0}.interest-legendary .event-meta,.interest-favorite .event-meta{border-block:3px double #ad8443!important}.interest-legendary .event-actions-row button{background-image:linear-gradient(110deg,#ffedcce8,#e6c589e8),url('assets/event-card-special.webp');background-size:cover}.interest-legendary .event-actions-row .blue{background:#087eaa}.interest-legendary .event-actions-row .primary{background:#a71939}
@media(max-width:600px){.character-select{padding:18px 12px}.character-grid{grid-template-columns:repeat(2,1fr);gap:12px}.selection-portrait{aspect-ratio:.66}.character-person{font-size:19px}.selection-intro p{font-size:13px;margin-bottom:15px}.character-option strong{font-size:12px}.character-option small{font-size:11px}.active-character{float:none;width:100%;margin:2px 0 10px}.timeline-caption .calendar-zoom button{padding:4px 10px;min-height:32px}.density-tools select{max-width:190px}}
@media(prefers-reduced-motion:reduce){.character-option{transition:none}.character-option:hover{transform:none}}
.event-card:not(.stay-card):not(.blockout-card).interest-favorite{background:#cde7f3 url('assets/content-frame.webp') center/cover!important}.event-card.interest-favorite .card-foil{z-index:4;pointer-events:none;opacity:.25}.event-card:not(.stay-card):not(.blockout-card).interest-legendary .event-actions-row button{border-width:1px}.event-card:not(.stay-card):not(.blockout-card) .finish-label{padding:5px 8px!important;min-height:30px;line-height:14px}.event-card:not(.stay-card):not(.blockout-card) .ratings-heading{min-height:24px;align-items:center;display:flex}
.event-card:not(.stay-card):not(.blockout-card){padding:2px!important}.event-card:not(.blockout-card){align-self:stretch}.event-card .event-description{flex:1}.blockout-card{align-self:start!important}body:not([data-card-density=full]) .event-card:not(.blockout-card){padding:9px!important}.event-card:not(.stay-card):not(.blockout-card) .event-description{padding:8px;min-height:58px}.event-card:not(.stay-card):not(.blockout-card) .event-meta{border-block:3px double #ad8443!important}
.selection-portrait{background-size:400% auto}
/* V27: readable TCG typography, engraved details and visible tier progression. */
#events-page>.voyage-actions{margin-bottom:26px!important;position:relative;z-index:20;isolation:isolate}#event-list{position:relative;z-index:1;gap:20px}.event-card{isolation:isolate;--foil-x:50%;--foil-y:40%}
.calendar-event.overlapping:hover,.calendar-event.overlapping:focus-within,.calendar-event:hover{z-index:40!important}.stack-picker{z-index:100!important;opacity:1!important;background:#302443!important;color:#fff5d4!important;box-shadow:0 2px 6px #1f142c88;border:2px solid #edd391;isolation:isolate}.stack-picker:hover,.stack-picker:focus-visible{z-index:101!important;filter:brightness(1.2)}
.event-card:not(.stay-card):not(.blockout-card){border-image:none!important;border:2px solid #99794c!important;border-radius:12px;padding:10px!important;box-shadow:inset 0 0 0 2px #fff3ce,inset 0 0 0 5px #9b794555,0 5px 9px #422e2444!important;overflow:hidden}
.event-card:not(.stay-card):not(.blockout-card) .event-scene{border:2px solid #b69963;border-radius:7px 7px 2px 2px;overflow:hidden;box-shadow:inset 0 0 0 2px #fff8d6;margin:0 0 8px!important}
.tcg-medallion{position:absolute;right:8px;top:8px;z-index:5;width:49px;height:49px;border:3px double #fff4c0;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at 35% 20%,#578081,#11353e);color:#fff5c9;box-shadow:0 2px 5px #0008;text-shadow:0 1px #122c30}.tcg-medallion b{font:900 23px/1 Georgia}.tcg-medallion small{font:7px/1.4 Arial;letter-spacing:1px}.tcg-sigil{position:absolute;bottom:6px;right:8px;font:23px Georgia;color:#fff0b6;text-shadow:0 1px 3px #000;z-index:5}.event-card .drag-handle{left:8px;right:auto;top:auto;bottom:5px}
.event-card:not(.stay-card):not(.blockout-card) h3{position:relative;z-index:6;padding:8px 10px!important;font-size:25px;line-height:1.1;margin:6px 0!important;background:#234c53;color:#fff4d1;border-block:3px double #b89b5c;min-height:46px;letter-spacing:.4px;text-shadow:0 2px #142d34}.event-card h3:before{content:'ADVENTURE';display:block;font:7px/1.2 Arial;letter-spacing:3px;margin-bottom:3px;color:#f4dba4}.event-card:not(.stay-card):not(.blockout-card) .event-description{position:relative;z-index:6;font:15px/1.35 Georgia;padding:9px!important;border:1px solid #b79b6c;border-radius:3px;background:#fff4dbea;min-height:59px;flex:none}.event-card:not(.stay-card):not(.blockout-card) .event-meta{position:relative;z-index:6;background:#fff4dbeF;padding:6px;font:11px/1.4 Georgia;gap:5px}.event-card .finish-label{position:relative;z-index:6;border-radius:2px!important;text-transform:uppercase;font:700 10px/1.2 Georgia!important;letter-spacing:2px!important}.event-card .crew-ratings{position:relative;z-index:6;background:#fff0dceF!important;border:3px double #b9985f!important;padding:7px!important;border-radius:3px!important}.event-card .ratings-heading,.event-card .event-actions-row,.event-card .event-details,.event-card .card-reveal{z-index:6;position:relative}.event-card .rating-row{border-bottom:1px solid #b5975344}.event-card .rating-row:last-child{border:0}.tcg-edition{position:relative;z-index:6;display:flex;justify-content:space-between;gap:4px;border-top:1px solid #98774b;margin-top:9px;padding:6px 1px 0;font:8px/1.2 Arial;letter-spacing:1px;color:#48341c}.event-card .event-actions-row{margin-top:auto}
.event-card.interest-low{background:linear-gradient(#fff0d4,#e7d5ad)!important}.event-card.interest-low .event-scene{border-color:#46696c!important}
.event-card.interest-maybe{background:linear-gradient(120deg,#e3e1ccdd,#e5edf5bb),url('assets/content-frame.webp') center/cover!important}.event-card.interest-maybe .tcg-medallion{background:linear-gradient(125deg,#d5f1f3,#4c7b8a,#ecf5f0);color:#173742}.event-card.interest-maybe h3{background:linear-gradient(110deg,#254253,#567681,#293d54)!important}.event-card.interest-maybe .card-foil{inset:0;z-index:4;opacity:.4;mix-blend-mode:screen;background:linear-gradient(110deg,transparent 30%,#e5ffffb0 45%,transparent 60%)}
.event-card:not(.stay-card):not(.blockout-card).interest-solid{background:repeating-linear-gradient(125deg,#997132 0,#fff2b9 2px,#dbc18c 3px,#b79656 5px)!important;border-color:#987038!important}.interest-solid .tcg-medallion{background:linear-gradient(130deg,#463819,#d1a745,#fff1ae,#a97627);color:#362407}.event-card.interest-solid h3{background:linear-gradient(100deg,#30200e,#8b622e,#35240e)!important;border-color:#edcf75!important}.interest-solid h3 span{background:linear-gradient(#fffbe0,#dcb252 55%,#fff2b5);background-clip:text;color:transparent;text-shadow:none}.event-card.interest-solid .crew-ratings{box-shadow:inset 0 0 0 2px #fff7d1,inset 0 0 0 4px #a8823933!important}
.event-card.interest-favorite h3{background:linear-gradient(100deg,#263c62,#633f73,#13526a)!important;border-color:#aeece9!important}.interest-favorite .tcg-medallion{background:conic-gradient(#76d9e6,#f7c8ee,#f7f0b7,#8bbfe5,#76d9e6);color:#262341}.interest-favorite .tcg-edition{background:#ecf1ffe8;color:#263250}.event-card.interest-favorite .card-foil{inset:0;opacity:.48!important;mix-blend-mode:color!important;background:repeating-linear-gradient(125deg,#54d9ea44,#dc7ded77 17%,#f1e0a977 35%,#47c7df66 50%);background-size:220% 220%}
.event-card:not(.stay-card):not(.blockout-card).interest-legendary{padding:10px!important;border:2px solid #c39d44!important;background:#ead3a7 url('assets/event-card-special.webp') center/cover!important;box-shadow:inset 0 0 0 2px #fff4b4,inset 0 0 0 5px #281c3f,0 5px 12px #55376077!important}.event-card.interest-legendary h3{background:linear-gradient(115deg,#1a172e,#6e3459,#211f47)!important;border:3px double #f7d880!important;font-weight:900;letter-spacing:1px!important;text-align:center}.interest-legendary h3:before{content:'✦ THAILAND QUEST · COLLECTOR ✦';color:#f4d385;letter-spacing:1.5px}.interest-legendary h3 span{color:#ffebaa;background:linear-gradient(110deg,#fff9d0,#e4bc59 25%,#ffffdf 45%,#e9aede 65%,#a4e9f1 80%,#ffe3a1);background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #251421);text-shadow:none}.interest-legendary .tcg-medallion{background:conic-gradient(#fff0a1,#b56cb4,#6cbfcd,#fff0a1);color:#2e1840;border:4px double #fff8bd;box-shadow:0 0 0 2px #543c64,0 0 12px #f9d77988}.interest-legendary .tcg-sigil{color:#ffe5a1;filter:drop-shadow(0 0 4px #ee83cd)}.event-card.interest-legendary .card-foil{display:block!important;inset:0;z-index:4!important;opacity:.62!important;mix-blend-mode:color!important;background:repeating-linear-gradient(115deg,#ffe16b99 0%,#ff67b799 16%,#917affaa 32%,#45d6eaaa 48%,#6ee8a099 64%,#ffe16b99 80%);background-size:230% 200%;background-position:var(--foil-x,50%) var(--foil-y,40%);animation:foil-spectrum 10s ease-in-out infinite}.event-card.interest-legendary .crew-ratings{border:4px double #b99743!important;box-shadow:inset 0 0 0 2px #fff7d2!important;background:linear-gradient(#fff4dcec,#fff4dcec),url('assets/event-card-special.webp') center/cover!important}.interest-legendary .tcg-edition{background:#291e3aeE;color:#ffe3a0;border:1px solid #d8b563;padding:6px}.interest-legendary .rating{background:linear-gradient(125deg,#fff4c2,#d5b367);color:#3a203c;border:3px double #806025}.interest-legendary .rating.chosen{background:linear-gradient(135deg,#f6d263,#f5aeca,#a7e5e5);box-shadow:0 0 7px #f6d263}
@keyframes foil-spectrum{0%,100%{background-position:0% 35%}50%{background-position:100% 70%}}
body:not([data-card-density=full]) .event-card:not(.blockout-card){padding:7px!important}body:not([data-card-density=full]) .event-card h3{font-size:17px!important;line-height:1.1!important;min-height:39px;padding:6px!important}body:not([data-card-density=full]) .event-card h3:before{font-size:6px;letter-spacing:1px}body:not([data-card-density=full]) .event-card .event-description{font-size:12px!important;line-height:1.3!important;min-height:47px!important;max-height:47px;margin:5px 0!important;padding:6px!important}body:not([data-card-density=full]) .event-card .event-meta{font-size:10px!important;gap:4px;line-height:1.25}body:not([data-card-density=full]) .event-card .event-actions-row{gap:5px;display:flex}body:not([data-card-density=full]) .event-card button{font-size:12px!important;line-height:1.15;padding:7px 5px!important;min-height:32px;overflow-wrap:normal!important;word-break:normal!important}body:not([data-card-density=full]) .event-card .event-actions-row button{flex:1;white-space:normal}body:not([data-card-density=full]) .event-card .finish-label{font-size:9px!important;letter-spacing:1px!important}body:not([data-card-density=full]) .tcg-medallion{width:35px;height:35px;top:5px;right:5px}body:not([data-card-density=full]) .tcg-medallion b{font-size:17px}body:not([data-card-density=full]) .tcg-medallion small{font-size:5px}body:not([data-card-density=full]) .event-card .status-ribbon{font-size:11px;padding:6px 10px}body:not([data-card-density=full]) .tcg-edition{font-size:6px;letter-spacing:.5px}body:not([data-card-density=full]) .event-card .rating-row{font-size:11px}body:not([data-card-density=full]) .event-card .avatar{width:25px;height:25px}
.calendar-event strong,.calendar-event.overlapping strong{font-size:clamp(10px,calc(14px * var(--schedule-font-scale,1)),18px)!important}.calendar-event .event-time{font-size:clamp(9px,calc(11px * var(--schedule-font-scale,1)),14px)!important}.stack-picker{font-size:clamp(9px,calc(11px * var(--schedule-font-scale,1)),14px)!important}
.effects-off .card-foil{animation:none!important}@media(prefers-reduced-motion:reduce){.card-foil{animation:none!important}}

/* The chooser is a stationary target, excluded from global button motion. */
.stack-picker,.stack-picker:hover,.stack-picker:active,.stack-picker:focus,.stack-picker:focus-visible{transform:none!important;translate:none!important;scale:none!important;rotate:none!important;transition:none!important;animation:none!important;min-height:30px;height:30px;line-height:18px;white-space:nowrap;padding:4px 9px;z-index:100!important}.stack-picker:hover{background:#51416b!important}
.event-card:not(.stay-card):not(.blockout-card).interest-legendary h3{background:linear-gradient(110deg,#12172a,#4c213b,#19132c)!important;border:3px double #f8d985!important;border-radius:8px 1px 8px 1px;text-align:center;box-shadow:inset 0 0 0 1px #372035,0 2px 0 #30172c;padding:8px 10px!important}.event-card.interest-legendary h3 span{font-family:VoyageCollector,Georgia,serif!important;font-style:italic;font-weight:700;font-size:1.12em;letter-spacing:-.3px;line-height:1.1;text-transform:none!important;display:block;background:linear-gradient(110deg,#fff6c8,#e8bb56 24%,#fffbe0 42%,#e9b9ef 69%,#ade8f5 83%,#ffe397);background-clip:text;color:transparent;filter:drop-shadow(1px 2px 0 #090c16)}.event-card.interest-legendary h3:before{content:'✦  SPECIAL EDITION  ✦';font-size:7px;letter-spacing:2px;color:#eecb78}
.collector-seal{position:absolute;top:55px;right:12px;z-index:6;writing-mode:vertical-rl;font:700 16px/1 VoyageJapanese,serif;letter-spacing:3px;padding:6px 4px;background:#8f2038ed;color:#fff0c5;border:2px double #efca8a;border-radius:2px;box-shadow:0 2px 4px #0008}.interest-legendary [lang=ja]{font-family:VoyageJapanese,serif}.interest-legendary .finish-label span{float:right;font-size:13px;letter-spacing:3px}.interest-legendary .ratings-heading{padding:5px 8px!important;min-height:30px!important;background:#172238!important;border:1px solid #9f8044;border-radius:4px;color:#ffe6a2!important}.interest-legendary .ratings-heading small{color:#edd599!important}.interest-legendary .ratings-heading strong>small{font-size:11px!important;margin-left:7px;letter-spacing:2px}
.event-card:not(.stay-card):not(.blockout-card).interest-legendary .crew-ratings{background:#061325 url('assets/content-frame.webp') center/100% 100% no-repeat!important;border:0!important;border-radius:5px!important;padding:22px 18px 16px!important;box-shadow:0 2px 4px #20132577!important;color:#ffe9b2!important}.interest-legendary .rating-row{border-color:#c7a66755!important;padding:4px 1px}.interest-legendary .rating-row.my-vote{background:#24344ddd!important;outline:1px solid #d9b15b}.interest-legendary .rating-row.my-vote>span:after{color:#e4c77d}.interest-legendary .rating{clip-path:none!important;border-radius:5px 0 5px 0!important;background:linear-gradient(125deg,#1b2944,#435273,#172438)!important;color:#ffe4a2!important;border:3px double #ae9156!important;box-shadow:inset 0 0 0 1px #121d36,0 2px 2px #0009!important}.interest-legendary .rating:disabled{opacity:.8;filter:none}.interest-legendary .rating.chosen{background:linear-gradient(130deg,#fff2ad,#dbab55,#ffe29b)!important;color:#23152d!important;box-shadow:0 0 6px #ffe4a766!important}.event-card.interest-legendary .event-description{border:3px double #a58443!important;background:linear-gradient(#faf0dfe8,#f2dfc4eb),url('assets/event-card-special.webp') center/cover!important;border-radius:8px 1px 8px 1px!important}.event-card.interest-legendary .event-meta{background:#14243deF!important;color:#ffe9b6;border:3px double #ad8c46!important}.event-card.interest-legendary .event-actions-row button{border:3px double #c5a35b!important;background:linear-gradient(120deg,#152941,#4a3154,#172439)!important;color:#ffeab2!important;border-radius:5px;clip-path:none!important;box-shadow:inset 0 0 0 1px #111a2c}.event-card.interest-legendary .event-details{background:#f9edceeF;padding:3px 6px;border:1px solid #b8954c}
body:not([data-card-density=full]) .event-card.interest-legendary h3 span{font-size:1.1em!important}body:not([data-card-density=full]) .collector-seal{top:42px;right:8px;font-size:10px;padding:4px 3px;letter-spacing:1px}body:not([data-card-density=full]) .event-card.interest-legendary .crew-ratings{padding:17px 10px 12px!important}body:not([data-card-density=full]) .interest-legendary .ratings-heading strong>small{font-size:9px!important}.event-card.interest-legendary .event-scene{min-height:0}
.page>.toolbar{position:relative;z-index:50}.compact-guide[open]{z-index:100!important}.compact-guide .event-details-body{z-index:110!important}.guide-topic{display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:start;margin:0 0 12px!important;font-size:14px;line-height:1.45}.guide-topic:last-child{margin-bottom:0!important}.guide-topic-icon{display:grid;place-items:center;width:25px;height:25px;color:#875119;border:1px solid #b78b48;border-radius:50%;background:#ffefb9;font-size:18px}.compact-guide .event-details-body{max-height:65vh;overflow:auto}

/* V29: responsive content flow; artwork is never a repeating page frame. */
.main-frame{background:#fff0cb url('assets/panel-frame.webp') center/640px auto repeat;padding-inline:clamp(20px,4.4vw,70px);overflow:visible}
.main-content{min-width:0;padding:18px 12px 0}
.app-shell{overflow:clip}
.toolbar{flex-wrap:wrap;align-items:center;gap:12px}
.toolbar>*{min-width:0}
.event-toolbar input{flex:1 1 240px;max-width:none}
.event-toolbar .status-filters{flex:1 1 330px}
.compact-guide{margin:0;min-width:110px}
.add-cluster{max-width:100%;flex:none}
.secondary-toolbar{flex-wrap:wrap;font-size:14px;line-height:1.5}
.voyage-actions{flex-wrap:wrap;gap:12px;align-items:center}
.density-tools label{display:flex;align-items:center;gap:8px;white-space:normal}
.density-tools select{min-width:0}
.event-list{grid-template-columns:repeat(3,minmax(0,1fr))}
.event-card h3{overflow-wrap:anywhere}
.event-card .event-description{line-height:1.45!important}
body:not([data-card-density=full]) .event-card .event-description{max-height:none;min-height:0!important;font-size:14px!important}
.event-card .rating-options{margin-right:0;gap:6px;flex:none}
.event-card .rating-row>span:not(.avatar){overflow-wrap:anywhere}
.event-card .event-meta{font-size:14px!important;line-height:1.4!important}
.timeline-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.timeline-caption>strong{line-height:1.3;min-width:0}
.timeline-caption>span{grid-column:1/-1;max-width:none;margin:0;font-size:14px;line-height:1.4}
.timeline-caption .calendar-zoom{display:flex;align-items:center;gap:8px;flex:none}
.calendar-scroll{max-width:100%;height:min(65dvh,650px);overscroll-behavior-x:contain}
.schedule-shell{grid-template-columns:minmax(210px,25%) minmax(0,1fr)}
.schedule-help,.section-caption{font-size:14px;line-height:1.5}
.week-nav-controls{flex-wrap:wrap}
.budget-summary-grid{background:transparent;gap:16px}
.summary-card{aspect-ratio:512/683;mix-blend-mode:normal}
.metric-value{left:10%;right:8%;top:63%;bottom:19%;container-type:inline-size}
.metric-value strong{font-size:clamp(18px,15cqw,38px);max-width:100%;letter-spacing:-.5px}
.metric-value small{white-space:normal;text-align:center;font-size:12px}
.budget-tabbar{flex-wrap:wrap;gap:12px}
.budget-tabs{min-width:0;flex:1 1 360px;gap:6px}
.budget-tabs button{min-width:0;font-size:16px}
.backup-controls{font-size:14px;justify-content:center}
.backup-controls button{font-size:14px}
.app-footer{flex-wrap:wrap;font-size:14px;line-height:1.5}
.sync-status{font-size:14px}
input,select,textarea{font-size:16px;min-width:0}
@media(max-width:1100px){
.event-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.schedule-shell{grid-template-columns:1fr}.timeline-panel{order:1}.unscheduled-panel{order:2;min-height:0}
.budget-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
.navigation-deck{gap:8px}.nav-btn{font-size:clamp(14px,1.7vw,22px);padding:4px}
}
@media(max-width:760px){
.main-frame{padding-inline:18px;padding-bottom:70px}
.main-content{padding:16px 8px 0}
.event-list{grid-template-columns:1fr}
.toolbar .primary{font-size:18px;white-space:normal}
.event-toolbar input{flex-basis:100%;order:3}
.status-filters{width:100%;order:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.status-filters button{font-size:16px;min-height:44px;padding:8px 4px}
.schedule-toolbar h2{width:100%}
.schedule-toolbar .day-controls{width:100%;order:2;display:flex}
.day-controls select{flex:1;max-width:none;width:auto}
.schedule-view-toggle{width:100%;flex:1 1 100%;order:3}
.schedule-view-toggle button{flex:1;font-size:16px;min-height:44px}
.schedule-toolbar .add-cluster{order:4;width:100%;margin:0}
.schedule-toolbar .add-cluster>.primary{flex:1}
.week-nav-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.week-nav-controls button{padding:8px 3px;font-size:14px;min-height:44px}
.timeline-caption{grid-template-columns:1fr}.timeline-caption>strong{font-size:21px}.timeline-caption .calendar-zoom{justify-self:start}.timeline-caption>span{font-size:14px;max-width:none}
.voyage-progress{display:flex;flex-wrap:wrap;gap:8px}.voyage-progress>div{max-width:100%;min-width:0}
.summary-card{aspect-ratio:512/683}
.budget-panel h3{font-size:24px;line-height:1.3}
.dialog-header h2{font-size:26px}
.compact-guide>.event-details-body{position:fixed;left:24px;right:24px;top:25dvh;width:auto;max-height:55dvh}
.event-card .event-actions-row button{font-size:16px!important;min-height:44px}
.event-card .rating{width:36px;height:36px;min-height:36px;font-size:20px!important}
.event-card .rating-row{font-size:14px;gap:6px}
.event-card .rating-row>span:not(.avatar){font-size:14px}
.event-card .ratings-heading{font-size:14px}
.blockout-card{min-height:0;padding-top:24px}
.blockout-card h3{margin-top:36px}
}
@media(max-width:600px){
.masthead{height:auto;aspect-ratio:1586/440;background-size:100% auto;background-position:center top}
.mobile-trip-label{top:auto;bottom:10px;left:20px;font-size:11px;max-width:55%;line-height:1.4}
.crew-button{top:auto;bottom:7px;right:18px}
#header-crew .avatar{width:24px;height:24px}
.navigation-deck nav{height:auto;min-height:68px;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top-width:2px}
.nav-btn{font-size:16px;line-height:1.2;min-height:50px;padding:5px 4px}.nav-btn span{font-size:20px;line-height:1;margin-bottom:4px}
.main-frame{margin-bottom:0;min-height:calc(100dvh - 110px);padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.active-character{width:auto;max-width:100%;margin:0 0 16px;min-height:44px;font-size:14px;padding:8px 12px}
.toolbar h2{font-size:36px;line-height:1.15;margin-bottom:8px}
.event-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.event-toolbar h2{grid-column:1}.event-toolbar .compact-guide{grid-column:2}
.event-toolbar .add-cluster{grid-column:1/-1;width:100%;margin:0}
.event-toolbar .add-cluster>.primary{flex:1}
.event-toolbar input,.event-toolbar .status-filters{grid-column:1/-1;width:100%}
.secondary-toolbar>span{max-width:none;flex:1 1 180px}
.voyage-actions select,.density-tools{max-width:100%}
.budget-summary-grid{gap:8px}
.metric-value strong{font-size:clamp(17px,15cqw,30px)}
.metric-value small{font-size:12px}
.budget-tabs{flex-basis:100%;order:3}.budget-tabs button{font-size:14px}
.app-toast{bottom:calc(85px + env(safe-area-inset-bottom))}
.backup-controls{flex-direction:column;align-items:stretch}.backup-controls small{line-height:1.5}
.isolated-ship{width:14%;right:1%;height:76%}.sea-wave{width:20%}.sky-bird{width:5%}
}
@media(hover:none){button:hover,.event-card:hover{transform:none}}

/* V31: content-aware frames, consistent stays, and crew speech bubbles. */
.app-shell{max-width:none;width:100%;overflow:clip}
.main-frame{background:#fff0cb url('assets/panel-frame.webp') center/640px auto repeat}
.living-painting{overflow:hidden!important;inset:0;isolation:isolate;pointer-events:none}
.masthead{isolation:isolate}
.summary-card{mix-blend-mode:multiply}
.metric-value{background:transparent}
.metric-value small{font-size:clamp(10px,6cqw,13px);line-height:1.15;margin-top:3px}
.active-character{float:none!important;display:inline-flex;align-items:center;gap:6px;width:auto!important;max-width:210px;min-height:40px;margin:0!important;padding:4px 8px;font:14px/1.2 Arial;flex:none;text-align:left}
.active-character .avatar{width:30px;height:30px}
.active-character small{display:block;font-size:11px;color:#78562d;margin-top:2px}
.page{clear:none}.toolbar{gap:10px}.toolbar h2{flex:none}
.budget-toolbar{height:auto;margin:0 0 16px}
.budget-toolbar h2.sr-only{position:relative;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal}
.event-card.stay-card{border:2px solid #176567!important;border-image:none!important;border-radius:12px;padding:10px!important;background:#fff0cf!important;box-shadow:inset 0 0 0 3px #d4ba77,0 4px 8px #422e2433!important;color:#351b09!important}
.event-card.stay-card h3{background:#075e62;color:#fff5d9!important;padding:10px!important;border-block:3px double #bc9b57;font-size:25px;min-height:0;line-height:1.15}
.event-card.stay-card h3:before{content:'BASE CAMP'}
.event-card.stay-card .event-description{color:#351b09!important;min-height:0!important;flex:none;padding:9px!important;background:#fff6df!important;border:1px solid #b99a65}
.event-card.stay-card .event-meta,.event-card.stay-card .ratings-heading,.event-card.stay-card .ratings-heading small,.event-card.stay-card .rating-row{color:#351b09!important}
.event-card.stay-card .event-details,.event-card.stay-card a{color:#075e62!important}
.event-card.stay-card .crew-ratings{background:#fff3dc!important;border:3px double #b9985f!important}
.event-card.stay-card .finish-label{background:#fff1cb;color:#351b09}
.event-card.stay-card .event-scene{overflow:hidden;border:2px solid #176567;border-radius:6px}
.event-card.stay-card:after,.event-card.stay-card:before{display:none!important}
.crew-comment-anchor{position:relative;flex:none;display:inline-flex}
.crew-comment-trigger{position:relative;padding:0!important;border:0;background:none;box-shadow:none;min-height:36px!important;width:36px;display:grid;place-items:center;overflow:visible}
.crew-comment-trigger .avatar{width:34px!important;height:34px!important}
.comment-count,.comment-plus,.vote-count{position:absolute;right:-3px;bottom:-2px;display:grid;place-items:center;min-width:17px;height:17px;padding:1px 3px;background:#ac1130;color:white;border:1px solid #fff5d6;border-radius:50%;font:700 11px/1 Arial}
.comment-plus{background:#075e62}.comic-bubble{display:block;position:relative;border:2px solid #553315;border-radius:14px 14px 14px 3px;background:#fff9e8;color:#351b09;padding:12px;font:14px/1.45 Arial;box-shadow:3px 3px 0 #55331522;overflow-wrap:anywhere}
.comic-bubble b,.comic-bubble>span,.comic-bubble small{display:block}.comic-bubble small{font-size:11px;color:#725231;margin-top:5px}
.comment-hover{display:none;position:absolute;left:42px;bottom:0;width:min(240px,60vw);z-index:150;pointer-events:none}
.comment-hover>span{max-height:160px;overflow:hidden;white-space:pre-wrap}
.crew-comment-anchor:hover .comment-hover,.crew-comment-anchor:focus-within .comment-hover{display:block}
.rating-row:has(.crew-comment-anchor:hover),.rating-row:has(.crew-comment-anchor:focus-within){position:relative;z-index:50}
.crew-comment-trigger:hover{transform:none!important}
.crew-conversation{display:grid;gap:16px;max-height:40dvh;overflow:auto;margin:0 0 20px;padding:4px}
.comment-message{display:flex;gap:10px;align-items:flex-start;margin:12px 0}.comment-message>.avatar{width:40px;height:40px}.comment-message>.comic-bubble,.comment-message>div{flex:1;min-width:0}.comment-message p{white-space:pre-wrap;margin:7px 0}.highlight-comment .comic-bubble{border-color:#077b9d}
.comment-error{color:#a2172d;font:14px Arial}.unvoted-list{display:grid;gap:8px;margin:20px 0}.unvoted-list button{text-align:left}
#header-crew{display:flex;gap:3px;align-items:center}.crew-head-person{position:relative;display:block}.crew-head-person>button{border:0;box-shadow:none;background:none;padding:0;min-height:0;position:relative}.crew-head-person>button[aria-current]{border-radius:50%;outline:2px solid #b00c2d;outline-offset:1px}.vote-count{bottom:0;right:0}
.crew-head-bubble{display:none;position:absolute;right:0;top:100%;width:190px;z-index:200;text-align:left}.crew-head-person:hover .crew-head-bubble,.crew-head-person:focus-within .crew-head-bubble{display:block}
.crew-head-person>button:hover{transform:none!important}.crew-button{display:block;overflow:visible}.navigation-deck{z-index:100}
.artwork-inbox{position:fixed;bottom:18px;right:18px;z-index:80;box-shadow:0 3px 12px #0004;max-width:calc(100% - 36px);font:14px Arial}
.artwork-history{width:min(900px,calc(100% - 24px))}.art-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.art-history-grid article{min-width:0;padding:8px;border:1px solid #bb9457;background:#fff2d3}.art-history-grid img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#ead8b8}.art-history-grid button{margin:4px;min-height:44px}.art-history-grid p{font:14px/1.4 Arial;margin:10px 4px}
dialog form>label{font-size:14px}dialog .dialog-header{position:sticky;top:-20px;z-index:10;background:#fff0cb;padding:10px 0}.dialog-header h2{overflow-wrap:anywhere;min-width:0}
@media(max-width:1100px){.event-toolbar .status-filters{flex-basis:100%}.crew-button{display:block}.navigation-deck{left:18%;right:8%}.navigation-deck #header-crew .avatar{width:clamp(26px,4vw,45px)}}
@media(max-width:760px){
 .main-frame{padding-inline:12px;border-inline:3px double #b38a4c;border-top:0;overflow:visible}
 .voyage-rail,.frame-knot{display:none!important}.main-content{padding:14px 2px 0}.voyage-footer-art{opacity:.5}
 .active-character{font-size:12px;max-width:150px;min-height:36px}.active-character small{font-size:10px}.active-character .avatar{width:26px;height:26px}
 .event-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
 .event-toolbar h2{grid-column:1;grid-row:1}.event-toolbar .active-character{grid-column:2;grid-row:1;justify-self:end}
 .event-toolbar .compact-guide{grid-column:1;grid-row:2;min-width:0;justify-self:start}
 .event-toolbar .add-cluster{grid-column:2;grid-row:2;width:auto}.event-toolbar input{grid-column:1/-1;grid-row:3}
 .event-toolbar .status-filters{grid-column:1/-1;grid-row:4}.event-toolbar .primary{font-size:16px;padding:8px 10px}
 .schedule-toolbar h2{width:auto;flex:1}.schedule-toolbar .active-character{margin-left:auto!important}.schedule-toolbar .compact-guide{order:1}.schedule-toolbar .day-controls{order:2}
 .budget-toolbar{display:flex;justify-content:space-between}
 .summary-card{mix-blend-mode:multiply}.metric-value strong{font-size:clamp(17px,14cqw,32px)}
 .rating-row{position:relative}.crew-comment-anchor .comment-hover{display:none!important}
 .crew-head-bubble{display:none!important}
 dialog .dialog-header{top:-12px}.art-history-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
 .masthead{aspect-ratio:1586/440;overflow:hidden}.living-painting{height:62%;bottom:auto!important}.navigation-deck{position:static}
 .crew-button{position:absolute;right:12px;bottom:5px;top:auto;padding:2px 4px;background:#ffebbd;border:1px solid #b9883c;border-radius:20px}
 .navigation-deck #header-crew .avatar{width:24px;height:24px}.vote-count{font-size:9px;min-width:13px;height:13px;right:-2px;bottom:-3px}
 .mobile-trip-label{left:12px;max-width:53%;font-size:10px}
 .event-toolbar h2,.schedule-toolbar h2,.budget-toolbar h2{font-size:32px}
 .artwork-inbox{bottom:calc(82px + env(safe-area-inset-bottom));right:12px}
 .main-frame{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
 .budget-summary-grid{gap:6px}.metric-value small{font-size:clamp(9px,6cqw,12px)}
}
#voyage-guide-dialog{width:min(640px,calc(100% - 24px));max-height:88dvh}
#voyage-guide-dialog .guide-topic{grid-template-columns:34px minmax(0,1fr);line-height:1.5;margin-bottom:18px!important}
#voyage-guide-dialog .guide-topic-icon{width:30px;height:30px;background:none;border:0}
#voyage-guide-dialog .detail-icon{width:30px;height:30px;display:block;margin:0}
#voyage-guide-dialog [data-done-guide]{width:100%;min-height:44px}
.event-card .rating-row>.crew-comment-anchor{flex:0 0 36px!important;font-weight:normal;min-width:36px}
.rating-row.my-vote>.crew-comment-anchor:after{content:none!important}
.rating-row>span:not(.crew-comment-anchor){text-align:left}
@media(min-width:761px){
 .event-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:14px}
 .event-toolbar h2{grid-column:1;grid-row:1}.event-toolbar .active-character{grid-column:2;grid-row:1}.event-toolbar .compact-guide{grid-column:3;grid-row:1}.event-toolbar .add-cluster{grid-column:4;grid-row:1}
 .event-toolbar input{grid-column:1/3;grid-row:2;width:100%}.event-toolbar .status-filters{grid-column:3/5;grid-row:2;width:100%}.event-toolbar .status-filters button{flex:1;min-height:44px}
}
/* Keep fixed mobile navigation above the content stacking context. */
.masthead{z-index:100;overflow:visible}
/* Blend the illustration's white paper into the page and cover baked-in amounts. */
.summary-card{background-color:#fff0cb;background-blend-mode:multiply;mix-blend-mode:normal}
.metric-value{background:#ffe1a2}
@media(max-width:760px){
 .schedule-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
 .schedule-toolbar h2{grid-column:1;grid-row:1;min-width:0}
 .schedule-toolbar .active-character{grid-column:2;grid-row:1;justify-self:end}
 .schedule-toolbar .compact-guide{grid-column:1/-1;grid-row:2}
 .schedule-toolbar .day-controls{grid-column:1/-1;grid-row:3;min-width:0}
 .schedule-toolbar .schedule-view-toggle{grid-column:1/-1;grid-row:4;min-width:0}
 .schedule-toolbar .add-cluster{grid-column:1/-1;grid-row:5;min-width:0}
}
/* V31 final review: compact discovery controls and contextual week navigation. */
.schedule-date-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:6px 0 10px}
.schedule-date-bar:has(#week-label.hidden):has(#week-nav-controls.hidden){display:none}
.schedule-date-bar .section-caption{margin:0;font-size:16px}
.schedule-date-bar .week-nav-controls{margin:0;gap:6px}
.schedule-date-bar .week-nav-controls button{font-size:16px;min-height:44px;padding:6px 12px}
@media(max-width:760px){
 .event-toolbar{gap:8px;margin-bottom:10px}
 .event-toolbar .status-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
 .event-toolbar .status-filters button{font-size:13px;min-height:44px;padding:6px 2px;white-space:nowrap}
 .event-toolbar .add-cluster .primary{font-size:16px;padding:7px 10px;min-height:44px}
 .event-toolbar .add-cluster .add-menu-toggle{min-height:44px}
 .event-toolbar input{min-height:44px;height:44px;padding:8px 10px;font-size:16px}
 .event-toolbar .compact-guide{margin:0;max-width:100%}
 .event-toolbar .compact-guide summary{font-size:12px;min-height:44px;padding:6px 8px}
 .event-toolbar .compact-guide summary:before{width:22px;height:22px}
 .schedule-date-bar{gap:8px;justify-content:center}
 .schedule-date-bar .section-caption{font-size:14px;text-align:center}
 .schedule-date-bar .week-nav-controls{flex:1 1 100%;max-width:430px}
 .schedule-date-bar .week-nav-controls button{font-size:14px;padding:6px 3px}
}
@media(max-width:360px){.event-toolbar .status-filters button{font-size:12px}}
@media(max-width:760px){.event-toolbar .status-filters button{font-family:Arial,sans-serif;letter-spacing:0}}
@media(max-width:760px){.event-toolbar .status-filters{grid-template-columns:minmax(44px,.65fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.15fr)}}

.event-card.stay-card h3{background:#075e62!important}
.event-card.stay-card .card-foil{display:none}

/* V32 — shared headings and deliberate, click-only Help. */
.page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 18px}
.page-heading h2{position:relative;margin:0;padding:0 0 9px;font-size:clamp(32px,3.6vw,56px);line-height:1.12;text-transform:uppercase;letter-spacing:-1px}
.page-heading h2:after{content:'';position:absolute;left:0;bottom:0;width:min(190px,85%);height:3px;background:#b6132c;clip-path:polygon(0 15%,100% 0,84% 60%,0 100%)}
.page-heading-actions{display:flex;align-items:center;gap:10px}
.page-heading .active-character{width:150px!important;max-width:150px;min-height:44px;margin:0!important}
.voyage-help-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:7px 12px;border:1px solid #996b2e;border-radius:6px;background:linear-gradient(#fff7dc,#e8c17a);color:#48270f;box-shadow:inset 0 1px 0 #fffce9,0 3px 0 #926732,0 5px 7px #5a351c25;font:700 14px Arial,sans-serif;white-space:nowrap}
.voyage-help-button:hover{filter:brightness(1.06);transform:translateY(-1px)}
.voyage-help-button:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #fffce9,0 1px 0 #926732}
.voyage-help-button .detail-icon{width:25px;height:25px}
#voyage-guide-dialog .guide-topic-icon .detail-icon{background-image:url('assets/scene-discovery.webp')}
#voyage-guide-dialog [data-close-guide]{min-width:44px;min-height:44px;flex:none}
.event-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;margin:0 0 12px;min-height:0}
.event-toolbar input{grid-column:1;grid-row:1;max-width:none;width:100%;min-width:0}
.event-toolbar .status-filters{grid-column:2;grid-row:1;width:auto;min-width:0}
.event-toolbar .add-cluster{grid-column:3;grid-row:1;width:auto;margin:0}
.schedule-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(230px,1fr);align-items:center;gap:10px;margin:0 0 10px;min-height:0}
.schedule-toolbar .day-controls{grid-column:1;grid-row:1;min-width:0;width:100%;max-width:310px}
.schedule-toolbar .day-controls select{width:auto;min-width:0;flex:1}
.schedule-toolbar .schedule-view-toggle{grid-column:2;grid-row:1;width:auto;min-width:0;display:flex}
.schedule-toolbar .schedule-view-toggle button{min-width:60px;min-height:44px;font-size:16px;padding:7px 12px}
.schedule-toolbar .add-cluster{grid-column:3;grid-row:1;margin:0;justify-self:end;width:auto}
.schedule-toolbar .add-cluster .primary{font-size:20px;padding:8px 14px}
.schedule-date-bar.date-range-only{margin:4px 0 8px;min-height:0;justify-content:flex-start}
.schedule-date-bar.date-range-only:has(#week-label.hidden){display:none}
.schedule-progress-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 16px}
.schedule-progress-row .voyage-progress{margin:0;gap:8px;flex:1 1 auto;width:auto;display:flex;flex-wrap:wrap}
.schedule-progress-row .week-nav-controls{margin:0;display:flex;gap:6px;flex:none}
.schedule-progress-row .week-nav-controls button{min-height:44px;padding:6px 12px;font-size:16px}
/* Stays have their own teal finish, independent of votes, status or creation path. */
.event-card.stay-card{background:repeating-linear-gradient(135deg,transparent 0 22px,#d9bb7310 22px 24px),linear-gradient(140deg,#08797b,#064f56)!important;color:#fff3d9!important;border:12px solid transparent!important;border-image:url('assets/panel-frame.webp') 85 stretch!important;border-radius:0;padding:8px!important;box-shadow:0 4px 8px #422e2433!important;align-self:start!important;height:auto!important;min-height:0}
.event-card.stay-card h3{background:none!important;color:#fff3d9!important;border:0!important;padding:8px 0!important;margin:0!important;text-shadow:none;min-height:0;font-size:27px;line-height:1.15}
.event-card.stay-card h3:before{content:none!important}
.event-card.stay-card .event-scene{border-color:#c4a365;border-radius:3px;margin-bottom:10px}
.event-card.stay-card .status-ribbon{display:flex;align-items:center;gap:6px;background:#065d62!important;color:#fff3d9!important;text-shadow:none!important;font:700 16px/1.2 Georgia,serif!important}
.event-card.stay-card .status-ribbon .detail-icon{width:26px;height:26px}
.event-card.stay-card .event-meta{background:transparent!important;color:#fff3d9!important;border-block:1px solid #b89758;padding:8px 0;margin:6px 0;font-size:13px}
.event-card.stay-card .event-description{background:transparent!important;color:#fff3d9!important;border:0!important;padding:5px 0!important;font:16px/1.45 Georgia,serif;min-height:0;flex:none}
.event-card.stay-card .finish-label{background:#054b51;border:1px solid #b79757;color:#ffebbd;letter-spacing:1px}
.event-card.stay-card .ratings-heading,.event-card.stay-card .ratings-heading small{color:#fff3d9!important}
.event-card.stay-card .crew-ratings{background:#075359!important;border:3px double #b69a59!important;box-shadow:none!important;padding:8px}
.event-card.stay-card .rating-row{color:#fff3d9!important;border-color:#bb9b6144}
.event-card.stay-card .rating-row.my-vote{color:#351b09!important;background:#fff0c6}
.event-card.stay-card .rating{background:#fff0cf;color:#351b09;border-color:#c4a767}
.event-card.stay-card .rating.chosen{background:#ffd744;color:#351b09}
.event-card.stay-card .event-details,.event-card.stay-card a{color:#fff0c6!important}
.event-card.stay-card .event-details-body{color:#351b09}
.event-card.stay-card .event-details-body a{color:#075e62!important}
.event-card.stay-card .card-foil,.event-card.stay-card .tcg-edition{display:none!important}
.event-card.stay-card .event-actions-row{margin-top:10px}
@media(max-width:1100px){
 .event-toolbar{grid-template-columns:minmax(0,1fr) auto}
 .event-toolbar input{grid-column:1;grid-row:1}.event-toolbar .add-cluster{grid-column:2;grid-row:1}
 .event-toolbar .status-filters{grid-column:1/-1;grid-row:2;width:100%}
 .schedule-toolbar{grid-template-columns:minmax(0,1fr) auto}
 .schedule-toolbar .schedule-view-toggle{grid-column:1;grid-row:1;width:max-content}
 .schedule-toolbar .add-cluster{grid-column:2;grid-row:1}
 .schedule-toolbar .day-controls{grid-column:1/-1;grid-row:2;max-width:360px}
}
@media(max-width:760px){
 .event-toolbar{gap:8px}
 .event-toolbar .primary{font-size:15px;padding:7px 10px;white-space:nowrap}
 .event-toolbar input{height:44px;padding:8px;min-width:0}
 .event-toolbar .status-filters{grid-template-columns:minmax(44px,.65fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.15fr)}
 .schedule-toolbar{gap:8px}
 .schedule-toolbar .schedule-view-toggle button{font-size:14px;padding:6px 10px;min-height:44px}
 .schedule-toolbar .day-controls button{min-width:36px;min-height:44px;padding:6px}
 .schedule-toolbar .day-controls select{min-height:44px;font-size:15px}
 .schedule-toolbar .add-cluster .primary{font-size:16px;padding:7px 10px;min-height:44px}
 .schedule-progress-row{gap:8px;margin:8px 0 14px}
 .schedule-progress-row .voyage-progress{gap:6px}
 .schedule-progress-row .week-nav-controls{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .schedule-progress-row .week-nav-controls button{font-size:14px;padding:6px 3px}
 .voyage-progress>div{padding:5px 7px;min-height:36px}
 .voyage-progress .detail-icon{width:23px;height:23px}
 .voyage-progress span:not(.detail-icon){font-size:11px}
 .voyage-progress strong{font-size:20px}
}
/* Only phones receive the new generated banner and slim continuous rope frame. */
@media(max-width:600px){
 .app-shell{border:12px solid transparent;border-image:url('assets/panel-frame.webp') 100 stretch round;background:#fff0cb url('assets/panel-frame.webp') center/640px auto repeat;filter:none;overflow:clip}
 .masthead{height:calc((100vw - 24px)/3 + 14px);aspect-ratio:auto;margin:0;isolation:auto;background:#fff0cb url('assets/hero-approved.webp') center top/100% auto no-repeat}
 .masthead:after{content:'';position:absolute;left:0;right:0;bottom:0;height:15px;background:linear-gradient(transparent,#fff0cb);pointer-events:none;z-index:-1}
 .masthead .living-painting,.masthead .sea-life{display:none!important}
 .mobile-trip-label{left:4px;bottom:7px;max-width:48%;font-size:9px;letter-spacing:1px}
 .crew-button{right:3px;bottom:2px;top:auto;padding:2px 3px}
 .navigation-deck #header-crew .avatar{width:23px;height:23px}
 .main-frame{border:0!important;border-image:none!important;padding:0 8px calc(100px + env(safe-area-inset-bottom));min-height:calc(100dvh - 150px);margin:0;background:#fff0cb url('assets/panel-frame.webp') center/640px auto repeat}
 .main-content{padding:12px 0 0}
 .page-heading{grid-template-columns:1fr;gap:8px;margin-bottom:12px}
 .page-heading h2{font-size:30px;text-transform:none;padding-bottom:7px}
 .page-heading-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .page-heading .active-character{max-width:none;width:100%!important;min-height:44px;font-size:12px}
 .page-heading .active-character small{font-size:10px}
 .voyage-help-button{min-height:44px;width:100%;font-size:12px;padding:6px 8px}
 .voyage-help-button .detail-icon{width:23px;height:23px}
 .event-toolbar .add-cluster>.primary{font-size:14px;padding:6px 8px}
 .event-toolbar .add-menu>summary{min-height:44px;padding:6px 9px}
 .event-toolbar .status-filters button{font-size:12px}
 .schedule-toolbar{grid-template-columns:minmax(0,1fr);gap:7px}
 .schedule-toolbar .schedule-view-toggle{grid-column:1;grid-row:1;width:100%}
 .schedule-toolbar .schedule-view-toggle button{flex:1;font-size:14px}
 .schedule-toolbar .day-controls{grid-column:1;grid-row:2;max-width:none;width:100%}
 .schedule-toolbar .add-cluster{grid-column:1;grid-row:3;width:100%}
 .schedule-toolbar .add-cluster>.primary{flex:1;min-height:44px;font-size:16px}
 .schedule-toolbar .add-menu>summary{min-height:44px;padding:6px 12px}
 .schedule-help{font-size:12px;line-height:1.4;margin:6px 0 10px}
 .schedule-date-bar.date-range-only .section-caption{font-size:13px}
 .event-card.stay-card{border-width:10px!important;padding:6px!important}
 .event-card.stay-card .status-ribbon{font-size:14px!important}
 .event-card.stay-card h3{font-size:24px}
 .event-card.stay-card .event-meta{font-size:12px;flex-wrap:wrap}
 .event-card.stay-card .event-description{font-size:15px}
}
.voyage-help-button .detail-icon{background-image:url('assets/scene-discovery.webp')}
.event-card.stay-card{background-clip:padding-box!important}
@media(min-width:761px){
 .schedule-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
 .schedule-progress-row .voyage-progress{min-width:0}
}
@media(max-width:600px){
 .app-shell{border-image-source:url('assets/panel-frame.webp')}
 .masthead:after{z-index:0}
 .mobile-trip-label{z-index:2}
 .main-frame{background-image:linear-gradient(#fff0cb,transparent 28px),url('assets/panel-frame.webp');background-size:100% 100%,640px auto;background-repeat:no-repeat,repeat}
}
/* Dream Picks: two straw-hat must-do tokens, separate from rating totals. */
.straw-hat{display:inline-block;width:28px;height:22px;flex:none;vertical-align:middle;overflow:visible}
.crew-dream-hat{width:21px;height:16px;margin-left:5px;filter:drop-shadow(0 1px 0 #69441455)}
.dream-picks-reminder{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;min-height:36px;margin:-5px 0 12px;padding:5px 9px;text-align:left;background:#fff2d1;border:1px solid #b79048;border-radius:6px;box-shadow:0 2px 0 #a67d3d33;font:12px/1.35 Arial,sans-serif}
.dream-picks-reminder.tokens-available{background:linear-gradient(110deg,#fff5cd,#f7d98a);border-color:#a6772e}
.dream-picks-reminder b{color:#633811}
.dream-pick-actions{position:relative;z-index:7;margin:8px 0}
.dream-pick-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:6px 8px!important;font:700 13px/1.3 Arial,sans-serif!important;background:#fff3d3;color:#603817;border:1px solid #a7823e;box-shadow:inset 0 1px #fff,0 2px 0 #77531d44}
.dream-pick-button.chosen{background:linear-gradient(110deg,#ffe478,#efbb40);color:#4a2b0d;border:2px solid #a84c23;box-shadow:inset 0 0 0 1px #fff1a8,0 2px 0 #7d411f}
.dream-pick-summary{display:flex;align-items:center;gap:6px;font:700 12px/1.4 Arial,sans-serif;background:#fff0b9;color:#603719;border:1px solid #b78838;border-radius:4px;padding:5px 7px;margin:4px 0 7px;position:relative;z-index:7;overflow-wrap:anywhere}
.dream-pick-summary .straw-hat{width:24px;height:18px}
#dream-picks-dialog{width:min(600px,calc(100% - 24px))}
#dream-picks-dialog h2{font-size:27px;line-height:1.2}
#dream-picks-dialog [data-close-dream]{min-width:44px;min-height:44px}
.dream-token-pair{display:flex;justify-content:center;gap:20px;margin:20px 0}
.dream-token-pair>span{display:flex;flex-direction:column;align-items:center;padding:10px 18px;border:2px solid #b18336;border-radius:12px;background:#ffe9a4;font:700 13px Arial;gap:8px}
.dream-token-pair .straw-hat{width:64px;height:44px}
.dream-token-pair .spent{opacity:.5;filter:grayscale(.7);background:#eee1c8}
.dream-pick-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #be9855;padding:12px 0}
.dream-pick-list strong{min-width:0;overflow-wrap:anywhere}.dream-pick-list button{flex:none;min-height:44px;font-size:14px}
@media(max-width:600px){
 .dream-picks-reminder{width:100%;min-height:40px;font-size:11px;margin:0 0 10px;padding:5px 7px}
 .dream-picks-reminder .straw-hat{width:25px}
 #dream-picks-dialog h2{font-size:23px}
 .dream-pick-list article{align-items:flex-start;flex-direction:column;gap:6px}
}

/* V33 — Vivre is an Events-only special action alongside Help and character. */
.page-heading-actions{display:flex;align-items:center;gap:10px}
.page-heading-actions .dream-picks-reminder{position:relative;display:flex;align-items:center;justify-content:center;width:160px;max-width:none;min-height:58px;margin:0;padding:8px 10px 8px 42px;border:0;border-radius:6px;background:transparent url('assets/content-frame.webp') center/100% 135% no-repeat;box-shadow:none;color:#fff3cb;font:700 15px/1.1 Georgia,serif;text-align:center;filter:drop-shadow(0 3px 2px #4e331f66)}
.page-heading-actions .dream-picks-reminder b{color:#fff4cf;font-size:15px;white-space:nowrap;text-shadow:0 1px 2px #000}
.page-heading-actions .dream-picks-reminder small{display:block;font:700 12px/1.2 Arial,sans-serif;color:#f9d573;margin-top:3px}
.page-heading-actions .dream-picks-reminder.tokens-available{background-image:url('assets/content-frame.webp');border:0}
.page-heading-actions .dream-picks-reminder:hover{filter:brightness(1.15) drop-shadow(0 3px 4px #cb962777)}
.page-heading-actions .active-character{flex:none;order:0}
.dream-pick-actions{margin:10px 0}
body .event-card .dream-pick-actions .dream-pick-button{position:relative;display:flex;align-items:center;justify-content:center;min-height:62px!important;padding:10px 12px 10px 28%!important;border:0!important;border-radius:5px;background:transparent url('assets/content-frame.webp') center/100% 135% no-repeat;color:#fff4cf!important;box-shadow:none;font-family:Georgia,serif!important;filter:drop-shadow(0 3px 2px #30221166)}
body .event-card .dream-pick-actions .dream-pick-button b{display:block;font:700 17px/1.1 Georgia,serif;color:#fff4cf;text-shadow:0 1px 2px #000}
body .event-card .dream-pick-actions .dream-pick-button small{display:block;font:11px/1.3 Arial,sans-serif;color:#f3d38e;margin-top:3px}
body .event-card .dream-pick-actions .dream-pick-button.chosen{filter:drop-shadow(0 0 5px #f3b72c99)}
body .event-card .dream-pick-actions .dream-pick-button:hover{filter:brightness(1.15) drop-shadow(0 3px 3px #c9a24288)}
.event-card.has-vivre{outline:2px solid #e9bd4a;outline-offset:1px}
.vivre-aura{position:absolute;inset:2px;z-index:14;border:2px solid #ffde7bbd;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 10px #f5c95455,0 0 6px #f3bf3d66;background:linear-gradient(120deg,transparent 15%,#ffeba915 20%,transparent 25%,transparent 75%,#99e9d815 80%,transparent 85%)}
.event-card.has-vivre .event-scene{position:relative}
.event-card.has-vivre .event-scene .tcg-sigil{display:none}
.vivre-seal{position:absolute;right:4px;bottom:2px;width:clamp(62px,22%,94px);aspect-ratio:1;z-index:11;pointer-events:none;filter:drop-shadow(0 2px 2px #1e130a99)}
.vivre-seal img{display:block;width:100%;height:100%;object-fit:contain}
.vivre-seal b{position:absolute;right:0;bottom:0;min-width:24px;padding:2px 4px;border:1px solid #ffd775;border-radius:20px;background:#781627;color:#fff6d8;font:700 12px/1.2 Arial;text-align:center}
.dream-pick-summary{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:linear-gradient(110deg,#0a253a,#17465a,#17283c);border:1px solid #ddb858;border-radius:3px;padding:7px 9px;color:#fff4ce;font:12px/1.35 Arial,sans-serif;box-shadow:inset 0 0 0 1px #f6dda333}
.vivre-bound-label{color:#ffdd80;font:700 12px/1.2 Georgia,serif;letter-spacing:1.5px}
.dream-token-pair>span{padding:8px 14px;background:linear-gradient(145deg,#183b50,#0b1c34);border-color:#cdb16c;color:#fff1c1;box-shadow:0 3px 8px #38281844}
.dream-token-pair img{display:block;width:82px;height:88px;object-fit:contain;filter:drop-shadow(0 2px 5px #ffc34166)}
.dream-token-pair .spent{opacity:.55;filter:grayscale(.65);background:#16313c}
.calendar-context{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0 5px 10px;padding:8px 10px;border-block:1px solid #c39e5c88;background:#f7e1ad66;color:#725030}
.calendar-context #week-label{margin:0;font:700 12px/1.4 Arial,sans-serif}
.calendar-context .schedule-help{flex:1 1 270px;margin:0;font:12px/1.4 Arial,sans-serif}
.vivre-binding-fx{position:fixed;left:50%;top:42%;width:210px;height:240px;z-index:350;pointer-events:none;display:flex;align-items:center;justify-content:center;flex-direction:column;filter:drop-shadow(0 0 20px #ffd565aa)}
.vivre-binding-fx>img{position:relative;width:190px;height:200px;object-fit:contain;z-index:2}
.vivre-binding-fx>strong{position:relative;z-index:2;background:#7b142e;color:#fff1bc;border:2px solid #ffe292;border-radius:3px;box-shadow:0 4px 0 #3a1222;padding:8px 14px;font:700 22px/1 Georgia;white-space:nowrap}
.vivre-burst-rays{position:absolute;inset:-35px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffde8855 0deg 6deg,transparent 6deg 30deg);mask-image:radial-gradient(circle,#000 0 25%,transparent 70%);animation:vivre-rays-turn 1.3s ease-out both}
.vivre-reveal .vivre-aura{animation:vivre-gold-bloom 1.7s ease-out both}
.vivre-reveal .vivre-seal{animation:vivre-seal-arrive 1.5s ease-out both}
@keyframes vivre-gold-bloom{0%{box-shadow:inset 0 0 4px #f5c95455}40%{box-shadow:inset 0 0 35px #ffdf81bb,0 0 18px #f3bf3daa}100%{box-shadow:inset 0 0 10px #f5c95455,0 0 6px #f3bf3d66}}
@keyframes vivre-seal-arrive{0%{transform:scale(.3) rotate(-20deg);opacity:0}60%{transform:scale(1.15) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes vivre-rays-turn{from{transform:rotate(-20deg) scale(.7)}to{transform:rotate(30deg) scale(1.1)}}
.effects-off .vivre-binding-fx{display:none}
.effects-off .vivre-aura,.effects-off .vivre-seal{animation:none!important}
@media(prefers-reduced-motion:reduce){.vivre-binding-fx{display:none}.vivre-aura,.vivre-seal{animation:none!important}}
@media(max-width:1000px){.page-heading{grid-template-columns:1fr}.page-heading-actions{justify-self:end}}
@media(max-width:600px){
 .page-heading-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;justify-self:stretch}
 .page-heading-actions:has(.dream-picks-reminder){grid-template-columns:repeat(3,minmax(0,1fr))}
 .page-heading-actions .active-character{width:100%!important;max-width:none;min-width:0;min-height:54px;gap:4px;padding:5px}
 .page-heading-actions .active-character .avatar{width:22px;height:22px;flex:none}
 .page-heading-actions .active-character>span:not(.avatar){min-width:0;font-size:11px;overflow-wrap:anywhere}
 .page-heading-actions .active-character small{font-size:8px;line-height:1.2}
 .page-heading-actions .voyage-help-button{min-height:54px;min-width:0;font-size:11px;padding:5px 4px}
 .page-heading-actions:has(.dream-picks-reminder) .voyage-help-button{flex-direction:column;gap:2px}
 .page-heading-actions .voyage-help-button .detail-icon{width:20px;height:20px}
 .page-heading-actions .dream-picks-reminder{min-width:0;width:100%;min-height:54px;margin:0;padding:7px 4px 7px 24%;font-size:11px;line-height:1.1}
 .page-heading-actions .dream-picks-reminder b{font-size:11px;letter-spacing:-.2px;white-space:nowrap}
 .page-heading-actions .dream-picks-reminder small{font-size:10px;margin-top:2px}
 .calendar-context{gap:4px;margin-inline:0;padding:7px}
 .calendar-context #week-label,.calendar-context .schedule-help{font-size:11px}
 body .event-card .dream-pick-actions .dream-pick-button b{font-size:15px}
 body .event-card .dream-pick-actions .dream-pick-button small{font-size:10px}
 .vivre-seal{width:76px}
 .vivre-binding-fx{width:180px;height:210px}.vivre-binding-fx>img{width:160px;height:175px}.vivre-binding-fx>strong{font-size:19px}
}

/* V34: art frames use nine-slice borders; emblems never stretch with the frame. */
body .page-heading-actions .dream-picks-reminder,
body .event-card .dream-pick-actions .dream-pick-button{
 background:#062547!important;border:10px solid transparent!important;
 border-image:url('assets/panel-frame.webp') 110 fill / 10px / 0 stretch!important;
 border-radius:0;box-shadow:0 3px 0 #72502a66;filter:none;
 display:flex;gap:6px;align-items:center;justify-content:center;padding:2px 5px!important;
}
body .page-heading-actions .dream-picks-reminder{width:148px;height:46px;min-height:46px;flex:none;margin:0;font-size:13px}
body .page-heading-actions .dream-picks-reminder::before,
body .event-card .dream-pick-actions .dream-pick-button::before{content:'';display:block;flex:0 0 27px;width:27px;height:27px;background:url('assets/capture-token.webp') center/contain no-repeat}
body .page-heading-actions .dream-picks-reminder b{font-size:13px;line-height:1.1}
body .page-heading-actions .dream-picks-reminder small{font-size:11px;line-height:1.1;margin-top:2px}
body .page-heading-actions .voyage-help-button,
body .page-heading-actions .active-character{min-height:46px;height:46px;box-shadow:inset 0 1px 0 #fff7d9,0 3px 0 #9c703c,0 4px 5px #55351b33;border:1px solid #aa7f40;border-radius:5px;background:linear-gradient(#fff6da,#edc987);padding:5px 10px}
body .page-heading-actions button:active{transform:translateY(2px);box-shadow:inset 0 1px 3px #64441b33}
body .page-heading-actions button:focus-visible{outline:3px solid #087bac;outline-offset:3px}
body .event-card .dream-pick-actions .dream-pick-button{min-height:56px!important}
body .event-card .dream-pick-actions .dream-pick-button::before{flex-basis:34px;width:34px;height:34px}
body .event-card .dream-pick-actions .dream-pick-button b{font-size:16px}
body .event-card .dream-pick-actions .dream-pick-button.chosen{box-shadow:0 2px 0 #986126,0 0 7px #e7bf5766;filter:none}
body .event-card .dream-pick-summary{display:flex;flex-direction:row;align-items:center;gap:9px;min-height:74px;padding:7px 9px;border:10px solid transparent;border-image:url('assets/panel-frame.webp') 110 fill / 10px / 0 stretch;background:#61182a;color:#fff5d8;box-shadow:0 3px 0 #5c291c77;border-radius:0;margin:7px 0 10px}
.vivre-bound-copy{min-width:0;display:flex;flex-direction:column;gap:4px;font:12px/1.35 Arial,sans-serif}
body .vivre-bound-label{font:700 15px/1.2 Georgia,serif;letter-spacing:1px;color:#ffe69c;text-shadow:0 1px 2px #300612}
.vivre-supporters{display:grid;grid-template-columns:repeat(2,28px);gap:2px;flex:none}
.vivre-supporters:has(.avatar:only-child){grid-template-columns:38px}
.vivre-supporters .avatar{width:28px;height:28px;border:2px solid #ffdc7b;box-shadow:0 1px 4px #0008;transform:none!important}
.vivre-supporters .avatar:only-child{width:38px;height:38px}
.vivre-seal{width:60px;max-width:19%;}
body .stay-card .event-details,body .stay-card .event-details-body,
body .stay-card .event-details-body p,body .stay-card .event-details-body .muted,
body .stay-card .event-details-body .small,body .stay-card .event-details-body .artwork-note,
body .stay-card .event-details-body strong,body .stay-card .event-details-body .expense-line{color:#fff5d6!important;opacity:1}
body .stay-card .event-details-body a{color:#ffe29a!important;text-decoration:underline}
body .stay-card .event-details-body button{color:#38210c!important;background:linear-gradient(#fff5d7,#eccb8b)!important;text-shadow:none}
body .stay-card .event-details-body{background:#074a51;padding:10px;border-radius:4px;line-height:1.5}
body .stay-card .event-details-body .artwork-note{font-size:12px}
.stay-voting-field{background:#e3f1e7;padding:12px;border:1px solid #699b85;border-radius:4px}
.stay-voting-field>span{display:flex;align-items:center;gap:8px}
.stay-voting-field input{width:20px;height:20px;flex:none}
.voting-disabled .rating-row{grid-template-columns:40px 1fr;min-height:44px}
.voting-disabled .ratings-heading small{color:inherit}
.schedule-progress-row .day-controls{margin-left:auto;max-width:390px;display:flex;gap:5px;width:100%}
.schedule-progress-row .day-controls button{min-width:40px;min-height:44px;padding:5px}
.schedule-progress-row .day-controls select{min-width:0;max-width:none;flex:1;font-size:16px;min-height:44px}
.schedule-toolbar .add-cluster{grid-row:1!important}
.discovery-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 18px}
.discovery-controls>#kind-filter{width:auto;max-width:100%;min-height:40px}
.discovery-controls .density-tools{margin:0;max-width:100%;width:auto}
.discovery-controls .density-tools label{display:flex;align-items:center;gap:7px;font-size:15px}
.discovery-controls #card-density{max-width:210px;width:auto;min-width:0;min-height:40px}
.discovery-controls .more-tools{margin-left:auto}
#events-page>.voyage-actions{display:none}
@media(max-width:760px){
 .schedule-toolbar .add-cluster{grid-row:2!important}
 .schedule-progress-row .day-controls{max-width:none;margin:0}
}
@media(max-width:600px){
 .page-heading{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px;align-items:center;margin-bottom:12px}
 .page-heading h2{font-size:clamp(23px,6.3vw,30px);padding:0 0 6px;margin:0;letter-spacing:-.6px}
 .page-heading-actions,.page-heading-actions:has(.dream-picks-reminder){width:100%;display:flex;justify-content:flex-end;gap:4px;min-width:0}
 body .page-heading-actions .dream-picks-reminder{flex:1 1 75px;min-width:0;width:auto;max-width:94px;height:44px;min-height:44px;padding:1px 0!important;border-width:5px!important;border-image-width:6px!important;gap:1px}
 body .page-heading-actions .dream-picks-reminder::before{flex-basis:18px;width:18px;height:23px}
 body .page-heading-actions .dream-picks-reminder b{font:700 11px/1.1 Georgia,serif;white-space:nowrap;letter-spacing:0}
 .page-heading-actions .vivre-word{display:none}
 body .page-heading-actions .dream-picks-reminder small{font:700 10px/1.1 Arial,sans-serif}
 body .page-heading-actions .voyage-help-button{flex:1 1 60px;max-width:82px;width:auto;min-width:0;min-height:44px;height:44px;padding:3px 5px;font:700 11px/1.15 Arial,sans-serif}
 body .page-heading-actions .voyage-help-button .detail-icon{display:none}
 body .page-heading-actions .active-character{flex:1 1 64px;min-width:0;max-width:110px;width:auto!important;height:44px;min-height:44px;padding:3px 4px;gap:3px}
 body .page-heading-actions .active-character .avatar{width:20px;height:20px;flex:none}
 body .page-heading-actions .active-character>span:not(.avatar){font:700 11px/1.15 Arial,sans-serif;overflow-wrap:anywhere;min-width:0;max-height:36px;overflow:hidden}
 body .page-heading-actions .active-character small{display:none}
 #event-count,#events-page>.secondary-toolbar{display:none}
 .discovery-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:6px 0 14px}
 .discovery-controls>#kind-filter{width:100%;font-size:12px;min-width:0;min-height:38px;padding:5px}
 .discovery-controls .more-tools{grid-column:2;grid-row:1;margin:0;font-size:11px}
 .discovery-controls .more-tools>summary{min-height:38px;display:flex;align-items:center;white-space:nowrap;padding:4px}
 .discovery-controls .density-tools{grid-column:1/-1;margin:0}
 .discovery-controls .density-tools label{font-size:12px}
 .discovery-controls #card-density{flex:1;max-width:none;font-size:12px;min-height:36px;padding:5px}
 body .vivre-bound-label{font-size:14px;letter-spacing:.6px}
 body .event-card .dream-pick-summary{padding:6px;gap:7px}
 .vivre-bound-copy{font-size:11px}
 .vivre-seal{width:54px}
}
@media(max-width:600px){body .page-heading-actions .voyage-help-button,body .page-heading-actions .voyage-help-button>span{white-space:normal;min-width:0}}
/* V35: one filter vocabulary and a compact Vivre action in the active crew row. */
#events-page>.secondary-toolbar,#event-count{display:none!important}
body .event-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
body .event-toolbar #event-search{grid-column:1;grid-row:1;width:100%}
body .event-toolbar .add-cluster{grid-column:2;grid-row:1}
body .discovery-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:8px;align-items:end;margin:10px 0 18px}
.discovery-field{display:flex;flex-direction:column;gap:4px;min-width:0;font:700 11px/1.2 Arial,sans-serif;color:#6c4928}
body .discovery-field select{width:100%!important;max-width:none!important;min-width:0!important;height:40px;min-height:40px;padding:5px 24px 5px 8px;font:14px Arial,sans-serif;color:#38210d;background-color:#fff5dc;border:1px solid #b99051;border-radius:4px;margin:0}
body .discovery-reset{height:40px;min-height:40px;padding:5px 9px;font:700 12px Arial,sans-serif;border:1px solid #b99051;border-radius:4px;background:#f3dfb4}
body .event-card .rating-row.has-vivre-action{display:grid;grid-template-columns:30px minmax(25px,1fr) 74px auto;gap:5px;align-items:center}
body .event-card .rating-row.has-vivre-action>.crew-comment-anchor .avatar{width:28px;height:28px}
body .event-card .rating-row.has-vivre-action>span:not(.crew-comment-anchor){font-size:12px;overflow-wrap:anywhere}
body .event-card .rating-row.has-vivre-action .crew-dream-hat{display:none}
body .event-card .rating-row.has-vivre-action .rating-options{gap:4px;margin:0}
body .event-card .rating-row.has-vivre-action .rating{width:28px;height:30px;min-height:30px;padding:0!important;font-size:18px!important}
body .event-card .rating-row .dream-pick-actions{margin:0;min-width:0}
body .event-card .rating-row .dream-pick-actions .dream-pick-button{min-height:40px!important;height:40px;width:100%;padding:2px 3px!important;gap:2px;border-width:5px!important;border-image-width:5px!important;filter:saturate(.12);box-shadow:0 1px 2px #34271844;transition:filter .15s,box-shadow .15s;font:700 10px/1.15 Arial,sans-serif!important;color:#fff3d6!important;white-space:normal}
body .event-card .rating-row .dream-pick-actions .dream-pick-button::before{width:16px;height:20px;flex-basis:16px}
body .event-card .rating-row .dream-pick-actions .dream-pick-button.chosen{filter:saturate(.2)}
@media(hover:hover){body .event-card .rating-row .dream-pick-actions .dream-pick-button:hover{filter:saturate(1);box-shadow:0 0 5px #489fff88}}
body .event-card .rating-row .dream-pick-actions .dream-pick-button:is(.confirming,:focus-visible){filter:saturate(1);outline:2px solid #4bafdb;outline-offset:1px}
body .event-card .dream-pick-summary{display:grid;grid-template-columns:1fr;gap:5px;padding:0;border:0;border-image:none;background:none;box-shadow:none;min-height:0;margin:7px 0 9px}
.vivre-supporter-panel{position:relative;isolation:isolate;display:flex;align-items:center;gap:8px;min-height:68px;padding:5px 12px 5px 7px;border:1px solid #d9b366;border-radius:4px;overflow:hidden;color:#fff5d8;background:#6a1426}
.vivre-supporter-panel::before{content:'';position:absolute;inset:0;z-index:-1;border:8px solid transparent;border-image:url('assets/panel-frame.webp') 110 fill / 8px / 0 stretch;pointer-events:none}
.crew-color-0::before{filter:none}.crew-color-1::before{filter:hue-rotate(40deg)}.crew-color-2::before{filter:hue-rotate(115deg)}.crew-color-3::before{filter:hue-rotate(285deg)}
.vivre-character{display:block;width:60px;height:60px;object-fit:contain;flex:none;filter:drop-shadow(0 1px 2px #140d1988)}
body .vivre-supporter-panel .vivre-bound-label{font-size:14px;letter-spacing:.8px}
.vivre-supporter-panel .vivre-bound-copy{font-size:12px;min-width:0;overflow-wrap:anywhere}
#vivre-confirm-dialog{width:min(450px,calc(100% - 20px))}
#vivre-confirm-dialog h2{font-size:25px}
#vivre-confirm-dialog p{font:14px/1.5 Arial,sans-serif}
#vivre-confirm-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px}
#vivre-confirm-dialog button{min-height:44px;font-size:15px}
#vivre-confirm-dialog [data-vivre-error]{color:#9d1627}
.vivre-confirm-preview{display:flex;align-items:center;gap:12px;min-height:76px;padding:12px;border:9px solid transparent;border-image:url('assets/panel-frame.webp') 110 fill / 9px / 0 stretch;background:#062547;color:#fff4cf}
.vivre-confirm-preview img{width:45px;height:45px;object-fit:contain}.vivre-confirm-preview strong{min-width:0;overflow-wrap:anywhere;font-size:18px}
@media(max-width:1000px){body .discovery-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 body .discovery-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0 14px}
 body .discovery-field select{height:38px;min-height:38px;font-size:12px}
 body .discovery-reset{height:38px;min-height:38px;font-size:12px}
 .discovery-field{font-size:10px;gap:3px}
 body .event-card .rating-row.has-vivre-action{grid-template-columns:27px minmax(22px,1fr) 62px auto;gap:4px}
 body .event-card .rating-row.has-vivre-action .rating{width:25px}
 body .event-card .rating-row.has-vivre-action .rating-options{gap:3px}
 body .event-card .rating-row.has-vivre-action>span:not(.crew-comment-anchor){font-size:11px}
 body .event-card .rating-row .dream-pick-actions .dream-pick-button{height:44px;min-height:44px!important;font-size:10px!important}
 body .event-card .rating-row .dream-pick-actions .dream-pick-button::before{display:none}
 .vivre-character{width:56px;height:56px}.vivre-supporter-panel{min-height:64px}
 body .vivre-supporter-panel .vivre-bound-label{font-size:13px}
}
@media(min-width:361px) and (max-width:600px){body .discovery-controls{grid-template-columns:repeat(3,minmax(0,1fr))}body .discovery-field select{font-size:11px;padding-left:6px;padding-right:20px}body .discovery-reset{font-size:11px;padding:4px}}
body .event-card .rating-row.has-vivre-action{grid-template-columns:36px minmax(25px,1fr) 74px auto}
@media(max-width:600px){body .event-card .rating-row.has-vivre-action{grid-template-columns:36px minmax(22px,1fr) 62px auto}}
/* V36: the hat card is a fourth, icon-only action immediately after rating 3. */
body .event-card .rating-row.has-vivre-action{grid-template-columns:36px minmax(22px,1fr) auto 44px;gap:4px}
body .event-card .rating-row .dream-pick-actions .dream-pick-button{display:grid;place-items:center;width:44px;height:44px;min-height:44px!important;padding:4px!important;border:0!important;border-image:none!important;border-radius:50%;background:none!important;box-shadow:none!important;filter:none!important;transition:transform .15s;transform:none}
body .event-card .rating-row .dream-pick-actions .dream-pick-button::before{display:none!important;content:none}
body .event-card .rating-row .dream-pick-actions .dream-pick-button img{display:block;width:34px;height:34px;object-fit:contain;opacity:.65;filter:saturate(.35);transition:filter .15s,opacity .15s,transform .15s;pointer-events:none}
body .event-card .rating-row .dream-pick-actions .dream-pick-button.chosen img{opacity:1;filter:saturate(1) drop-shadow(0 0 3px #d9a323);transform:scale(1.05)}
@media(hover:hover){body .event-card .rating-row .dream-pick-actions .dream-pick-button:hover{transform:translateY(-1px)}body .event-card .rating-row .dream-pick-actions .dream-pick-button:hover img{opacity:1;filter:saturate(1) drop-shadow(0 1px 2px #a17a39);transform:scale(1.08)}}
body .event-card .rating-row .dream-pick-actions .dream-pick-button:active{transform:translateY(1px)}
body .event-card .rating-row .dream-pick-actions .dream-pick-button:active img{transform:scale(.94)}
body .event-card .rating-row .dream-pick-actions .dream-pick-button:is(.confirming,:focus-visible) img{opacity:1;filter:saturate(1) drop-shadow(0 0 3px #d9a323)}
body .event-card .rating-row .dream-pick-actions .dream-pick-button:focus-visible{outline:2px solid #087bac;outline-offset:1px}
body .event-card .rating-row .dream-pick-actions .dream-pick-button.confirming:not(:focus-visible){outline:none}
.effects-off .dream-pick-button,.effects-off .dream-pick-button img{transition:none!important}
@media(prefers-reduced-motion:reduce){body .dream-pick-button,body .dream-pick-button img{transition:none!important}}
/* V37: identical vote columns, with a reserved hat-card column on every row. */
body .event-card .crew-ratings .rating-row{display:grid!important;grid-template-columns:36px minmax(0,1fr) 104px 44px!important;align-items:center;gap:4px!important;min-height:44px}
body .event-card .crew-ratings .rating-row>.crew-comment-anchor{grid-column:1}
body .event-card .crew-ratings .rating-row>span:not(.crew-comment-anchor){grid-column:2;min-width:0;overflow-wrap:anywhere}
body .event-card .crew-ratings .rating-options{grid-column:3;display:grid!important;grid-template-columns:repeat(3,32px);gap:4px!important;margin:0!important;width:104px}
body .event-card .crew-ratings .rating-options .rating{box-sizing:border-box;display:grid;place-items:center;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px;max-height:32px;padding:0!important;border-radius:50%!important;clip-path:none!important;font-size:19px!important;line-height:1!important;aspect-ratio:1}
body .event-card .crew-ratings .dream-pick-actions{grid-column:4}
body .event-card.voting-disabled .crew-ratings .rating-row{grid-template-columns:36px minmax(0,1fr)!important}
#schedule-count-dialog{width:min(430px,calc(100% - 20px))}
#schedule-count-dialog h2{font-size:25px}
#schedule-count-dialog p{font:15px/1.5 Arial,sans-serif}
#schedule-count-dialog button{min-width:44px;min-height:44px}
#schedule-count-dialog [data-done-count]{width:100%}
@media(max-width:760px){
 body .schedule-progress-row .voyage-progress{display:grid;grid-template-columns:1.25fr 1fr 1fr;width:100%;gap:5px;min-width:0}
 body .schedule-progress-row .voyage-progress>div{display:flex;align-items:center;gap:3px;min-width:0;min-height:44px;padding:4px;border-radius:6px}
 body .schedule-progress-row .voyage-progress .detail-icon{width:16px;height:16px;flex:0 0 16px}
 body .schedule-progress-row .voyage-progress>div>span:not(.detail-icon):not(.count-tip){font:10px/1.1 Arial,sans-serif;min-width:0;white-space:normal}
 body .schedule-progress-row .voyage-progress strong{font-size:15px;line-height:1.1;white-space:nowrap;margin-left:auto;flex:none}
 body .schedule-progress-row .voyage-progress .count-tip{display:none!important}
}
@media(max-width:600px){
 body .event-card .crew-ratings .rating-row{grid-template-columns:36px minmax(0,1fr) 98px 44px!important}
 body .event-card .crew-ratings .rating-options{grid-template-columns:repeat(3,30px);width:98px}
 body .event-card .crew-ratings .rating-options .rating{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;max-width:30px;max-height:30px;font-size:18px!important}
 body .discovery-controls .discovery-field select,body .discovery-controls .discovery-field #card-density{height:38px!important;min-height:38px!important;width:100%!important;max-width:none!important;padding:5px 20px 5px 6px!important;box-sizing:border-box}
}
/* V38: use platform-independent wheel art, uniform controls and a TCG title bridge. */
.voyage-wheel{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex:none}
.nav-btn .voyage-wheel{width:22px;height:22px}.tcg-sigil .voyage-wheel{width:22px;height:22px}
body .event-card .event-scene{margin-bottom:0!important;overflow:hidden}
body .event-card .event-scene>.scene{aspect-ratio:1.75!important;display:block;width:100%}
body .event-card .custom-scene img{object-fit:cover;width:100%;height:100%}
body .event-card:not(.blockout-card) h3{margin:-27px 0 9px!important;padding:13px 17px 10px!important;min-height:58px;z-index:13!important;border:0!important;clip-path:polygon(0 9px,7% 9px,10% 0,90% 0,93% 9px,100% 9px,100% calc(100% - 9px),93% calc(100% - 9px),90% 100%,10% 100%,7% calc(100% - 9px),0 calc(100% - 9px));box-shadow:inset 0 2px #d9c083,inset 0 -2px #d9c083}
body .event-card:not(.blockout-card) h3:before{margin-bottom:4px}
body .event-card .vivre-seal{bottom:28px}.event-card .tcg-sigil{bottom:29px!important}
body .event-card .event-story{position:relative;z-index:6;border:1px solid #b99a60;border-radius:4px;background:#fff3d8;color:#351b09;margin:7px 0 12px;overflow:hidden}
body .event-card .event-story .event-meta{margin:0!important;padding:8px 9px!important;border:0!important;border-bottom:3px double #b99a60!important;background:transparent!important;color:inherit!important;box-shadow:none!important;flex-wrap:wrap}
body .event-card .event-story .event-description{margin:0!important;padding:10px!important;min-height:0!important;max-height:none!important;border:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;box-shadow:none!important}
body .event-card.stay-card .event-story{background:#084f55;color:#fff3d8}
body .event-card .finish-label{margin:3px 0 0!important}
body .event-card .crew-ratings .dream-pick-button:disabled{opacity:1;cursor:default;transform:none!important}
body .event-card .crew-ratings .dream-pick-button:disabled:not(.chosen) img{opacity:.35;filter:saturate(.2);transform:none}
body .event-card .crew-ratings .dream-pick-button:disabled.chosen img{opacity:.9;transform:none;filter:saturate(1) drop-shadow(0 0 2px #d9a323)}
body .page-heading-actions .dream-picks-reminder{box-shadow:0 3px 0 #8b632e,0 4px 5px #55351b33!important;transition:transform .15s,filter .15s,box-shadow .15s;transform:none}
@media(hover:hover){body .page-heading-actions .dream-picks-reminder:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 4px 0 #8b632e,0 5px 6px #55351b33!important}}
body .page-heading-actions .dream-picks-reminder:active{transform:translateY(2px);box-shadow:0 1px 0 #8b632e!important}
body .discovery-controls .discovery-field select{flex:0 0 40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;appearance:none;-webkit-appearance:none;line-height:normal;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23654321' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:12px 8px;background-position:right 7px center;padding-right:24px!important}
@media(max-width:600px){
 body .discovery-controls .discovery-field select,body .discovery-controls .discovery-field #card-density{flex:0 0 38px!important;height:38px!important;min-height:38px!important;max-height:38px!important}
 body .page-heading-actions .active-character{flex:0 1 65px;max-width:76px;padding:3px!important}
 body .page-heading-actions .active-character .avatar{width:18px;height:18px}
 body .page-heading-actions .active-character>span:not(.avatar){font-size:10px}
 body .page-heading-actions .voyage-help-button{display:flex;flex-direction:row!important;gap:3px;flex:1 1 76px;max-width:96px;padding:3px!important;font-size:10px}
 body .page-heading-actions .voyage-help-button .detail-icon{display:block!important;width:16px;height:18px;flex:0 0 16px}
 body .event-card:not(.blockout-card) h3{font-size:24px;padding:12px 13px 10px!important}
}
/* Keep the title bridge consistent across Full and both Compact modes. */
body[data-card-density] #event-list .event-card:not(.blockout-card) .event-scene{margin-bottom:0!important}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3{margin:-27px 0 9px!important;min-height:58px;padding:13px 17px 10px!important}
body .event-card .default-scene svg{display:block;width:100%;height:100%;position:absolute;inset:0}
body .event-card .default-scene{position:relative;overflow:hidden}
body[data-card-density] #event-list .event-card.stay-card>h3{background:#075e62!important;color:#fff3d9!important}

/* V39: a centered type tab, flat plaque base and unobstructed drag grip. */
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3{
 clip-path:polygon(0 20px,28% 20px,33% 0,67% 0,72% 20px,100% 20px,100% 100%,0 100%);
 border-radius:0!important;text-align:center!important;padding:5px 12px 12px!important;
 box-shadow:inset 0 -1px #d9c083;min-height:64px;
}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:before{
 content:'ADVENTURE'!important;display:block!important;font:8px/10px Arial,sans-serif!important;
 letter-spacing:2px!important;margin:0 auto 12px!important;text-align:center;color:#f4dba4;
}
body[data-card-density] #event-list .event-card.stay-card>h3:before{content:'BASE CAMP'!important}
body[data-card-density] #event-list .event-card .drag-handle{
 bottom:36px!important;top:auto!important;left:7px;width:32px;height:32px;min-height:32px;
 display:grid;place-items:center;padding:0;background:#342412bd;color:#fff4d5;border:1px solid #d7bf84;
 border-radius:4px;z-index:15;line-height:1;font-size:24px;cursor:grab;
}
body[data-card-density] #event-list .event-card .event-story .event-meta{border:0!important;box-shadow:none!important;padding:9px 9px 5px!important}
body .event-card .story-divider{display:flex;justify-content:center;align-items:center;height:16px;margin:0 auto;width:58%;max-width:210px;color:#a68243;pointer-events:none}
.story-divider svg{width:100%;height:16px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
body .event-card.stay-card .story-divider{color:#ddc084}
body .event-card .event-story .event-description{padding-top:6px!important}
.activity-mark{display:inline-block;font-family:Georgia,serif;font-size:1.1em;line-height:1;vertical-align:-.02em}
@media(max-width:600px){
 body #events-page .page-heading-actions .active-character{flex:1 1 76px;max-width:86px;min-width:58px;padding:3px 5px!important}
 body[data-card-density] #event-list .event-card .drag-handle{width:36px;height:36px}
}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:before{color:#fff0c5!important;text-shadow:0 1px 1px #1d182b!important}

/* V40: finer title trim and consistent metadata typography. */
body[data-card-density] #event-list .event-card{--card-meta-font:13px}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:after{
 content:'';position:absolute;inset:0;pointer-events:none;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 21' preserveAspectRatio='none'%3E%3Cpath d='M0 20.5H28L33 .5H67L72 20.5H100' fill='none' stroke='%23d9bc78' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") top center/100% 21px no-repeat;
 box-shadow:inset 0 -1px #d9bc78;
}
body[data-card-density] #event-list .event-card .finish-label{
 font-size:var(--card-meta-font)!important;line-height:1.2!important;
 padding:3px 8px!important;min-height:26px!important;letter-spacing:1.2px!important;
}
body[data-card-density] #event-list .event-card .finish-label span{font-size:inherit!important}
body[data-card-density] #event-list .event-card .event-story .event-meta{
 display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
 font-size:var(--card-meta-font)!important;line-height:1.3!important;gap:6px!important;align-items:start;
}
body[data-card-density] #event-list .event-card .event-meta>span{min-width:0;overflow-wrap:anywhere;text-align:left}
body[data-card-density] #event-list .event-card .event-meta>span:nth-child(2){text-align:center}
body[data-card-density] #event-list .event-card .event-meta>span:last-child{text-align:right}
body[data-card-density] #event-list .event-card .event-actions-row{margin-top:10px!important}
@media(max-width:600px){body[data-card-density] #event-list .event-card{--card-meta-font:12px}}

/* V41: stronger gold detailing, quiet finish labels and a distinct map marker. */
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:after{
 background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%2028%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23efd28c%22%20stroke-width%3D%221.8%22%20vector-effect%3D%22non-scaling-stroke%22%3E%3Cpath%20vector-effect%3D%22non-scaling-stroke%22%20d%3D%22M0%2021H28L33%201H67L72%2021H100%22/%3E%3Cpath%20vector-effect%3D%22non-scaling-stroke%22%20stroke-width%3D%22.8%22%20d%3D%22M2%2025H25M75%2025H98%22/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%208%22%3E%3Cpath%20d%3D%22M1%206h21l4-2%206%202%206-2%204%202h21M29%203l3-2%203%202-3%202z%22%20fill%3D%22none%22%20stroke%3D%22%23efd28c%22%20stroke-width%3D%221%22/%3E%3C/svg%3E");
 background-position:top center,bottom 4px center;background-size:100% 28px,64px 8px;background-repeat:no-repeat;
 box-shadow:inset 0 -2px #d7b365,inset 0 -4px #fff0b444;
}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3{padding-bottom:17px!important}
body[data-card-density] #event-list .event-card .finish-label{font-size:11px!important;letter-spacing:1.2px!important}
body .event-card .activity-mark{width:12px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round;vertical-align:-2px}
body .event-card .story-divider{width:72%;max-width:270px}
@media(max-width:600px){body[data-card-density] #event-list .event-card .finish-label{font-size:10px!important}}

/* V42: quiet desktop finish labels and a clean double gold baseline. */
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:after{
 background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%2028%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23efd28c%22%20stroke-width%3D%221.8%22%20vector-effect%3D%22non-scaling-stroke%22%3E%3Cpath%20vector-effect%3D%22non-scaling-stroke%22%20d%3D%22M0%2021H28L33%201H67L72%2021H100%22/%3E%3Cpath%20vector-effect%3D%22non-scaling-stroke%22%20stroke-width%3D%22.8%22%20d%3D%22M2%2025H25M75%2025H98%22/%3E%3C/g%3E%3C/svg%3E");background-position:top center;background-size:100% 28px;
 border-bottom:3px double #efd28c;box-sizing:border-box;box-shadow:none;
}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3{padding-bottom:12px!important;box-shadow:none!important}
@media(min-width:601px){body[data-card-density] #event-list .event-card .finish-label{font-size:10px!important}}

/* V43: compact grip artwork with a comfortable tap target, aligned image controls. */
body[data-card-density] #event-list .event-card .drag-handle{position:absolute;display:grid!important;place-items:center;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;left:2px!important;bottom:29px!important;top:auto!important;padding:10px!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;clip-path:none!important;transform:none!important;z-index:16}
body[data-card-density] #event-list .event-card .drag-handle svg{display:block;width:24px;height:24px;padding:2px 4px;box-sizing:border-box;background:#342412b8;border:1px solid #d7bf84;border-radius:3px;fill:#fff4d5;pointer-events:none}
body[data-card-density] #event-list .event-card .drag-handle:focus-visible{outline:2px solid #087bac;outline-offset:-3px}
body[data-card-density] #event-list .event-card .tcg-sigil{bottom:29px!important;right:2px!important;height:44px;width:44px;display:grid;place-items:center;line-height:1}
body[data-card-density] #event-list .blockout-card .drag-handle{top:8px!important;right:8px!important;left:auto!important;bottom:auto!important}
body[data-card-density] #event-list .blockout-card .ashore-ribbon{max-width:calc(100% - 54px);box-sizing:border-box;font-size:clamp(12px,2vw,20px)!important}
body[data-card-density] #event-list .event-card .finish-label{display:flex!important;align-items:center!important;justify-content:flex-start;box-sizing:border-box;padding:4px 8px!important;line-height:14px!important;min-height:26px!important}
body .event-card .dream-pick-summary{margin-top:9px}
#reorder-dialog{width:min(420px,calc(100% - 20px))}#reorder-dialog h2{font-size:25px}.reorder-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reorder-options button,#reorder-dialog>button{min-height:44px;font-size:16px}.reorder-position{display:grid;gap:6px;margin:16px 0 10px;font:14px Arial}.reorder-position select{width:100%;min-width:0;min-height:44px;font-size:14px}#reorder-dialog [data-apply-position]{width:100%}
.unread-comment-list{margin:16px 0}.unread-comment-list h3{font-size:20px}.unread-comment-list>button{display:flex;flex-direction:column;gap:5px;text-align:left;width:100%;min-height:44px;margin:7px 0;white-space:normal;font:14px/1.4 Arial}.unread-comment-list>button>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.unread-comment-list p{font:13px Arial}
body[data-card-density] #event-list .event-card.has-vivre .tcg-sigil{display:none!important}

/* V44: equal title breathing room and closer finish label. */
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3{margin-bottom:3px!important;padding-bottom:12px!important}
body[data-card-density] #event-list .event-card:not(.blockout-card)>h3:before{margin-bottom:20px!important}
body[data-card-density] #event-list .event-card .finish-label{margin-top:0!important}
.vivre-replaces-rating{opacity:.35}.vivre-replaces-rating .rating{cursor:default!important}
#ashore-members{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid #b89555;padding:12px;margin:12px 0}#ashore-members label{display:flex;align-items:center;gap:6px;font:14px Arial;margin:0}#ashore-members input{width:18px;height:18px;flex:none}#ashore-members .avatar{width:28px;height:28px;flex:none}.ashore-people{font:14px/1.4 Arial}
#outside-trip{padding:10px;border:1px solid #ae632d;background:#fff0d4;margin:10px 0}#outside-trip[hidden]{display:none}#outside-trip summary{cursor:pointer;font-weight:bold}#outside-trip button{margin:4px;min-height:40px;font-size:14px}
.month-mode .calendar-scroll{display:none!important}.month-mode{min-width:0}.month-mode #timeline-title{font-size:clamp(16px,2vw,24px)}
#month-calendar{width:100%;min-width:0;margin-top:8px}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.month-weekdays{background:#234c53;color:#fff2c6;text-align:center;font:12px/28px Arial}.month-grid{grid-template-rows:repeat(2,minmax(0,1fr));height:clamp(285px,calc(420px * var(--schedule-zoom,1)),520px);border-left:1px solid #bba777;border-top:1px solid #bba777}
body .month-day{display:flex;flex-direction:column;gap:3px;min-width:0;min-height:0;padding:5px;border:0;border-right:1px solid #bba777;border-bottom:1px solid #bba777;border-radius:0;background:#fff3d6;box-shadow:none;clip-path:none;transform:none;font:12px/1.2 Arial;text-align:left;overflow:hidden;color:#362311}.month-day:hover:not(:disabled){background:#fce3a1;transform:none}.month-day.out-of-trip{background:repeating-linear-gradient(135deg,#e7dfcf,#e7dfcf 5px,#e3daca 5px,#e3daca 6px);color:#8a8070;opacity:1}.month-number{font-weight:bold;align-self:center}.month-chip{display:block;width:100%;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#d8e6df;border-left:2px solid #1c7977;padding:2px;font-size:clamp(9px,calc(11px * var(--schedule-zoom,1)),13px);box-sizing:border-box}.month-chip.ashore{background:#ead8e2;border-color:#703f5e}.month-chip.stay{background:#bde4df;border-color:#147871}.month-more{font-size:10px;color:#7c491e}.month-day-items{display:grid;gap:8px;margin:12px 0}.month-day-items button{display:flex;flex-direction:column;gap:5px;text-align:left;font-size:16px;min-height:44px}.month-day-items span{font:13px/1.4 Arial}#month-day-dialog{width:min(520px,calc(100% - 20px))}#month-day-dialog h2{font-size:24px}
body .mobile-agenda .agenda-card{padding:clamp(5px,calc(12px * var(--schedule-zoom,1)),16px);min-height:0}body .mobile-agenda .agenda-card strong{font-size:clamp(12px,calc(22px * var(--schedule-zoom,1)),28px)}body .mobile-agenda .agenda-scene{width:clamp(35px,calc(72px * var(--schedule-zoom,1)),95px)}
@media(max-width:600px){body .month-day{padding:3px 2px;gap:2px}.month-weekdays{font-size:10px}.month-grid{height:clamp(270px,calc(350px * var(--schedule-zoom,1)),430px)}.month-chip{font-size:9px}.month-mode .timeline-caption{gap:5px}}
/* Only the two weeks intersecting the voyage are displayed. */
#month-calendar .month-grid{grid-template-rows:repeat(2,minmax(0,1fr));height:clamp(230px,calc(310px * var(--schedule-zoom,1)),380px)}
#month-calendar .month-day.out-of-trip{padding-top:3px;padding-bottom:3px}
#expand-month{font:12px Arial;min-height:34px;padding:5px 8px;margin-left:auto}
#month-overview-dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-width:none;max-height:none;box-sizing:border-box;padding:14px;overflow:hidden;border:2px solid #b89448;border-image:none;background:#fff0cc}
#month-overview-dialog h2{font-size:clamp(16px,2vw,26px);margin:0}
#month-overview-dialog .month-grid{height:calc(100dvh - 145px);min-height:180px;grid-template-rows:repeat(2,minmax(0,1fr))}
#month-overview-dialog .month-day{padding:5px 3px}#month-overview-dialog .dialog-header{align-items:center}
@media(max-width:600px){#month-calendar .month-grid{height:clamp(210px,calc(270px * var(--schedule-zoom,1)),330px)}#month-overview-dialog .month-chip{font-size:9px}#month-overview-dialog .month-number{font-size:12px}}
/* Let the expanded calendar use the actual space left after its wrapping heading. */
#month-overview-dialog[open]{display:flex;flex-direction:column}
#month-overview-dialog>.dialog-header,#month-overview-dialog>p,#month-overview-dialog>.month-weekdays{flex-shrink:0}
#month-overview-dialog>.month-grid{flex:1;min-height:0;height:auto}
.month-mode .timeline-caption{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
@media(max-width:760px){.month-mode .timeline-caption{grid-template-columns:minmax(0,1fr) auto}.month-mode .timeline-caption>strong{grid-column:1/-1}}
/* Continuous stays above each date row; date cells retain their month alignment. */
#month-calendar .month-grid,#month-overview-dialog .month-grid{grid-template-rows:auto minmax(90px,1fr) auto minmax(90px,1fr);height:auto;min-height:270px}
#month-calendar .month-grid{min-height:clamp(270px,calc(360px * var(--schedule-zoom,1)),480px)}
.month-stay-lane{grid-column:1/-1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px 0;padding:4px 0;background:#c9e4dc;border-bottom:1px solid #8bab9e;min-width:0}
.month-stay{display:flex;align-items:stretch;min-width:0;min-height:36px;background:linear-gradient(#147d7d,#08525b);color:#fff2ca;border:1px solid #063f47;border-radius:5px;margin:0 2px;overflow:hidden;box-shadow:0 2px 0 #627c67}
body .month-stay button{background:none;border:0;border-image:none;border-radius:0;box-shadow:none;clip-path:none;transform:none;min-height:36px;color:inherit;padding:5px 7px;font:12px/1.3 Arial}
.month-stay .month-stay-open{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
body .month-stay .month-stay-resize{flex:none;width:32px;border-left:1px solid #fff4cb88;cursor:ew-resize;touch-action:none;font-size:18px;padding:4px}
.month-stay.continues-before{border-radius:0 5px 5px 0}.month-stay.continues-after{border-radius:5px 0 0 5px}.month-stay.continues-before.continues-after{border-radius:0}
.month-stay-empty{grid-column:1/-1;font:11px/20px Arial;color:#315851;padding-left:6px}.month-stay.resizing{outline:2px solid #e7bb46}.month-day.resize-target{outline:3px solid #e7bb46;outline-offset:-3px}
body:has(.month-mode) #stay-strip{display:none}
#month-overview-dialog>.month-grid{min-height:270px;overflow:auto}
body[data-card-density=compact] #event-list .event-card .event-story .event-description{height:auto!important;max-height:none!important;overflow:visible!important;display:block!important;-webkit-line-clamp:unset!important;white-space:normal!important}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-row>span:not(.crew-comment-anchor){display:none!important}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-row{grid-template-columns:36px 104px 44px!important;justify-content:space-between}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-options{grid-column:2}
body[data-card-density=compact] #event-list .event-card .crew-ratings .dream-pick-actions{grid-column:3}
body[data-card-density=compact] #event-list .event-card.voting-disabled .crew-ratings .rating-row{grid-template-columns:36px!important}
body[data-card-density=compact] #event-list .event-card{align-self:start;height:auto!important;min-height:0!important}
body[data-card-density=compact] #event-list .event-card .crew-ratings{display:grid!important}
body[data-card-density=compact] #event-list .event-card .ratings-heading{display:flex!important}
/* Active voter and other names share a type size in Full view. */
body[data-card-density=full] #event-list .event-card .crew-ratings .rating-row>span:not(.crew-comment-anchor){font-size:14px!important;line-height:1.3}

/* Compact cards stretch within their grid row, with a tap/click reveal. */
body[data-card-density=compact] #event-list{align-items:stretch}
body[data-card-density=compact] #event-list .event-card{align-self:stretch;height:100%!important;display:flex;flex-direction:column}
body[data-card-density=compact] #event-list .event-card:not(.details-expanded) :is(.crew-ratings,.ratings-heading,.event-details){display:none!important}
body[data-card-density=compact] #event-list .event-card.details-expanded .event-details{display:block!important}
body[data-card-density=compact] #event-list .card-reveal{display:block!important;width:100%;margin-top:8px;font:12px Arial;min-height:38px}
body[data-card-density=full] #event-list .card-reveal{display:none!important}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-row{grid-template-columns:36px minmax(0,1fr) 104px 44px!important;justify-content:normal}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-options{grid-column:3}
body[data-card-density=compact] #event-list .event-card .crew-ratings .dream-pick-actions{grid-column:4}
@media(max-width:600px){body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-row{grid-template-columns:36px minmax(0,1fr) 98px 44px!important}}
/* Set row heights explicitly so reduced zoom changes the phone calendar too. */
#month-calendar .month-grid{min-height:0;grid-template-rows:auto clamp(72px,calc(135px * var(--schedule-zoom,1)),190px) auto clamp(72px,calc(135px * var(--schedule-zoom,1)),190px)}

/* V48: attendance, small communication link and bounded scheduling queue. */
.pirate-event-icon{width:26px;height:26px;vertical-align:middle}.nav-btn>span{display:inline-flex;align-items:center;justify-content:center}
.website-link{display:flex;align-items:center;justify-content:center;gap:5px;align-self:flex-end;margin:6px 0;color:#075d69;text-decoration:none;font:700 12px Arial;min-height:34px;padding:2px 7px;border:1px solid #b99a5c;border-radius:4px;background:#fff1d2;box-shadow:0 2px 0 #b39968}
.website-link:hover{background:#d1e7e3}.snail-link-icon{width:26px;height:26px;flex:none}
.ratings-heading{flex-wrap:wrap;gap:5px}.participants-button{font:11px Arial;min-height:30px;padding:3px 7px;margin-left:auto}
body .event-card .crew-ratings .rating-row.event-ashore{background:#673b59!important;color:#fff2d5!important;grid-template-columns:36px minmax(0,1fr)!important;padding:4px;border-radius:4px}
body .event-card .crew-ratings .rating-row.event-ashore .event-ashore-label{display:block!important;grid-column:2;grid-row:1/3;font:700 12px/1.4 Arial!important;text-align:right}
body .event-card .crew-ratings .rating-row.event-ashore>span:not(.crew-comment-anchor):not(.event-ashore-label){display:none!important}
#participants-dialog fieldset,#projected-split,#projected-split-dialog fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #bfa364;padding:12px;min-width:0}
#participants-dialog label,#projected-split label,#projected-split-dialog label{display:flex;align-items:center;gap:6px;font:13px Arial;min-width:0}
#participants-dialog input,#projected-split input,#projected-split-dialog input{width:20px;height:20px;flex:none}
#participants-dialog .avatar,#projected-split .avatar,#projected-split-dialog .avatar{width:26px;height:26px}.comment-attendance{padding:10px;border:1px solid #bda463;background:#fff1d0;margin:10px 0}.comment-attendance p{font:13px/1.4 Arial}.comment-attendance button{font:12px Arial;margin:3px}
#unscheduled-list{max-height:min(64dvh,580px);overflow-y:auto;overscroll-behavior:contain;padding:2px 5px 4px 0;scrollbar-width:thin;scrollbar-color:#8b7045 #f7e7c2}.unscheduled-panel{min-height:0!important;position:sticky;top:12px}
.forecast-share{display:flex;align-items:center;gap:10px;border-bottom:1px solid #ceb27c;padding:10px}.forecast-share b{margin-left:auto}.unassigned-estimate{border:1px solid #a76626;background:#fff2d8;padding:10px}.projected-item{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.projected-item>span{flex:1}.projected-item small{display:block;font:11px/1.4 Arial;margin-top:3px}.projected-item button,.cost-row button{font:12px Arial;padding:5px 8px;min-height:32px}
@media(max-width:760px){.unscheduled-panel{position:static}#unscheduled-list{max-height:50dvh}.website-link{font-size:11px}.nav-btn>span{display:flex}.pirate-event-icon{width:24px;height:24px}}
/* Keep identity visible in Full; compact shows the portrait and attendance badge. */
body[data-card-density=full] #event-list .event-card .crew-ratings .rating-row.event-ashore{grid-template-columns:36px minmax(0,1fr) auto!important}
body[data-card-density=full] #event-list .event-card .crew-ratings .rating-row.event-ashore>span:not(.crew-comment-anchor):not(.event-ashore-label){display:block!important;grid-column:2;grid-row:1;color:#fff2d5}
body[data-card-density=full] #event-list .event-card .crew-ratings .rating-row.event-ashore .event-ashore-label{grid-column:3;grid-row:1}
body[data-card-density=compact] #event-list .event-card .crew-ratings .rating-row.event-ashore .event-ashore-label{display:block!important;grid-column:2/-1;grid-row:1}
.event-ashore-label:after{content:none!important}.event-ashore.my-vote>span:nth-child(2):after{color:#e9d2c6}
.base-split-copy{display:block;font:12px/1.4 Arial;margin-top:5px;color:#70502d}
/* V49: use a single set of columns for headers, estimates, items and totals. */
#projected-cost-list{--forecast-columns:minmax(0,1fr) minmax(105px,150px) 40px}
#projected-cost-list .forecast-grid{display:grid;grid-template-columns:var(--forecast-columns);gap:12px;align-items:center;padding:10px 8px}
#projected-cost-list .overview-sort{justify-content:normal;border-bottom:1px solid #c1a16a}
#projected-cost-list .overview-sort button{width:auto;justify-self:start;padding:5px 0}
#projected-cost-list .overview-sort button:nth-child(2){justify-self:end;text-align:right}
.forecast-edit-heading{font:700 12px Arial;text-align:center}.forecast-event{border-bottom:1px solid #ceb27c}
.forecast-event-name{display:flex;gap:12px;align-items:center;min-width:0}.forecast-event-name>div{min-width:0}.forecast-event-name strong{font-size:18px;overflow-wrap:anywhere}
.forecast-event .expense-thumb{width:85px}.forecast-amount{grid-column:2;text-align:right;justify-self:stretch;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:23px}
.forecast-edit{grid-column:3;font-size:22px;padding:3px;width:40px;min-height:38px}
.projected-crew{display:flex;gap:3px;align-items:center;flex-wrap:wrap;margin-top:4px;min-height:22px}.projected-crew .avatar{width:22px;height:22px}.projected-crew small{font:11px Arial;color:#7b532c}
#projected-cost-list .forecast-item{padding-top:3px;padding-bottom:8px}.forecast-item>div:first-child{padding-left:97px;font:13px Arial;min-width:0;overflow-wrap:anywhere}.forecast-item .forecast-amount{font:14px Arial;font-variant-numeric:tabular-nums}
.forecast-total{border-top:3px double #b08a43;margin-top:5px}.forecast-total>strong:first-child{font-size:18px}
.expense-date{display:block;font:12px/1.4 Arial;color:#765329;margin-top:4px}
.expense-table-head>span:nth-child(4){text-align:right}.expense-table-head>span:nth-child(4)>button{padding-right:0;padding-left:0}.expense-table-row .expense-amount{justify-self:end}
/* A quiet inset control with explicit contrast for each card finish. */
body .event-card .ratings-heading .participants-button{color:#573717!important;background:linear-gradient(#fff4d8,#e6cf9f)!important;border:1px solid #af8c49!important;border-radius:5px;font:600 11px Arial;box-shadow:inset 0 1px 0 #fffae8,0 2px 0 #92794d55;padding:4px 7px;min-height:30px;letter-spacing:0;text-transform:none}
body .event-card:is(.interest-favorite,.interest-solid) .ratings-heading .participants-button{background:linear-gradient(#eef3e7,#d2dfce)!important;color:#214641!important;border-color:#74958b!important}
body .event-card.interest-legendary .ratings-heading .participants-button{background:linear-gradient(#28364c,#142137)!important;color:#ffe9b2!important;border-color:#b99a53!important;box-shadow:inset 0 1px 0 #eac86b33,0 2px 0 #020d20}
body .event-card.stay-card .ratings-heading .participants-button{background:linear-gradient(#12656a,#08464d)!important;color:#fff0cd!important;border-color:#b89c5a!important}
body .month-day .month-chip,body .month-day .month-number,body .month-day .month-more{flex-shrink:0}
@media(max-width:760px){#projected-cost-list{--forecast-columns:minmax(0,1fr) minmax(83px,100px) 34px}#projected-cost-list .forecast-grid{gap:5px;padding-left:1px;padding-right:1px}.forecast-event .expense-thumb{width:48px}.forecast-event-name{gap:7px}.forecast-event-name strong{font-size:15px}.forecast-amount{font-size:18px}.forecast-edit{width:34px;min-height:34px;font-size:20px}.forecast-item>div:first-child{padding-left:55px;font-size:12px}.forecast-item .forecast-amount{font-size:12px}.forecast-total>strong:first-child{font-size:15px}#projected-cost-list .overview-sort button{font-size:11px}.forecast-edit-heading{font-size:11px}.projected-crew{gap:2px}.projected-crew .avatar{width:19px;height:19px}}
#projected-cost-list .overview-sort button:nth-child(2){white-space:nowrap}

/* V50 — shared budget columns, controls and TCG schedule title plates. */
.budget-section-heading{display:flex;align-items:baseline;gap:10px 20px;flex-wrap:wrap;margin-bottom:16px}.budget-section-heading h3,.budget-section-heading p{margin:0}.budget-section-heading p{font:12px/1.4 Arial,sans-serif}.budget-panel h3{font-family:Georgia,serif;font-weight:700;color:#382513}
.expense-table{overflow-x:auto;max-width:100%;scrollbar-color:#b08b47 #f6e8c3}.expense-table-head,.expense-table-row{display:grid!important;grid-template-columns:minmax(145px,1.4fr) minmax(140px,1.2fr) 95px 90px minmax(95px,1fr) 100px 44px;gap:12px;min-width:790px;align-items:center;padding:12px 8px;box-sizing:border-box;font:13px/1.4 Arial,sans-serif}.expense-table-head,.overview-sort{background:#eddaad;border-block:1px solid #c3a56c;font:700 12px/1.4 Arial,sans-serif}.expense-table-row>*{grid-row:auto!important;grid-column:auto!important;min-width:0}.expense-name strong{font:600 13px/1.4 Arial,sans-serif}.expense-thumb{width:40px;height:40px;flex-shrink:0}.expense-related button{font:12px/1.4 Arial,sans-serif;text-align:left;padding:0;min-height:32px;background:none;border:0;box-shadow:none;white-space:normal}.expense-date{font:12px/1.4 Arial,sans-serif;color:#675238}.expense-table-row .payer{gap:5px;flex-wrap:wrap;font-size:12px}.expense-table-row .payer .avatar{width:24px;height:24px}.expense-table-row .split-label{font-size:12px}.expense-table-row .expense-amount{font:700 14px/1.4 Arial,sans-serif;text-align:right}.expense-table-head>span:nth-child(6){text-align:right}.expense-table-head>span:last-child{text-align:center}.expense-table-row>button{justify-self:center;width:36px;min-height:36px}.expense-table-head .budget-sort{font-size:12px;min-height:32px;padding:3px 0;white-space:normal}.expense-table-head>span:nth-child(6) .budget-sort{justify-content:flex-end;width:100%}
#projected-cost-list{overflow-x:auto;max-width:100%}.forecast-grid{display:grid;grid-template-columns:minmax(130px,1fr) 120px 110px 42px;gap:12px;align-items:center;min-width:438px}.forecast-crew-cell .projected-crew{display:flex;flex-wrap:nowrap;gap:3px;margin:0}.forecast-crew-cell .avatar{width:25px;height:25px}.forecast-event-name strong{font:600 14px/1.4 Arial,sans-serif}.forecast-item{font:12px/1.4 Arial,sans-serif}.forecast-amount{text-align:right}.overview-sort{padding:10px 8px}.forecast-total{padding:14px 8px}.forecast-edit-heading{text-align:center}.forecast-event-header,.forecast-item{padding-inline:8px}.forecast-item>div{min-width:0}
.event-actions-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.event-actions-row .website-link{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;min-height:42px;padding:6px;margin:0;border:1px solid #ae8c51;border-radius:4px;background:linear-gradient(#fff4d6,#e6cb90);box-shadow:0 3px 0 #9a793e;color:#443119}.event-actions-row .website-link svg{display:block;width:26px;height:26px}.event-actions-row .website-link:hover{transform:translateY(-1px);filter:brightness(1.06)}.event-actions-row .website-link:active{transform:translateY(2px);box-shadow:0 1px 0 #9a793e}.event-actions-row .reject-event{font:12px Arial,sans-serif;min-height:36px;padding:7px 10px;background:#efe1be;color:#715b43;border-color:#b9a078;box-shadow:0 2px 0 #b59c71}.rejected-stamp{margin:8px 0;font:700 12px Georgia,serif;letter-spacing:1px;color:#826044;text-align:center;border-block:1px dashed #b5a17d;padding:5px;transform:rotate(-1deg)}.rejected-card .status-ribbon{background:#806849;color:#fff2d4}.rejected-card .card-foil{opacity:.15}
.nav-btn>span{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}.nav-btn>span .voyage-wheel{position:static;display:block;width:24px;height:24px;margin:0;transform:none;vertical-align:middle}
.calendar-event{padding:5px 5px 8px 23px!important;border:2px solid #b38f4e!important;border-radius:8px 8px 2px 2px;box-shadow:inset 0 0 0 1px #f3d58e,0 3px 5px #49351e44}.calendar-event .schedule-title-plate{display:block;position:relative;margin:0!important;padding:5px 5px 7px!important;background:#214951!important;color:#fff3cd!important;border:1px solid #d9b968!important;border-bottom:3px double #eccb79!important;border-radius:10px 10px 0 0;text-align:center;font:700 14px/1.15 Georgia,serif!important;text-shadow:0 1px #201910!important;overflow-wrap:anywhere;max-width:none!important;white-space:normal!important}.schedule-title-plate small{display:block;font:8px/1.2 Arial,sans-serif;letter-spacing:1.6px;margin-bottom:3px;color:#eed79b}.calendar-event.interest-legendary .schedule-title-plate{background:#572944!important}.calendar-event.interest-favorite .schedule-title-plate{background:#38496f!important}.calendar-event.interest-solid .schedule-title-plate{background:#53645b!important}.calendar-event.blockout .schedule-title-plate{background:#623b58!important}.calendar-event .event-time{display:block;margin-top:3px!important;padding:3px 4px!important;background:#ffefcbf0!important;color:#453019!important;font:11px/1.3 Arial,sans-serif!important;text-align:center;border:1px solid #bf9e5c}.calendar-event .move-handle{left:3px;top:8px;font-size:18px;color:#fff3ce;background:#583e2bab;border-radius:3px}.calendar-event.short-card .schedule-title-plate{font-size:11px!important;padding:2px 4px!important;border-radius:5px 5px 0 0}.calendar-event.short-card .schedule-title-plate small{display:none}.calendar-event.short-card .event-time{font-size:9px!important;padding:1px 3px!important;margin-top:1px!important}.unscheduled-item>div>strong{display:block;text-align:center;padding:7px;background:#214951;color:#fff3cd;border:1px solid #b99550;border-bottom:3px double #e6c875;border-radius:8px 8px 0 0;font:700 16px/1.2 Georgia,serif}
@media(max-width:600px){.nav-btn>span{display:flex;margin-bottom:3px}.nav-btn>span .voyage-wheel{width:22px;height:22px}.budget-section-heading{gap:4px;margin-bottom:12px}.budget-section-heading p{font-size:11px}.forecast-grid{grid-template-columns:minmax(125px,1fr) 108px 95px 38px;min-width:400px;gap:8px}.forecast-crew-cell .avatar{width:23px;height:23px}.event-actions-row{gap:5px}.event-actions-row .website-link{flex-basis:36px;width:36px;height:38px;min-height:38px;padding:4px}.event-actions-row .website-link svg{width:24px;height:24px}.event-actions-row button{flex:1;min-width:0;font-size:13px}.event-actions-row .reject-event{font-size:11px}.calendar-event .schedule-title-plate{font-size:12px!important}}

#projected-cost-list .forecast-grid{grid-template-columns:minmax(130px,1fr) 120px 110px 42px;min-width:438px;gap:12px}#projected-cost-list .forecast-total>strong:first-child{grid-column:1}#projected-cost-list .forecast-total .forecast-amount{grid-column:3}.expense-table-head>span{display:block}.expense-table-head .budget-sort{display:inline-flex}#projected-cost-list .forecast-amount{font-size:15px}#projected-cost-list .forecast-item .forecast-amount{font-size:12px}
@media(max-width:600px){#projected-cost-list .forecast-grid{grid-template-columns:minmax(125px,1fr) 108px 95px 38px;min-width:400px;gap:8px}#projected-cost-list .forecast-event-name strong{font-size:13px}#projected-cost-list .forecast-item>div:first-child{padding-left:0}}
#projected-cost-list .forecast-amount{grid-column:3}#projected-cost-list .forecast-edit{grid-column:4}#projected-cost-list .overview-sort button:nth-child(3){justify-self:stretch;text-align:right}#projected-cost-list .forecast-event .expense-thumb{width:40px;height:40px}#projected-cost-list .forecast-item>div:first-child{padding-left:52px}.expense-table-head>span:nth-child(4){text-align:left}
@media(max-width:600px){#projected-cost-list .forecast-item>div:first-child{padding-left:0}}
body .month-day .month-chip{border:1px solid #b89452;border-bottom:3px double #dabc6f;border-radius:5px 5px 0 0;background:#214951;color:#fff3cd;font-family:Georgia,serif;font-weight:700}body .month-day .month-chip.interest-legendary{background:#572944}body .month-day .month-chip.interest-favorite{background:#38496f}body .month-day .month-chip.interest-solid{background:#53645b}body .month-day .month-chip.ashore{background:#623b58}
#projected-cost-list .overview-sort .budget-sort{font:700 12px/1.4 Arial,sans-serif;white-space:nowrap;min-height:32px;padding:3px 0;display:inline-flex;gap:4px;align-items:center}#projected-cost-list .overview-sort{min-height:54px}#projected-cost-list .overview-sort button:nth-child(3){justify-content:flex-end}
.expense-table-head>span{display:block!important}
body[data-card-density] #event-list .event-card .event-actions-row{flex-wrap:nowrap;align-items:stretch}
body[data-card-density] #event-list .event-card .event-actions-row>button{font-size:13px!important;line-height:1.2;padding:6px 8px!important;min-height:44px;min-width:0;overflow-wrap:normal!important;word-break:normal!important}
body[data-card-density] #event-list .event-card .event-actions-row>[data-action=edit]{flex:.7}
body[data-card-density] #event-list .event-card .event-actions-row>[data-open-schedule],body[data-card-density] #event-list .event-card .event-actions-row>[data-action=select]{flex:1.5}
body[data-card-density] #event-list .event-card .event-actions-row>.reject-event{flex:1;font-size:11px!important}
body[data-card-density] #event-list .event-card .event-actions-row>.website-link{height:44px;min-height:44px;align-self:stretch}
@media(max-width:600px){body[data-card-density] #event-list .event-card .event-actions-row>button{font-size:12px!important;padding:5px 3px!important}}

/* V51: one budget grid, one heading system and restrained schedule typography. */
#budget-page{--budget-columns:minmax(190px,1fr) 116px 64px 98px 112px 40px;--budget-table-min:740px}
#budget-page .budget-panel{border-width:12px!important;padding:12px!important;box-sizing:border-box}
#budget-page .budget-panel>h3,#budget-page .budget-section-heading h3{font:700 26px/1.2 Georgia,serif!important;margin:0!important;color:#382513}
#budget-page .budget-panel>h3{margin-bottom:14px!important}
#budget-page .budget-section-heading{display:flex;align-items:baseline;min-height:31px;margin:0 0 14px!important;gap:6px 14px}
#budget-page .budget-section-heading p{font:12px/1.4 Arial;margin:0!important}
#budget-page #projected-cost-list,#budget-page .expense-table,#budget-page #person-balances{overflow-x:auto;max-width:100%;scrollbar-width:thin;scrollbar-color:#ab8749 #f2e5c4}
#budget-page .budget-grid,#budget-page #projected-cost-list .forecast-grid{display:grid!important;grid-template-columns:var(--budget-columns)!important;gap:12px!important;min-width:var(--budget-table-min)!important;align-items:center!important;padding:10px 8px!important;box-sizing:border-box}
#budget-page .expense-table-head,#budget-page .overview-sort,#budget-page .balance-head{background:#eddaad!important;border-block:1px solid #c3a56c!important;min-height:48px;font:700 12px/1.4 Arial!important;margin:0!important}
#budget-page .expense-table-head>span,#budget-page .overview-sort>span{display:block!important}
#budget-page .expense-table-head .budget-event-sort{display:flex!important;gap:12px;flex-wrap:nowrap}
#budget-page [data-budget-sort]{font:700 12px/1.4 Arial!important;padding:3px 0!important;min-height:28px;display:inline-flex;gap:3px;align-items:center;white-space:nowrap;border:0;background:none;box-shadow:none}
#budget-page .expense-table-head>span,#budget-page .overview-sort>*{text-align:left!important;justify-self:stretch!important}
#budget-page .expense-table-head>span:nth-child(5),#budget-page .overview-sort>button:nth-child(5){text-align:right!important;justify-content:flex-end}
#budget-page .expense-table-head>span:last-child,#budget-page .overview-sort>span:last-child{text-align:center!important}
#budget-page .forecast-grid>*,#budget-page .budget-grid>*{grid-row:auto!important;grid-column:auto!important;min-width:0}
#budget-page .forecast-amount,#budget-page .budget-amount{grid-column:5!important;text-align:right!important;justify-self:stretch;white-space:nowrap;font:700 14px/1.4 Arial!important;font-variant-numeric:tabular-nums}
#budget-page .forecast-edit,#budget-page .expense-table-row>button{grid-column:6!important;justify-self:center;width:34px;min-height:36px;padding:3px;font-size:20px}
#budget-page .forecast-event,#budget-page .expense-group{border-bottom:1px solid #c9ae77}
#budget-page .forecast-event-header,#budget-page .expense-group-header{background:#f5e6c355;border:0;margin:0;font:600 14px/1.4 Arial}
#budget-page .forecast-event-name,#budget-page .budget-event-name{display:flex;align-items:center;gap:10px;min-width:0}
#budget-page .forecast-event-name strong,#budget-page .budget-event-name strong,#budget-page .budget-event-name button{font:600 14px/1.35 Arial!important;color:#382513;text-align:left;overflow-wrap:anywhere}
#budget-page .budget-event-name button{background:none;border:0;box-shadow:none;padding:0;min-height:36px}
#budget-page .expense-thumb{display:block;flex:none;width:46px!important;height:34px!important;aspect-ratio:auto;object-fit:cover;border-radius:2px;overflow:hidden}
#budget-page .expense-thumb svg{width:100%;height:100%}
#budget-page .budget-crew,#budget-page .forecast-crew-cell .projected-crew{display:flex;align-items:center;gap:3px;flex-wrap:nowrap;margin:0}
#budget-page .budget-crew .avatar,#budget-page .forecast-crew-cell .avatar{width:25px;height:25px}
#budget-page .budget-person{display:flex;flex:none}
#budget-page .expense-table-row,#budget-page .forecast-item{border:0!important;font:12px/1.4 Arial!important;min-height:46px}
#budget-page .expense-description,#budget-page .forecast-item>div:first-child{padding-left:56px!important;font:12px/1.4 Arial!important;overflow-wrap:anywhere}
#budget-page .expense-date{font:11px/1.4 Arial;margin:0;color:#705337}
#budget-page .payer-vivre{display:block;width:40px;height:40px;margin:auto}
#budget-page .payer-vivre img{display:block;width:100%;height:100%;object-fit:contain}
#budget-page .forecast-total,#budget-page .expense-total{border-top:3px double #b08a43;margin-top:4px;font:700 14px/1.4 Arial}
#budget-page .forecast-total>strong:first-child,#budget-page .expense-total>strong:first-child{grid-column:1!important;font:700 14px/1.4 Arial}
#budget-page .balance-row{min-width:var(--budget-table-min);display:grid;grid-template-columns:minmax(190px,1fr) 116px 64px 98px 112px 40px;gap:12px;padding:12px 8px;align-items:center;font:13px/1.4 Arial}
#budget-page .balance-row>*{text-align:right}
#budget-page .balance-row>*:first-child{grid-column:1;text-align:left}
#budget-page .balance-row>*:nth-child(2){grid-column:2}
#budget-page .balance-row>*:nth-child(3){grid-column:4}
#budget-page .balance-row>*:nth-child(4){grid-column:5}
@media(max-width:600px){#budget-page .budget-panel{border-width:9px!important;padding:7px!important}#budget-page .budget-panel>h3,#budget-page .budget-section-heading h3{font-size:22px!important}#budget-page .budget-section-heading p{font-size:11px}#budget-page .budget-section-heading{min-height:27px}#budget-page .budget-panel>h3{min-height:27px}#budget-page .settlement-row{font-size:12px}}
/* Flat link silhouette has a full touch target, below the card's value symbol. */
body[data-card-density] #event-list .event-card .event-scene .website-link{position:absolute;right:2px;bottom:27px;width:44px;height:44px;min-height:44px;padding:10px;margin:0;display:grid;place-items:center;border:0;border-radius:0;background:none;box-shadow:none;clip-path:none;transform:none;color:#fff0b6;z-index:12;text-decoration:none;filter:drop-shadow(0 1px 2px #241b12)}
body[data-card-density] #event-list .event-card .event-scene .website-link:hover{color:#fff9df;background:none;box-shadow:none;transform:none;filter:drop-shadow(0 0 3px #2b1d12)}
body[data-card-density] #event-list .event-card .event-scene .website-link svg{display:block;width:23px;height:23px}
body[data-card-density] #event-list .event-card .tcg-sigil{bottom:67px!important}
body[data-card-density] #event-list .event-card.has-vivre .vivre-seal{bottom:74px!important}
.event-details-body .reject-event{font:12px Arial;min-height:38px;padding:7px 10px;background:#e9dcc0;color:#71573e;border-color:#baa378;box-shadow:none;margin-top:8px}
/* Use the card finish surface, with a paper wash, instead of event-scene art. */
body .calendar-event{background:linear-gradient(#fff3d9e8,#eadbb9e8)!important}
body .calendar-event.interest-maybe{background:linear-gradient(#f1eee6e8,#e6ebede8),url('assets/content-frame.webp') center/cover!important}
body .calendar-event.interest-solid{background:linear-gradient(#f5e6c1df,#f2e5cddd),repeating-linear-gradient(125deg,#997132 0,#fff2b9 2px,#dbc18c 3px,#b79656 5px)!important}
body .calendar-event.interest-favorite{background:linear-gradient(#f6f0e5e8,#e6ecefe8),url('assets/content-frame.webp') center/cover!important}
body .calendar-event.interest-legendary{background:linear-gradient(#f7efdde3,#eee4d6e3),url('assets/event-card-special.webp') center/cover!important}
body .calendar-event.blockout{background:linear-gradient(#efe3ede8,#dac9d8e8)!important}
body .calendar-event .calendar-scene{display:none!important}
body .calendar-event .schedule-title-plate,body .calendar-event.short-card .schedule-title-plate{font:700 11px/1.2 Georgia,serif!important;letter-spacing:0!important;padding:3px 4px 4px!important;overflow-wrap:normal!important;word-break:normal!important;text-shadow:none!important}
body .calendar-event .schedule-title-plate small{font:8px/1.1 Arial!important;letter-spacing:1px;margin-bottom:2px}
body .calendar-event .event-time,body .calendar-event.short-card .event-time{font:10px/1.25 Arial!important;padding:2px 3px!important;white-space:normal!important}
body .unscheduled-item>div>strong{font:700 12px/1.25 Georgia,serif!important}
body .unscheduled-item p{font:10px/1.3 Arial!important}
body .stay-ticket strong,body .stay-lane strong,body .stay-bar strong{font:700 11px/1.25 Georgia,serif!important}
body .stay-ticket span,body .stay-lane span,body .stay-bar span{font:10px/1.3 Arial!important}
body .month-day .month-chip{font:700 11px/1.25 Georgia,serif!important;min-height:0;padding:2px!important}
body .month-stay button:not(.month-stay-resize){font:700 11px/1.3 Georgia,serif!important}
@media(max-width:600px){body .month-day .month-chip{font-size:9px!important}body .month-stay button:not(.month-stay-resize){font-size:10px!important}}
body .calendar-stay strong{font:700 11px/1.25 Georgia,serif!important}body .calendar-stay small{font:10px/1.3 Arial!important}body .calendar-stay .stay-lane-art{display:none!important}
body .stack-picker{font:600 10px/1.25 Arial!important}body .mobile-agenda .agenda-card strong{font:700 12px/1.3 Georgia,serif!important}body .mobile-agenda .agenda-card p,body .mobile-agenda .agenda-card small,body .mobile-agenda .agenda-card span:not(.scene){font:11px/1.35 Arial!important}body .month-day-items button strong{font:700 12px/1.3 Georgia,serif}body .month-day-items button span{font:11px/1.35 Arial}
#budget-page .balance-row>*:nth-child(2){grid-column:3}
@media(max-width:760px){#budget-page .budget-section-heading p{display:none}}
body[data-card-density] #event-list .event-card .event-scene .website-link,body[data-card-density] #event-list .event-card .event-scene .website-link:hover{filter:none}
body[data-card-density] #event-list .event-card .event-scene .website-link svg{stroke:#42341c;stroke-width:.5;paint-order:stroke fill}

/* V52: compact schedule artwork, bounded touch queue and aligned card controls. */
body .calendar-event.interest-maybe,body .calendar-event.interest-favorite{background:linear-gradient(#f5eedbc0,#e6e8eebf),url('assets/content-frame.webp') center/cover!important}
body .calendar-event.interest-legendary{background:linear-gradient(#f7efddba,#eee4d6ba),url('assets/event-card-special.webp') center/cover!important}
body .calendar-event .schedule-thumbnail{display:block;position:relative;width:100%;height:clamp(24px,5vw,52px);margin:4px 0;border:1px solid #b99b5e;border-radius:3px;overflow:hidden;opacity:1}
.schedule-thumbnail img,.month-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}
.schedule-thumbnail svg,.month-thumbnail svg{display:block;width:100%;height:100%}
body .calendar-event.short-card .schedule-thumbnail{display:none}
body .month-day .month-chip{white-space:normal;overflow:hidden}
body .month-day .month-thumbnail{display:block;width:100%;height:22px;margin-top:3px;border-radius:2px;overflow:hidden}
#budget-page .payer-vivre{width:100%;height:auto;display:flex;flex-direction:column;align-items:center;gap:2px}
#budget-page .payer-vivre img{width:34px;height:34px;object-fit:contain}
#budget-page .payer-name{font:600 10px/1.25 Arial,sans-serif;max-width:100%;text-align:center;overflow-wrap:anywhere;color:#382513}
.existing-estimate{border-top:1px solid #c7ad78;margin-top:14px;padding-top:10px}.existing-estimate h4{font:600 12px Arial;margin:0 0 6px;color:#6c512e}.existing-estimate p{margin:0}
body[data-card-density] #event-list .event-card .tcg-sigil{bottom:29px!important}
body[data-card-density] #event-list .event-card.has-vivre .vivre-seal{bottom:28px!important}
body[data-card-density] #event-list .event-card .event-scene .website-link{left:2px!important;right:auto!important;bottom:73px!important;overflow:hidden}
body[data-card-density] #event-list .event-card .event-scene .website-link svg{animation:website-glint 9s ease-in-out infinite}
@keyframes website-glint{0%,78%,100%{filter:none}82%{filter:brightness(1.7) drop-shadow(0 0 2px #fff9dc)}86%{filter:none}}
@media(max-width:760px){body #unscheduled-list{height:auto!important;max-height:min(44dvh,360px)!important;overflow-y:auto!important;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-right:8px}body .unscheduled-panel{min-height:0!important}body .unscheduled-item{touch-action:pan-y}body .month-day .month-thumbnail{height:14px;margin-top:2px}}
@media(prefers-reduced-motion:reduce){body[data-card-density] #event-list .event-card .event-scene .website-link svg{animation:none}}

body .calendar-event.short-card .schedule-thumbnail{display:block;height:10px;margin:1px 0}body .calendar-event.tiny-card .schedule-thumbnail{display:none}body .month-day .month-chip-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}

/* V53 — persistent frame metadata, named payers and crew initials. */
body .calendar-event{display:flex;flex-direction:column;gap:2px;padding:2px 4px 8px 22px!important;overflow:hidden}
body .calendar-event .event-time.schedule-frame-header{flex:none;order:0;margin:-1px -3px 1px -20px!important;padding:2px 3px!important;border:0!important;border-bottom:1px solid #b18b43!important;background:#f6dfab!important;color:#342617!important;font:600 9px/1.1 Arial,sans-serif!important;text-align:center;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;min-height:14px;letter-spacing:0}
body .calendar-event .schedule-title-plate{flex:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:10px!important;padding:2px 3px!important;min-height:14px}
body .calendar-event .schedule-thumbnail{flex:0 1 52px;min-height:0;height:52px;margin:0!important}
body .calendar-event .move-handle{top:19px}
body .calendar-event.short-card{gap:1px;padding-bottom:6px!important}
body .calendar-event.short-card .event-time.schedule-frame-header{font-size:8px!important;min-height:11px;padding:1px 2px!important;margin-bottom:0!important}
body .calendar-event.short-card .schedule-title-plate{-webkit-line-clamp:1;font-size:9px!important;line-height:1.1!important;padding:1px 2px!important;min-height:12px}
body .calendar-event.short-card .schedule-thumbnail{flex:1 1 10px;height:10px}
body .calendar-event.tiny-card .schedule-thumbnail{display:none}
#budget-page .budget-person,#budget-page .projected-crew>span{display:flex!important;flex-direction:column;align-items:center;gap:2px;flex:none}
#budget-page .crew-initial{font:700 9px/1 Arial,sans-serif;color:#563b20;min-height:9px;text-align:center}
body[data-card-density] #event-list .event-card .event-scene .website-link{overflow:visible!important}
body[data-card-density] #event-list .event-card .event-scene .website-link .website-arrow{fill:#39b8ff;stroke:#063f68;stroke-width:.7}
.website-hover-flag{display:none}
@media(hover:hover) and (pointer:fine){.website-hover-flag{display:block;position:absolute;left:39px;top:8px;white-space:nowrap;font:600 10px/1.3 Arial,sans-serif;padding:5px 8px;color:#fff8df;background:#174f68;border:1px solid #e5c773;border-radius:2px;box-shadow:0 2px 4px #0004;opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s;pointer-events:none}.website-link:hover .website-hover-flag,.website-link:focus-visible .website-hover-flag{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.website-hover-flag{transition:none}}

body .calendar-event .event-time.schedule-frame-header{width:calc(100% + 23px)!important;max-width:none!important;align-self:stretch;box-sizing:border-box;flex-shrink:0}
@media(max-width:760px),(hover:none){.website-hover-flag{display:none!important}}

/* V54 mystery deck and full-screen anime reveal */
.event-card.mystery-event-card{padding:0!important;background:#071a2c!important;border:0!important;box-shadow:0 8px 20px #00162b66;min-width:0;overflow:hidden;border-radius:16px;align-self:stretch}
.mystery-deck-card{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#071a2c;box-shadow:none;overflow:hidden;border-radius:16px;cursor:pointer;min-height:360px;max-height:610px}
.mystery-deck-card>img{display:block;width:100%;height:100%;min-height:360px;max-height:610px;object-fit:cover;object-position:center;transition:transform .35s,filter .35s}
.mystery-deck-caption{position:absolute;inset:auto 0 0;display:grid;gap:8px;text-align:center;padding:34px 16px 20px;background:linear-gradient(transparent,#051424f5 35%);color:#fff2bd;text-shadow:0 2px 3px #000}
.mystery-deck-caption small{font:700 10px/1.4 system-ui;letter-spacing:1.5px}.mystery-deck-caption strong{font:bold clamp(20px,2vw,28px)/1.1 Georgia}.mystery-deck-caption>span{font:700 13px/1.4 system-ui;color:#80ddff}
@media(hover:hover){.mystery-deck-card:hover>img{transform:scale(1.035);filter:brightness(1.12)}}
.mystery-thumb img{object-fit:cover!important}
dialog.mystery-reveal{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;box-sizing:border-box;border:0;border-radius:0;padding:24px 20px max(20px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 43%,#126a8d 0%,#071e38 48%,#030d20 90%);color:#fff2c0;overflow:auto;isolation:isolate;}
dialog.mystery-reveal[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.mystery-reveal::backdrop{background:#030d20}.mystery-reveal header,.mystery-reveal footer{position:relative;z-index:3;text-align:center;max-width:620px;flex:none}.mystery-reveal header h2{font:bold clamp(20px,3vw,32px)/1.15 Georgia;color:#fff4cf;margin:6px 0}.mystery-reveal header p{margin:5px 0;font:14px/1.35 system-ui}.mystery-reveal .reveal-kicker{font:bold 10px/1.3 system-ui;letter-spacing:3px;color:#ffcf57}.reveal-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:16px;z-index:5;width:44px;height:44px;background:#06172fe0;color:#fff;border:1px solid #eac56a;border-radius:50%;font:28px/1 system-ui;box-shadow:none;padding:0}
.reveal-perspective{perspective:1500px;position:relative;z-index:2;flex:none;animation:reveal-float 3s ease-in-out infinite}
.reveal-turn{display:block;position:relative;padding:0;border:0;background:none;box-shadow:none;width:min(70vw,310px,calc((100dvh - 250px)*.6667));aspect-ratio:2/3;cursor:pointer;border-radius:16px;overflow:visible}.reveal-turn:disabled{opacity:1;cursor:default;filter:none}
.reveal-card{display:block;position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(0deg) rotateZ(-3deg);transition:transform 1.15s cubic-bezier(.22,.8,.2,1);filter:drop-shadow(0 16px 20px #0008)}
.reveal-back,.reveal-front{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;overflow:hidden;box-sizing:border-box}.reveal-back img{width:100%;height:100%;display:block;object-fit:cover}.reveal-front{transform:rotateY(180deg);border:5px solid #dfad43;outline:2px solid #fff0aa;background:linear-gradient(135deg,#164355,#092633);display:flex;flex-direction:column;padding:14px 12px;color:#fff1c6;text-align:center;gap:10px}.reveal-front-label{font:800 9px/1.2 system-ui;letter-spacing:2px;color:#ffd661}.reveal-front>strong{font:bold clamp(17px,3.8vw,25px)/1.05 Georgia;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:none;border-bottom:3px double #dfad43;padding-bottom:10px}.reveal-art{flex:1;min-height:0;border:2px solid #dfad43;border-radius:5px;overflow:hidden}.reveal-art img{width:100%;height:100%;object-fit:cover;display:block}.reveal-description{font:13px/1.35 Georgia;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:none}.reveal-meta{font:700 11px/1.2 system-ui;color:#ffdf90;flex:none}
.reveal-cta{background:linear-gradient(#e82d3a,#aa0829);border:2px solid #f7c75c;color:#fff4d4;padding:12px 24px;box-shadow:0 5px 0 #630821,0 8px 16px #0005;font:bold 17px/1.2 Georgia;border-radius:7px}.reveal-cta:active{transform:translateY(3px);box-shadow:0 2px 0 #630821}.mystery-reveal .reveal-hint{font:11px/1.4 system-ui;max-width:360px;margin:14px auto 0;color:#a6d7e4}
.reveal-rays{position:fixed;inset:-80%;z-index:-1;background:repeating-conic-gradient(from 10deg,transparent 0deg 13deg,#51c8eb25 13deg 15deg,transparent 15deg 24deg);opacity:.35;pointer-events:none}.reveal-burst{position:fixed;width:min(100vw,800px);aspect-ratio:1;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) scale(.1);opacity:0;border:14px solid #ffeaaa;pointer-events:none;z-index:1;}
.is-revealed .reveal-card{transform:rotateY(180deg) rotateZ(0deg)}.is-revealed .reveal-perspective{animation:none}.is-revealed .reveal-rays{animation:reveal-rush 1.5s ease-out forwards}.is-revealed .reveal-burst{animation:reveal-impact 1s .35s ease-out forwards}
@keyframes reveal-float{50%{transform:translateY(-8px)}}@keyframes reveal-rush{0%{transform:rotate(-10deg) scale(.85);opacity:.3}30%{opacity:1}100%{transform:rotate(12deg) scale(1.15);opacity:.4}}@keyframes reveal-impact{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}20%{opacity:.75}100%{opacity:0;transform:translate(-50%,-50%) scale(1.4)}}
@media(max-width:700px){.mystery-deck-card,.mystery-deck-card>img{max-height:540px}.mystery-reveal header{padding:22px 26px 0}.mystery-reveal header h2{font-size:20px}.mystery-reveal header p{font-size:12px}.reveal-turn{width:min(68vw,300px,calc((100dvh - 250px)*.6667))}.reveal-front{padding:10px 9px;gap:8px}.reveal-front>strong{font-size:21px}.reveal-description{font-size:12px}}
@media(max-height:580px){dialog.mystery-reveal[open]{justify-content:flex-start}.reveal-turn{width:180px}.reveal-description{-webkit-line-clamp:2}}
@media(prefers-reduced-motion:reduce){.reveal-perspective,.is-revealed .reveal-rays,.is-revealed .reveal-burst{animation:none!important}.reveal-card{transition:none}.mystery-deck-card>img{transition:none}.reveal-burst{display:none}}
/* Keep decorative rays outside layout and horizontal scrolling. */
dialog.mystery-reveal{overflow-x:hidden}.reveal-rays{inset:0;background-size:100% 100%;contain:strict}
/* A filter on the 3D parent flattens its faces in Chromium and Safari. */
.reveal-card{filter:none}.reveal-turn{filter:drop-shadow(0 16px 20px #0008)}

/* V55 schedule duplication: compact, readable date choices at both widths. */
.duplicate-schedule-dialog{width:min(620px,calc(100vw - 28px));box-sizing:border-box}.duplicate-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;margin:14px 0}.duplicate-days legend{font-weight:bold}.duplicate-days label{display:flex;align-items:center;gap:8px;margin:0;padding:9px 7px;background:#fff4d5;border:1px solid #bd9758;border-radius:5px;font:14px/1.25 system-ui;min-width:0}.duplicate-days input,.duplicate-cost-option input{flex:0 0 auto;width:18px;height:18px;margin:0}.duplicate-days label:has(input:disabled){opacity:.5}.duplicate-cost-option{display:flex;align-items:center;gap:9px;margin:15px 0 8px!important}.duplicate-summary{padding:10px;background:#f2dfac;border-radius:5px;font-weight:bold}.duplicate-error{color:#a10c29;font:14px/1.4 system-ui}.duplicate-error:empty{display:none}.duplicate-event-button{margin:8px 0 15px;max-width:100%;font-size:14px}.duplicate-menu-button{white-space:nowrap}
@media(max-width:420px){.duplicate-days{gap:6px;padding:9px}.duplicate-days label{font-size:12px}.duplicate-schedule-dialog h2{font-size:23px}}

/* Desktop lift, tilt, directional shadow and foil reflection during discovery. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .mystery-event-card{transform:perspective(1100px) rotateX(0deg) rotateY(0deg) scale(1);transition:transform .32s cubic-bezier(.2,.75,.2,1),box-shadow .32s;will-change:transform}
 .mystery-event-card.card-hover-active{position:relative;z-index:2;transform:perspective(1100px) translateY(-7px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(1.035);box-shadow:var(--card-shadow-x,0px) var(--card-shadow-y,23px) 30px #001322a6,0 3px 8px #0005}
 .reveal-turn{transform:rotateX(0deg) rotateY(0deg) scale(1);transition:transform .32s cubic-bezier(.2,.75,.2,1),filter .32s;filter:drop-shadow(var(--card-shadow-x,0px) var(--card-shadow-y,16px) 20px #0009)}
 .reveal-turn.card-hover-active{transform:translateY(-7px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(1.045);filter:drop-shadow(var(--card-shadow-x,0px) var(--card-shadow-y,23px) 26px #000b)}
 .reveal-turn::after,.mystery-deck-card::after{content:'';position:absolute;inset:0;z-index:4;border-radius:16px;pointer-events:none;opacity:0;background:radial-gradient(ellipse at var(--card-glare-x,50%) var(--card-glare-y,50%),#fff5,transparent 55%);transition:opacity .3s;mix-blend-mode:screen}
 .reveal-turn.card-hover-active::after,.mystery-event-card.card-hover-active .mystery-deck-card::after{opacity:.6}
 .mystery-event-card.card-hover-active .mystery-deck-card>img{transform:none}
}
.duplicate-days input,.duplicate-cost-option input{min-height:18px}.duplicate-cost-option{flex-direction:row!important}.duplicate-schedule-dialog .duplicate-days label{padding:8px 7px}
/* V55.1: discoverable controls without extra card rows. */
.inspect-card-button{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:4;background:#092f47e8;color:#fff0bd;border:1px solid #eac46a;border-radius:6px;min-height:30px;padding:5px 10px;font:700 12px/1.2 system-ui;box-shadow:0 3px 5px #0005}.inspect-card-button:hover{transform:translateX(-50%) translateY(-2px)}.inspect-card-button:active{transform:translateX(-50%) translateY(0)}
.duplicate-schedule-visible{font-size:14px;min-height:40px;padding:8px 13px;justify-self:end}.preview-feature-demo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 18px;padding:10px;background:#f5dfaa;border:1px solid #b68a42;border-radius:6px;font:12px/1.4 system-ui}.preview-feature-demo button{font-size:13px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 #event-list .event-card:not(.blockout-card){transition:transform .32s cubic-bezier(.2,.75,.2,1),box-shadow .32s}
 #event-list .event-card:not(.blockout-card).card-hover-active{z-index:2;transform:perspective(1100px) translateY(-6px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(1.025);box-shadow:var(--card-shadow-x,0px) var(--card-shadow-y,23px) 30px #0013229c,0 3px 8px #0005}
}
@media(max-width:700px){.duplicate-schedule-visible{font-size:12px;padding:6px 10px}.inspect-card-button{font-size:11px;min-height:28px;padding:4px 8px}.preview-feature-demo{gap:8px}}

/* V56 schedule queue: compact controls, usable on phone and desktop. */
.queue-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.queue-heading h3{margin:0;flex:1;font-size:clamp(1rem,2vw,1.3rem)}
.queue-duplicate,.queue-actions button{font-size:.8rem;padding:7px 10px;min-height:36px}
.queue-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.visit-label{display:inline-block;font:600 .7rem system-ui,sans-serif;color:inherit;opacity:.8}
.unscheduled-item>div{min-width:0}.unscheduled-item strong{overflow-wrap:anywhere}
#schedule-visit-dialog{width:min(520px,calc(100vw - 24px))}#schedule-visit-dialog h2{font-size:1.25rem}
@media(max-width:600px){.queue-heading h3{font-size:1rem}.queue-actions button,.queue-duplicate{font-size:.75rem;padding:7px 9px}.unscheduled-item{align-items:start}}

.duplicate-mark{width:14px;height:14px;display:inline-block;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:1.5;margin-right:3px}.full-trip-shell .queue-actions button{width:auto;flex:1}.unscheduled-panel .queue-heading h3{font-size:1.2rem;margin:0}@media(max-width:600px){.unscheduled-panel .queue-heading h3{font-size:1.05rem}}

/* V56.1: form errors belong to the open editor, inside its top layer. */
.form-error,.dialog-notice{padding:12px 14px;margin:12px 0;border:1px solid #b9883c;border-radius:6px;background:#fff0cb;color:#4a2b16;font:14px/1.5 Arial,sans-serif;overflow-wrap:anywhere;box-shadow:0 2px 0 #b9883c30;scroll-margin-block:100px 20px}
.form-error{border-color:#a93736;background:#fff0e0;border-left:4px solid #a93736;color:#702323}
.form-error:focus-visible{outline:2px solid #087bbb;outline-offset:3px}
.form-error[hidden],.dialog-notice[hidden]{display:none}
#event-form [aria-invalid="true"]{border-color:#a93736;box-shadow:0 0 0 1px #a9373650}
@media(max-width:600px){.form-error,.dialog-notice{font-size:13px;padding:10px 11px}}

/* V56.2: actual Events page remains behind the full-page card flip. */
dialog.mystery-reveal{background:transparent;filter:none;color:var(--ink);box-shadow:none}
dialog.mystery-reveal::backdrop{background:transparent;backdrop-filter:none}
.mystery-reveal .reveal-rays,.mystery-reveal .reveal-burst{display:none}
.mystery-reveal>header,.mystery-reveal>footer{background:linear-gradient(135deg,#fff3d4,#f4dfb2);border:1px solid #b98a40;border-radius:9px;padding:10px 16px;box-shadow:0 4px 12px #38260f35;max-width:min(620px,calc(100vw - 36px))}
.mystery-reveal header h2,.mystery-reveal header p,.mystery-reveal .reveal-hint{color:#49301a}
.mystery-reveal .reveal-kicker{color:#8c551f}.mystery-reveal .reveal-hint{margin-top:10px}
.reveal-art>.reveal-event-scene{display:block;height:100%;width:100%;aspect-ratio:auto}.reveal-event-scene svg{width:100%;height:100%}
/* Frame ends with the whole card back, followed by a separate mystery prompt. */
.event-card.mystery-event-card{background:transparent!important;border:0!important;box-shadow:none;align-self:start;height:auto!important;min-height:0!important;overflow:visible;border-radius:0}
.event-card.mystery-event-card .mystery-deck-card{display:flex;flex-direction:column;gap:10px;height:auto;min-height:0;max-height:none;padding:0;background:transparent;border:0;border-image:none;border-radius:0;overflow:visible;clip-path:none}
.event-card.mystery-event-card .mystery-deck-card>img{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:2/3;object-fit:contain;box-sizing:border-box;border:5px double #d4a54b;border-radius:13px;box-shadow:0 5px 12px #31220d40;background:#092533}
.event-card.mystery-event-card .mystery-deck-caption{position:static;inset:auto;background:linear-gradient(135deg,#fff2d2,#f1dbac);border:1px solid #b58b44;border-radius:8px;padding:13px 10px;gap:7px;color:#49301a;text-shadow:none;box-shadow:0 3px 0 #b68c4433}
.event-card.mystery-event-card .mystery-deck-caption>span{color:#08749e}
/* Queue actions stay on one row, including at narrow side-panel widths. */
.unscheduled-panel .queue-actions{grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:5px;width:100%;align-items:center}
.unscheduled-panel .queue-actions>[data-queue-edit]{flex:1 1 auto;min-width:0;width:auto;padding:7px 4px;font-size:13px;white-space:nowrap}
.unscheduled-panel .queue-actions>.queue-repeat,.unscheduled-panel .queue-actions>.queue-remove{flex:0 0 32px;width:32px;min-width:32px;padding:7px 0;font:700 14px/1 Georgia,serif;min-height:36px}
.unscheduled-panel .queue-actions>.queue-remove{color:#94312e}
#remove-schedule-visit-dialog{width:min(460px,calc(100vw - 24px))}#remove-schedule-visit-dialog h2{font-size:1.4rem}
@media(max-width:600px){.mystery-reveal>header,.mystery-reveal>footer{padding:9px 12px}.mystery-reveal header h2{font-size:19px}.event-card.mystery-event-card .mystery-deck-caption strong{font-size:23px}.unscheduled-panel .queue-actions>[data-queue-edit]{font-size:12px}}
#event-list .event-card.mystery-event-card{padding:0!important;border:0!important;border-image:none!important;min-height:0!important;height:auto!important}
#event-list .mystery-deck-card:hover>img{transform:none}

/* V56.3: single, larger reveal card; quiet physical movement. */
dialog.mystery-reveal{padding:24px 16px;overflow:auto}
dialog.mystery-reveal[open]{justify-content:center;gap:0}
.mystery-reveal .reveal-turn{width:min(calc(100vw - 32px),560px,calc((100dvh - 48px)*.666667));aspect-ratio:2/3}
.mystery-reveal .reveal-card{transform:rotateY(0deg)}
.mystery-reveal.is-revealed .reveal-card{transform:rotateY(180deg)}
.reveal-error:not([hidden]){position:absolute;bottom:8px;left:8px;right:8px;z-index:5;padding:12px;background:#fff2d5;color:#8f1830;border:1px solid #a33;border-radius:6px;font:14px/1.4 system-ui}
.event-details-body .inspect-card-button{position:static;inset:auto;display:inline-block;background:#fff1cf;color:#493018;border:1px solid #b99654;border-radius:4px;box-shadow:0 2px 0 #987c48;margin:6px 4px;padding:8px 10px;opacity:1;font:600 13px/1.2 system-ui;transform:none}
#month-calendar .month-grid{grid-template-rows:auto calc(225px * var(--schedule-zoom,1)) auto calc(225px * var(--schedule-zoom,1));height:auto;min-height:0}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .event-card.card-hover-active,.mystery-event-card.card-hover-active{transform:perspective(1100px) translateY(-4px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(1.022)}
 .reveal-turn.card-hover-active{transform:translateY(-4px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) scale(1.025)}
}

/* Compact stays in the day/week calendar; full details remain one tap away. */
body .calendar-stay-lane{min-height:0;padding:4px 0;gap:4px 0;align-items:center}
body .calendar-stay{height:58px;min-height:58px;max-height:58px;padding:5px 22px 5px 7px;min-width:0;box-sizing:border-box;border-radius:5px}
body .calendar-stay strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:700 11px/1.2 Georgia,serif!important}
body .calendar-stay small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:10px/1.2 Arial!important;margin-top:3px}
body .stay-lane-label{font-size:18px}
body .stay-lane-empty{min-height:28px;line-height:28px}

/* V57: distinct totals and included breakdowns; responsive budget sheets. */
#budget-page .budget-total-label{display:block;color:#75562c;font:600 10px/1.35 Arial;letter-spacing:.2px;margin-top:3px}
#budget-page .budget-included{display:block;font:10px/1.35 Arial;color:#806a48;margin-top:2px}
#budget-page .forecast-event-header,#budget-page .expense-group-header{background:#e9d5a266;border-bottom:1px solid #c8ad77;padding-block:12px!important}
#budget-page .forecast-item,#budget-page .expense-table-row{background:#fff8e54d}
#budget-page .forecast-item>div:first-child,#budget-page .expense-description{padding-left:20px;border-left:2px solid #c5a267;margin-left:12px}
#budget-page .forecast-item .forecast-amount,#budget-page .expense-table-row .expense-amount{font-weight:400!important;font-size:12px!important;color:#655037}
#budget-page .budget-event-name{flex-wrap:wrap}
#budget-page .budget-event-name>.budget-total-label{flex-basis:100%;padding-left:56px}
#forecast-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;font:13px/1.4 Arial}
#forecast-tools img{object-fit:cover;border-radius:4px}
#forecast-tools button{font-size:12px;min-height:36px}
#forecast-tools [role=alert]:empty{display:none}
@media(max-width:760px){
 #budget-page{--budget-table-min:0px}
 #budget-page #projected-cost-list,#budget-page .expense-table,#budget-page #person-balances{overflow:visible;width:100%;min-width:0}
 #budget-page .budget-grid,#budget-page #projected-cost-list .forecast-grid{min-width:0!important;width:100%;grid-template-columns:minmax(0,1fr) 82px 34px!important;gap:6px!important;padding:9px 4px!important}
 #budget-page .forecast-grid>span:empty,#budget-page .budget-grid>span:empty{display:none!important}
 #budget-page .forecast-grid>.forecast-amount,#budget-page .budget-grid>.budget-amount{grid-column:2!important;grid-row:1!important;font-size:13px!important;align-self:start}
 #budget-page .forecast-edit,#budget-page .expense-table-row>button{grid-column:3!important;grid-row:1!important}
 #budget-page .forecast-event-name,#budget-page .budget-event-name{grid-column:1!important;grid-row:1!important;gap:6px}
 #budget-page .forecast-event-name .expense-thumb,#budget-page .budget-event-name .expense-thumb{width:30px!important;height:30px!important}
 #budget-page .forecast-event-name strong,#budget-page .budget-event-name strong,#budget-page .budget-event-name button{font-size:12px!important}
 #budget-page .forecast-crew-cell,#budget-page .expense-group-header>div:nth-child(2){grid-column:1/3!important;grid-row:2!important;margin-left:36px}
 #budget-page .forecast-item>div:first-child{grid-column:1!important;grid-row:1!important;margin-left:5px;padding-left:9px!important}
 #budget-page .forecast-item>.forecast-crew-cell{margin-left:16px}
 #budget-page .overview-sort{grid-template-columns:minmax(0,1fr) 82px 34px!important}
 #budget-page .overview-sort>span:nth-child(2),#budget-page .overview-sort>span:nth-child(3),#budget-page .overview-sort>span:nth-child(4){display:none!important}
 #budget-page .overview-sort>button:nth-child(5){grid-column:2!important;font-size:10px}
 #budget-page .overview-sort>span:last-child{grid-column:3!important;font-size:10px}
 #budget-page .expense-table-head{display:flex!important;flex-wrap:wrap;gap:8px!important;min-height:0}
 #budget-page .expense-table-head>span:last-child{display:none!important}
 #budget-page .expense-table-head button{font-size:10px!important;min-height:28px}
 #budget-page .expense-table-row>.expense-description{grid-column:1!important;grid-row:1!important;margin-left:5px;padding-left:9px}
 #budget-page .expense-table-row>.expense-split{grid-column:1!important;grid-row:2!important}
 #budget-page .expense-table-row>.expense-payer{grid-column:2/4!important;grid-row:2!important}
 #budget-page .expense-table-row>.expense-date{grid-column:1/4!important;grid-row:3!important;font-size:11px}
 #budget-page .expense-split:before{content:'Split between';display:block;font:10px Arial;color:#765d3e;margin-bottom:4px}
 #budget-page .expense-payer:before{content:'Paid by';display:block;font:10px Arial;color:#765d3e;margin-bottom:4px;text-align:center}
 #budget-page .expense-date:before{content:'Date · '}
 #budget-page .budget-event-name>.budget-total-label{padding-left:0}
 #budget-page .balance-row{min-width:0;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,1fr));gap:4px;padding:10px 3px;font-size:11px}
 #budget-page .balance-row>*:nth-child(3){grid-column:3}#budget-page .balance-row>*:nth-child(4){grid-column:4}
 #budget-page .settlement-row{gap:4px;font-size:11px;min-width:0;flex-wrap:wrap}
 #budget-page .forecast-share{min-width:0;font-size:13px}
}
@media(max-width:760px){
 #budget-page .forecast-event-header>.forecast-event-name,#budget-page .expense-group-header>.budget-event-name{grid-column:1/-1!important;grid-row:1!important;align-items:flex-start}
 #budget-page .forecast-event-header>.forecast-crew-cell,#budget-page .expense-group-header>div:nth-child(2){grid-column:1!important;grid-row:2!important;margin-left:0}
 #budget-page .forecast-event-header>.forecast-amount,#budget-page .expense-group-header>.budget-amount{grid-column:2!important;grid-row:2!important;align-self:center}
 #budget-page .forecast-event-header>.forecast-edit{grid-column:3!important;grid-row:2!important}
 #budget-page .forecast-event-name>div{min-width:0}
 #budget-page .expense-description{text-align:left!important}
 #budget-page .forecast-item>div:first-child{padding-left:9px!important}
}

/* V58: dates are secondary to event names at every screen width. */
#budget-page .forecast-scheduled-date{display:block;font:400 12px/1.4 Arial;color:#665744;margin-top:3px}
.forecast-sort-controls{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.forecast-sort-controls button{font-size:12px}
#budget-page .balance-explanation{font:400 13px/1.5 Arial;color:#514131;max-width:65ch}
#forecast-tools [data-clear-forecast]{color:#922824;border-color:#922824}
@media(max-width:600px){#budget-page .forecast-scheduled-date{font-size:10px}.forecast-sort-controls button{font-size:10px;padding:5px}#budget-page .balance-explanation{font-size:11px}}
#budget-page .overview-sort>.forecast-sort-controls{display:flex!important;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
#budget-page .forecast-sort-controls button{white-space:normal!important;text-align:left;max-width:100%;font-size:12px!important;line-height:1.3;padding:3px 0}
@media(max-width:760px){#budget-page .forecast-sort-controls button{font-size:10px!important}#budget-page .overview-sort>button{white-space:normal!important;line-height:1.3}}
@media(max-width:760px){#budget-page .balance-row>*:nth-child(2){grid-column:2;grid-row:1}#budget-page .balance-row>*{grid-row:1}}
