[hidden]{display:none!important}
.admin-page{background:#f5eee5;min-height:100vh}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px max(5%,calc((100vw - 1320px)/2));background:var(--wine);color:var(--cream)}
.admin-brand{font-family:var(--display);font-size:2.3rem;line-height:1}
.admin-brand span{display:block;font-size:.8rem;text-align:right;letter-spacing:.21em;margin-top:4px}
.admin-header>div{display:flex;gap:22px;align-items:center;font-size:.9rem}
.admin-header a:hover{text-decoration:underline}
.quiet-button{padding:7px 15px;border:1px solid currentColor;border-radius:3px;background:transparent}
.admin-main{max-width:1420px;margin:auto;padding:50px 5% 70px;min-height:calc(100vh - 190px)}
.login-panel{max-width:450px;margin:15px auto 30px;background:var(--paper);border:1px solid var(--line);padding:38px;border-radius:8px;box-shadow:0 14px 45px #381b1a08}
.login-panel .eyebrow{color:var(--wine)}
.login-panel h1{font-size:3.9rem;line-height:1.02;color:var(--wine);margin:20px 0}
.login-panel>p:not(.eyebrow){color:var(--muted)}
.login-panel form{display:grid;margin-top:25px;gap:8px}
.login-panel label{font-weight:600;margin-top:7px}
.login-panel input,.photo-card input{width:100%;min-width:0;background:white;border:1px solid #bca79a;border-radius:3px;padding:11px 12px;font:inherit;color:var(--ink)}
.login-panel .button{margin-top:17px}
.editor-heading h1{font-size:clamp(2.7rem,5vw,4.6rem);color:var(--wine);margin:14px 0}
.editor-heading p{max-width:700px;color:var(--muted)}
.publish-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:15px 20px;margin:28px 0 20px;box-shadow:0 4px 10px #381b1a08}
.publish-bar p{font-size:.9rem}
.editor-tip{max-width:820px;font-size:.9rem;color:var(--muted);margin-bottom:40px}
.photo-section{margin-bottom:46px}
.photo-section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}
.photo-section h2{font-size:2.1rem}
.photo-section-heading p{font-size:.9rem;color:var(--muted);margin-top:5px}
.add-button{flex-shrink:0;border:1px solid var(--wine);border-radius:3px;padding:10px 16px;background:var(--paper);color:var(--wine);font-size:.9rem}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.photo-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.photo-card>img{width:100%;height:220px;object-fit:contain;background:#eadfd2}
.photo-card-body{padding:16px}
.photo-card h3{font-family:var(--display);font-size:1.5rem;color:var(--wine);margin-bottom:9px}
.photo-card label{display:block;font-size:.8rem;color:var(--muted);margin:12px 0 5px}
.photo-card input{font-size:.9rem;padding:9px}
.photo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:13px}
.photo-actions button{border:1px solid var(--line);border-radius:3px;background:transparent;min-height:38px;padding:5px 11px;font-size:.82rem}
.photo-actions .replace{background:var(--wine);border-color:var(--wine);color:white;margin-right:auto}
.photo-actions button:hover{border-color:var(--wine)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.status{position:sticky;bottom:15px;z-index:8;max-width:720px;margin:20px auto 0;padding:13px 18px;background:var(--wine);color:var(--cream);border-radius:4px;box-shadow:0 4px 16px #0002}
.status:empty{display:none}
.status.error{background:#a52626}
.admin-footer{text-align:center;color:var(--muted);padding:24px;font-size:.8rem;border-top:1px solid var(--line)}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.admin-main{padding:30px 5% 45px}.login-panel{padding:28px 22px;margin-top:0}.login-panel h1{font-size:3.5rem}.admin-header{padding:18px 5%}.admin-header>div{gap:12px;font-size:.8rem}.admin-brand{font-size:1.8rem}.photo-grid{grid-template-columns:1fr}.photo-section-heading{align-items:flex-start;flex-direction:column}.publish-bar{padding:12px;gap:10px;align-items:stretch;flex-direction:column}.publish-bar .button{min-height:44px;padding:10px}.photo-card>img{height:260px}.photo-section h2{font-size:2rem}}
