:root{color:#17382c;font-synthesis:none;background:#f8f6f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f8f6f1;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#214b3b;background:#edf1ed;border:0;border-radius:.55rem;padding:.68rem .9rem;font-weight:700;transition:background .18s,transform .18s,box-shadow .18s}button:hover{background:#e3ebe5}button:active{transform:translateY(1px)}button.primary{color:#fff;background:#235b40;box-shadow:0 8px 16px #1c4f392b}button.primary:hover{background:#174832}button.plain{color:#295441;background:0 0}a{color:#285b42;font-weight:750}label{color:#254638;gap:.42rem;margin:.75rem 0;font-weight:700;display:grid}input,select{color:#183c2d;background:#fff;border:1px solid #cfdbd2;border-radius:.55rem;width:100%;min-height:2.8rem;padding:.66rem .75rem}input:focus,select:focus{border-color:#4a8064;outline:3px solid #dcecdf}fieldset{border:1px solid #d6e1da;border-radius:.75rem;margin:1rem 0}fieldset label{font-weight:600;display:block}fieldset input{width:auto;min-height:auto;margin-right:.5rem}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:#153b2d}h1{margin-bottom:.35rem}h2{margin-bottom:.4rem;font-size:1.25rem}.centered{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.card{background:#fff;border:1px solid #dde6df;border-radius:1rem;padding:1.25rem;box-shadow:0 10px 32px #1f302812}.login{width:min(100%,28rem)}.login form{gap:.25rem;display:grid}.topbar{border-bottom:1px solid #dce8df;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding:1.15rem 0;display:flex}.topbar p{margin-bottom:0}.app,.family{width:min(100% - 2rem,1120px);margin:0 auto;padding-bottom:3rem}.eyebrow{color:#517662;text-transform:uppercase;letter-spacing:.09em;margin-bottom:.35rem;font-size:.73rem;font-weight:850}.install{color:#25543e;background:#eef5ef;border-radius:.75rem;margin:1rem 0;padding:.8rem}.install p{margin:.75rem 0 0;font-size:.92rem}.section-title{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.section-title select{width:auto}.status,.badges span{background:#edf3ee;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:800}.big-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0;display:grid}.muted{color:#607269;margin-top:1rem;font-size:.92rem}.error{color:#9c261b;font-weight:700}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.uploader{margin-bottom:1.25rem}.library{margin-top:1.5rem}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.85rem;display:grid}.photo-card{background:#fff;border:1px solid #e1ebe3;border-radius:.8rem;overflow:hidden;box-shadow:0 4px 12px #1f30280a}.photo-card img{aspect-ratio:1;object-fit:cover;background:#edf3ee;width:100%;display:block}.badges,.photo-actions{flex-wrap:wrap;gap:.35rem;padding:.55rem .6rem 0;display:flex}.badges .green{background:#d5eddb}.badges .gold{background:#fff1bd}.photo-actions{padding-bottom:.6rem}.photo-actions button,.photo-actions a{background:#eff4f0;border-radius:.45rem;padding:.35rem .45rem;font-size:.72rem;text-decoration:none}.family{width:min(100% - 2rem,1320px)}.family-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.7rem;display:grid}.family-grid button{background:#e5eee8;border-radius:.75rem;padding:0;overflow:hidden}.family-grid img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .22s;display:block}.family-grid button:hover img{transform:scale(1.03)}.lightbox{z-index:5;background:#07140ee6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.lightbox img,.shared-photo{object-fit:contain;max-width:100%;max-height:calc(100vh - 2rem)}.shared-photo{margin:2rem auto;display:block}.credential{border-top:1px solid #e3eae5;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.credential code{overflow-wrap:anywhere;color:#314d3d}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin-login{background:radial-gradient(circle at 82% 10%,#e5eddf 0,#0000 31rem),#f7f5ef}.admin-login .brand{color:#214f39;margin-bottom:1.8rem}.admin-shell{background:#faf8f4;grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{color:#f7fbf6;background:linear-gradient(160deg,#092d21 0%,#104a35 59%,#174d39 100%);flex-direction:column;height:100vh;padding:1.85rem 1.1rem 1.4rem;display:flex;position:sticky;top:0;overflow:hidden}.admin-sidebar:after{content:"";z-index:0;opacity:.25;background:radial-gradient(#e3bd53 0 23%,#0000 24%),linear-gradient(145deg,#0000 47%,#cce0a8 48% 50%,#0000 51%);border-radius:50%;width:21rem;height:21rem;position:absolute;bottom:-13rem;left:-4rem}.admin-sidebar>*{z-index:1;position:relative}.brand{color:#fff;align-items:center;gap:.65rem;min-height:3.55rem;display:flex}.brand svg{stroke:#a6c857;stroke-width:3px;fill:none;width:2.65rem;height:3rem}.brand span{letter-spacing:.04em;line-height:1.05;display:grid}.brand strong{letter-spacing:.07em;font-size:.95rem}.brand small{color:#f3d67b;letter-spacing:.12em;margin-top:.23rem;font-size:.61rem}.admin-sidebar nav{gap:.32rem;margin-top:3rem;display:grid}.admin-sidebar nav button{color:#f7fbf8;text-align:left;background:0 0;align-items:center;gap:.75rem;width:100%;padding:.78rem .86rem;display:flex}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{background:#7bbb806e}.icon{flex:none;width:1.3rem;height:1.3rem}.sidebar-footer{align-items:center;gap:.55rem;margin-top:auto;padding:.65rem .5rem;display:flex}.support-dot{border:1px solid #d8eddc;border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-weight:800;display:grid}.admin-main{width:min(100%,1220px);margin:0 auto;padding:1.65rem 2.5rem 3.5rem}.admin-heading{justify-content:space-between;align-items:center;gap:1rem;min-height:5.35rem;margin-bottom:1.3rem;display:flex}.admin-heading h1{letter-spacing:-.045em;margin:0;font-size:clamp(1.8rem,3vw,2.35rem)}.admin-heading p{color:#596d64;margin:.35rem 0 0}.admin-account{align-items:center;gap:.65rem;display:flex}.admin-account>div{gap:.18rem;font-size:.85rem;display:grid}.notification{color:#21483a;background:#f2eee6;place-items:center;width:2.65rem;height:2.65rem;padding:0;display:grid;position:relative}.notification b{color:#fff;background:#ef9416;border-radius:50%;place-items:center;width:1.15rem;height:1.15rem;font-size:.64rem;display:grid;position:absolute;top:-.38rem;right:-.35rem}.avatar{color:#fff;background:#123c2c;border-radius:50%;flex:none;place-items:center;width:2.65rem;height:2.65rem;font-size:.78rem;font-weight:800;display:grid}.muted-avatar{color:#2d5c46;background:#dfe9df}.logout-link{color:#536e62;text-align:left;background:0 0;border-radius:0;padding:0;font-size:.78rem;font-weight:500}.logout-link:hover{color:#164531;background:0 0}.global-message{margin:0 0 1rem}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1.25rem;display:grid}.metrics article{background:#ffffff9e;border:1px solid #d9e2db;border-radius:.8rem;align-items:center;gap:.85rem;min-height:6.5rem;padding:1rem 1.05rem;display:flex;box-shadow:0 4px 16px #21463309}.metric-icon{color:#1f6343;background:#e0ebe1;border-radius:.65rem;flex:none;place-items:center;width:3.05rem;height:3.05rem;display:grid}.metrics small{color:#295d42;letter-spacing:.035em;font-size:.66rem;font-weight:850;display:block}.metrics strong{color:#113a2c;margin-top:.12rem;font-size:1.55rem;line-height:1.1;display:block}.metrics p{color:#66766f;white-space:nowrap;margin:.1rem 0 0;font-size:.76rem}.admin-panel{background:#ffffffd1;border:1px solid #e2e7e2;border-radius:.85rem;margin-top:1rem;padding:1.08rem 1.2rem;scroll-margin-top:1rem;box-shadow:0 6px 20px #21463309}.panel-heading{border-bottom:1px solid #e1e6e1;justify-content:space-between;align-items:center;gap:1rem;padding:.08rem 0 .75rem;display:flex}.panel-heading h2,.security-panel h2{align-items:center;gap:.5rem;margin:0;font-size:1.13rem;display:flex}.panel-heading h2 .icon,.security-panel h2 .icon{color:#1d5d40;width:1.23rem}.panel-heading p,.security-panel p{color:#63746c;max-width:40rem;margin:.35rem 0 0;font-size:.84rem}.compact{white-space:nowrap;align-items:center;gap:.38rem;min-height:2.35rem;padding:.55rem .75rem;font-size:.82rem;display:inline-flex}.compact .icon{width:1.05rem}.user-form{border-bottom:1px solid #e3e9e3;grid-template-columns:1fr 1.25fr .75fr auto;align-items:end;gap:.7rem;padding:1rem 0;display:grid}.user-form label{margin:0;font-size:.82rem}.form-actions{gap:.4rem;display:flex}.secret-card{color:#214f39;background:#f0f8ef;border:1px solid #cfe2d1;border-radius:.7rem;gap:.35rem;margin:1rem 0 0;padding:.9rem;display:grid}.secret-card span,.secret-card p{color:#557264;font-size:.85rem}.secret-card p{margin:.1rem 0}.user-row{border-bottom:1px solid #e6ebe6;grid-template-columns:auto minmax(11rem,1fr) auto auto auto;align-items:center;gap:.8rem;min-height:4.45rem;display:grid}.user-row:last-child{border-bottom:0}.user-copy{gap:.16rem;min-width:0;display:grid}.user-copy strong{font-size:.89rem}.user-copy span{color:#61736a;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.role-pill{color:#2c5b42;background:#edf3ec;border-radius:.28rem;padding:.27rem .45rem;font-size:.66rem;font-weight:850}.live-status,.off-status{color:#587169;align-items:center;gap:.35rem;min-width:3.8rem;font-size:.78rem;display:inline-flex}.live-status:before,.off-status:before{content:"";background:#52a80f;border-radius:50%;width:.48rem;height:.48rem}.off-status:before{background:#9aa8a1}.row-actions{gap:.35rem;display:flex}.row-actions button{padding:.42rem .55rem;font-size:.7rem}.access-list{display:grid}.access-row{border-bottom:1px solid #e5eae5;grid-template-columns:minmax(15rem,1.35fr) 4.2rem minmax(27rem,auto);align-items:center;gap:.8rem;min-height:4.4rem;display:grid}.access-row:last-child{border-bottom:0}.access-title{gap:.26rem;min-width:0;display:grid}.access-title strong{letter-spacing:.02em;font-size:.81rem}.access-title code{color:#678078;text-overflow:ellipsis;white-space:nowrap;max-width:21rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem;overflow:hidden}.access-actions{justify-content:flex-end;gap:.38rem;display:flex}.access-actions button{color:#285740;background:#eef2ed;border-radius:.42rem;align-items:center;gap:.32rem;padding:.46rem .52rem;font-size:.72rem;display:inline-flex}.access-actions button:hover{background:#dfeae1}.access-actions .icon{width:1rem;height:1rem}.access-actions .danger-soft{color:#6b4c28;background:#f7f0e2}.qr-panel{background:#f2f8f2;border:1px solid #cfdfd2;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1.4rem;margin-top:.65rem;padding:1rem;display:flex}.qr-panel h3{margin:0 0 .35rem;font-size:1rem}.qr-panel p{color:#536e61;max-width:39rem;margin-bottom:.8rem;font-size:.84rem}.qr-panel img{background:#fff;border-radius:.5rem;width:9rem;height:9rem;padding:.35rem}.archive-overview{padding-bottom:1.15rem}.archive-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:.72rem;margin-top:.8rem;display:grid}.archive-card{background:#fff;border:1px solid #dfe7e0;border-radius:.65rem;overflow:hidden}.archive-cover{color:#ffffffe6;background:linear-gradient(145deg,#6c9e72,#284c39);place-items:center;min-height:7.9rem;display:grid;position:relative}.archive-card.\32 026-july .archive-cover{background:linear-gradient(145deg,#509b75,#235442)}.archive-card.\32 026-august .archive-cover{background:linear-gradient(145deg,#d1a258,#37563e)}.archive-cover .icon{opacity:.92;width:2.1rem;height:2.1rem}.archive-cover span{background:#041d1261;border-radius:.3rem;align-items:center;gap:.25rem;padding:.22rem .4rem;font-size:.73rem;font-weight:800;display:flex;position:absolute;bottom:.55rem;right:.65rem}.archive-card>div:last-child{gap:.16rem;padding:.68rem .72rem;display:grid}.archive-card strong{color:#244d3a;font-size:.83rem}.archive-card span{color:#63766c;font-size:.76rem}.archive-library{scroll-margin-top:1rem}.archive-library .library{margin:1.25rem 0 0}.security-panel{justify-content:space-between;align-items:center;gap:1rem;display:flex}.security-panel>div{min-width:0}@media (width<=1100px){.admin-main{padding:1.4rem 1.5rem 3rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.access-row{grid-template-columns:minmax(12rem,1fr) 4.2rem;padding:.65rem 0}.access-actions{grid-column:1/-1;justify-content:flex-start}}@media (width<=760px){.topbar{align-items:center}.topbar h1{font-size:1.35rem}.big-actions{grid-template-columns:1fr}.app,.family{width:min(100% - 1rem,1120px)}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell{display:block}.admin-sidebar{height:auto;min-height:0;padding:.8rem 1rem;position:static;overflow:visible}.admin-sidebar:after,.sidebar-footer{display:none}.admin-sidebar .brand{min-height:2.7rem}.admin-sidebar nav{gap:.2rem;margin:.65rem 0 0;display:flex;overflow-x:auto}.admin-sidebar nav button{flex:none;width:auto;padding:.55rem .6rem;font-size:.76rem}.admin-sidebar nav .icon{width:1rem}.admin-main{padding:1.2rem .8rem 2.5rem}.admin-heading{align-items:flex-start;min-height:0}.admin-account>div{display:none}.metrics{grid-template-columns:1fr 1fr;gap:.55rem}.metrics article{gap:.55rem;min-height:5.4rem;padding:.7rem}.metric-icon{width:2.4rem;height:2.4rem}.metrics strong{font-size:1.2rem}.metrics p{text-overflow:ellipsis;max-width:7rem;overflow:hidden}.panel-heading,.security-panel{align-items:flex-start}.panel-heading .compact{font-size:0}.panel-heading .compact .icon{width:1.1rem}.user-form{grid-template-columns:1fr}.user-row{grid-template-columns:auto minmax(0,1fr) auto;padding:.65rem 0}.user-row .role-pill{display:none}.row-actions{grid-column:2/-1}.access-row{grid-template-columns:minmax(0,1fr) 3.5rem;gap:.45rem}.access-title code{max-width:13rem}.access-actions{flex-wrap:wrap}.access-actions button{padding:.45rem}.button-label{display:none}.qr-panel{align-items:flex-start}.qr-panel img{width:6.5rem;height:6.5rem}.archive-cards{grid-template-columns:1fr}.archive-card{grid-template-columns:8.5rem 1fr;display:grid}.archive-cover{min-height:5.7rem}.security-panel{display:grid}}
