/* ============================================================
   AUGENBLICK FOTOMAGAZIN – STYLESHEET
   Brand-Design: hell, editorial, Weinrot #710505
   Fonts: Oswald + Playfair Display
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500&family=Playfair+Display:ital,wght@0,700;1,600&display=swap');

:root {
    --c-bg:#faf9f8;--c-bg-card:#ffffff;--c-bg-input:#f4f2f0;--c-bg-section:#f0eeec;
    --c-border:#e2deda;--c-border-focus:#999490;
    --c-text:#1a1a1a;--c-text-muted:#78756f;--c-text-dim:#b5b0ab;
    --c-accent:#710505;--c-accent-dark:#5a0404;--c-accent-light:rgba(113,5,5,0.06);
    --c-error:#8b1a1a;--c-error-bg:rgba(139,26,26,0.06);--c-error-border:rgba(139,26,26,0.2);
    --c-success:#2a5c3e;--c-success-bg:rgba(42,92,62,0.07);--c-success-bord:rgba(42,92,62,0.22);
    --c-black:#000000;--c-white:#ffffff;
    --font-head:'Playfair Display','Times New Roman',Georgia,serif;
    --font-body:'Oswald','Helvetica Neue',Helvetica,Arial,sans-serif;
    --radius:2px;--trans:0.18s ease;--max-w:820px;--shadow:0 1px 4px rgba(0,0,0,0.07);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-font-smoothing:antialiased;}
body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-weight:300;line-height:1.65;min-height:100vh;display:flex;flex-direction:column;}
a{color:var(--c-accent);text-decoration:none;}
a:hover{text-decoration:underline;}

.site-header{background:var(--c-white);border-bottom:1px solid var(--c-border);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:100;}
.site-logo{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;}
.site-logo:hover{text-decoration:none;}
.site-logo-img{height:38px;width:auto;display:block;}
.site-logo-sub{font-family:var(--font-body);font-size:.57rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);font-weight:500;}

main{flex:1;padding:3.5rem 2rem 4rem;max-width:var(--max-w);margin:0 auto;width:100%;}

.page-eyebrow{font-family:var(--font-body);font-size:.6rem;letter-spacing:.35em;text-transform:uppercase;color:var(--c-accent);margin-bottom:.5rem;font-weight:500;}
.page-headline{font-family:var(--font-head);font-size:3rem;font-weight:700;letter-spacing:-.02em;color:var(--c-black);line-height:1.05;margin-bottom:1rem;text-transform:uppercase;}
.page-intro{font-family:var(--font-body);font-weight:300;color:var(--c-text-muted);font-size:.95rem;max-width:560px;line-height:1.8;margin-bottom:3rem;padding-left:1rem;border-left:2px solid var(--c-border);}
.section-label{font-family:var(--font-body);font-size:.6rem;letter-spacing:.35em;text-transform:uppercase;color:var(--c-accent);margin-bottom:1.25rem;padding-bottom:.55rem;border-bottom:1px solid var(--c-border);font-weight:500;}

.upload-form{display:flex;flex-direction:column;gap:3rem;}
.form-section{display:flex;flex-direction:column;gap:1rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-group{display:flex;flex-direction:column;gap:.4rem;}

label{font-family:var(--font-body);font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-text-muted);font-weight:500;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
label .req{color:var(--c-accent);}

.field-mag-hint{font-family:var(--font-body);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;font-weight:500;color:var(--c-white);background:var(--c-accent);padding:.1rem .45rem;border-radius:2px;white-space:nowrap;line-height:1.6;}
.field-hint{font-family:var(--font-body);font-size:.7rem;color:var(--c-text-dim);font-weight:300;line-height:1.5;}

input[type="text"],input[type="email"],input[type="password"],input[type="number"],textarea,select{background:var(--c-bg-input);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text);font-family:var(--font-body);font-weight:300;font-size:.95rem;padding:.7rem .95rem;transition:border-color var(--trans),background var(--trans),box-shadow var(--trans);width:100%;outline:none;-moz-appearance:textfield;}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;}
input:focus,textarea:focus,select:focus{border-color:var(--c-accent);background:var(--c-white);box-shadow:0 0 0 3px rgba(113,5,5,.08);}
input::placeholder,textarea::placeholder{color:var(--c-text-dim);font-weight:300;}
textarea{resize:vertical;min-height:120px;line-height:1.65;}

.file-reqs{display:flex;flex-wrap:wrap;gap:.75rem 2rem;background:var(--c-accent-light);border:1px solid rgba(113,5,5,.12);border-left:3px solid var(--c-accent);border-radius:var(--radius);padding:.85rem 1.1rem;margin-bottom:.5rem;}
.file-req{display:flex;flex-direction:column;gap:.15rem;}
.file-req-key{font-family:var(--font-body);font-size:.54rem;letter-spacing:.25em;text-transform:uppercase;color:var(--c-text-dim);font-weight:500;}
.file-req-val{font-family:var(--font-body);font-size:.82rem;color:var(--c-text);font-weight:500;}

.images-list{display:flex;flex-direction:column;gap:.5rem;}
.image-slot{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;align-items:start;background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);padding:1rem 1.1rem;transition:border-color var(--trans);box-shadow:var(--shadow);}
.image-slot:focus-within{border-color:var(--c-accent);}
.image-slot-num{font-family:var(--font-head);font-size:1.8rem;font-weight:700;color:var(--c-border);text-align:center;line-height:1;padding-top:.15rem;transition:color var(--trans);}
.image-slot-num.has-file{color:var(--c-accent);}
.image-slot-body{display:flex;flex-direction:column;}
.image-slot-top{display:flex;align-items:flex-start;gap:.75rem;}
.image-slot-file-area{flex:1;display:flex;flex-direction:column;gap:.35rem;}
.image-slot-label{font-family:var(--font-body);font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-text-muted);font-weight:500;}
.image-slot-label em{color:var(--c-text-dim);font-style:normal;}

input[type="file"]{color:var(--c-text);font-size:.82rem;cursor:pointer;background:none;border:none;padding:0;width:auto;font-family:var(--font-body);}
input[type="file"]::file-selector-button{background:var(--c-bg-section);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text-muted);cursor:pointer;font-family:var(--font-body);font-size:.6rem;letter-spacing:.15em;margin-right:.75rem;padding:.35rem .8rem;text-transform:uppercase;transition:all var(--trans);font-weight:500;}
input[type="file"]::file-selector-button:hover{border-color:var(--c-accent);color:var(--c-accent);background:var(--c-accent-light);}

.image-slot-info{font-size:.72rem;color:var(--c-text-dim);font-family:var(--font-body);display:none;}
.image-slot-info.show{display:block;}
.image-slot-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--c-border);display:none;}
.image-slot-thumb.show{display:block;}
.slot-tiff-icon{width:56px;height:56px;border:1px solid var(--c-border);border-radius:var(--radius);display:none;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-dim);background:var(--c-bg-input);font-family:var(--font-body);}
.slot-tiff-icon.show{display:flex;}
.slot-tiff-icon span{font-size:1.2rem;}

.image-slot-fields{overflow:hidden;max-height:0;opacity:0;margin-top:0;transition:max-height .35s ease,opacity .3s ease,margin-top .3s ease;display:flex;flex-direction:column;gap:.6rem;}
.image-slot-fields.active{max-height:200px;opacity:1;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--c-border);}
.image-slot-fields .form-group{gap:.35rem;}
.image-slot-fields input[type="text"]{font-size:.88rem;padding:.55rem .8rem;}

.consent-card{background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);}
.consent-heading{font-family:var(--font-body);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);margin-bottom:.75rem;font-weight:500;}
.consent-read-btn{background:none;border:none;color:var(--c-text-muted);cursor:pointer;font-family:var(--font-body);font-size:.78rem;padding:0;text-decoration:underline;margin-bottom:1rem;display:block;font-weight:300;}
.consent-read-btn:hover{color:var(--c-accent);}
.consent-fulltext{font-family:var(--font-body);font-weight:300;font-size:.8rem;color:var(--c-text-muted);line-height:1.75;max-height:0;overflow:hidden;transition:max-height .4s ease;border-top:none;}
.consent-fulltext.open{max-height:600px;padding-top:1rem;border-top:1px solid var(--c-border);margin-bottom:1rem;}
.consent-fulltext p{margin-bottom:.65rem;}
.consent-fulltext ul{margin:.5rem 0 .75rem 1.5rem;}
.consent-fulltext li{margin-bottom:.3rem;}
.consent-fulltext strong{color:var(--c-text);font-weight:500;}
.consent-fulltext .legal-foot{color:var(--c-text-dim);font-size:.7rem;margin-top:.5rem;border-top:1px solid var(--c-border);padding-top:.5rem;}
.consent-check{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;padding-top:.75rem;}
.consent-check input[type="checkbox"]{width:17px;height:17px;min-width:17px;accent-color:var(--c-accent);cursor:pointer;margin-top:3px;background:none;border:none;padding:0;}
.consent-check-text{font-family:var(--font-body);font-size:.88rem;color:var(--c-text);line-height:1.55;font-weight:300;}

.alert{border-radius:var(--radius);font-size:.875rem;margin-bottom:2rem;padding:1.1rem 1.25rem;font-family:var(--font-body);font-weight:300;}
.alert-error{background:var(--c-error-bg);border:1px solid var(--c-error-border);border-left:3px solid var(--c-error);color:var(--c-error);}
.alert-error strong{display:block;margin-bottom:.5rem;font-weight:500;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}
.alert-error ul{margin-left:1.25rem;margin-top:.25rem;}
.alert-error li{margin-bottom:.2rem;}
.alert-success{background:var(--c-success-bg);border:1px solid var(--c-success-bord);border-left:3px solid var(--c-success);color:var(--c-success);text-align:center;padding:2.5rem 2rem;}
.alert-success .success-mark{font-size:2.5rem;display:block;margin-bottom:.75rem;}
.alert-success .success-title{font-family:var(--font-head);font-size:1.4rem;font-weight:700;display:block;margin-bottom:.5rem;text-transform:uppercase;}
.alert-info{background:var(--c-accent-light);border:1px solid rgba(113,5,5,.15);border-left:3px solid var(--c-accent);color:var(--c-accent);padding:.75rem 1rem;font-size:.82rem;}

.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:.7rem;font-weight:500;gap:.4rem;justify-content:center;letter-spacing:.22em;padding:.8rem 1.5rem;text-decoration:none;text-transform:uppercase;transition:all var(--trans);white-space:nowrap;}
.btn-primary{background:var(--c-accent);color:var(--c-white);}
.btn-primary:hover{background:var(--c-accent-dark);color:var(--c-white);text-decoration:none;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{background:transparent;border:1px solid var(--c-border);color:var(--c-text-muted);}
.btn-ghost:hover{border-color:var(--c-accent);color:var(--c-accent);text-decoration:none;}
.btn-danger{background:transparent;border:1px solid rgba(139,26,26,.3);color:var(--c-error);}
.btn-danger:hover{background:var(--c-error-bg);text-decoration:none;}
.btn-full{width:100%;}
.btn-sm{font-size:.6rem;padding:.45rem .85rem;}

footer{border-top:1px solid var(--c-border);background:var(--c-bg-section);padding:1.5rem 2rem;text-align:center;font-family:var(--font-body);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-text-dim);font-weight:400;}
footer a{color:var(--c-accent);}

/* ADMIN */
.admin-header{background:var(--c-white);border-bottom:1px solid var(--c-border);padding:.9rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:100;}
.admin-branding{display:flex;align-items:center;gap:.75rem;}
.admin-back{font-family:var(--font-body);font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-text-muted);text-decoration:none;font-weight:400;transition:color var(--trans);}
.admin-back:hover{color:var(--c-accent);text-decoration:none;}
.admin-badge{background:var(--c-accent);color:var(--c-white);font-family:var(--font-body);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:.2rem .55rem;border-radius:2px;}
.admin-nav{background:var(--c-white);border-bottom:1px solid var(--c-border);padding:0 2rem;display:flex;}
.admin-nav-link{border-bottom:2px solid transparent;color:var(--c-text-muted);display:inline-block;font-family:var(--font-body);font-size:.63rem;letter-spacing:.22em;padding:.9rem 1.25rem;text-decoration:none;text-transform:uppercase;transition:all var(--trans);font-weight:400;}
.admin-nav-link:hover{color:var(--c-accent);text-decoration:none;}
.admin-nav-link.active{border-bottom-color:var(--c-accent);color:var(--c-accent);}
.admin-nav-count{background:var(--c-bg-section);border-radius:20px;font-size:.65em;padding:.1em .5em;margin-left:.35em;color:var(--c-text-dim);}
.admin-content{padding:2rem 2rem 4rem;max-width:1300px;margin:0 auto;}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.admin-count{font-family:var(--font-body);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--c-text-dim);font-weight:400;}
.submissions-list{display:flex;flex-direction:column;gap:1px;background:var(--c-border);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.sub-card{background:var(--c-white);display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;padding:1.25rem 1.5rem;align-items:start;transition:background var(--trans);}
.sub-card:hover{background:var(--c-bg);}
.sub-thumbs{display:flex;flex-wrap:wrap;gap:4px;width:148px;min-width:148px;}
.sub-thumb{width:68px;height:68px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--c-border);cursor:zoom-in;transition:opacity var(--trans),border-color var(--trans);display:block;}
.sub-thumb:hover{opacity:.8;border-color:var(--c-accent);}
.sub-thumb-tiff{width:68px;height:68px;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-bg-input);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-dim);font-family:var(--font-body);}
.sub-thumb-tiff span{font-size:1.2rem;}
.sub-name{font-family:var(--font-head);font-size:1.05rem;font-weight:700;color:var(--c-black);margin-bottom:.15rem;text-transform:uppercase;}
.sub-title{font-family:var(--font-head);font-size:.88rem;color:var(--c-accent);font-style:italic;margin-bottom:.25rem;}
.sub-meta{display:flex;flex-wrap:wrap;gap:.3rem 1.25rem;font-family:var(--font-body);font-size:.72rem;color:var(--c-text-muted);margin-bottom:.5rem;font-weight:300;}
.sub-meta-item{display:flex;align-items:center;gap:.3rem;}
.sub-actions{display:flex;flex-direction:column;gap:.5rem;align-items:stretch;min-width:120px;}
.sub-date{font-family:var(--font-body);font-size:.6rem;letter-spacing:.1em;color:var(--c-text-dim);text-align:center;margin-bottom:.25rem;font-weight:300;}
.empty-state{text-align:center;padding:5rem 2rem;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);}
.empty-icon{font-size:3rem;display:block;margin-bottom:1rem;opacity:.25;}
.empty-label{font-family:var(--font-body);font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-text-dim);font-weight:400;}
.config-form{max-width:720px;}
.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}
.config-card{background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);}
.config-card.full{grid-column:1 / -1;}
.config-card-title{font-family:var(--font-body);font-size:.57rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);margin-bottom:1.25rem;padding-bottom:.5rem;border-bottom:1px solid var(--c-border);font-weight:500;}
.config-field{margin-bottom:1rem;display:flex;flex-direction:column;gap:.4rem;}
.config-field:last-child{margin-bottom:0;}
.config-hint{font-family:var(--font-body);font-size:.68rem;color:var(--c-text-dim);line-height:1.5;font-weight:300;}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--c-bg-section);padding:2rem;}
.login-card{background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);padding:2.5rem 2.25rem;width:100%;max-width:380px;box-shadow:0 4px 24px rgba(0,0,0,.08);}
.login-eyebrow{font-family:var(--font-body);font-size:.57rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);margin-bottom:.4rem;font-weight:500;}
.login-headline{font-family:var(--font-head);font-size:1.8rem;font-weight:700;color:var(--c-black);margin-bottom:1.75rem;text-transform:uppercase;letter-spacing:-.01em;}
.modal-bg{position:fixed;inset:0;background:rgba(250,249,248,.96);z-index:9000;display:none;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal-img-wrap{position:relative;max-width:92vw;max-height:92vh;}
.modal-img-wrap img{max-width:92vw;max-height:88vh;object-fit:contain;display:block;border:1px solid var(--c-border);box-shadow:0 8px 40px rgba(0,0,0,.15);}
.modal-close-btn{position:absolute;top:-2.5rem;right:0;background:none;border:none;color:var(--c-text-muted);cursor:pointer;font-family:var(--font-body);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;transition:color var(--trans);font-weight:400;}
.modal-close-btn:hover{color:var(--c-accent);}
.flash{margin:1rem 2rem 0;font-size:.82rem;font-family:var(--font-body);}

@media(max-width:700px){
    .form-row{grid-template-columns:1fr;}
    .page-headline{font-size:2rem;}
    main{padding:2rem 1rem 3rem;}
    .site-header{padding:.9rem 1rem;}
    .admin-content{padding:1.5rem 1rem 3rem;}
    .admin-header,.admin-nav{padding-left:1rem;padding-right:1rem;}
    .sub-card{grid-template-columns:1fr;}
    .sub-thumbs{width:auto;}
    .config-grid{grid-template-columns:1fr;}
    .config-card.full{grid-column:1;}
    .image-slot{grid-template-columns:2rem 1fr;gap:.75rem;}
}
