:root{--ink:#173a35;--green:#174e43;--cream:#faf7f0;--muted:#64756d;--line:#dedfd4;--gold:#f0cc68}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a{touch-action:manipulation}a{color:var(--green)}button{cursor:pointer;min-height:48px;border:0;border-radius:14px;padding:12px 22px;background:var(--green);color:white;font-weight:700}button:disabled{opacity:.6;cursor:wait}.secondary{background:#e7eee6;color:var(--green)}.danger{background:#f9e2df;color:#802e27}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #c46e10;outline-offset:4px}header{max-width:1280px;margin:auto;padding:26px 42px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:14px;line-height:1.2;letter-spacing:.03em}.brand strong{font-size:19px}#identity{display:flex;align-items:center;gap:16px;font-size:14px}main{max-width:1200px;margin:auto;padding:10px 24px 60px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#49665b}.hero{position:relative;padding:42px 46px;border-radius:30px;background:#e8ede1;overflow:hidden;margin:8px 0 30px}.hero:after{content:'✧';position:absolute;right:54px;top:-35px;font-size:230px;line-height:1.2;color:#c4d2b4;pointer-events:none}.hero>*{position:relative;z-index:1;max-width:660px}h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,60px);line-height:1.05;font-weight:500;letter-spacing:-.04em;margin:15px 0 20px}h2{font-family:Georgia,serif;font-size:30px;font-weight:500;letter-spacing:-.02em}h3{font-size:21px;margin:12px 0}.hero p{font-size:17px;max-width:530px}.muted{color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin:25px 0}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tabs button{background:transparent;color:var(--muted);border:1px solid var(--line);font-size:14px;padding:10px 17px}.tabs button.active{background:var(--green);color:white;border-color:var(--green)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{background:#fffdf8;border:1px solid var(--line);border-radius:24px;overflow:hidden;display:flex;flex-direction:column}.card .content{padding:22px;display:flex;flex-direction:column;flex:1}.card .content>button{margin-top:auto}.art{height:165px;position:relative;overflow:hidden;display:grid;place-items:center;background:#dce8d7}.art .symbol{font-size:76px;z-index:1;filter:drop-shadow(0 7px 0 #0000000b)}.art:before,.art:after{content:'';position:absolute;border-radius:50%;width:210px;height:210px;background:#ffffff40;left:-42px;top:48px}.art:after{left:auto;right:-30px;top:-95px}.art.space{background:#dcdaf0}.art.science{background:#f5dfac}.art.trains{background:#d3e5e8}.art.animals{background:#f2d4be}.art.arts{background:#ead4e5}.art.cars{background:#dae2ef}.art.history{background:#e4d7bf}.pill{display:inline-block;background:#edf1e8;padding:5px 10px;border-radius:9px;font-size:11px;font-weight:800;letter-spacing:.04em;align-self:flex-start}.card p{font-size:15px}.card .meta{font-size:13px;color:var(--muted)}.card .source{display:inline-block;margin:5px 0 17px}.card.picked{border:3px solid #437759}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.notice{padding:14px 20px;background:#fff0cb;border:1px solid #e6cb84;border-radius:14px;margin:18px 0;font-size:14px}.panel{background:white;border:1px solid var(--line);border-radius:22px;padding:26px;margin:22px 0}.login-wrap{max-width:620px;margin:30px auto}.login-wrap h1{font-size:46px}.login-wrap form{margin-bottom:26px}label{display:block;font-weight:700;font-size:15px;margin:16px 0 8px}input{width:100%;border:1px solid #b4c2b8;border-radius:12px;padding:14px;background:#fff;min-height:48px}form button{margin-top:18px;width:100%}.code{font-size:30px;letter-spacing:.18em;font-weight:800;display:block;margin:20px 0;overflow-wrap:anywhere}.empty{text-align:center;padding:60px 24px;border:2px dashed var(--line);border-radius:24px}.empty .big{font-size:55px}.stats{display:flex;gap:16px;flex-wrap:wrap}.stat{flex:1;min-width:145px;padding:20px;background:#fffdf8;border:1px solid var(--line);border-radius:18px}.stat strong{display:block;font-size:28px}.stat span{font-size:13px;color:var(--muted)}pre.report{white-space:pre-wrap;font-family:inherit;font-size:15px;line-height:1.7;overflow-wrap:anywhere}details summary{cursor:pointer;padding:12px;font-weight:700}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10;background:var(--green);color:white;border-radius:16px;padding:14px 22px;max-width:92vw;box-shadow:0 8px 30px #0002;display:none}#toast.show{display:block}.kid .hero{background:#ece3f2}.kid .hero:after{color:#dbcae7}.kid h1{font-size:clamp(40px,7vw,66px)}.kid .card p{font-size:20px}.kid .card h3{font-size:25px;line-height:1.3}.kid .card button{font-size:20px;padding:16px}.kid .art{height:190px}.kid .art .symbol{font-size:90px}.sendbar{position:sticky;bottom:12px;z-index:3;background:#fffdf8;box-shadow:0 4px 26px #173a3526;border:1px solid var(--line);border-radius:20px;padding:16px 22px;margin-top:30px;display:flex;align-items:center;justify-content:space-between;gap:15px}.sendbar button{font-size:19px}.error{color:#8b2d27}footer{text-align:center;border-top:1px solid var(--line);padding:30px 20px;font-size:14px}footer span{font-size:12px;color:var(--muted)}.skip{position:absolute;left:10px;top:-90px;background:white;padding:10px;z-index:99}.skip:focus{top:10px}.device{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;border-top:1px solid var(--line);padding-top:14px}.choice-list li{margin:10px 0} @media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:32px}.hero:after{right:10px;opacity:.5}}@media(max-width:600px){header{padding:20px}#identity{gap:8px}#identity>span{display:none}main{padding:0 16px 35px}.hero{padding:28px 23px;border-radius:24px}.hero:after{opacity:.3;right:-65px}.grid{grid-template-columns:1fr;gap:20px}.toolbar{align-items:flex-start}.panel{padding:20px}.sendbar{flex-direction:column;align-items:stretch;bottom:8px}.stats{gap:10px}.stat{min-width:100px;padding:16px}h2{font-size:28px}.kid .art{height:200px}.brand strong{font-size:17px}.login-wrap h1{font-size:40px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.kid .tabs button{font-size:18px}.report-links{display:flex;gap:16px;flex-wrap:wrap}
.art.illustrated{height:auto;aspect-ratio:4/3;background-image:url('/media/activity-atlas.webp');background-size:200% 400%;background-repeat:no-repeat}.art.illustrated:before,.art.illustrated:after{display:none}.art.illustrated.space{background-position:0 0}.art.illustrated.nature{background-position:100% 0}.art.illustrated.science{background-position:0 33.333333%}.art.illustrated.trains{background-position:100% 33.333333%}.art.illustrated.arts{background-position:0 66.666667%}.art.illustrated.animals{background-position:100% 66.666667%}.art.illustrated.cars{background-position:0 100%}.art.illustrated.history{background-position:100% 100%}.kid .art.illustrated{height:auto}.art.photo img{width:100%;height:100%;object-fit:cover}.image-caption{font-size:12px;color:var(--muted);padding:7px 16px;margin:0}.link-button{border:1px solid var(--line);border-radius:12px;padding:10px 14px;text-decoration:none;min-height:44px}select{display:block;width:100%;padding:10px;background:white;border:1px solid var(--line);border-radius:10px;margin-top:8px;min-height:46px}


.official-title{font-size:14px!important;line-height:1.4!important;color:var(--muted);margin:12px 0 6px;overflow-wrap:anywhere;font-weight:600}.kid .content h3{margin-top:6px}.event-dates{font-size:16px;margin:12px 0}.event-dates summary{cursor:pointer}.reading-book{max-width:760px;margin:20px auto 110px}.reading-book .card{width:100%}.reading-book .content>p:not(.official-title):not(.meta){font-size:24px;line-height:1.65}.reading-book .art{height:auto;aspect-ratio:4/3}.book-nav{display:flex;justify-content:space-between;gap:16px;margin-top:18px}.book-nav button{min-width:110px}.reading-preview{display:grid;gap:12px;margin:18px 0}.reading-sample{border:1px solid var(--line);border-radius:14px;padding:16px}.reading-sample.selected{border:2px solid var(--green,#174e43);background:#f1f7ed}.reading-sample h3{font-size:19px;margin:0 0 8px}.reading-sample p{line-height:1.7;margin:0}button:disabled{opacity:.5;cursor:default}@media(max-width:600px){.reading-book .content>p:not(.official-title):not(.meta){font-size:22px}.reading-book{margin-bottom:160px}.official-title{font-size:13px!important}}

.art.photo:before,.art.photo:after{display:none}

/* Preserve the whole scene on every card, including phones and reading mode. */
.art.photo,.kid .art.photo,.reading-book .art.photo{height:auto;aspect-ratio:4/3;width:100%;display:block;flex-shrink:0;padding:0;border:0;border-radius:0;background:#f1f1e8;cursor:zoom-in;min-height:0}
.art.photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.picture-dialog{max-width:min(1100px,96vw);max-height:94dvh;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--cream);color:var(--ink)}
.picture-dialog::backdrop{background:#102b26cc}.picture-dialog img{display:block;max-width:100%;max-height:75dvh;width:auto;height:auto;margin:12px auto;object-fit:contain}.picture-dialog>button{display:block;margin-left:auto}
textarea{font:inherit;width:100%;min-height:100px;padding:12px;border:1px solid var(--line);border-radius:12px;resize:vertical}textarea:focus-visible{outline:3px solid #c46e10;outline-offset:4px}.archive-row{border-top:1px solid var(--line);padding:18px 0}.memory-shelf .grid{margin-top:20px}.reading-prompt summary{font-size:16px}.kid .reading-prompt p{font-size:20px}.memory-shelf form{margin-bottom:18px}

.art.illustrated.sports{background-image:none;background-color:#dde6ed}


/* Parent-only PWCS calendar and individual event reminders */
.school-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}
.school-title{font-size:20px}.school-tools button{font-size:14px}
.school-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.school-weekday{text-align:center;color:var(--muted);font-weight:700;font-size:13px;padding:6px}
.school-empty{min-height:46px}.school-cell{min-height:50px;padding:5px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font-size:15px}
.school-cell.day-off{background:#fff0d2;border-color:#d6aa4c;color:#694510}
.school-cell.with-event{box-shadow:inset 0 -4px 0 #27725d}
.school-cell:focus-visible{outline:3px solid #ba7419;outline-offset:1px}
.school-detail{margin:20px 0;padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px}
.school-detail h3{margin:0 0 8px;font-size:18px}.school-detail li{margin:6px 0}.school-out{font-weight:700;color:#77500b}
.school-reminder{display:flex;flex-direction:column;gap:3px;border-left:4px solid #bf8730;background:#fff1d5;padding:11px 14px;margin:12px 0;border-radius:8px;color:#68460f}
.school-reminder strong{font-size:15px}.school-reminder span{font-size:13px;line-height:1.5}
@media(max-width:600px){.school-grid{gap:3px}.school-cell{min-height:41px;font-size:12px;padding:3px}.school-title{font-size:17px}.school-tools button{font-size:12px;padding:10px}.school-weekday{font-size:11px}.school-empty{min-height:41px}}


/* Owner-managed adult accounts, invitation acceptance and suggestion moderation */
.family-admin,.suggestion-review{margin-top:26px}
.family-invite{background:#f8f1dc}
.family-admin details>summary{cursor:pointer;font-weight:700;padding:12px 0}
.family-admin form,.family-invite form{display:grid;gap:12px}
.family-admin label,.family-invite label{display:flex;flex-direction:column;gap:5px;font-size:15px;font-weight:600}
.family-admin input,.family-invite input{padding:12px;border:1px solid var(--line);border-radius:10px;max-width:100%;font:inherit}
.family-admin .invite-result{display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere}
.invite-result input{width:100%;font-size:12px;overflow:hidden;white-space:nowrap}
.account-management-row,.suggestion-item{background:#fff;padding:17px;border:1px solid var(--line);border-radius:15px;margin:15px 0}
.account-management-row h4{font-size:19px;margin:0 0 4px}
.perm-grid{display:grid;gap:9px;margin:12px 0}
.perm-grid label{display:flex;flex-direction:row;align-items:flex-start;gap:10px;line-height:1.5;font-size:14px;font-weight:400}
.perm-grid input{width:18px;height:18px;flex-shrink:0}
.account-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.account-actions button{font-size:13px;padding:10px}
.suggestion-item{display:flex;flex-direction:column;gap:8px}
.suggestion-item strong{font-size:17px;overflow-wrap:anywhere}
.suggestion-item select,.suggestion-item textarea{width:100%;max-width:100%}
.family-invite .panel{max-width:700px}
@media(max-width:600px){.account-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.account-actions button{font-size:12px;white-space:normal}}

/* Three distinct authenticated Daddy views */
.owner-view-nav{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 24px;padding:7px;border:1px solid var(--line);border-radius:16px;background:#fff}
.owner-view-tab{display:inline-flex;align-items:center;justify-content:center;flex:1 1 135px;min-height:46px;padding:11px 14px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:700;text-align:center}
.owner-view-tab:hover,.owner-view-tab:focus-visible{background:#f3f1e8}
.owner-view-tab.active{color:white;background:var(--green)}
.kid .owner-view-nav{font-size:15px}
.admin-view .panel{margin-bottom:22px}
.invite-status-pending,.invite-status-expired{font-size:14px;font-weight:700;padding:9px 12px;border-radius:9px;margin:12px 0}
.invite-status-pending{background:#e8f5ee;color:#20543f}
.invite-status-expired{background:#fff0df;color:#814519}
@media(max-width:550px){.owner-view-nav{gap:4px;padding:5px}.owner-view-tab{font-size:12px;padding:9px 5px;flex-basis:94px;min-height:42px}}

/* Private Adventure Journal: parent writing controls and opt-in child's story */
.journal-entry{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#faf8f2}
.journal-entry summary{font-weight:700;cursor:pointer}
.journal-entry>p{font-size:14px;color:var(--muted)}
.journal-form{display:grid;gap:15px;margin-top:14px}
.journal-form label:not(.journal-sharing-label){display:grid;gap:6px;font-size:14px;font-weight:700}
.journal-form textarea{width:100%;min-height:82px;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;line-height:1.5}
.journal-sharing-label{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}
.journal-sharing-label input{width:19px;height:19px;flex:none}
.journal-buttons{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:550px){.journal-buttons{flex-direction:column}.journal-buttons button{width:100%}}


/* Owner-only private adventure research preference manager */
.research-admin{margin:22px 0}
.research-admin .surprise-preference{display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:center;background:#eff6ec;border:1px solid #c7dfc2;border-radius:14px;padding:17px;margin:18px 0}
.surprise-preference strong,.surprise-preference p{grid-column:1}
.surprise-preference .surprise-label{grid-column:1;grid-row:2;font-weight:700}
.surprise-preference input{grid-column:2;grid-row:1/4;width:22px;height:22px}
.research-interest-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,180px);gap:10px;border:1px solid var(--line);padding:12px;border-radius:12px;background:white;margin:10px 0}
.research-interest-row>input,.research-interest-row>select,.research-add-form input,.research-add-form select{min-height:43px;max-width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;font:inherit}
.research-interest-row>label{grid-column:1;display:flex;align-items:center;gap:9px;font-size:14px}
.research-interest-row>label input{width:18px;height:18px}
.research-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.research-add-form{display:flex;gap:9px;flex-wrap:wrap}
.research-add-form input{flex:2;min-width:180px}
.research-add-form select{flex:1;min-width:140px}
@media(max-width:600px){.research-interest-row{grid-template-columns:1fr}.research-actions{grid-column:1}.research-interest-row>label{grid-column:1}.research-add-form{flex-direction:column}}


/* Consistent accessible navigation on phones and tablets; respects reduced-motion. */
.owner-view-nav{scroll-margin-top:12px}
.owner-view-tab{min-height:48px;line-height:1.3;overflow-wrap:anywhere}
.owner-view-tab:focus-visible,.owner-view-nav a:focus-visible{outline:3px solid #a65c0c;outline-offset:3px}
.owner-view-tab[aria-current="page"]{font-weight:800}
main:focus{outline:none}
main:focus-visible{outline:3px solid #a65c0c;outline-offset:-3px}
.research-admin input:focus-visible,.research-admin select:focus-visible,.research-admin textarea:focus-visible,.journal-form textarea:focus-visible{outline:3px solid #a65c0c;outline-offset:2px}
@media(prefers-reduced-motion:reduce){
 html:focus-within{scroll-behavior:auto}
 *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}
@media(max-width:420px){.owner-view-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.owner-view-tab{padding:11px 4px;min-width:0;font-size:12px;hyphens:auto}}

/* Owner-triggered printer/PDF scrapbook; never prints child/family account content. */
.print-journal-entry{display:none}
@media print{
 body.printing-adventure-journal{background:#fff!important}
 body.printing-adventure-journal>header,body.printing-adventure-journal>footer,body.printing-adventure-journal>#toast{display:none!important}
 body.printing-adventure-journal #main{display:block;max-width:none;margin:0;padding:0}
 body.printing-adventure-journal #main>*:not(.memory-shelf){display:none!important}
 body.printing-adventure-journal .memory-shelf{display:block!important;border:none;background:white;padding:0}
 body.printing-adventure-journal .memory-shelf>.grid{display:block!important}
 body.printing-adventure-journal .memory-shelf>.grid>.card{display:block;break-inside:avoid;page-break-inside:avoid;box-shadow:none;border:1px solid #aaa;margin:0 0 14pt;padding:12pt}
 body.printing-adventure-journal .memory-shelf button,
 body.printing-adventure-journal .memory-shelf form,
 body.printing-adventure-journal .memory-shelf details,
 body.printing-adventure-journal .memory-shelf .content>*:not(.print-journal-entry){display:none!important}
 body.printing-adventure-journal .memory-shelf .print-journal-entry{display:block!important;color:#111}
 body.printing-adventure-journal .memory-shelf .print-journal-entry h3{font-size:17pt}
 body.printing-adventure-journal .memory-shelf .print-journal-entry strong{font-size:10pt}
 body.printing-adventure-journal .memory-shelf .print-journal-entry p{font-size:11pt;margin:5pt 0 10pt}
 body.printing-adventure-journal .memory-shelf .media-frame{max-width:210px;max-height:150px;break-inside:avoid}
}

/* Optional parent-only verified planning filters; no hidden assumptions. */
.owner-catalog-filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 20px}
.owner-catalog-filters button{min-height:46px;padding:10px 14px;font-size:14px}
.owner-catalog-filters button[aria-pressed="true"]{font-weight:800}
.registration-reminder{padding:10px 12px;border-radius:10px;border:1px solid #cbdcca;background:#f5f8f1;margin:8px 0}
.registration-reminder strong{font-size:13px}
.registration-reminder p{font-size:13px;margin:5px 0 0}
@media(max-width:470px){.owner-catalog-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.owner-catalog-filters button{min-width:0;white-space:normal}}


/* Select a date on the calendar to explore real event cards, not just titles. */
.school-date-picker{min-height:44px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);font:inherit;max-width:100%;background:#fff}
.school-cell.selected,.school-cell[aria-pressed="true"]{outline:3px solid #165b78;outline-offset:1px;font-weight:800}
.school-cell.day-off.selected{outline-color:#165b78}
.school-detail{scroll-margin-top:16px}
.school-detail .school-summary,.owner-results>.school-summary{font-weight:700;line-height:1.45;margin:10px 0}
.school-day-results{margin-top:15px}
.school-day-result{min-width:0;display:flex;flex-direction:column;gap:6px}
.school-day-result>.card{flex:1}
.school-day-result>.school-exact,.school-day-result>.school-range{font-size:13px;line-height:1.4;font-weight:700;border-radius:8px;padding:9px 12px;margin:0}
.school-day-result>.school-exact{background:#ecf6e9;color:#215a37}
.school-day-result>.school-range{background:#fff2db;color:#754d19}
.school-filter-note{font-weight:700;color:var(--ink)}
.owner-filter-holder{min-width:0}
@media(max-width:650px){.school-tools{display:grid;grid-template-columns:1fr 1fr;align-items:center}.school-tools .school-title{grid-column:1/-1;grid-row:1;text-align:center}.school-date-picker{grid-column:1/-1;width:100%}.school-cell{min-height:44px}.school-detail{padding:12px}.school-day-results{grid-template-columns:1fr}}


/* Shared family date planning, Jordan's wishes and private two-stop itinerary. */
.jordan-picked{padding:9px 12px;margin:8px 0 10px;border-radius:10px;border:1px solid #dcaabe;background:#fff1f6;color:#71344e;font-weight:800;line-height:1.45}
.family-calendar .school-detail{margin:18px 0}
.family-calendar .school-tools{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}
.family-calendar .school-date-picker{min-height:44px}
.day-action-row{display:flex;gap:8px;flex-wrap:wrap;padding:8px 3px 16px}
.day-action-row button{min-height:44px;flex:1 1 140px;white-space:normal}
.day-itinerary{background:#f4f8f2;border:1px solid #d3dfca;padding:14px;border-radius:13px;margin:16px 0}
.day-itinerary h3{margin:0 0 6px;font-size:18px}
.day-stop{margin:10px 0;border-radius:9px;border:1px solid #d6e2d1;background:white;padding:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.day-stop strong{flex:2 1 160px}
.day-stop .meta{margin:0;flex:1 1 180px}
.day-stop button{min-height:40px}
.day-budget{font-weight:800;margin:12px 0 0}
.session-accuracy{font-size:13px;font-weight:700;padding:8px 10px;border-radius:9px;background:#eaf1ec;color:#244d38}
@media(max-width:640px){.family-calendar .school-tools{display:grid;grid-template-columns:1fr 1fr}.family-calendar .school-title{grid-column:1/-1;grid-row:1;text-align:center}.family-calendar .school-date-picker{grid-column:1/-1;width:100%}.day-stop{flex-direction:column;align-items:stretch}.day-stop button{width:100%}.day-action-row{flex-direction:column}}

/* Passkey management: optional biometric verified sign-in for adults. */
.passkey-login{padding:14px;margin:14px 0;border:1px solid var(--line);border-radius:12px;background:#f6f9f4}
.passkey-login button{min-height:50px;width:100%;font-weight:800}
.passkey-settings{margin:18px 0}
.passkey-enroll-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.passkey-enroll-form label{display:grid;gap:5px;font-weight:700;font-size:14px}
.passkey-enroll-form input{font:inherit;min-height:44px;border:1px solid var(--line);padding:10px;border-radius:9px;max-width:100%}
.passkey-enroll-form button{grid-column:1/-1;min-height:48px}
.passkey-account-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line)}
@media(max-width:600px){.passkey-enroll-form{grid-template-columns:1fr}}


/* Private Adventure Journal photos: cleaned by the server, stored in private object storage. */
.journal-media{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.journal-media h4{margin:0 0 10px;font-size:17px}
.journal-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 14px}
.journal-photo{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#faf8f2}
.journal-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f1f1e8;cursor:zoom-in}
.journal-photo figcaption{padding:8px 10px;font-size:13px;line-height:1.4}
.journal-photo-actions{display:flex;gap:6px;flex-wrap:wrap;padding:8px 10px}
.journal-photo-actions button{font-size:12px;padding:8px 10px;min-height:38px}
.journal-photo-form{display:grid;gap:10px;margin-top:12px}
.journal-photo-form label{display:grid;gap:5px;font-size:14px;font-weight:700}
.journal-photo-form input[type=file],.journal-photo-form input[type=text]{font:inherit;max-width:100%;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:9px;background:white}
.kid .journal-media{background:#fffdf8}
.kid .journal-photo figcaption{font-size:16px}
.kid .journal-photo-form label{font-size:17px}
.kid .journal-photo-form button{font-size:18px}
@media(max-width:600px){.journal-media-grid{grid-template-columns:1fr}.journal-photo-actions{display:grid;grid-template-columns:1fr 1fr}.journal-photo-actions button{white-space:normal}}


/* Jordan's Adventure Club — original premium family-club design system */
:root{
 --club-night:#102d2b;
 --club-deep:#173f3b;
 --club-field:#1f584f;
 --club-gold:#f0bd4f;
 --club-gold-soft:#f8df9c;
 --club-cream:#f7f3e8;
 --club-paper:#fffdf7;
 --club-red:#cf5a45;
 --ink:#173530;
 --green:#173f3b;
 --cream:#f7f3e8;
 --gold:#f0bd4f;
 --line:#d9d7cb;
}
body{
 background:
  radial-gradient(circle at 85% 0,#f5e7ba55 0 18%,transparent 36%),
  linear-gradient(180deg,#f7f3e8 0,#fbf9f3 55%,#f1eee4 100%);
}
header{
 max-width:none;
 padding:18px clamp(20px,4vw,54px);
 background:linear-gradient(135deg,var(--club-night),var(--club-deep));
 color:white;
 border-bottom:4px solid var(--club-gold);
 box-shadow:0 8px 28px #102d2b20;
 position:relative;
 z-index:5;
}
header .brand{color:white;letter-spacing:.02em}
header .brand img{
 width:48px;height:48px;border-radius:14px;
 filter:drop-shadow(0 5px 10px #0004);
}
header .brand strong{font-size:18px;letter-spacing:.01em}
header #identity,header #identity a{color:#fff}
header #identity button{background:#fff;color:var(--club-night)}
main{max-width:1240px;padding-top:24px}
.hero{
 min-height:260px;
 padding:48px clamp(28px,5vw,64px);
 border-radius:28px;
 background:
  linear-gradient(120deg,#102d2bf2,#173f3bdc),
  radial-gradient(circle at 85% 10%,#f0bd4f88 0 12%,transparent 13%);
 color:white;
 border:1px solid #ffffff12;
 box-shadow:0 18px 60px #102d2b24;
}
.hero:after{
 content:'JAC';
 right:32px;top:26px;
 font-family:Arial,Helvetica,sans-serif;
 font-size:clamp(82px,16vw,190px);
 font-weight:900;
 letter-spacing:-.08em;
 color:#ffffff0d;
 transform:rotate(-4deg);
}
.hero .eyebrow{color:var(--club-gold-soft)}
.hero h1{
 font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
 font-weight:850;
 letter-spacing:-.045em;
 max-width:760px;
}
.hero p{color:#f7f1df;font-size:18px}
.panel,.card,.stat{
 border-color:#d8d5c7;
 box-shadow:0 10px 32px #15342e0d;
}
.card{
 border-radius:20px;
 transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 38px #173f3b17}
.card.picked{border:3px solid var(--club-gold);box-shadow:0 0 0 3px #f0bd4f22}
.pill{
 background:#102d2b;
 color:#fff8e9;
 border-radius:999px;
 padding:6px 11px;
 letter-spacing:.08em;
}
button{
 border-radius:10px;
 background:var(--club-deep);
 font-weight:800;
 letter-spacing:.01em;
 box-shadow:0 3px 0 #0c2825;
}
button:hover{filter:brightness(1.04)}
button:active{transform:translateY(1px);box-shadow:0 2px 0 #0c2825}
.secondary{
 background:#ece8da;
 color:var(--club-deep);
 box-shadow:0 3px 0 #d7d2c3;
}
.tabs button,.owner-view-tab{
 border-radius:999px;
 font-weight:800;
}
.tabs button.active,.owner-view-tab.active{
 background:var(--club-night);
 color:white;
}
.owner-view-nav{
 border:0;
 padding:8px;
 background:#ece8da;
 box-shadow:inset 0 0 0 1px #d7d2c3;
}
.eyebrow{color:#6e6a5d;font-weight:900}
h2{
 font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
 font-weight:850;
 letter-spacing:-.035em;
}
h3{letter-spacing:-.01em}
.notice{
 background:#fff6d9;
 border-color:#e8c965;
}
.kid{
 --kid-accent:#cf5a45;
}
.kid .hero{
 background:
  linear-gradient(125deg,#563d70,#6d4f84 55%,#8b637f);
}
.kid .hero:after{color:#ffffff0d}
.kid .hero .eyebrow{color:#ffe59f}
.kid .card{
 border:2px solid #e5dcc8;
 background:#fffdf8;
}
.kid .card.picked{
 border-color:var(--club-gold);
 background:#fff9e9;
}
.kid .card h3{font-weight:850}
.kid .tabs button.active{background:#563d70}
.memory-shelf{
 position:relative;
 overflow:hidden;
}
.memory-shelf:before{
 content:'CLUB JOURNAL';
 position:absolute;
 right:18px;top:18px;
 font-size:11px;
 letter-spacing:.18em;
 font-weight:900;
 color:#8d8879;
}
.journal-media,.journal-entry{border-radius:14px}
.journal-photo{box-shadow:0 7px 20px #102d2b10}
.sendbar{
 border-top:4px solid var(--club-gold);
 box-shadow:0 18px 50px #102d2b22;
}
footer{
 background:#102d2b;
 color:#fff8e9;
 border-top:4px solid var(--club-gold);
}
footer span{color:#d9d1bd}
.login-wrap .panel{
 border-top:5px solid var(--club-gold);
}
.login-wrap h1{
 font-family:ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
 font-weight:900;
}
@media(max-width:600px){
 header{padding:14px 16px}
 header .brand img{width:42px;height:42px}
 header .brand span{font-size:11px}
 header .brand strong{font-size:15px}
 main{padding-top:16px}
 .hero{min-height:230px;padding:32px 24px}
 .hero h1{font-size:clamp(38px,11vw,52px)}
 .hero:after{right:-20px;top:40px}
}


/* Trip concierge: calm comparison and readable mobile itineraries. */
.trip-grid{align-items:start}.trip-view .hero{background:linear-gradient(125deg,#071d36,#143a58 70%,#35647b)}
.trip-card .content{display:flex;flex-direction:column;gap:.65rem}.trip-card .content>p{margin:.15rem 0}.trip-price{font-size:1.4rem;color:#133c52}.trip-dates{font-weight:700}.trip-break{padding:.65rem .85rem;background:#e7f2eb;border-left:4px solid #35634c;border-radius:.4rem;font-weight:700;color:#164333}
.trip-intro select{width:100%;max-width:100%}.trip-budget,.trip-compare{width:100%;border-collapse:collapse;margin:1rem 0}.trip-budget caption{text-align:left;font-weight:700;padding:.5rem 0}.trip-budget th,.trip-budget td,.trip-compare th,.trip-compare td{padding:.65rem;text-align:left;border-bottom:1px solid #d7e0e5;vertical-align:top}.trip-budget td:last-child{white-space:nowrap}.trip-total{background:#edf3f6;font-weight:700}.trip-link{display:inline-block;margin:.35rem .65rem .35rem 0;overflow-wrap:anywhere}.trip-details{margin-top:.75rem}.trip-details>summary,.outing-support>summary,.trip-checklist>summary{font-weight:700;cursor:pointer;padding:.6rem 0}.trip-provider{border-top:1px solid #d7e0e5;padding:.75rem 0}.trip-itinerary{padding-left:1.25rem}.trip-itinerary li{padding:.5rem 0}.trip-itinerary p{margin:.3rem 0}.trip-actions{display:flex;gap:.65rem;flex-wrap:wrap}.trip-share{display:flex;align-items:center;gap:.7rem;margin:1rem 0}.trip-share input{width:1.25rem;height:1.25rem;flex-shrink:0}.trip-checklist-item{border-top:1px solid #d7e0e5;padding:1rem 0;display:grid;gap:.7rem}.trip-checklist-item label{display:grid;gap:.35rem}.trip-checkout{max-width:650px;max-height:90vh;overflow:auto;border:0;border-radius:1rem;padding:1.5rem}.trip-checkout::backdrop{background:#071d36aa}.trip-checkout-links{display:grid;gap:.5rem}.trip-checkout-links a{padding:.8rem;background:#edf3f6;border-radius:.5rem}.outing-support{border-top:1px solid #d7e0e5;margin-top:1rem}.child-trip .art{max-width:420px}.child-trip>p:not(.meta){font-size:1.4rem;line-height:1.8}.owner-view-nav{flex-wrap:wrap}.trip-compare{font-size:.9rem}
@media(max-width:600px){.trip-grid{grid-template-columns:1fr}.trip-budget th,.trip-budget td,.trip-compare th,.trip-compare td{padding:.45rem}.trip-compare td{overflow-wrap:anywhere}.trip-checkout{width:calc(100% - 1rem);padding:1rem}.trip-actions button{width:100%}}
@media print{body.printing-trip>header,body.printing-trip>footer,body.printing-trip #identity,body.printing-trip #toast,body.printing-trip main>:not(.saved-trip){display:none!important}body.printing-trip .saved-trip button,body.printing-trip .trip-share,body.printing-trip .trip-checklist{display:none!important}body.printing-trip .trip-details{display:block!important}body.printing-trip .trip-details>*{display:block!important}body.printing-trip .trip-details table{display:table!important}body.printing-trip .saved-trip{box-shadow:none;border:0}body.printing-trip .trip-link{color:#000}body.printing-trip .trip-link:after{content:' (' attr(href) ')';font-size:9pt}}

/* Travel-club refresh: shared adult visual language. */
:root{--club-night:#0b2039;--club-deep:#153957;--club-field:#275777;--club-gold:#b7c9d8;--club-gold-soft:#e1eaf2;--club-cream:#f4f6f9;--club-paper:#fff;--ink:#142b40;--green:#153957;--cream:#f4f6f9;--line:#dce3e9;--muted:#526779}
body{background:linear-gradient(180deg,#edf2f7,#f8fafc 70%)}header{background:#0b2039;border-bottom:3px solid #b7c9d8;box-shadow:none}footer{background:#0b2039;border-top-color:#b7c9d8}.hero{background:linear-gradient(120deg,#0b2039,#1c4767);box-shadow:0 12px 30px #10283b14}.hero .eyebrow{color:#d4e2ed}.hero:after{color:#b7c9d82b}
.travel-parent{max-width:1360px}.travel-parent>.hero{min-height:0;padding:32px 38px;margin-bottom:18px}.travel-parent>.hero h1{font-size:clamp(30px,4vw,48px);max-width:900px}.travel-parent>.hero p{max-width:760px;margin-bottom:0}.travel-parent>.hero:after{font-size:140px;top:0}.travel-parent .card,.travel-parent .panel{background:#fff;box-shadow:0 8px 26px #17344d07;border-color:#dce3e9}.travel-parent h2{font-family:ui-sans-serif,system-ui,sans-serif;letter-spacing:-.035em;font-weight:750}.travel-parent .card h2{font-size:25px;line-height:1.22}.travel-parent .eyebrow{color:#42617b;font-size:11px;letter-spacing:.12em}.travel-parent .owner-view-nav{background:#fff;border-radius:14px;padding:6px;margin-bottom:24px}.owner-view-tab.active{background:#153957;color:#fff}.travel-parent .secondary{background:#edf2f7;color:#153957}.travel-parent .notice{background:#f6f1e4;border-color:#e5d8b7;color:#554621}
.travel-dashboard{display:grid;grid-template-columns:1.4fr 1fr;border-radius:24px;overflow:hidden;background:#0b2039;color:#fff;margin:24px 0 36px;min-height:280px}.dashboard-copy{padding:34px;align-self:center}.travel-dashboard .eyebrow{color:#c3d4e2}.travel-dashboard h2{font-size:clamp(25px,3vw,38px);line-height:1.15;margin:14px 0}.travel-dashboard p{color:#d9e4ed}.travel-dashboard .art.photo{height:100%;aspect-ratio:auto;background:#e4eaf0}.travel-dashboard .art.photo img{object-fit:contain}.travel-primary,.travel-secondary{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:750;text-decoration:none;min-height:46px}.travel-primary{background:#fff;color:#153957}.travel-secondary{border:1px solid #a8bed1;color:#fff}
.dashboard-escapes{margin:30px 0 38px}.dashboard-escapes h2,.collection-heading h2{margin:8px 0 20px}.escape-preview{display:block;background:#fff;border:1px solid #dce3e9;border-radius:18px;overflow:hidden;text-decoration:none;box-shadow:0 6px 20px #17344d08}.escape-preview .art.photo{aspect-ratio:4/3}.escape-preview>span{display:block;margin:18px 20px 8px}.escape-preview h3{margin:8px 20px 22px;font-size:19px;line-height:1.3}.escape-preview:hover{border-color:#527c9b;box-shadow:0 8px 24px #17344d18}
.trip-intro h2{font-size:25px;margin:0 0 8px}.trip-intro>.meta{font-size:13px}.trip-grid{align-items:stretch;gap:24px}.trip-card{border-radius:20px}.trip-card .content{gap:10px;padding:24px}.trip-card .content h2{margin:0}.trip-card .trip-why{color:#4d6376;font-size:14px;line-height:1.65}.trip-card .trip-price{margin-top:auto;font-size:26px;letter-spacing:-.04em}.trip-card .art.photo{aspect-ratio:4/3}.trip-card-actions{display:grid;gap:8px;margin-top:12px}.trip-card-actions button{width:100%;font-size:14px;padding:12px}.trip-break{background:#edf3f8;border-color:#6f91ac;color:#244862;font-size:13px}.trip-dates{font-size:14px}.collection-heading{margin:36px 0 16px}
.saved-trip{padding:30px;scroll-margin-top:20px;border-top:4px solid #537d9c!important}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.workspace-heading h2{font-size:clamp(25px,3vw,36px);line-height:1.15;margin:10px 0}.readiness{flex-shrink:0;background:#edf3f8;border-radius:14px;padding:16px 20px;display:grid;gap:2px}.readiness strong{font-size:25px}.readiness span{font-size:12px;color:#526779}.workspace-tabs{display:flex;gap:6px;border-bottom:1px solid #dce3e9;margin:24px 0;overflow-x:auto;padding-bottom:10px}.workspace-tab{white-space:nowrap;flex-shrink:0;border:1px solid transparent;border-radius:9px;background:transparent;color:#526779;font-size:14px;padding:10px 14px;min-height:44px}.workspace-tab[aria-pressed=true]{background:#153957;color:#fff}.workspace-content{min-height:220px}.trip-overview{display:grid;grid-template-columns:1fr 1.25fr;gap:30px;margin-bottom:24px;align-items:center}.trip-overview .art{border-radius:16px!important}.trip-overview h3{font-size:25px}.workspace-sources{border-top:1px solid #dce3e9;margin-top:24px;padding-top:10px}.workspace-sources summary{font-size:13px;color:#526779}.workspace-footer{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #dce3e9;margin-top:18px;padding-top:20px}.workspace-footer button{font-size:13px}.trip-share{font-size:14px}.workspace-heading+.notice{margin-bottom:0}
.trip-timeline{max-width:840px}.timeline-day{display:grid;grid-template-columns:46px 1fr;gap:18px;border-bottom:1px solid #e1e7ed;padding:20px 0}.timeline-number{background:#edf3f8;color:#294f6c;font-weight:750;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.timeline-day h3{font-size:18px;margin:4px 0 10px}.timeline-day p{color:#526779;margin:0;line-height:1.8}
.trip-map-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:24px}.trip-place-list{display:flex;flex-direction:column;gap:8px}.trip-place-list h3{font-size:18px}.map-place{background:#f4f7fa;color:#153957;text-align:left;padding:12px 14px;font-size:14px;border:1px solid #dce3e9;border-radius:10px}.map-place[aria-pressed=true]{background:#153957;color:#fff}.map-place span{display:block;font-size:11px;font-weight:400;opacity:.85;margin-top:4px}.trip-map-pane{min-width:0}.trip-map-pane h3{font-size:21px}.trip-map-canvas{min-height:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:22px;background:radial-gradient(ellipse at 20% 10%,#d7e4ef,transparent),#edf3f8;border:1px solid #dce3e9;border-radius:16px;text-align:center}.map-symbol{font-size:50px;color:#557d9a}.trip-map-canvas p{color:#526779;max-width:360px}.trip-map-canvas:has(iframe){padding:0}.trip-map-canvas iframe{width:100%;height:420px;border:0;border-radius:16px}.map-external{font-size:14px}.trip-provider p{color:#526779}.departure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.departure-stop{padding:20px;border:1px solid #dce3e9;border-radius:14px;background:#f7f9fb}.departure-stop h3{font-size:18px}.departure-stop a{font-size:14px}.booking-reference{white-space:pre-wrap;overflow-wrap:anywhere}.trip-plan-dialog{width:min(850px,96vw);max-height:92dvh;overflow:auto;border:1px solid #dce3e9;border-radius:22px;padding:30px;color:#142b40}.trip-plan-dialog>button:first-child{display:block;margin-left:auto}.trip-plan-dialog::backdrop{background:#0b2039b3}.trip-plan-dialog h2{font-size:30px}.trip-print-sheet{display:none}
@media(max-width:900px){.trip-grid{grid-template-columns:1fr}.dashboard-escapes .trip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.trip-card{display:grid;grid-template-columns:1fr 1.25fr}.trip-card .art.photo{height:100%;aspect-ratio:auto}.trip-map-layout{grid-template-columns:1fr}.trip-place-list{display:grid;grid-template-columns:1fr 1fr}.trip-place-list h3{grid-column:1/-1}.travel-dashboard{grid-template-columns:1.2fr 1fr}.escape-preview h3{font-size:16px}}
@media(max-width:600px){.travel-parent>.hero{padding:26px 22px;min-height:0}.travel-parent>.hero h1{font-size:34px}.travel-parent .panel{padding:20px}.travel-dashboard{grid-template-columns:1fr;min-height:0}.dashboard-copy{padding:25px}.travel-dashboard>.art.photo{aspect-ratio:4/3}.dashboard-escapes .trip-grid{grid-template-columns:1fr}.escape-preview{display:grid;grid-template-columns:120px 1fr;grid-template-rows:auto 1fr}.escape-preview .art.photo{grid-row:1/3;height:100%;aspect-ratio:auto}.escape-preview>span{margin:16px 16px 4px}.escape-preview h3{margin:4px 16px 16px}.trip-card{display:flex}.trip-card .art.photo{height:auto;aspect-ratio:4/3}.workspace-heading{display:block}.readiness{display:flex;align-items:center;gap:12px;width:fit-content;margin-top:16px;padding:10px 14px}.readiness strong{font-size:21px}.trip-overview{grid-template-columns:1fr;gap:14px}.workspace-tabs{margin:20px -4px;padding:4px 4px 12px}.trip-place-list{grid-template-columns:1fr}.trip-map-canvas,.trip-map-canvas iframe{min-height:330px;height:330px}.departure-grid{grid-template-columns:1fr}.trip-plan-dialog{padding:20px}.workspace-footer{display:grid}.trip-actions{align-items:stretch}.travel-dashboard .trip-actions{flex-direction:column}.travel-parent .grid{min-width:0}.trip-compare{display:block;overflow:auto}.timeline-day{gap:12px;grid-template-columns:36px 1fr}.timeline-number{width:34px;height:34px}}
@media print{body.printing-travel-sheet>*:not(.trip-print-sheet){display:none!important}body.printing-travel-sheet .trip-print-sheet{display:block;padding:20px;color:#000;background:#fff}.trip-print-sheet details>*{display:block!important}.trip-print-sheet summary{display:none}.trip-print-sheet button{display:none}.trip-print-sheet a:after{content:' (' attr(href) ')';font-size:9pt}.trip-print-sheet .departure-grid{display:block}.trip-print-sheet .departure-stop{break-inside:avoid}.trip-print-sheet .timeline-day{break-inside:avoid}.trip-print-sheet .booking-reference{overflow-wrap:anywhere}}
