body{padding-bottom:80px;}

/* ---------- Login screen ---------- */

.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.login-card{
  width:100%;
  max-width:340px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  padding:32px;
}

.login-brand{
  font-family:var(--font-display);
  font-weight:400;
  font-size:22px;
  margin-bottom:6px;
}

.login-hint{
  font-size:13px;
  color:var(--muted);
  margin-bottom:22px;
}

.login-error{
  font-size:13px;
  color:#a13a3a;
  min-height:18px;
  margin-top:10px;
}

/* ---------- Loading state + upload status ---------- */

.editor-loading{
  text-align:center;
  padding:80px 24px;
  color:var(--muted);
  font-size:14px;
}

.upload-status{
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
  min-height:16px;
}

/* ---------- Top bar ---------- */

.editor-topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:18px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.editor-topbar .brand{
  font-family:var(--font-display);
  font-weight:400;
  font-size:20px;
  text-decoration:none;
  color:var(--ink);
  transition:opacity .15s ease;
}

.editor-topbar .brand:hover{opacity:0.7;}

.editor-topbar .brand span{color:var(--accent);}

.editor-topbar .brand small{
  display:block;
  font-family:var(--font-body);
  font-weight:400;
  font-size:12.5px;
  color:var(--muted);
  margin-top:2px;
}

.topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.save-status{
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--muted);
}

/* ---------- Instructions ---------- */

.instructions{
  max-width:900px;
  margin:32px auto 0;
  padding:0 32px;
}

.instructions ol{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  list-style:none;
  counter-reset:step;
}

@media (max-width:760px){
  .instructions ol{grid-template-columns:1fr;}
}

.instructions li{
  counter-increment:step;
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px 18px;
  background:var(--panel);
  font-size:13.5px;
  color:var(--muted);
  position:relative;
  padding-left:44px;
}

.instructions li::before{
  content:counter(step);
  position:absolute;
  left:14px;
  top:16px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--accent-tint);
  color:var(--accent-dark);
  font-family:var(--font-mono);
  font-size:11px;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ---------- Section nav ---------- */

.editor-nav{
  max-width:900px;
  margin:20px auto 0;
  padding:0 32px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.editor-nav a{
  font-size:13px;
  padding:7px 13px;
  border-radius:6px;
  border:1px solid var(--line);
  color:var(--muted);
  background:var(--panel);
}

.editor-nav a:hover{border-color:var(--accent);color:var(--accent-dark);background:var(--accent-tint);}

/* ---------- Form sections ---------- */

.editor-form{
  max-width:900px;
  margin:0 auto;
  padding:0 32px;
}

.form-section{
  padding:44px 0;
  border-bottom:1px solid var(--line);
  scroll-margin-top:90px;
}

.form-section h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:24px;
  margin-bottom:6px;
}

.form-section .section-hint{
  font-size:13.5px;
  color:var(--muted);
  margin-bottom:24px;
}

.field{
  margin-bottom:16px;
}

.field label{
  display:block;
  font-size:12.5px;
  color:var(--muted);
  margin-bottom:6px;
}

.field input[type="text"],
.field input[type="email"],
.field textarea{
  width:100%;
  font-family:var(--font-body);
  font-size:14px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
  color:var(--ink);
}

.field textarea{min-height:80px;resize:vertical;}

.field input:focus,
.field textarea:focus{border-color:var(--accent);outline:2px solid var(--accent-tint);}

.field-checkbox label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:var(--ink);
}

.field-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

@media (max-width:600px){
  .field-row{grid-template-columns:1fr;}
}

/* ---------- Repeatable item cards ---------- */

.item-card{
  border:1px solid var(--line);
  border-radius:8px;
  padding:20px;
  background:var(--panel);
  margin-bottom:16px;
}

.item-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
}

.item-card-head span{
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--accent-dark);
  background:var(--accent-tint);
  padding:4px 10px;
  border-radius:4px;
}

.remove-btn{
  font-family:var(--font-body);
  font-size:12.5px;
  color:#a13a3a;
  background:none;
  border:1px solid var(--line);
  border-radius:5px;
  padding:6px 11px;
  cursor:pointer;
}

.remove-btn:hover{border-color:#a13a3a;background:#fbeaea;}

.add-btn{
  font-family:var(--font-body);
  font-weight:500;
  font-size:13.5px;
  color:var(--accent-dark);
  background:var(--accent-tint);
  border:1px dashed var(--accent);
  border-radius:6px;
  padding:11px 18px;
  cursor:pointer;
  width:100%;
}

.add-btn:hover{background:#d3ece2;}

.empty-hint{
  font-size:13.5px;
  color:var(--muted);
  font-style:italic;
  margin-bottom:12px;
}

/* ---------- Photo field ---------- */

.photo-field{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}

.photo-preview{
  width:72px;
  height:72px;
  border-radius:8px;
  border:1px solid var(--line);
  overflow:hidden;
  flex-shrink:0;
  background:var(--accent-tint);
}

.photo-preview img{width:100%;height:100%;object-fit:cover;}

.photo-field-inputs{flex:1;min-width:220px;}

.file-btn{
  display:inline-block;
  font-size:13px;
  padding:9px 14px;
  border:1px solid var(--line);
  border-radius:6px;
  cursor:pointer;
  color:var(--ink);
  margin-top:8px;
}

.file-btn:hover{border-color:var(--accent);color:var(--accent-dark);}

.file-btn input{display:none;}

/* ---------- Draft banner ---------- */

.draft-banner{
  max-width:900px;
  margin:20px auto 0;
  padding:12px 18px;
  border-radius:8px;
  background:var(--gold-tint);
  border:1px solid var(--gold);
  color:#7a5a1e;
  font-size:13.5px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}

.draft-banner button{
  font-size:12.5px;
  padding:7px 12px;
  border-radius:5px;
  border:1px solid #7a5a1e;
  background:none;
  color:#7a5a1e;
  cursor:pointer;
}
