@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#1e2440;--muted:#78809a;--line:#e7e9f0;--blue:#dcecff;--orange:#fff0dc;--purple:#eee8ff;--green:#e2f3eb;--paper:#fbfbfd}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;background:#fff;border-right:1px solid var(--line);padding:31px 18px 20px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:14px;line-height:1.1;letter-spacing:-.3px;padding:0 11px 35px}.brand strong{font-weight:700}.brand-mark{display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:10px;width:34px;height:34px;font-size:20px}.sidebar nav{display:grid;gap:5px}.sidebar nav a,.sidebar-bottom a{display:flex;align-items:center;gap:13px;padding:12px 13px;border-radius:10px;color:#737991;text-decoration:none}.sidebar nav a span{font-size:20px;width:18px;text-align:center}.sidebar nav a.active{background:#f0f1f7;color:var(--ink);font-weight:600}.sidebar-bottom{margin-top:48px;border-top:1px solid var(--line);padding-top:24px}.mini-label,.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.2px;color:#a0a5b6;margin:0 13px 12px}.sidebar-bottom a{font-size:13px;padding:9px 13px}.sidebar-bottom em{font-style:normal;margin-left:auto;color:#a0a5b6}.dot{width:8px;height:8px;border-radius:50%}.dot-blue{background:#699ce0}.dot-orange{background:#e9a563}.dot-violet{background:#9c84d8}.profile{margin-top:auto;background:#f5f6f9;border-radius:12px;padding:12px 10px;display:flex;align-items:center;gap:9px;font-size:12px}.avatar,.top-avatar{display:grid;place-items:center;border-radius:50%;background:#dcbda8;color:white;font-weight:700}.avatar{width:31px;height:31px}.profile small{display:block;color:#a0a5b6;margin-top:2px;font-size:10px}.more{margin-left:auto;color:#9fa4b2}.main{flex:1;min-width:0}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 58px;gap:30px}.crumb{color:#9ca2b3;font-size:13px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.icon-btn{border:0;background:none;color:#7c8298;font-size:23px;cursor:pointer}.top-avatar{width:34px;height:34px;background:#c8a68f;font-size:12px}.mobile-brand{display:none}.content{max-width:1240px;margin:auto;padding:54px 58px 80px}.welcome,.page-intro{display:flex;align-items:flex-end;justify-content:space-between}.eyebrow{margin:0 0 13px}.welcome h1,.page-intro h1{font:500 47px/1.05 'Playfair Display',serif;letter-spacing:-1.8px;margin:0}.welcome h1 i,.page-intro h1 i,.plan-aside i{color:#7e7a9a}.lede{color:var(--muted);margin:15px 0 0;font-size:16px}.button{display:inline-flex;align-items:center;gap:15px;padding:13px 17px;border-radius:9px;text-decoration:none;border:0;font:600 13px 'DM Sans';cursor:pointer}.button-dark{color:white;background:var(--ink)}.button-dark span{font-size:18px;margin-left:10px}.button-light{background:white;color:var(--ink);border:1px solid var(--line);margin-top:20px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:53px 0 55px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;align-items:center;gap:13px}.stat-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;font-size:18px}.blue{background:var(--blue)}.purple{background:var(--purple)}.peach{background:var(--orange)}.green{background:var(--green)}.stat strong{font-size:22px;display:block;line-height:1.1}.stat small{color:var(--muted);font-size:11px;display:block;margin-top:4px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:17px}.section-head h2{font-size:21px;letter-spacing:-.5px;margin:0}.text-link{color:#717891;text-decoration:none;font-size:12px;background:none;border:0;cursor:pointer}.text-link span{font-size:17px;margin-left:7px}.upcoming-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.visit-card,.add-card{background:#fff;border:1px solid var(--line);border-radius:14px;min-height:182px;padding:20px;display:flex;gap:16px}.date-block{width:48px;height:57px;background:var(--orange);border-radius:10px;text-align:center;padding:8px 2px;flex-shrink:0}.date-block strong{display:block;font-size:24px;line-height:20px}.date-block span{font-size:10px;color:#ae835c;text-transform:uppercase}.pill{display:inline-block;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:600}.pill-orange{background:var(--orange);color:#b17842}.visit-info h3{font-size:16px;margin:11px 0 5px;letter-spacing:-.3px}.visit-info p{font-size:11px;color:var(--muted);margin:0;min-height:17px}.card-actions{display:flex;align-items:center;margin-top:23px}.small-action{border:0;background:none;color:#68718a;padding:0;font:600 11px 'DM Sans';cursor:pointer}.ghost-action{border:0;background:none;color:#aab0bd;margin-left:auto;cursor:pointer}.add-card{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-style:dashed;color:#6e748c;text-decoration:none}.add-card span{font-size:24px;font-weight:300;color:#9ca4b5}.add-card strong{font-size:13px;margin:8px 0 4px;color:var(--ink)}.add-card small{font-size:11px}.lower-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;margin-top:55px}.compact{margin-bottom:17px}.memory-list{background:white;border:1px solid var(--line);border-radius:14px;padding:5px 20px}.memory{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.memory:last-child{border-bottom:0}.memory-image{width:43px;height:43px;border-radius:9px;background-size:cover;background-position:center}.memory strong,.memory small{display:block}.memory strong{font-size:13px}.memory small{font-size:11px;color:var(--muted);margin-top:4px}.rating{color:#a77a39;font-size:12px;margin-left:auto}.rating small{color:#b0b4bf;display:inline;font-size:10px}.someday-panel{background:#eff0fa;border-radius:15px;padding:23px 24px}.someday-panel .section-head{margin-bottom:6px}.someday-item{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid rgba(120,128,154,.16)}.someday-item:last-of-type{border:0}.round-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#dcdcf0;color:#77779a;font-size:13px}.someday-item strong,.someday-item small{display:block}.someday-item strong{font-size:12px}.someday-item small{font-size:10px;color:var(--muted);margin-top:3px}.someday-item a{margin-left:auto;color:#8589a1;text-decoration:none}.page-intro{align-items:center}.page-intro h1{font-size:43px}.filters{display:flex;gap:9px;margin:45px 0 28px}.search-field{flex:1;border:1px solid var(--line);background:#fff;border-radius:9px;display:flex;align-items:center;padding:0 13px;color:#9ba1b1;font-size:21px}.search-field input{border:0;outline:0;padding:13px 9px;font:13px 'DM Sans';width:100%;color:var(--ink)}select,.filter-button{background:white;border:1px solid var(--line);border-radius:9px;padding:0 14px;color:#798096;font:12px 'DM Sans'}.filter-button{background:var(--ink);color:white}.result-meta{display:flex;justify-content:space-between;color:#a0a5b3;font-size:11px;margin-bottom:17px}.result-meta strong{color:var(--ink);font-weight:500}.museum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.museum-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.museum-image{height:164px;background-size:cover;background-position:center;position:relative}.save{position:absolute;right:12px;top:12px;border-radius:50%;width:31px;height:31px;background:rgba(255,255,255,.9);display:grid;place-items:center;font-size:19px;color:#6e7485}.museum-card-body{padding:17px}.card-topline{display:flex;justify-content:space-between;color:#9da3b2;font-size:10px}.museum-card h2{font:500 23px 'Playfair Display';margin:10px 0 6px;letter-spacing:-.5px}.museum-card p{font-size:11px;line-height:1.5;color:var(--muted);min-height:34px;margin:0}.museum-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:16px;padding-top:13px;font-size:10px;color:#9da3b2}.museum-footer a{color:#69728a;text-decoration:none;font-weight:600}.agenda-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:35px;margin-top:50px}.agenda-item{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;gap:22px;margin-bottom:12px}.agenda-date{width:57px;height:69px;background:var(--orange);border-radius:10px;text-align:center;padding:9px;flex-shrink:0}.agenda-date strong{font-size:29px;display:block;line-height:28px}.agenda-date span{font-size:10px;color:#aa805a}.agenda-detail{display:flex;justify-content:space-between;flex:1;align-items:center}.agenda-detail h2{font:500 20px 'Playfair Display';margin:8px 0 5px}.agenda-detail p{margin:0;color:var(--muted);font-size:11px}.agenda-actions{display:flex;gap:12px}.plan-aside{background:var(--ink);color:white;border-radius:15px;padding:27px;min-height:280px}.plan-aside .eyebrow{color:#9298af;margin-left:0}.plan-aside h2{font:500 26px 'Playfair Display';margin:5px 0 12px}.plan-aside p{color:#aeb3c5;font-size:12px;line-height:1.5}.plan-aside .someday-item{border-bottom-color:rgba(255,255,255,.12)}.plan-aside .someday-item strong{color:white}.plan-aside .someday-item small{color:#989fb3}.empty{background:white;border:1px dashed var(--line);border-radius:14px;padding:40px;text-align:center;color:var(--muted)}
@media(max-width:1000px){.sidebar{width:205px}.content{padding:42px 30px}.topbar{padding:0 30px}.upcoming-grid,.museum-grid{grid-template-columns:repeat(2,1fr)}.upcoming-grid .add-card{display:none}.stats-row{gap:9px}.stat{padding:13px}.lower-grid{gap:25px}}
@media(max-width:700px){.sidebar{display:none}.mobile-brand{display:flex;align-items:center;gap:9px;font-weight:600}.mobile-brand .brand-mark{width:27px;height:27px;border-radius:8px;font-size:16px}.topbar{padding:0 18px;height:64px}.crumb{display:none}.content{padding:33px 18px 50px}.welcome,.page-intro{display:block}.welcome h1,.page-intro h1{font-size:38px}.welcome .button,.page-intro .button{margin-top:24px}.stats-row{grid-template-columns:repeat(2,1fr);margin:38px 0 42px}.stat strong{font-size:20px}.section-head{align-items:start}.section-head h2{font-size:19px}.upcoming-grid,.museum-grid,.lower-grid,.agenda-layout{grid-template-columns:1fr}.lower-grid{margin-top:38px}.someday-panel{margin-top:5px}.filters{display:grid;grid-template-columns:1fr 1fr;margin:32px 0 22px}.search-field{grid-column:span 2;min-height:46px}.filter-button{height:43px}.museum-grid{gap:14px}.museum-image{height:190px}.page-intro h1{font-size:36px}.agenda-layout{margin-top:35px}.agenda-detail{display:block}.agenda-actions{margin-top:17px}.plan-aside{margin-top:7px}.result-meta{margin-top:5px}}
/* Practical display typography: keep the editorial palette, make every heading easy to scan. */
.welcome h1,.page-intro h1,.museum-card h2,.agenda-detail h2,.plan-aside h2{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-style:normal}
.welcome h1,.page-intro h1{font-weight:650;letter-spacing:-1.4px}
.museum-card h2,.agenda-detail h2,.plan-aside h2{font-weight:650}
.auth-page{min-height:100vh;display:grid;place-items:center;background:#f2f3f8}.auth-card{width:min(420px,calc(100% - 36px));background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px;box-shadow:0 18px 50px rgba(30,36,64,.08)}.auth-brand{padding:0 0 50px}.auth-card h1{font-size:34px;margin:0 0 8px;letter-spacing:-1px}.auth-copy{color:var(--muted);margin:0 0 25px}.auth-form{display:grid;gap:17px}.auth-form label{display:grid;gap:7px;font-size:12px;font-weight:600;color:#5f6781}.auth-form input{border:1px solid var(--line);border-radius:8px;padding:12px;font:15px 'DM Sans';color:var(--ink);outline-color:#9c9bc8}.auth-form .button{justify-content:center;margin-top:6px}.form-error{background:#fff0ed;color:#a95649;border-radius:8px;padding:10px 12px;font-size:12px;margin-bottom:18px}.auth-hint{font-size:11px;color:#a0a5b6;margin:24px 0 0}.auth-hint strong{color:#68718a}
.detail-hero{min-height:330px;border-radius:18px;background-size:cover;background-position:center;color:white;padding:26px 32px;display:flex;flex-direction:column;justify-content:space-between}.detail-hero .eyebrow{color:#d9dced;margin-left:0}.detail-hero h1{font-size:44px;letter-spacing:-1.5px;margin:0 0 9px}.detail-hero p:last-child{max-width:550px;color:#e4e6ef;margin:0}.back-link{color:white;text-decoration:none;font-size:12px}.detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;margin-top:35px}.detail-aside{background:#eff0fa;border-radius:15px;padding:25px}.detail-aside h2{font-size:22px;margin:5px 0 14px}.detail-aside p{font-size:12px;color:var(--muted)}.price{border-top:1px solid rgba(120,128,154,.2);margin-top:25px;padding-top:18px;font-size:24px;font-weight:650}.price small{font-size:11px;color:var(--muted);font-weight:400}.admin-page{max-width:1000px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:40px}.admin-grid .memory-list{padding:20px}.admin-grid .memory-list h2{margin-top:0}.check-label{display:flex!important;align-items:center;gap:8px}.check-label input{width:auto}.admin-page .page-intro{margin-top:45px}@media(max-width:700px){.detail-grid,.admin-grid{grid-template-columns:1fr}.detail-hero{min-height:300px;padding:22px}.detail-hero h1{font-size:34px}}
.form-page{max-width:620px}.form-page h1{font-size:42px;letter-spacing:-1.4px;margin:22px 0 35px}.form-page h1 i{font-style:normal;color:#7e7a9a}.visit-form{background:white;border:1px solid var(--line);border-radius:15px;padding:24px;display:grid;gap:18px}.visit-form label{display:grid;gap:8px;color:#5f6781;font-size:12px;font-weight:600}.visit-form label span{font-weight:400;color:#a0a5b6;margin-left:5px}.visit-form input,.visit-form textarea{border:1px solid var(--line);border-radius:8px;padding:12px;font:15px 'DM Sans';color:var(--ink);resize:vertical}.visit-form .button{justify-content:center;margin-top:5px}
.utility-links{display:flex;justify-content:flex-end;gap:16px;min-height:20px;margin-bottom:10px}.utility-links a{color:#6d7590;font-size:12px;text-decoration:none}.utility-links a:hover{text-decoration:underline}
.user-chip{color:var(--ink);font-size:12px;font-weight:600;margin-right:auto}
.museum-image-link,.card-title-link{color:inherit;text-decoration:none}.museum-image-link{display:block}
.profile,.top-avatar{display:none}.top-actions .icon-btn:last-of-type{display:none}
.sidebar-footer{margin-top:auto;padding:14px 10px;border-top:1px solid var(--line)}.sidebar-footer .profile{display:flex;background:none;padding:0;margin:0 0 12px}.sidebar-footer .avatar{display:grid}.sidebar-footer .profile strong,.sidebar-footer .profile small{font-size:12px}.signout{border:0;background:none;padding:0;color:#68718a;font:12px 'DM Sans';cursor:pointer}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0;font-size:38px;letter-spacing:-1.4px}.page-heading p{margin:8px 0 0;color:var(--muted)}.page-heading>.eyebrow{margin-left:0}.page-actions{display:flex;align-items:center;gap:16px}.page-actions a:not(.button){color:#68718a;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form-grid{display:grid;gap:16px;max-width:650px}.form-grid label{display:grid;gap:7px;color:#505876;font-size:12px;font-weight:600}.form-grid input,.form-grid textarea,.filters select{border:1px solid var(--line);border-radius:8px;padding:11px;font:14px 'DM Sans';background:#fff}.form-grid textarea{min-height:100px}.check{display:flex!important;align-items:center;gap:8px}.filters{align-items:center}.filters .search-field{min-height:44px;font-size:12px}.filters select{height:44px}.htmx-indicator{display:none;color:var(--muted);font-size:12px}.htmx-request.htmx-indicator{display:inline}.agenda-list{display:grid;gap:10px}.agenda-item{align-items:center}.agenda-date{font-weight:700;color:var(--ink);width:76px}.agenda-item h2{margin:5px 0;font-size:17px}.agenda-item p{margin:0;color:var(--muted);font-size:13px}.agenda-actions{align-items:center;flex-wrap:wrap}.agenda-actions form{margin:0}.text-button{border:0;background:none;color:#596582;font:600 12px 'DM Sans';cursor:pointer;text-decoration:none}.text-button.danger{color:#a85c5c}.simple-list{background:#fff;border:1px solid var(--line);border-radius:14px}.simple-list>div{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list strong{font-size:13px}.simple-list span{font-size:12px;color:var(--muted)}.detail-grid,.admin-grid{margin-top:0}.museum-card h2 a{color:inherit;text-decoration:none}
.sidebar-footer{margin-top:auto;padding:14px 10px;border-top:1px solid var(--line)}.sidebar-footer .profile{display:flex;background:none;padding:0;margin:0 0 12px}.sidebar-footer .avatar{display:grid}.sidebar-footer .profile strong,.sidebar-footer .profile small{font-size:12px}.signout{border:0;background:none;padding:0;color:#68718a;font:12px 'DM Sans';cursor:pointer}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0;font-size:38px;letter-spacing:-1.4px}.page-heading p{margin:8px 0 0;color:var(--muted)}.page-heading>.eyebrow{margin-left:0}.page-actions{display:flex;align-items:center;gap:16px}.page-actions a:not(.button){color:#68718a;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form-grid{display:grid;gap:16px;max-width:650px}.form-grid label{display:grid;gap:7px;color:#505876;font-size:12px;font-weight:600}.form-grid input,.form-grid textarea,.filters select{border:1px solid var(--line);border-radius:8px;padding:11px;font:14px 'DM Sans';background:#fff}.form-grid textarea{min-height:100px}.check{display:flex!important;align-items:center;gap:8px}.filters{align-items:center}.filters .search-field{min-height:44px;font-size:12px}.filters select{height:44px}.htmx-indicator{display:none;color:var(--muted);font-size:12px}.htmx-request.htmx-indicator{display:inline}.agenda-list{display:grid;gap:10px}.agenda-item{align-items:center}.agenda-date{font-weight:700;color:var(--ink);width:76px}.agenda-item h2{margin:5px 0;font-size:17px}.agenda-item p{margin:0;color:var(--muted);font-size:13px}.agenda-actions{align-items:center;flex-wrap:wrap}.agenda-actions form{margin:0}.text-button{border:0;background:none;color:#596582;font:600 12px 'DM Sans';cursor:pointer;text-decoration:none}.text-button.danger{color:#a85c5c}.simple-list{background:#fff;border:1px solid var(--line);border-radius:14px}.simple-list>div{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list strong{font-size:13px}.simple-list span{font-size:12px;color:var(--muted)}.detail-grid,.admin-grid{margin-top:0}.museum-card h2 a{color:inherit;text-decoration:none}.form-success{padding:12px 15px;border-radius:9px;background:#e2f3eb;color:#397253;font-size:13px}.import-panel{max-width:620px;margin-top:25px}.import-panel .eyebrow{margin-left:0}.import-panel h2{margin:4px 0 8px}.import-panel p{color:var(--muted);font-size:13px;line-height:1.5;max-width:540px}
.sidebar-footer{margin-top:auto;padding:14px 10px;border-top:1px solid var(--line)}.sidebar-footer .profile{display:flex;background:none;padding:0;margin:0 0 12px}.sidebar-footer .avatar{display:grid}.sidebar-footer .profile strong,.sidebar-footer .profile small{font-size:12px}.signout{border:0;background:none;padding:0;color:#68718a;font:12px 'DM Sans';cursor:pointer}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0;font-size:38px;letter-spacing:-1.4px}.page-heading p{margin:8px 0 0;color:var(--muted)}.page-heading>.eyebrow{margin-left:0}.page-actions{display:flex;align-items:center;gap:16px}.page-actions a:not(.button){color:#68718a;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form-grid{display:grid;gap:16px;max-width:650px}.form-grid label{display:grid;gap:7px;color:#505876;font-size:12px;font-weight:600}.form-grid input,.form-grid textarea,.filters select{border:1px solid var(--line);border-radius:8px;padding:11px;font:14px 'DM Sans';background:#fff}.form-grid textarea{min-height:100px}.check{display:flex!important;align-items:center;gap:8px}.filters{align-items:center}.filters .search-field{min-height:44px;font-size:12px}.filters select{height:44px}.htmx-indicator{display:none;color:var(--muted);font-size:12px}.htmx-request.htmx-indicator{display:inline}.agenda-list{display:grid;gap:10px}.agenda-item{align-items:center}.agenda-date{font-weight:700;color:var(--ink);width:76px}.agenda-item h2{margin:5px 0;font-size:17px}.agenda-item p{margin:0;color:var(--muted);font-size:13px}.agenda-actions{align-items:center;flex-wrap:wrap}.agenda-actions form{margin:0}.text-button{border:0;background:none;color:#596582;font:600 12px 'DM Sans';cursor:pointer;text-decoration:none}.text-button.danger{color:#a85c5c}.simple-list{background:#fff;border:1px solid var(--line);border-radius:14px}.simple-list>div{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list strong{font-size:13px}.simple-list span{font-size:12px;color:var(--muted)}.detail-grid,.admin-grid{margin-top:0}.museum-card h2 a{color:inherit;text-decoration:none}.form-success{padding:12px 15px;border-radius:9px;background:#e2f3eb;color:#397253;font-size:13px}.import-panel{max-width:620px;margin-top:25px}.import-panel .eyebrow{margin-left:0}.import-panel h2{margin:4px 0 8px}.import-panel p{color:var(--muted);font-size:13px;line-height:1.5;max-width:540px}.picker-panel{max-width:720px}.picker-panel .search-field{min-height:52px}.suggestion-list{display:grid;margin-top:14px;border-top:1px solid var(--line)}.suggestion-list a{display:grid;gap:4px;padding:13px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.suggestion-list a:hover strong{color:#596582}.suggestion-list strong{font-size:14px}.suggestion-list span{font-size:12px;color:var(--muted)}
.sidebar-footer{margin-top:auto;padding:14px 10px;border-top:1px solid var(--line)}.sidebar-footer .profile{display:flex;background:none;padding:0;margin:0 0 12px}.sidebar-footer .avatar{display:grid}.sidebar-footer .profile strong,.sidebar-footer .profile small{font-size:12px}.signout{border:0;background:none;padding:0;color:#68718a;font:12px 'DM Sans';cursor:pointer}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0;font-size:38px;letter-spacing:-1.4px}.page-heading p{margin:8px 0 0;color:var(--muted)}.page-heading>.eyebrow{margin-left:0}.page-actions{display:flex;align-items:center;gap:16px}.page-actions a:not(.button){color:#68718a;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form-grid{display:grid;gap:16px;max-width:650px}.form-grid label{display:grid;gap:7px;color:#505876;font-size:12px;font-weight:600}.form-grid input,.form-grid textarea,.filters select{border:1px solid var(--line);border-radius:8px;padding:11px;font:14px 'DM Sans';background:#fff}.form-grid textarea{min-height:100px}.check{display:flex!important;align-items:center;gap:8px}.filters{align-items:center}.filters .search-field{min-height:44px;font-size:12px}.filters select{height:44px}.htmx-indicator{display:none;color:var(--muted);font-size:12px}.htmx-request.htmx-indicator{display:inline}.agenda-list{display:grid;gap:10px}.agenda-item{align-items:center}.agenda-date{font-weight:700;color:var(--ink);width:76px}.agenda-item h2{margin:5px 0;font-size:17px}.agenda-item p{margin:0;color:var(--muted);font-size:13px}.agenda-actions{align-items:center;flex-wrap:wrap}.agenda-actions form{margin:0}.text-button{border:0;background:none;color:#596582;font:600 12px 'DM Sans';cursor:pointer;text-decoration:none}.text-button.danger{color:#a85c5c}.simple-list{background:#fff;border:1px solid var(--line);border-radius:14px}.simple-list>div{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list strong{font-size:13px}.simple-list span{font-size:12px;color:var(--muted)}.detail-grid,.admin-grid{margin-top:0}.museum-card h2 a{color:inherit;text-decoration:none}.form-success{padding:12px 15px;border-radius:9px;background:#e2f3eb;color:#397253;font-size:13px}.import-panel{max-width:620px;margin-top:25px}.import-panel .eyebrow{margin-left:0}.import-panel h2{margin:4px 0 8px}.import-panel p{color:var(--muted);font-size:13px;line-height:1.5;max-width:540px}.picker-panel{max-width:720px}.picker-panel .search-field{min-height:52px}.suggestion-list{display:grid;margin-top:14px;border-top:1px solid var(--line)}.suggestion-list a{display:grid;gap:4px;padding:13px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.suggestion-list a:hover strong{color:#596582}.suggestion-list strong{font-size:14px}.suggestion-list span{font-size:12px;color:var(--muted)}.checkbox-group{display:grid;gap:8px;border:0;padding:0;margin:0}.checkbox-group legend{color:#505876;font-size:12px;font-weight:600;margin-bottom:8px}.visit-photos{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}.visit-photos figure{width:145px;margin:0}.visit-photos img{width:145px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.visit-photos form{margin-top:5px}
.sidebar-footer{margin-top:auto;padding:14px 10px;border-top:1px solid var(--line)}.sidebar-footer .profile{display:flex;background:none;padding:0;margin:0 0 12px}.sidebar-footer .avatar{display:grid}.sidebar-footer .profile strong,.sidebar-footer .profile small{font-size:12px}.signout{border:0;background:none;padding:0;color:#68718a;font:12px 'DM Sans';cursor:pointer}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0;font-size:38px;letter-spacing:-1.4px}.page-heading p{margin:8px 0 0;color:var(--muted)}.page-heading>.eyebrow{margin-left:0}.page-actions{display:flex;align-items:center;gap:16px}.page-actions a:not(.button){color:#68718a;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form-grid{display:grid;gap:16px;max-width:650px}.form-grid label{display:grid;gap:7px;color:#505876;font-size:12px;font-weight:600}.form-grid input,.form-grid textarea,.filters select{border:1px solid var(--line);border-radius:8px;padding:11px;font:14px 'DM Sans';background:#fff}.form-grid textarea{min-height:100px}.check{display:flex!important;align-items:center;gap:8px}.filters{align-items:center}.filters .search-field{min-height:44px;font-size:12px}.filters select{height:44px}.htmx-indicator{display:none;color:var(--muted);font-size:12px}.htmx-request.htmx-indicator{display:inline}.agenda-list{display:grid;gap:10px}.agenda-item{align-items:center}.agenda-date{font-weight:700;color:var(--ink);width:76px}.agenda-item h2{margin:5px 0;font-size:17px}.agenda-item p{margin:0;color:var(--muted);font-size:13px}.agenda-actions{align-items:center;flex-wrap:wrap}.agenda-actions form{margin:0}.text-button{border:0;background:none;color:#596582;font:600 12px 'DM Sans';cursor:pointer;text-decoration:none}.text-button.danger{color:#a85c5c}.simple-list{background:#fff;border:1px solid var(--line);border-radius:14px}.simple-list>div{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--line)}.simple-list>div:last-child{border-bottom:0}.simple-list strong{font-size:13px}.simple-list span{font-size:12px;color:var(--muted)}.detail-grid,.admin-grid{margin-top:0}.museum-card h2 a{color:inherit;text-decoration:none}.form-success{padding:12px 15px;border-radius:9px;background:#e2f3eb;color:#397253;font-size:13px}.import-panel{max-width:620px;margin-top:25px}.import-panel .eyebrow{margin-left:0}.import-panel h2{margin:4px 0 8px}.import-panel p{color:var(--muted);font-size:13px;line-height:1.5;max-width:540px}.picker-panel{max-width:720px}.picker-panel .search-field{min-height:52px}.suggestion-list{display:grid;margin-top:14px;border-top:1px solid var(--line)}.suggestion-list a{display:grid;gap:4px;padding:13px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.suggestion-list a:hover strong{color:#596582}.suggestion-list strong{font-size:14px}.suggestion-list span{font-size:12px;color:var(--muted)}.checkbox-group{display:grid;gap:8px;border:0;padding:0;margin:0}.checkbox-group legend{color:#505876;font-size:12px;font-weight:600;margin-bottom:8px}.visit-photos{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}.visit-photos figure{width:145px;margin:0}.visit-photos img{width:145px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.visit-photos form{margin-top:5px}.enrichment-progress{display:grid;gap:3px;margin:18px 5px 0;padding:10px 12px;border-radius:9px;background:#eff0fa;color:var(--ink);text-decoration:none;font-size:11px}.enrichment-progress span{color:var(--muted);font-size:10px}
.profile{text-decoration:none;color:inherit}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.danger-panel{margin-top:18px;border-color:#e5b5aa}.danger{background:#a23b2a;color:#fff;border-color:#a23b2a}@media(max-width:760px){.account-grid{grid-template-columns:1fr}}
.user-management{display:grid;gap:12px}.user-row{display:grid;grid-template-columns:1.1fr 1.2fr auto auto auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.user-row:last-child{border:0}.user-row label{margin:0}.user-row input{min-width:0}.muted{color:var(--muted);font-size:12px}@media(max-width:900px){.user-row{grid-template-columns:1fr 1fr}.user-row .check{align-self:center}}

/* Keep actions aligned and reserve the filled treatment for the primary action. */
.button-light{margin-top:0}
.page-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}
.page-actions .button{justify-content:center;min-height:44px;white-space:nowrap}
.button-light:hover{background:#f5f6fa}
.button-dark:hover{background:#303957}
.text-button.danger{background:transparent;border:0}

/* Preserve visible keyboard focus, including on borderless search fields. */
:where(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #606b91;outline-offset:3px}
.search-field:focus-within{border-color:#606b91;box-shadow:0 0 0 3px rgba(96,107,145,.16)}

.mobile-menu{display:none}
@media(max-width:900px){
  .page-heading{align-items:flex-start;flex-direction:column}
  .page-actions{justify-content:flex-start}
}
@media(max-width:700px){
  .topbar{position:relative;justify-content:space-between}
  .mobile-menu{display:block;margin-left:auto;position:relative}
  .mobile-menu summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:13px;font-weight:600}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(280px,calc(100vw - 36px));padding:9px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 35px rgba(30,36,64,.14);z-index:20}
  .mobile-menu nav{display:grid;gap:2px}
  .mobile-menu nav a,.mobile-signout{display:block;width:100%;padding:11px 12px;border:0;border-radius:8px;background:none;color:var(--ink);font:600 13px 'DM Sans',sans-serif;text-align:left;text-decoration:none}
  .mobile-menu nav a.active{background:#f0f1f7}
  .mobile-menu nav a:hover,.mobile-signout:hover{background:#f5f6fa}
  .mobile-menu form{border-top:1px solid var(--line);margin-top:7px;padding-top:7px}
  .mobile-signout{cursor:pointer;color:#68718a}
  .page-actions{width:100%}
  .page-actions .button{flex:1 1 auto}
  .agenda-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px}
  .agenda-actions{grid-column:1/-1;margin-top:0}
}

/* Museum detail content and image controls. */
.museum-cover{margin:0 0 24px}
.museum-cover img{display:block;width:100%;height:350px;object-fit:cover;border-radius:15px;border:1px solid var(--line);background:#eff0f5}
.museum-cover figcaption{margin-top:8px;color:var(--muted);font-size:11px;line-height:1.5}
.museum-cover figcaption a,.museum-facts a,.museum-map a,.museum-exhibitions a{color:#596582}
.museum-detail-grid{margin-top:0;align-items:start}
.museum-main-stack,.museum-side-stack{display:grid;gap:18px;min-width:0}
.museum-main-stack .panel h2,.museum-side-stack .panel h2{font-size:20px;margin:0 0 15px}
.museum-description{font-size:14px;line-height:1.7;color:#505876;white-space:pre-line;margin:0}
.museum-facts p{font-size:13px;line-height:1.6;color:#505876;margin:12px 0}
.museum-facts p:last-child{margin-bottom:0}
.museum-map iframe{display:block;width:100%;height:225px;border:0;border-radius:10px;background:#eff0f5}
.museum-map p,.museum-map>a{font-size:11px;line-height:1.5;color:var(--muted)}
.museum-map p{margin:10px 0 0}
.museum-exhibitions{display:grid;gap:13px}
.museum-exhibitions>div{display:grid;gap:5px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.museum-exhibitions>div:last-child{padding-bottom:0;border:0}
.museum-exhibitions strong{font-size:14px}
.museum-exhibitions p,.museum-exhibitions small,.museum-exhibitions a{font-size:12px;line-height:1.5;margin:0}
.museum-exhibitions small{color:var(--muted)}
.museum-image-tools{max-width:650px;margin-top:18px}
.image-editor-preview{margin:0 0 18px}
.image-editor-preview img{display:block;width:100%;height:190px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.image-editor-preview figcaption{margin-top:7px;font-size:11px;line-height:1.5;color:var(--muted)}
.image-editor-preview a{color:#596582}
.museum-image-tools p{font-size:12px;line-height:1.5;color:var(--muted)}
.museum-image-tools form{display:grid;gap:11px;justify-items:start}
.museum-image-tools form+form{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.museum-image-tools label{display:grid;gap:6px;width:100%;color:#505876;font-size:12px;font-weight:600}
.museum-image-tools label small{font-size:11px;font-weight:400;color:var(--muted)}
.museum-image-tools input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;font:13px 'DM Sans',sans-serif}
.museum-image-tools .button{margin:0}
.form-hint{font-size:12px;color:var(--muted);margin:0}
.coordinate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.skip-link{position:fixed;left:12px;top:-80px;z-index:100;background:#fff;color:var(--ink);padding:10px 14px;border:2px solid var(--ink);border-radius:8px}.skip-link:focus{top:12px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.agenda-list:focus{outline:2px solid #606b91;outline-offset:4px}
/* Small supporting text needs readable contrast on white and pale panels. */
:root{--muted:#5d6881}
.sidebar nav a,.sidebar-bottom a,.sidebar-bottom em,.mini-label,.eyebrow,.profile small,.crumb,.result-meta,.card-topline,.museum-footer,.auth-hint,.form-grid label span,.visit-form label span,.api-key-row small,.search-field,.filters select,.text-link,.utility-links a,.someday-panel .someday-item small{color:#5d6881}
.date-block span,.agenda-date span,.pill-orange{color:#775329}
.closure-check{align-items:flex-start!important;gap:10px!important;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fbfbfd}.closure-check input{width:auto;margin:3px 0 0}.closure-check span{display:grid;gap:3px;margin:0!important;color:var(--ink)!important}.closure-check small{font-size:12px;font-weight:400;color:var(--muted)}.closed-notice{display:inline-block;margin:10px 0 0!important;padding:5px 9px;border-radius:7px;background:#fff0dc;color:#775329!important;font-size:12px;font-weight:700}
.api-key-panel{margin-top:18px}.api-key-panel>p{font-size:13px;color:var(--muted)}.api-key-list{margin-top:20px;border-top:1px solid var(--line)}.api-key-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.api-key-row strong,.api-key-row small{display:block}.api-key-row small{font-size:11px;color:var(--muted);margin-top:4px}.new-api-key{padding:14px;margin:15px 0;background:#e2f3eb;border-radius:9px}.new-api-key label{display:block;font-size:12px;font-weight:700;margin-bottom:8px}.new-api-key input{width:100%;padding:10px;border:1px solid #93b8a6;border-radius:7px;background:white;font:13px monospace}
@media(max-width:700px){
  .museum-cover img{height:230px}
  .museum-detail-grid{gap:18px}
}

/* Administration uses one consistent vertical rhythm and two equal source cards. */
.admin-layout{display:grid;gap:20px}
.admin-layout>.panel,.admin-import-grid>.panel{min-width:0}
.admin-layout>.panel>h2{margin:0 0 18px}
.admin-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.admin-import-grid .import-panel{display:flex;flex-direction:column;max-width:none;margin:0}
.admin-import-grid .import-panel p:not(.eyebrow){max-width:none}
.admin-import-grid .import-panel form{margin-top:auto;padding-top:16px}
.user-row>label:not(.check){display:grid;gap:7px;min-width:0;color:#505876;font-size:12px;font-weight:600}
.user-row input:not([type=checkbox]):not([type=hidden]){width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff;color:var(--ink);font:14px 'DM Sans',sans-serif}
.user-row input[readonly]{background:#f5f6f9;color:#5d6881}
.user-row .check{align-self:center;white-space:nowrap;color:#505876;font-size:12px;font-weight:600}
.user-row .check input{width:auto;margin:0}
.user-row .button{min-height:44px;white-space:nowrap}
@media(max-width:700px){.admin-import-grid{grid-template-columns:1fr}}
@media(max-width:560px){.user-row{grid-template-columns:1fr}.user-row .button{justify-self:start}}

.saved-for-later{margin-top:40px}
@media(max-width:700px){.saved-for-later{margin-top:32px}}

.history-list{display:grid;gap:14px}
.history-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:20px}
.history-date{display:grid;align-content:center;justify-items:center;min-height:72px;border-radius:10px;background:var(--green);color:var(--ink);text-align:center}
.history-date strong{font-size:27px;line-height:1;font-weight:700}
.history-date span{margin-top:5px;font-size:11px;color:#397253}
.history-main{min-width:0}
.history-main h2{margin:1px 0 7px;font-size:19px;line-height:1.3}
.history-main h2 a{color:inherit;text-decoration:none}
.history-main h2 a:hover{text-decoration:underline}
.history-main p{max-width:70ch;margin:10px 0 0;color:#505876;font-size:13px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.history-rating{display:inline-block;color:#397253;font-size:12px;font-weight:700}
.history-edit{align-self:center;white-space:nowrap}
@media(max-width:700px){.history-card{grid-template-columns:64px minmax(0,1fr);gap:14px}.history-date{min-height:64px}.history-edit{grid-column:2;justify-self:start}}

.date-form-field{display:grid;gap:7px;min-width:0}
.date-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.date-control [data-date-text]{width:100%;min-width:0}
.date-picker-button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 12px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}
.date-picker-button:hover{background:#f5f6fa}
.date-picker-input{position:absolute;right:0;top:100%;width:1px!important;height:1px!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}

.api-key-form{margin-top:18px}
.api-key-form #pending-api-key{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}
.api-key-unsaved{margin:0;padding:10px 12px;border-radius:8px;background:#eff0fa;color:#505876;font-size:12px;line-height:1.5}
.api-key-actions{display:flex;flex-wrap:wrap;gap:10px}
.api-key-actions .button{margin:0;min-height:44px;justify-content:center}
.api-key-actions .button:disabled{opacity:.55;cursor:not-allowed}

.visit-complete-dialog{width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 20px 60px rgba(30,36,64,.22);color:var(--ink)}
.visit-complete-dialog::backdrop{background:rgba(26,31,53,.5)}
.visit-complete-dialog h2{margin:0 0 6px;font-size:22px}
.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.dialog-actions .button{margin:0;min-height:44px}
.past-visit-panel:not([hidden]){display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f7f8fc}
.past-visit-panel .check{display:flex;align-items:center;gap:9px;margin:0;color:var(--ink);font-size:13px;font-weight:600}
.past-visit-panel .check input{width:auto;margin:0}
.past-visit-details:not([hidden]){display:grid;gap:14px}

.visit-delete{max-width:650px;margin-top:18px;padding:17px 21px;border:1px solid #e5b5aa;border-radius:12px;background:#fff}
.visit-delete summary{display:inline-flex;align-items:center;min-height:40px;list-style:none;cursor:pointer;color:#a23b2a;font-size:13px;font-weight:700}
.visit-delete summary::-webkit-details-marker{display:none}
.visit-delete summary::after{content:"▾";margin-left:8px}
.visit-delete[open] summary::after{content:"▴"}
.visit-delete p{margin:6px 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.visit-delete .button{margin:0}
