:root{--ink:#29262a;--muted:#716b70;--paper:#f7f4ef;--white:#fff;--line:#e4ddd5;--plum:#70455f;--plum-dark:#503143;--plum-soft:#eee3e9;--green:#607666;--green-soft:#e7ede7;--gold:#b9924e;--gold-soft:#f4ead7;--red:#9b4d4d;--shadow:0 22px 65px rgba(54,39,47,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;line-height:1.05;color:var(--plum-dark)}a{color:var(--plum)}.shell{width:min(1180px,calc(100% - 44px));margin-inline:auto}.muted{color:var(--muted)}.hidden{display:none!important}.eyebrow{display:block;margin-bottom:9px;color:var(--plum);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow--light{color:#eadce4}.test-bar{height:38px;padding:0 max(14px,calc((100vw - 1320px)/2));display:flex;align-items:center;gap:8px;color:#eee5eb;background:#2e2229;font-size:12px}.test-bar span{width:7px;height:7px;border-radius:50%;background:#82c794;box-shadow:0 0 0 4px rgba(130,199,148,.12)}.test-bar small{color:#ad9da6}.flash{position:fixed;z-index:200;right:22px;top:54px;max-width:410px;padding:14px 18px;border-radius:8px;color:#fff;background:#446e50;box-shadow:var(--shadow);font-size:13px}.flash--error{background:#944949}.flash--success{background:#446e50}.brand{display:flex;gap:12px;align-items:center;color:var(--plum-dark);text-decoration:none}.brand__mark{width:44px;height:44px;display:grid;place-items:center;flex:none;color:#fff;background:var(--plum);border-radius:50%;font:700 24px Georgia,serif}.brand strong,.brand small{display:block}.brand strong{font:700 22px/1 Georgia,serif}.brand small{margin-top:5px;font-size:8px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.brand--light{color:#fff}.brand--light .brand__mark{color:var(--plum);background:#fff}.brand--mobile{display:none;margin-bottom:36px}.button{min-height:44px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:8px;text-decoration:none;font-size:12px;font-weight:700}.button--primary{color:#fff;background:var(--plum);box-shadow:0 7px 18px rgba(112,69,95,.18)}.button--primary:hover{background:var(--plum-dark)}.button--quiet{color:var(--muted);background:#fff;border:1px solid var(--line)}.button--light{color:var(--plum-dark);background:#fff}.button--outline-light{color:#fff;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08)}
label{display:grid;gap:8px;color:#464147;font-size:12px;font-weight:700}label small{color:var(--muted);font-weight:400}input,textarea,select{width:100%;padding:13px 14px;border:1px solid #d8d1cc;border-radius:8px;color:var(--ink);background:#fff;outline:0;font-size:13px;font-weight:400}input:focus,textarea:focus,select:focus{border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-soft)}textarea{resize:vertical;line-height:1.55}.password-input{display:flex;align-items:center;position:relative}.password-input input{padding-right:68px}.password-input button{position:absolute;right:6px;padding:7px 9px;border:0;border-radius:5px;color:var(--plum);background:#f4edf1;font-size:9px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkbox{display:flex;grid-template-columns:none;align-items:flex-start;gap:9px}.checkbox input{width:16px;height:16px;flex:none;accent-color:var(--plum)}
/* Authenticated test view switcher */
.test-bar{justify-content:space-between}.test-bar>div{display:flex;align-items:center;gap:8px}.test-bar>div>span{width:7px;height:7px;border-radius:50%;background:#82c794;box-shadow:0 0 0 4px rgba(130,199,148,.12)}.view-switch{display:flex;align-items:center;gap:4px}.view-switch b{margin-right:3px;color:#ad9da6;font-size:10px}.view-switch a{padding:5px 9px;border-radius:5px;color:#fff;text-decoration:none;font-size:10px;font-weight:700}.view-switch a:hover,.view-switch a.active{color:#30232b;background:#fff}
/* Login */
.login-page{min-height:calc(100vh - 38px);display:grid;grid-template-columns:minmax(430px,1.08fr) minmax(460px,.92fr);background:#fff}.login-story{min-height:720px;background:linear-gradient(130deg,rgba(54,31,47,.96),rgba(77,47,66,.72)),url('../images/lakenham-hall.jpg') center/cover}.login-story__inner{min-height:inherit;padding:52px clamp(42px,6vw,105px) 48px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.login-story h1{max-width:650px;margin-bottom:22px;color:#fff;font-size:clamp(48px,5.6vw,78px);font-weight:500;letter-spacing:-.03em}.login-story p{max-width:600px;color:#eee6eb;font-size:18px;line-height:1.7}.privacy-line{font-size:12px!important}.login-panel{display:grid;place-items:center;padding:52px clamp(30px,5vw,90px)}.login-card{width:min(570px,100%)}.login-card h2{margin-bottom:10px;font-size:43px}.login-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0}.login-tabs button{min-height:92px;padding:13px 10px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:#fff;font-size:12px;font-weight:700}.login-tabs small{display:block;margin-top:7px;color:var(--muted);font-size:9px;font-weight:400}.login-tabs button.active{border-color:var(--plum);background:#fdf9fb;box-shadow:0 0 0 2px var(--plum-soft)}.login-form{display:grid;gap:17px}.login-form .button span{margin-left:auto}.login-help{margin-top:28px;padding:17px 18px;border-left:3px solid var(--gold);background:var(--gold-soft)}.login-help strong{font-size:12px}.login-help p{margin:5px 0 0;color:#6b5a43;font-size:11px;line-height:1.55}.alert{margin:18px 0;padding:14px 16px;border-radius:8px;font-size:12px;line-height:1.55}.alert--success{color:#3e674a;background:var(--green-soft)}.alert--error{color:#813d3d;background:#f5e3e3}
/* Family */
.family-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.header-row{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.header-row nav{align-self:stretch;display:flex}.header-row nav a{padding:0 18px;display:grid;place-items:center;color:#686267;text-decoration:none;font-size:12px;font-weight:600}.header-row nav a.active{color:var(--plum);box-shadow:inset 0 -3px var(--plum)}.header-row form{margin:0}.welcome-band{overflow:hidden;color:#fff;background:var(--plum)}.welcome-grid{min-height:245px;display:grid;grid-template-columns:1fr 260px;align-items:center}.welcome-grid h1{margin-bottom:14px;color:#fff;font-size:48px;font-weight:500}.welcome-grid p{max-width:700px;margin:0;color:#e7dce2;line-height:1.65}.welcome-flower{text-align:center;color:#e6c98f;font-size:78px}.hub-main{padding-block:55px 75px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{margin:0;font-size:39px}.section-heading--spaced{margin-top:58px}.status-chip{padding:8px 11px;border-radius:999px;color:#41674b;background:var(--green-soft);font-size:10px;font-weight:700}.notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.notice-card{min-height:300px;padding:27px;display:flex;flex-direction:column;border:1px solid var(--line);border-top:4px solid var(--green);border-radius:13px;background:#fff;box-shadow:0 10px 35px rgba(67,51,59,.06)}.notice-card--pinned{border-top-color:var(--plum)}.notice-meta{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.notice-meta span{color:var(--plum);font-weight:800}.pin{align-self:flex-start;margin:17px 0 0;padding:5px 8px;border-radius:4px;color:var(--plum);background:var(--plum-soft);font-size:9px;text-transform:uppercase}.notice-card h3{margin:19px 0 12px;font-size:26px}.notice-card p{color:var(--muted);font-size:12px;line-height:1.7}.card-link{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:11px;font-weight:700;text-decoration:none}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-card{overflow:hidden;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;box-shadow:0 10px 30px rgba(67,51,59,.06);text-decoration:none;transition:.2s}.gallery-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(67,51,59,.12)}.gallery-image{height:210px;display:block;position:relative;overflow:hidden;background:#ded8d8}.gallery-image img{width:100%;height:100%;object-fit:cover}.gallery-image i{position:absolute;right:11px;bottom:11px;padding:6px 9px;border-radius:999px;color:#fff;background:rgba(45,32,39,.82);font-size:9px;font-style:normal}.gallery-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#fff;background:var(--plum);font:700 50px Georgia,serif}.gallery-copy{min-height:165px;padding:18px 19px;display:flex;flex-direction:column}.gallery-copy time{color:var(--gold);font-size:9px;font-weight:800;text-transform:uppercase}.gallery-copy strong{margin:8px 0;color:var(--plum-dark);font:700 22px/1.08 Georgia,serif}.gallery-copy small{color:var(--muted);font-size:11px;line-height:1.5}.gallery-copy b{margin-top:auto;padding-top:14px;color:var(--plum);font-size:10px}.reassurance{margin-top:55px;padding:23px 27px;display:flex;gap:17px;align-items:center;border:1px solid #d7e0d8;border-radius:11px;background:var(--green-soft)}.reassurance>span{width:37px;height:37px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;background:var(--green)}.reassurance strong{color:#3f5645;font:700 19px Georgia,serif}.reassurance p{margin:3px 0 0;color:#667168;font-size:11px}.empty-state{padding:45px;border:1px dashed #cabfc5;border-radius:12px;background:#fff;text-align:center}.gallery-page{padding-block:55px 80px}.gallery-page h1{max-width:820px;margin-bottom:8px;font-size:52px}.gallery-date{color:var(--gold);font-size:11px;font-weight:800;text-transform:uppercase}.gallery-intro{max-width:740px;color:var(--muted);line-height:1.7}.photo-grid{margin-top:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.photo-grid article{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.photo-grid img{width:100%;height:260px;object-fit:cover}.photo-copy{padding:14px}.photo-copy strong{font:700 17px Georgia,serif}.photo-copy p{margin:5px 0 0;color:var(--muted);font-size:11px}.photo-download{display:block;padding:11px 14px;border-top:1px solid var(--line);font-size:10px;font-weight:700;text-decoration:none}.lightbox{position:fixed;inset:0;z-index:300;padding:50px;display:grid;place-items:center;background:rgba(30,23,27,.92)}.lightbox img{max-width:90vw;max-height:82vh}.lightbox button{position:absolute;right:25px;top:20px;width:44px;height:44px;border:0;border-radius:50%;color:#fff;background:rgba(255,255,255,.14);font-size:28px}.lightbox p{color:#fff}.archive-list{display:grid;gap:12px;margin-top:30px}.archive-list article{padding:20px;border:1px solid var(--line);border-radius:9px;background:#fff}.archive-list h2{margin:7px 0;font-size:24px}.archive-list span,.archive-list time{color:var(--muted);font-size:10px;text-transform:uppercase}
/* Administration */
.admin-app{min-height:calc(100vh - 38px);background:#f6f4f1}.admin-sidebar{width:250px;position:fixed;top:38px;bottom:0;left:0;z-index:40;padding:26px 17px 20px;display:flex;flex-direction:column;color:#d9cdd4;background:#33272e}.admin-sidebar .brand{margin-left:8px}.admin-role{margin:27px 0 24px;padding:14px;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.04)}.admin-role>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#493341;background:#ead7e2;font-size:11px;font-weight:800}.admin-role strong,.admin-role small{display:block}.admin-role strong{color:#fff;font-size:11px}.admin-role small{margin-top:3px;color:#aa98a3;font-size:9px}.admin-sidebar nav{display:grid;gap:3px}.admin-sidebar nav a{padding:11px 12px;border-radius:7px;color:#cdbfc7;text-decoration:none;font-size:10px}.admin-sidebar nav a:hover{color:#fff;background:#5c4050}.admin-sidebar form{margin-top:auto}.admin-sidebar form button{width:100%;padding:11px;border:0;color:#ac99a4;background:transparent;text-align:left;font-size:10px}.admin-header{min-height:126px;margin-left:250px;padding:26px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:#fff}.admin-header h1{margin:0;font-size:37px}.admin-main{min-height:calc(100vh - 164px);margin-left:250px;padding:30px 36px 70px}.quick-create{min-height:210px;padding:31px 35px;overflow:hidden;border-radius:14px;color:#fff;background:linear-gradient(120deg,#654256,#76546a)}.quick-create h2{margin:0 0 9px;color:#fff;font-size:35px}.quick-create p{max-width:650px;color:#eadfe5;font-size:12px;line-height:1.6}.quick-create div{display:flex;gap:10px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:22px 0}.stats-grid article{min-height:125px;padding:22px;border:1px solid var(--line);border-radius:11px;background:#fff}.stats-grid span,.stats-grid strong{display:block}.stats-grid span{margin-bottom:7px;color:var(--plum);font:700 34px Georgia,serif}.stats-grid strong{font-size:11px}.admin-card{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 7px 25px rgba(64,48,57,.035)}.card-heading{padding:22px 24px 17px;display:flex;align-items:start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.card-heading h2,.form-card h2{margin:0;font-size:27px}.card-heading p{margin:7px 0 0;color:var(--muted);font-size:11px}.activity-list>div{padding:14px 24px;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;border-bottom:1px solid #eee8e4}.activity-list>div>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:var(--green);background:var(--green-soft)}.activity-list p{margin:0}.activity-list strong,.activity-list small{display:block}.activity-list strong{font-size:11px}.activity-list small{margin-top:3px;color:var(--muted);font-size:9px}.privacy-reminder{margin-top:22px;padding:18px 22px;display:flex;align-items:center;gap:14px;border:1px solid #d9e3db;border-radius:11px;background:#f0f5f0}.privacy-reminder>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--green)}.privacy-reminder strong{color:#3d5744;font:700 18px Georgia,serif}.privacy-reminder p{margin:3px 0 0;color:#667269;font-size:10px}.editor-grid,.settings-layout,.account-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:20px;align-items:start}.form-card{padding:28px;display:grid;gap:18px}.form-card form{display:grid;gap:18px}.publish-card{padding:23px;display:grid;gap:17px;position:sticky;top:25px}.policy-note{padding:13px;border-radius:8px;background:var(--gold-soft)}.policy-note strong,.policy-note small{display:block;color:#6e542d;font-size:10px}.policy-note small{margin-top:3px;font-size:9px}.upload-box{padding:0!important;overflow:hidden;border:1px dashed #bbaab4;border-radius:9px;background:#fcf9fb;text-align:center}.upload-box>input{padding:32px;width:100%;border:0;background:transparent}.upload-box>span,.upload-box>small{padding-inline:18px;display:block}.upload-box>span{color:var(--plum);font-weight:700}.upload-box>small{padding-bottom:22px;line-height:1.6}.privacy-check{padding:14px;display:flex;align-items:flex-start;gap:11px;border:1px solid #d7e2d9;border-radius:9px;background:var(--green-soft)}.privacy-check input{width:18px;height:18px;flex:none;accent-color:var(--green)}.privacy-check strong,.privacy-check small{display:block}.privacy-check small{margin-top:4px;line-height:1.45}.content-table{overflow-x:auto}.content-row{min-width:850px;padding:14px 22px;display:grid;grid-template-columns:2fr .65fr .7fr .8fr 1.5fr;gap:18px;align-items:center;border-bottom:1px solid #eee9e5;color:var(--muted);font-size:10px}.content-row--head{background:#faf8f6;font-size:8px;font-weight:800;text-transform:uppercase}.content-row strong{color:var(--ink)}.content-row form{display:inline-flex;gap:6px;margin-left:8px}.content-row button,.content-row a{border:0;color:var(--plum);background:transparent;font-size:9px;font-weight:700}.content-row .danger{color:var(--red)}.badge{padding:5px 8px;border-radius:999px;background:#eeeae7;font-size:8px;font-style:normal;text-transform:uppercase}.badge--published{color:#50705a;background:var(--green-soft)}.manage-gallery{padding-bottom:24px}.manage-photo-grid{padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.manage-photo-grid article{padding:14px;display:grid;gap:11px;border:1px solid var(--line);border-radius:9px}.manage-photo-grid img{width:100%;height:190px;object-fit:cover}.manage-gallery>form>.button{margin-left:22px}.danger-link{border:0;color:var(--red);background:transparent;font-size:10px;text-align:left}.account-list>div{padding:16px 24px;display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;border-bottom:1px solid #eee9e5}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--plum);background:var(--plum-soft);font-size:10px;font-weight:800}.account-list p{margin:0}.account-list strong,.account-list small{display:block}.account-list strong{font-size:11px}.account-list small{margin-top:3px;color:var(--muted);font-size:9px}.account-list button{border:0;color:var(--red);background:transparent;font-size:10px}.settings-card{overflow:hidden}.setting-row{min-height:84px;padding:17px 26px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid #eee9e5}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:11px}.setting-row small{max-width:520px;margin-top:4px;font-size:9px;line-height:1.45}.setting-row input{width:19px;height:19px;flex:none;accent-color:var(--plum)}.setting-row b{padding:7px 10px;border-radius:6px;color:var(--plum);background:var(--plum-soft);font-size:9px}.settings-save{margin:22px 26px}.portal-summary,.access-note{padding:25px}.portal-summary h2,.access-note h2{font-size:27px}.portal-summary dl div{padding:10px 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px}.portal-summary dd{margin:0;font-weight:700}.test-warning{padding:13px;border-left:3px solid var(--gold);color:#6b5a43;background:var(--gold-soft);font-size:10px;line-height:1.5}.access-note>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--plum)}.access-note p{color:var(--muted);font-size:10px;line-height:1.65}.access-note strong{color:var(--plum);font-size:10px}.security-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:20px}.security-summary{padding:28px;display:flex;gap:20px;align-items:center}.score-ring{width:82px;height:82px;display:grid;place-items:center;flex:none;border:7px solid var(--green-soft);border-top-color:var(--green);border-radius:50%;color:var(--green);font-size:30px}.security-summary p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.security-list{padding:20px 42px;display:grid;gap:13px;color:#445a49;font-size:11px}.audit-card{grid-column:1/-1}.audit-list>div{padding:13px 22px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:15px;border-bottom:1px solid var(--line);font-size:10px}.audit-list span,.audit-list time{color:var(--muted)}
/* Installer */
.installer{padding:40px 20px;background:#efeae4}.install-card{width:min(900px,100%);margin:auto;padding:36px;border-radius:14px;background:#fff;box-shadow:var(--shadow)}.install-card h1{font-size:43px}.requirements{margin:25px 0;padding:20px;border:1px solid var(--line);border-radius:9px}.requirements h2{font-size:23px}.requirements p{margin:8px 0;font-size:12px}.requirements p span{width:25px;display:inline-block;font-weight:800}.requirements .pass{color:#4b6e54}.requirements .fail{color:var(--red)}.install-form{display:grid;gap:20px}.install-form fieldset{padding:20px;display:grid;gap:16px;border:1px solid var(--line);border-radius:9px}.install-form legend{padding:0 8px;color:var(--plum-dark);font:700 18px Georgia,serif}
@media(max-width:1050px){.login-page{grid-template-columns:.85fr 1fr}.notice-grid{grid-template-columns:1fr 1fr}.notice-card:first-child{grid-column:1/-1}.gallery-grid,.photo-grid{grid-template-columns:1fr 1fr}.editor-grid,.settings-layout,.account-layout{grid-template-columns:1fr}.publish-card{position:static}.manage-photo-grid{grid-template-columns:1fr 1fr}.security-grid{grid-template-columns:1fr}.audit-card{grid-column:auto}}
@media(max-width:780px){.test-bar small{display:none}.shell{width:min(100% - 30px,1180px)}.login-page{display:block;min-height:calc(100vh - 38px)}.login-story{display:none}.login-panel{min-height:calc(100vh - 38px);padding:32px 22px}.brand--mobile{display:flex}.login-card h2{font-size:35px}.login-tabs{grid-template-columns:1fr}.header-row{min-height:72px;flex-wrap:wrap;padding-block:10px}.header-row nav{order:3;width:100%;min-height:42px;overflow-x:auto}.header-row nav a{min-width:max-content;padding-inline:12px}.welcome-grid{min-height:260px;grid-template-columns:1fr}.welcome-grid h1{font-size:38px}.welcome-flower{display:none}.notice-grid,.gallery-grid,.photo-grid{grid-template-columns:1fr}.notice-card:first-child{grid-column:auto}.section-heading h2{font-size:33px}.gallery-page h1{font-size:40px}.photo-grid img{height:240px}.form-grid{grid-template-columns:1fr}.admin-sidebar{width:auto;height:auto;position:static;padding:18px}.admin-sidebar .brand,.admin-role{display:none}.admin-sidebar nav{display:flex;overflow-x:auto}.admin-sidebar nav a{min-width:max-content}.admin-sidebar form{position:absolute;right:15px;top:50px}.admin-sidebar form button{width:auto}.admin-header,.admin-main{margin-left:0}.admin-header{min-height:104px;padding:22px 18px}.admin-header h1{font-size:31px}.admin-header .status-chip{display:none}.admin-main{padding:20px 15px 60px}.stats-grid{grid-template-columns:1fr}.quick-create{padding:26px 22px}.quick-create div{flex-wrap:wrap}.form-card{padding:21px}.manage-photo-grid{grid-template-columns:1fr}.content-row{min-width:760px}.audit-list>div{grid-template-columns:1fr}.install-card{padding:24px}.install-card h1{font-size:34px}}
@media(max-width:780px){.view-switch b{display:none}.view-switch a{padding:5px 6px;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Version 0.4 interface and branding */
.test-bar{height:auto;min-height:56px;padding:8px max(14px,calc((100vw - 1320px)/2));gap:16px}.test-bar small{color:#c2b5bc}.view-switch{gap:8px}.view-switch b{margin-right:2px;color:#e9dee4;font-size:12px}.view-switch a{min-height:36px;padding:9px 14px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.38);border-radius:8px;color:#fff;font-size:12px;letter-spacing:.01em}.view-switch a:hover{color:#30232b;background:#f3eaf0}.view-switch a.active{color:#30232b;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.flash{top:70px}.brand__mark{width:50px;height:50px;overflow:hidden}.brand__mark img{width:100%;height:100%;padding:4px;object-fit:contain}.brand strong{max-width:220px;font-size:21px;line-height:1.05}.brand small{letter-spacing:.17em}.admin-app{min-height:calc(100vh - 56px)}.admin-sidebar{top:56px}
.notice-card{padding:0;overflow:hidden}.notice-image{height:190px;display:block;overflow:hidden;background:var(--plum-soft)}.notice-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.notice-image:hover img{transform:scale(1.025)}.notice-card__body{min-height:296px;padding:25px 27px;display:flex;flex:1;flex-direction:column}.notice-card h3 a{color:inherit;text-decoration:none}.notice-card h3 a:hover{color:var(--plum)}.notice-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5}
.notice-page{padding-block:38px 80px}.back-link{display:inline-flex;margin-bottom:20px;color:var(--plum);font-size:12px;font-weight:700;text-decoration:none}.notice-detail{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.notice-detail__image{max-height:560px;overflow:hidden;background:var(--plum-soft)}.notice-detail__image img{width:100%;max-height:560px;object-fit:cover}.notice-detail__copy{max-width:850px;padding:clamp(30px,5vw,64px)}.notice-detail__copy time{display:block;margin-bottom:15px;color:var(--gold);font-size:11px;font-weight:800;text-transform:uppercase}.notice-detail__copy h1{margin-bottom:24px;font-size:clamp(40px,6vw,64px)}.notice-body{color:#555057;font-size:16px;line-height:1.8}.notice-download{margin-top:30px}
.branding-form .muted{margin-bottom:0;font-size:11px;line-height:1.65}.colour-control{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center}.colour-control input{height:48px;padding:4px}.colour-control b{font-size:11px;text-transform:uppercase}.remove-logo{padding:14px;border:1px solid var(--line);border-radius:8px;background:#faf8f6}.design-preview{padding:25px}.design-preview h2{margin-bottom:20px;font-size:27px}.design-preview__panel{padding:25px;border-radius:12px;color:#fff;background:var(--plum)}.design-preview__panel .brand{color:#fff}.design-preview__panel .brand__mark{color:var(--plum);background:#fff}.design-preview__panel p{margin:28px 0 18px;color:#f0e8ed;font:600 22px/1.25 Georgia,serif}.preview-button{display:inline-flex;padding:10px 14px;border-radius:7px;color:#292126;background:var(--gold);font-size:10px;font-weight:800}.design-notes{padding-top:22px}.design-notes strong{display:block;color:var(--plum);font-size:11px}.design-notes p{margin:5px 0 18px;color:var(--muted);font-size:10px;line-height:1.6}
@media(max-width:780px){.test-bar{align-items:flex-start;flex-direction:column}.test-bar>div{min-height:28px}.view-switch{width:100%;overflow-x:auto;padding-bottom:2px}.view-switch a{min-width:max-content;padding:8px 11px;font-size:10px}.login-page,.login-panel{min-height:calc(100vh - 104px)}.admin-sidebar{top:auto}.notice-detail__image img{max-height:380px}.notice-detail__copy{padding:28px 22px}.notice-body{font-size:14px}}

/* Version 0.4.1 — reliable view buttons and full uploaded-logo treatment */
.test-bar{position:relative;z-index:100;box-shadow:0 2px 10px rgba(22,14,19,.18)}
.test-bar__status{flex:0 0 auto}
.test-bar .view-switch{display:flex;align-items:center;gap:8px}
.test-bar .view-switch b{color:#f7f1f4;font-size:12px;font-weight:800}
.test-bar .view-switch a,
.test-bar .view-switch a:link,
.test-bar .view-switch a:visited{min-height:38px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.55);border-radius:8px;color:#fff!important;background:rgba(255,255,255,.09);box-shadow:inset 0 1px rgba(255,255,255,.08);font-size:12px;font-weight:800;line-height:1;text-decoration:none!important}
.test-bar .view-switch a:hover,
.test-bar .view-switch a:focus-visible{border-color:#fff;color:#2e2229!important;background:#f5edf2;outline:3px solid rgba(255,255,255,.22);outline-offset:2px}
.test-bar .view-switch a.active{border-color:#fff;color:#2e2229!important;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.brand__logo{width:82px;height:72px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden}
.brand__logo img{width:100%;height:100%;padding:0;object-fit:contain}
.brand--uploaded-logo{gap:15px}
.brand--uploaded-logo .brand__copy{min-width:0}
.family-header .header-row{min-height:96px}
.family-header .brand__logo{width:88px;height:78px}
.admin-sidebar .brand--uploaded-logo{margin-left:2px;gap:10px}
.admin-sidebar .brand--uploaded-logo .brand__logo{width:72px;height:72px}
.admin-sidebar .brand--uploaded-logo .brand__copy{width:120px}
.admin-sidebar .brand--uploaded-logo strong{max-width:120px;font-size:18px;line-height:1.02}
.admin-sidebar .brand--uploaded-logo small{font-size:7px;line-height:1.35}
.login-story .brand--uploaded-logo .brand__logo{width:96px;height:84px}
.design-preview__panel .brand--uploaded-logo .brand__logo{width:104px;height:90px}
@media(max-width:780px){.test-bar .view-switch{width:100%;overflow-x:auto;padding:2px 0 4px}.test-bar .view-switch a,.test-bar .view-switch a:link,.test-bar .view-switch a:visited{min-width:max-content;min-height:36px;padding:9px 12px;font-size:10px}.family-header .brand__logo{width:70px;height:62px}.family-header .brand--uploaded-logo{gap:9px}.family-header .brand--uploaded-logo strong{max-width:155px;font-size:18px}.family-header .brand--uploaded-logo small{font-size:7px}.brand--mobile.brand--uploaded-logo{display:flex}.brand--mobile .brand__logo{width:76px;height:68px}}

/* Version 0.4.2 — light branding panels for full-colour Home logos */
.family-header .brand--uploaded-logo,
.admin-sidebar .brand--uploaded-logo{
    padding:8px 12px 8px 8px;
    border:1px solid #ded4cc;
    border-radius:12px;
    color:#30272c;
    background:#f4efe9;
    box-shadow:0 5px 16px rgba(32,23,28,.10);
}
.family-header .brand--uploaded-logo:hover,
.admin-sidebar .brand--uploaded-logo:hover{background:#faf7f3}
.family-header .brand--uploaded-logo .brand__logo,
.admin-sidebar .brand--uploaded-logo .brand__logo{
    padding:5px;
    border:1px solid #e5ded8;
    border-radius:9px;
    background:#fff;
}
.family-header .brand--uploaded-logo strong,
.family-header .brand--uploaded-logo small,
.admin-sidebar .brand--uploaded-logo strong,
.admin-sidebar .brand--uploaded-logo small{color:#30272c}
.admin-sidebar .brand--uploaded-logo{width:100%;margin-left:0;gap:10px}
.admin-sidebar .brand--uploaded-logo .brand__logo{width:66px;height:66px}
.admin-sidebar .brand--uploaded-logo .brand__copy{width:auto;min-width:0;flex:1}
.admin-sidebar .brand--uploaded-logo strong{max-width:none;font-size:17px;line-height:1.08}
.admin-sidebar .brand--uploaded-logo small{font-size:7px;line-height:1.35}
@media(max-width:780px){
    .family-header .brand--uploaded-logo{padding:6px 9px 6px 6px;border-radius:10px}
    .family-header .brand--uploaded-logo .brand__logo{width:64px;height:58px;padding:4px}
}

/* Version 0.5.0 — landing branding and moderated family gallery comments */
.login-story .brand--uploaded-logo,
.login-card .brand--uploaded-logo{
    width:max-content;
    max-width:100%;
    padding:9px 14px 9px 9px;
    border:1px solid #e2d9d2;
    border-radius:12px;
    color:#30272c;
    background:#f7f3ee;
    box-shadow:0 8px 24px rgba(28,19,24,.18);
}
.login-story .brand--uploaded-logo .brand__logo,
.login-card .brand--uploaded-logo .brand__logo{
    padding:6px;
    border:1px solid #e7e0da;
    border-radius:9px;
    background:#fff;
}
.login-story .brand--uploaded-logo strong,
.login-story .brand--uploaded-logo small,
.login-card .brand--uploaded-logo strong,
.login-card .brand--uploaded-logo small{color:#30272c}
.comment-privacy-notice{max-width:920px;margin:28px 0 8px;padding:17px 20px;display:flex;align-items:flex-start;gap:14px;border:1px solid #e5d6b8;border-radius:11px;color:#634f31;background:var(--gold-soft)}
.comment-privacy-notice>span,.moderation-guidance>span{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;background:var(--gold);font-family:Georgia,serif;font-weight:700}
.comment-privacy-notice strong{font:700 17px Georgia,serif}.comment-privacy-notice p{margin:4px 0 0;font-size:11px;line-height:1.6}
.photo-grid--comments{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.photo-grid--comments>article{scroll-margin-top:125px;box-shadow:0 10px 32px rgba(67,51,59,.06)}
.photo-comments{border-top:1px solid var(--line);background:#fbf9f7}
.photo-comments__heading{padding:15px 16px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.photo-comments__heading strong{font:700 17px Georgia,serif;color:var(--plum-dark)}
.photo-comments__heading span{min-width:25px;height:25px;padding:0 7px;display:grid;place-items:center;border-radius:999px;color:var(--plum);background:var(--plum-soft);font-size:10px;font-weight:800}
.photo-comments__empty{margin:0;padding:0 16px 15px;color:var(--muted);font-size:10px}
.photo-comments__list{padding:0 16px 3px;display:grid;gap:9px}
.photo-grid .photo-comments__list article{padding:12px 13px;overflow:visible;border:1px solid #e8e1dc;border-radius:8px;background:#fff}
.photo-comments__list article>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.photo-comments__list strong{color:var(--plum-dark);font-size:11px}.photo-comments__list time{color:var(--muted);font-size:8px}.photo-comments__list p{margin:6px 0 0;color:#504b50;font-size:11px;line-height:1.55}
.comment-form{padding:15px 16px 17px;display:grid;gap:12px;border-top:1px solid var(--line);background:#fff}
.comment-form label small{margin-left:5px}.comment-form textarea{min-height:88px}.comment-form .button{justify-self:start}
.stats-grid{grid-template-columns:repeat(4,1fr)}.stats-grid article a{display:inline-block;margin-top:10px;color:var(--plum);font-size:9px;font-weight:700;text-decoration:none}
.moderation-guidance{margin:22px 24px 0;padding:16px 18px;display:flex;align-items:flex-start;gap:13px;border:1px solid #e5d6b8;border-radius:9px;background:var(--gold-soft)}
.moderation-guidance strong{color:#634f31;font:700 17px Georgia,serif}.moderation-guidance p{margin:4px 0 0;color:#6d5a3d;font-size:10px;line-height:1.55}
.comment-moderation-list{padding:22px;display:grid;gap:12px}
.comment-moderation-list>article{padding:14px;display:grid;grid-template-columns:100px minmax(0,1fr) 170px;gap:15px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;transition:.2s}
.comment-moderation-list>article.is-hidden{opacity:.68;background:#f0eeeb}
.comment-moderation-list>article>img{width:100px;height:82px;border-radius:7px;object-fit:cover}
.moderation-comment>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.moderation-comment>div strong{font-size:11px}.moderation-comment time{color:var(--muted);font-size:8px}.moderation-comment p{margin:7px 0;color:#504b50;font-size:11px;line-height:1.5}.moderation-comment>small{color:var(--plum);font-size:9px;font-weight:700}
.visibility-check{padding:12px;display:flex;align-items:center;gap:10px;border:1px solid #d7e2d9;border-radius:8px;background:var(--green-soft)}.visibility-check input{width:18px;height:18px;flex:none;accent-color:var(--green)}.visibility-check strong,.visibility-check small{display:block}.visibility-check strong{color:#3e5b46;font-size:10px}.visibility-check small{margin-top:3px;font-size:8px}
.moderation-save{padding:0 22px 22px}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.comment-moderation-list>article{grid-template-columns:82px minmax(0,1fr)}.comment-moderation-list>article>img{width:82px;height:72px}.visibility-check{grid-column:1/-1}}
@media(max-width:780px){.login-card .brand--uploaded-logo{padding:7px 10px 7px 7px}.photo-grid--comments{grid-template-columns:1fr}.comment-privacy-notice{margin-top:22px}.comment-moderation-list{padding:15px}.comment-moderation-list>article{grid-template-columns:68px minmax(0,1fr);padding:11px}.comment-moderation-list>article>img{width:68px;height:64px}.moderation-comment>div{align-items:flex-start;flex-direction:column;gap:3px}.stats-grid{grid-template-columns:1fr}.moderation-guidance{margin:15px 15px 0}}

/* Version 0.6 account management */
.account-row{padding:16px 24px;display:grid;grid-template-columns:42px minmax(150px,1fr) auto;gap:13px;align-items:center;border-bottom:1px solid #eee9e5}.account-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.account-controls form{margin:0}.account-action,.account-password-reset>summary{padding:8px 10px;border:1px solid #d8d1cc;border-radius:6px;color:var(--plum);background:#fff;font-size:9px;font-weight:700;list-style:none;cursor:pointer}.account-password-reset>summary::-webkit-details-marker{display:none}.account-action--danger{color:var(--red);border-color:#e4caca;background:#fffafa}.account-password-reset{position:relative}.account-password-reset[open]>summary{color:#fff;background:var(--plum);border-color:var(--plum)}.account-password-reset form{width:290px;padding:16px;display:grid;gap:12px;position:absolute;z-index:20;top:calc(100% + 7px);right:0;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 14px 38px rgba(47,34,41,.18)}.account-password-reset label{font-size:10px}.account-password-reset .button{width:100%}.account-note{margin:18px 22px;padding:14px 16px;border-left:3px solid var(--gold);background:var(--gold-soft)}.account-note strong{color:#745a30;font:700 17px Georgia,serif}.account-note p{margin:4px 0 0;color:#76684f;font-size:9px;line-height:1.55}
@media(max-width:780px){.account-row{grid-template-columns:42px 1fr;padding:14px 16px}.account-controls{grid-column:1/-1;justify-content:flex-start}.account-password-reset{position:static}.account-password-reset form{width:min(290px,calc(100vw - 62px));right:auto;left:0}.account-note{margin:15px}}
.account-managed-note{color:var(--muted);font-size:9px}
