/* Updated with direct costs and deposit tracking (v1.2). */
:root{color-scheme:light;--ink:#17283f;--ink2:#40536a;--muted:#75859a;--line:#e6eaf0;--paper:#f6f8fb;--white:#fff;--teal:#087c79;--mint:#eaf7f4;--blue:#eaf2ff;--shadow:0 10px 30px rgba(27,51,85,.048);--radius:17px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #99d8db;outline-offset:2px}a{color:#076b77;text-decoration:none}a:hover{text-decoration:underline}.hidden{display:none!important}.muted{color:var(--muted)}.app-shell{max-width:1510px;margin:auto;min-height:100vh}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 44px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.86)}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand-symbol{width:41px;height:41px;border-radius:13px;background:#112a42;color:white;font-size:24px;display:grid;place-items:center}.brand strong{font-size:17px;letter-spacing:-.3px}.brand small{display:block;font-size:12px;color:#8491a2;margin-top:2px}.nav-and-tools{display:flex;align-items:center;gap:12px}.main-nav{padding:5px;border:1px solid var(--line);background:#f8fafc;border-radius:12px;display:flex;gap:2px}.nav-link{background:none;border:0;color:#687b90;font-weight:650;padding:10px 18px;border-radius:8px;font-size:13px}.nav-link.active{color:var(--ink);background:white;box-shadow:0 1px 5px #142a3b13}.small-tool{height:39px;border:1px solid var(--line);background:white;color:#33485d;border-radius:10px;padding:0 12px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.small-tool svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.small-tool.tool-icon{width:38px;justify-content:center;padding:0}.menu-pop{position:absolute;z-index:20;right:35px;top:74px;width:230px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 13px 30px #071d3033}.menu-pop button{display:block;border:0;background:none;width:100%;text-align:left;padding:12px 10px;font-size:12px;color:#30455d;border-radius:8px}.menu-pop button:hover{background:#f3f6fa}main{padding:36px 44px 28px}.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:var(--teal);font-size:11px;text-transform:uppercase;letter-spacing:1.8px;font-weight:800}.intro h1{font-size:clamp(27px,3vw,38px);margin:8px 0 7px;letter-spacing:-1.3px;font-weight:760}.intro p{color:#7a899d;font-size:13px;margin:0}.button-primary{background:#13324b;color:white;border:1px solid #13324b;border-radius:10px;padding:11px 17px;font-weight:680;font-size:12px}.button-secondary{background:white;color:#30465b;border:1px solid #dce4ec;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:650}.button-plain{background:none;border:0;color:#587084;font-size:12px;padding:7px;font-weight:650}.button-danger{color:#a33735}.hero{background:linear-gradient(115deg,#102d44 10%,#183f54 70%,#15565b);color:white;border-radius:20px;padding:26px 30px;display:flex;justify-content:space-between;gap:22px;align-items:center;box-shadow:0 13px 31px #112e441c;margin-bottom:25px}.hero .eyebrow{color:#a0dedc}.hero h2{font-weight:710;font-size:23px;letter-spacing:-.7px;margin:7px 0 8px}.hero p{max-width:640px;font-size:12px;color:#c2d0dc;line-height:1.7;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-button{background:white;border:0;color:#143349;padding:12px 16px;border-radius:10px;font-size:12px;font-weight:750;white-space:nowrap}.hero-button.ghost{background:#ffffff21;color:white;border:1px solid #ffffff42}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:28px}.summary-box{padding:20px;background:#fff;border:1px solid #e7edf3;border-radius:15px;box-shadow:var(--shadow)}.summary-label{font-size:12px;color:#718298;font-weight:640}.summary-value{font-size:27px;font-weight:760;letter-spacing:-.7px;margin-top:6px}.summary-foot{margin-top:6px;font-size:11px;color:#93a0b0}.section-stack{display:grid;gap:13px}.section-panel{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.section-head{padding:19px 22px;display:flex;align-items:center;gap:12px}.section-head .round-icon{width:38px;height:38px;background:#edf5f6;border-radius:10px;display:grid;place-items:center;font-size:18px;flex-shrink:0}.section-label{flex:1;min-width:0}.section-label strong{font-size:14px;display:block;letter-spacing:-.15px}.section-label small{font-size:11px;color:#8897a7;display:block;margin-top:3px}.count-tag{background:#f3f6f9;color:#728197;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:750}.chevron{width:17px;height:17px;color:#8894a7;transition:.16s transform}.section-panel.open .chevron{transform:rotate(180deg)}.section-head-toggle{background:none;border:0;padding:0 4px 0 0;display:flex;align-items:center;gap:9px;color:inherit}.section-body{border-top:1px solid #edf0f5;padding:0 22px 17px}.entry{display:flex;align-items:flex-start;gap:14px;padding:19px 0;border-bottom:1px solid #edf1f6;position:relative}.entry:last-child{border-bottom:none}.entry-marker{width:5px;min-width:5px;height:49px;border-radius:6px;background:#cbd5e1}.status-possible .entry-marker,.status-possible .calendar-entry:before{background:#aebccc}.status-favourite .entry-marker,.status-favourite .calendar-entry:before{background:#a98be6}.status-decided .entry-marker,.status-decided .calendar-entry:before{background:#f0bc60}.status-booked .entry-marker,.status-booked .calendar-entry:before{background:#37b69c}.entry-main{min-width:0;flex:1}.entry-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.entry h3{font-size:14px;font-weight:750;letter-spacing:-.2px;margin:0}.entry-sub{color:#8392a6;font-size:11px;margin-top:4px}.entry-details{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#63758b}.entry-details span{display:flex;align-items:center;gap:4px}.status-pill{font-size:10px;border-radius:6px;padding:5px 8px;font-weight:750;background:#eef2f5;color:#6e7c8e;white-space:nowrap}.status-pill.favourite{background:#f0eafd;color:#8262bf}.status-pill.decided{background:#fff4dc;color:#ae791e}.status-pill.booked{background:#e4f7f0;color:#188c73}.verify-chip{font-size:10px;color:#a46c11;background:#fff4df;border-radius:5px;padding:4px 7px}.entry-right{display:flex;align-items:center;gap:7px;margin-left:auto}.status-select{border:1px solid #e0e5ec;border-radius:9px;padding:7px 22px 7px 8px;background:#fff;font-size:11px;color:#4b5f74;max-width:110px}.icon-btn{width:31px;height:31px;border:1px solid #e6ebf0;background:white;border-radius:8px;display:grid;place-items:center;color:#687a8c;font-size:16px}.detail-panel{margin-top:15px;padding:14px 15px;border-radius:10px;background:#f7f9fb;border:1px solid #eaf0f3;font-size:12px;line-height:1.7;color:#53687c}.detail-panel p{margin:5px 0}.detail-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:9px}.detail-links a,.detail-links button{border:0;background:none;padding:0;font-size:11px;font-weight:700;color:#087679}.mini-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:19px 0 9px}.mini-head strong{font-size:12px;color:#506478}.mini-head span{font-size:11px;color:#98a3b0}.activity-tags{display:flex;align-items:center;gap:9px;margin:12px 0}.activity-tags button{border:1px solid #dfe7ed;background:white;padding:8px 12px;color:#63788c;font-size:11px;font-weight:700;border-radius:9px}.activity-tags button.active{background:#e9f5f4;color:#007b77;border-color:#b4dfda}.site-footer{display:flex;gap:18px;justify-content:space-between;color:#97a3b2;font-size:10px;padding:12px 44px 29px}.calendar-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.shelf{position:sticky;top:14px;background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.shelf-head{padding:19px 19px 14px;border-bottom:1px solid var(--line)}.shelf h2{font-size:14px;margin:0 0 5px}.shelf p{font-size:11px;color:#8090a1;line-height:1.5;margin:0}.shelf-filter{display:flex;gap:5px;padding:11px 12px}.shelf-filter button{border:0;border-radius:7px;padding:7px 9px;font-size:10px;font-weight:720;background:#f5f7fa;color:#75879b}.shelf-filter button.active{background:#e8f5f3;color:#077872}.shelf-list{overflow:auto;max-height:620px;padding:0 12px 15px}.shelf-card{margin:7px 0;border:1px solid #e8edf2;padding:12px;border-radius:10px;cursor:grab;background:#fff}.shelf-card:hover{border-color:#91bfc3;background:#fafdff}.shelf-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.shelf-card h4{font-size:12px;margin:0 0 4px;line-height:1.35}.shelf-card small{font-size:10px;color:#8b99a8}.shelf-card .tiny{font-size:10px;color:#60758b}.shelf-card .place{margin-top:9px;color:#006d77;border:0;background:none;padding:0;font-size:10px;font-weight:750}.calendar-wrap{min-width:0}.calendar-note{display:flex;align-items:start;gap:9px;border:1px solid #d9e7e8;background:#eef8f8;padding:13px 15px;border-radius:11px;font-size:11px;color:#4d7578;margin-bottom:15px;line-height:1.65}.calendar-note b{color:#14555b}.week-scroll{overflow:auto;padding-bottom:17px}.week{display:grid;grid-template-columns:repeat(8,minmax(176px,1fr));gap:10px;min-width:1438px}.day{border:1px solid #e3eaf1;background:white;border-radius:15px;min-height:390px;transition:.15s}.day.hovered{background:#eaf7f3;border-color:#6fc0b2}.day-top{padding:14px;border-bottom:1px solid #edf1f5}.day-top .dow{font-size:10px;color:#8293a7;font-weight:750;text-transform:uppercase;letter-spacing:1px}.day-top .date{font-size:25px;font-weight:800;letter-spacing:-1px;line-height:1.3}.day-top .day-count{font-size:10px;color:#9aa6b4}.day-body{padding:9px;min-height:285px;display:flex;flex-direction:column;gap:7px}.calendar-entry{background:#f9fbfd;border:1px solid #e8edf1;border-radius:9px;padding:10px 10px 10px 14px;position:relative;cursor:grab}.calendar-entry:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:9px 0 0 9px}.calendar-entry.sport{background:#edf8f6;border-color:#cce9e0}.calendar-entry .time{font-size:10px;color:#648090;font-weight:800}.calendar-entry strong{display:block;font-size:11px;line-height:1.35;margin:3px 0 4px;word-break:break-word}.calendar-entry small{font-size:9px;color:#8695a5}.calendar-entry .row-actions{display:flex;justify-content:space-between;align-items:center;margin-top:6px}.calendar-entry button{font-size:10px;color:#087a7a;border:0;background:transparent;padding:0}.day-empty{margin:auto 0;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#bdc8d3;font-size:11px;gap:5px;cursor:pointer}.day-empty b{font-size:21px;color:#a1b7c4;font-weight:400}.day .add-day{width:100%;border:1px dashed #d4e1e9;background:#f8fafc;padding:8px;font-size:10px;border-radius:8px;color:#758a99;margin-top:auto}.warning-list{background:#fffaf1;border:1px solid #f5e1b9;border-radius:13px;margin-top:15px;padding:13px 15px;color:#775421;font-size:12px;line-height:1.6}.warning-list b{display:block;margin-bottom:6px}.warning-list p{margin:6px 0}.selected-shelf{background:#e8f7f4!important;border-color:#5fbaa7!important}.calendar-help{font-size:11px;color:#9baaba;margin-top:10px}.modal-layer{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:15px}.modal-shadow{position:absolute;inset:0;background:#13263d9c;backdrop-filter:blur(3px)}.modal-card{z-index:1;position:relative;background:#fff;box-shadow:0 25px 80px #102d4442;border-radius:20px;max-width:630px;width:100%;max-height:min(92vh,870px);overflow:auto}.modal-header{padding:25px 27px 13px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-header small{font-weight:800;text-transform:uppercase;letter-spacing:1.3px;color:#13817b;font-size:10px}.modal-header h2{font-size:23px;letter-spacing:-.7px;margin:5px 0 0}.close-button{border:0;background:#f1f4f6;border-radius:9px;width:35px;height:35px;font-size:23px;color:#778598}.modal-content{padding:11px 27px 27px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field.wide{grid-column:1/-1}.form-field label{font-size:11px;color:#617387;font-weight:750}.form-field input,.form-field select,.form-field textarea{border:1px solid #dfe5eb;border-radius:9px;background:white;padding:11px 12px;min-width:0;color:#1c354a;font-size:13px}.form-field textarea{resize:vertical;min-height:74px}.form-field .hint{font-size:10px;color:#98a5b0}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin-top:22px}.modal-actions .delete-action{margin-right:auto}.login-surface{display:flex;justify-content:center;padding:70px 15px}.login-card{padding:32px;background:white;border:1px solid var(--line);border-radius:18px;width:min(100%,420px);box-shadow:var(--shadow)}.login-card h2{margin:8px 0}.login-card p{color:#6b8092;font-size:13px;line-height:1.7}.login-card input{width:100%;border:1px solid #dfe7ee;border-radius:10px;padding:13px;margin-bottom:11px}.login-card button{width:100%}.price-table{display:grid;gap:8px}.price-row{display:grid;grid-template-columns:1fr 100px 78px 95px;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px}.price-row label{font-size:12px;font-weight:650}.price-row input,.price-row select{min-width:0;border:1px solid #dfe5eb;border-radius:8px;padding:8px;font-size:12px}.price-row button{border:0;background:#e5f6f0;color:#00836d;padding:8px;border-radius:8px;font-size:11px;font-weight:750}.price-row small{font-size:10px;color:#94a0ab;grid-column:1/-1}.price-row .paid-box{max-width:120px}.banner-ok{background:#e8f7f2;border:1px solid #c6e8dd;border-radius:10px;padding:12px;font-size:12px;color:#236d5b;line-height:1.6;margin-bottom:14px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,100px);opacity:0;z-index:200;background:#142f43;color:white;border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 10px 30px #122e4557;transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1}.calendar-day-sub{margin:5px 0 0;font-size:11px;color:#8091a2}hr{border:0;border-top:1px solid var(--line);margin:18px 0}
@media(max-width:940px){.topbar{padding:0 20px}.main-nav .nav-link{padding:10px 11px}.calendar-layout{grid-template-columns:1fr}.shelf{position:static}.shelf-list{max-height:220px;display:flex;gap:10px;overflow:auto}.shelf-card{min-width:190px;margin:4px 0}.site-footer{padding:13px 22px 25px}main{padding:26px 20px}.summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.topbar{height:auto;min-height:108px;display:block;padding:16px 14px}.brand{margin-bottom:12px}.nav-and-tools{justify-content:space-between}.nav-link{padding:9px 14px}.small-tool{height:36px}.main-nav{flex:1;justify-content:center}.main-nav .nav-link{flex:1}.intro{align-items:start;gap:10px}.intro h1{font-size:26px}.intro .button-secondary{font-size:10px;padding:9px 8px}.hero{display:block;padding:21px;margin-bottom:17px}.hero h2{font-size:20px}.hero-actions{margin-top:16px}.summary{gap:8px;margin-bottom:17px}.summary-box{padding:14px}.summary-value{font-size:24px}.section-head{padding:14px}.section-body{padding:0 14px 10px}.entry{gap:9px;padding:15px 0}.entry-right{flex-direction:column;gap:5px}.status-select{width:103px}.site-footer{display:block;font-size:10px}.site-footer span{display:block;margin:7px 0}.modal-card{max-height:94vh}.modal-content{padding:10px 17px 20px}.modal-header{padding:19px 17px 8px}.modal-header h2{font-size:20px}.price-row{grid-template-columns:1fr 70px 62px}.price-row label{grid-column:1/-1}.price-row button{grid-column:1/-1}.form-grid{gap:11px}.calendar-wrap{margin-right:-20px}.week-scroll{padding-right:20px}.week{min-width:1300px;grid-template-columns:repeat(8,minmax(154px,1fr))}.day{min-height:340px}.shelf-list{max-height:230px}}
@media print{.nav-and-tools,.hero-actions,.icon-btn,.status-select,.shelf,.site-footer,.day .add-day,.menu-pop{display:none!important}main{padding:10px}.calendar-layout{display:block}.week-scroll{overflow:visible}.week{min-width:0;grid-template-columns:repeat(4,1fr)}.day{break-inside:avoid}.section-panel{break-inside:avoid}body{background:white}}
/* v1.2: clear cost and payment controls, visible only after family login */
.cost-link{border:0;background:#f4f7fa;color:#5d7387;font-size:10px;line-height:1.5;font-weight:700;padding:5px 9px;border-radius:7px;text-align:left;cursor:pointer;white-space:normal}
.cost-link:hover{background:#e7f4f2;color:#0b716a}
.cost-link.cost-added{color:#16695d;background:#eaf6f1}
.cost-link span{font-weight:550;opacity:.85}
.cost-section-title{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;border-top:1px solid #e7edf2;padding-top:18px}
.cost-section-title strong{font-size:15px;color:#233f53}
.cost-section-title span{font-size:10px;color:#8999a6;text-align:right}
.balance-preview{background:#f0f8f5;border:1px solid #d7e8e2;padding:12px;border-radius:9px;color:#226d56;font-size:12px;font-weight:750}
.budget-description{font-size:12px;line-height:1.7;color:#64798a;margin-top:0}
.budget-summaries{display:grid;gap:8px;margin:14px 0}
.budget-summary-line{background:#f4f8fa;border:1px solid #e3ebf0;display:flex;flex-wrap:wrap;gap:7px 16px;border-radius:10px;padding:12px;font-size:11px;color:#607687}
.budget-summary-line strong{color:#173b4d;min-width:30px}
.budget-summary-line b{color:#076b60}
.budget-item-list{display:grid;gap:4px;max-height:430px;overflow:auto}
.budget-item{border:1px solid #edf0f3;border-radius:9px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;text-align:left;cursor:pointer}
.budget-item:hover{background:#f2f8f7;border-color:#cce2de}
.budget-name{font-size:12px;font-weight:730;color:#253e51;flex:1}
.budget-numbers{font-size:11px;color:#18806f;text-align:right}
.small-hint{font-size:10px;color:#8092a0;line-height:1.6}
@media(max-width:620px){.budget-item{align-items:flex-start;flex-direction:column;gap:5px}.budget-numbers{text-align:left}.cost-section-title{flex-wrap:wrap}}

/* v1.3 — compact visible finance summaries and 4 × 2 calendar */
.trip-budget-overview{background:#fff;border:1px solid #e1e9ef;border-radius:17px;margin:0 0 19px;padding:18px 22px;box-shadow:var(--shadow)}
.budget-total-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}
.budget-total-heading strong{display:block;font-size:17px;letter-spacing:-.3px;margin-top:3px}
.budget-total-heading small{font-size:11px;color:#8191a0}
.budget-total-grid{border-top:1px solid var(--line);padding-top:13px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.budget-total-grid>div:not(:last-child){border-right:1px solid var(--line)}
.budget-total-grid small{font-size:11px;color:#7b8d9e}
.budget-total-money{display:flex;flex-direction:column;gap:3px;margin-top:5px;font-size:19px;font-weight:790;line-height:1.25;color:#18384b;letter-spacing:-.5px}
.budget-total-money.paid-money{color:#147b65}.budget-total-money.due-money{color:#9c6324}
.money-token{display:block;white-space:nowrap}.money-empty{color:#a0acba;font-size:12px;font-weight:600;letter-spacing:0}
.section-finances{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:110px;margin-left:auto;padding:0 8px;text-align:right}
.section-finances small{color:#8a98a5;font-size:10px}.section-finances strong{display:flex;flex-direction:column;font-size:13px;color:#143b49;line-height:1.4;font-weight:770}.section-finances em{font-style:normal;font-size:10px;color:#8494a3}
.section-head-toggle{min-width:30px;min-height:36px;justify-content:center}
.calendar-layout{grid-template-columns:250px minmax(0,1fr);gap:17px}
.week{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;min-width:0}
.week-scroll{overflow:visible;padding:0}
.day{min-height:290px}
.day-top{padding:12px}.day-body{padding:8px;min-height:193px}
.calendar-entry{padding:9px 8px 9px 12px}
.checkout-reminder{font-size:10px;color:#256d7a;background:#f0f7fc;border:1px solid #d9e9f0;border-radius:7px;padding:6px 7px;line-height:1.35}
/* The activities tray stays on screen on desktop. Calendar itself has no internal scroll. */
.shelf{position:sticky;top:12px}
.shelf-list{max-height:min(64vh,700px);overflow-y:auto}
@media(max-width:1100px){.calendar-layout{grid-template-columns:225px minmax(0,1fr);gap:12px}.day-top{padding:10px}.day-top .date{font-size:22px}.week{gap:8px}.calendar-entry small{font-size:9px}}
@media(max-width:940px){.calendar-layout{grid-template-columns:1fr}.shelf{position:static}.shelf-list{max-height:220px;overflow-x:auto;overflow-y:hidden}.week{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-wrap{margin:0}}
@media(max-width:760px){.week{grid-template-columns:repeat(2,minmax(0,1fr))}.day{min-height:245px}.day-body{min-height:180px}.budget-total-money{font-size:17px}}
@media(max-width:620px){.calendar-wrap{margin:0}.week{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.section-finances{min-width:88px;padding:0 3px}.section-finances small{font-size:9px}.section-finances strong{font-size:12px}.trip-budget-overview{padding:15px}.budget-total-grid{gap:7px}.budget-total-money{font-size:15px}.budget-total-heading strong{font-size:15px}.day{min-width:0}}
@media(max-width:360px){.week{grid-template-columns:1fr}.budget-total-grid{grid-template-columns:1fr}.budget-total-grid>div:not(:last-child){border-right:0;border-bottom:1px solid var(--line);padding-bottom:9px}.section-head .round-icon{display:none}}
@media print{.week{grid-template-columns:repeat(4,1fr);min-width:0}.trip-budget-overview{break-inside:avoid}.shelf{display:none!important}}

/* v1.4 — unified GBP estimates and clean currency switch */
.budget-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.fx-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:10px;background:#eef2f6;border:1px solid #e0e7ed;flex-wrap:nowrap}
.fx-switch button{cursor:pointer;border:0;border-radius:7px;background:transparent;color:#6d8192;font-size:11px;font-weight:740;padding:8px 11px;white-space:nowrap}
.fx-switch button.active{background:#fff;color:#147366;box-shadow:0 1px 4px #25445618}
.money-gbp-secondary{font-size:12px;font-weight:740;color:#287b6f;letter-spacing:0;border-top:1px solid #e1eae8;margin-top:5px;padding-top:5px}
.money-gbp-primary{font-size:inherit;font-weight:800;color:inherit}
.money-est{font-size:10px;font-weight:550;color:#8a9ba8;letter-spacing:0;line-height:1.45;white-space:normal}
.section-finances .money-gbp-secondary{font-size:11px;margin-top:4px;padding-top:3px}
.section-finances .money-gbp-primary{font-size:13px}
.price-gbp{color:#177a67;font-weight:750;padding-left:4px}
.fx-caption{font-size:10px;line-height:1.65;color:#8294a1;margin:12px 0 0}
.fx-fee-editor{background:#f7fafc;border:1px solid #e3eaf0;border-radius:11px;padding:13px;margin:13px 0 3px}
.fx-fee-editor label{display:block;font-size:11px;font-weight:760;color:#425b70;margin-bottom:8px}
.fx-fee-editor small{display:block;font-size:10px;line-height:1.6;color:#8193a0;margin-top:7px}
.fx-fee-row{display:flex;gap:9px;align-items:center}
.fx-fee-row input{width:110px;border:1px solid #dce5e9;border-radius:9px;padding:9px;font-size:13px;min-width:0}
.budget-summary-display{align-items:center;gap:8px 14px}
.budget-summary-display .money-gbp-secondary{display:inline-block;padding:0;border:0;margin:0}
@media(max-width:760px){.budget-total-heading{align-items:flex-start;flex-direction:column}.budget-head-actions{justify-content:flex-start;width:100%}.fx-switch button{font-size:10px;padding:7px 10px}.money-gbp-secondary{font-size:10px}}
@media(max-width:420px){.budget-head-actions{flex-wrap:wrap}.section-finances{min-width:94px;max-width:132px}.section-finances strong{white-space:normal}.section-finances .money-gbp-secondary{font-size:10px}}

/* v1.5 — readability-first cards, day planner and Excel filters.
   Base text stays at least 14px for substantive information; secondary hints
   are at least 12px with stronger contrast. Existing 4x2 day grid retained. */
:root{--muted:#526579;--ink2:#344b61;--line:#d9e2e9}
body{font-size:15px;line-height:1.5}
button,input,select,textarea{font-size:14px}
.intro p,.hero p{font-size:15px;line-height:1.6;color:#536b7d}
.eyebrow{font-size:12px;letter-spacing:1.15px}
.summary-box{padding:21px}
.summary-label{font-size:14px;color:#435b71}
.summary-value{font-size:31px}
.summary-foot{font-size:13px;color:#5e7183}
.section-head{padding:19px 22px;gap:15px;min-height:90px}
.section-label strong{font-size:18px;line-height:1.3;letter-spacing:-.3px}
.section-label small{font-size:13px;line-height:1.45;color:#526579;margin-top:5px}
.section-finances{min-width:150px}
.section-finances small{font-size:12px;color:#526579}
.section-finances strong,.section-finances .money-gbp-primary{font-size:17px;line-height:1.35}
.section-finances .money-gbp-secondary{font-size:13px}
.section-finances em{font-size:12px;color:#597186}
.section-head-toggle{min-width:42px;min-height:42px}
.entry{padding:22px 0;gap:15px}
.entry-heading h3{font-size:17px;line-height:1.3}
.entry-sub{font-size:13px;color:#53677b;line-height:1.5}
.entry-details{font-size:13px;line-height:1.5;gap:10px 15px;color:#435b70;margin-top:11px}
.entry-details span{line-height:1.55}
.status-pill{font-size:12px;line-height:1.25;padding:6px 9px}
.status-select{font-size:13px;max-width:145px;width:130px;min-height:40px;padding:8px 25px 8px 10px}
.entry-right .icon-btn{min-width:37px;min-height:40px}
.detail-panel,.detail-panel p{font-size:13px;line-height:1.65}
.detail-links a,.detail-links button{font-size:13px}
.cost-link{font-size:13px;padding:8px 11px;line-height:1.55}
.cost-link .price-gbp,.cost-link span{font-size:12px}
.section-body{padding-bottom:8px}
.budget-total-heading strong{font-size:19px}
.budget-total-heading small,.budget-total-grid small{font-size:13px;color:#526579}
.budget-total-money{font-size:22px;gap:5px}
.money-empty{font-size:13px;color:#5a6d7e}
.money-gbp-secondary{font-size:14px}
.money-est,.fx-caption{font-size:12px;color:#516779;line-height:1.5}
.fx-switch button{font-size:13px;padding:10px 12px}
.budget-description,.budget-summary-line,.budget-item{font-size:14px}
.budget-name{font-size:14px}
.budget-numbers{font-size:13px}
.fx-fee-editor label{font-size:13px}.fx-fee-editor small{font-size:12px}
.form-field label{font-size:13px;color:#465e74}
.form-field .hint{font-size:12px;color:#5d7284}
.form-field input,.form-field textarea,.form-field select{font-size:15px;line-height:1.4;padding:12px}
.modal-header small{font-size:12px}
.modal-header h2{font-size:24px}
.modal-content p{line-height:1.65}
.button-secondary,.button-primary{font-size:14px;min-height:41px}
.calendar-layout{grid-template-columns:254px minmax(0,1fr);gap:16px}
.calendar-note{font-size:14px;line-height:1.55;color:#285d62;padding:15px 17px}
.calendar-note b{font-size:15px}
.week{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.day{min-height:345px;border-color:#dce5ec;box-shadow:0 4px 15px #243f5810}
.day-top{padding:15px}
.day-top .dow{font-size:12px;color:#4e6679;letter-spacing:.4px}
.day-top .date{font-size:30px;letter-spacing:-.7px}
.day-top .day-count{font-size:12px;color:#526b7e}
.day-body{padding:11px;min-height:235px;gap:9px}
.calendar-entry{padding:12px 10px 12px 15px;border-radius:10px}
.calendar-entry .time{font-size:13px;color:#245769;line-height:1.35}
.calendar-entry strong{font-size:15px;line-height:1.4;word-break:normal;overflow-wrap:anywhere;margin:5px 0 7px}
.calendar-entry small{font-size:12px;color:#4d6578;line-height:1.4;display:block}
.calendar-entry .row-actions{gap:6px;flex-wrap:wrap;margin-top:9px}
.calendar-entry button{font-size:13px;font-weight:700;padding:4px 0}
.checkout-reminder{font-size:12px;padding:9px;line-height:1.45}
.day .add-day{font-size:13px;min-height:37px;font-weight:700}
.day-empty{font-size:13px;min-height:65px;color:#748a9d}
.shelf{border-color:#dce5eb}
.shelf-head{padding:18px}
.shelf h2{font-size:18px;margin:0 0 7px}
.shelf p{font-size:13px;color:#54697c;line-height:1.55}
.shelf-filter{flex-wrap:wrap;gap:7px}
.shelf-filter button{font-size:12px;min-height:36px;color:#415d71}
.shelf-card{padding:14px}
.shelf-card h4{font-size:15px;line-height:1.4}
.shelf-card small,.shelf-card .tiny{font-size:12px;color:#53697d}
.shelf-card .place{font-size:13px;min-height:30px}
.calendar-help{font-size:13px;color:#52687d;line-height:1.55}
.warning-list,.banner-ok{font-size:13px;line-height:1.6}
.site-footer{font-size:12px;color:#5f7387}
.small-tool{min-height:43px}
.excel-tool{padding:0 13px;gap:8px;font-weight:750;background:#e9f6f1;color:#126c59;border:1px solid #cfe9df}
.excel-tool:hover{background:#d9f1e7}
.export-intro{font-size:14px;color:#52697a;margin:0 0 19px}
.export-filter-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:19px 0 9px}
.export-filter-head h3{font-size:17px;margin:0;line-height:1.4}
.export-select{border:0;background:#edf7f6;border-radius:8px;padding:9px 11px;color:#12675f;font-size:12px;font-weight:750}
.export-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.export-choice{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dfe8ef;border-radius:10px;cursor:pointer;min-width:0;background:#fff}
.export-choice:has(input:checked){border-color:#80c5b5;background:#f0f9f5}
.export-choice input{width:19px;height:19px;min-width:19px;accent-color:#087c79;margin:2px 0 0}
.export-choice strong{display:block;font-size:14px;color:#203a4f;line-height:1.35}
.export-choice small{display:block;font-size:12px;color:#52697a;line-height:1.45;margin-top:3px}
.export-bottom{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e1e8ef;padding-top:17px}
.export-bottom strong{font-size:16px;color:#173e4d;display:block}
.export-bottom small{font-size:12px;color:#5b7082;line-height:1.45;display:block;margin-top:5px}
.export-download{white-space:nowrap;min-height:46px}
@media(max-width:1250px){
 .calendar-layout{grid-template-columns:226px minmax(0,1fr);gap:12px}
 .week{gap:10px}
 .day-top,.day-body{padding:10px}
 .calendar-entry{padding:11px 8px 11px 12px}
 .calendar-entry strong{font-size:14px}
 .calendar-entry small{font-size:12px}
}
@media(max-width:940px){
 .calendar-layout{grid-template-columns:1fr}
 .shelf{position:static}
 .shelf-list{max-height:300px;overflow-x:auto;overflow-y:hidden}
 .shelf-card{min-width:235px}
 .week{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:760px){
 .week{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .day{min-height:290px}
 .section-finances{min-width:125px}
 .budget-total-money{font-size:20px}
 .excel-tool{padding:0 10px}
}
@media(max-width:620px){
 body{font-size:14px}
 .section-head{padding:14px 12px;gap:9px}
 .section-label strong{font-size:16px}
 .section-label small{font-size:12px}
 .section-finances{min-width:100px;max-width:150px}
 .section-finances strong,.section-finances .money-gbp-primary{font-size:14px}
 .section-finances .money-gbp-secondary{font-size:12px}
 .section-finances small{font-size:11px}
 .summary-box{padding:16px}
 .entry{padding:17px 0;gap:9px}
 .entry-heading h3{font-size:16px}
 .entry-details{font-size:12px}
 .entry-right .status-select{width:105px;font-size:12px}
 .week{grid-template-columns:repeat(2,minmax(0,1fr))}
 .day-top .date{font-size:27px}
 .day-top .dow{font-size:11px}
 .calendar-entry strong{font-size:14px}
 .calendar-entry .time{font-size:12px}
 .calendar-entry small{font-size:12px}
 .calendar-entry .row-actions{gap:5px}
 .calendar-entry .status-pill{font-size:11px;padding:5px 6px}
 .calendar-note{font-size:13px}
 .excel-tool{min-width:43px}
 .excel-tool span{display:none}
 .export-choices{grid-template-columns:1fr}
 .export-bottom{align-items:stretch;flex-direction:column}
 .export-download{width:100%}
 .budget-total-grid{gap:8px}
}
@media(max-width:365px){
 .week{grid-template-columns:1fr}
 .section-label small{display:none}
 .section-finances{min-width:95px}
 .section-head{gap:5px}
}
@media print{.week{grid-template-columns:repeat(4,1fr)}.export-modal-body{display:none}}
