* { box-sizing: border-box; }

a { color:inherit; text-decoration:none; }
.logo a { font-weight:700; color:#38bdf8; }
nav a { margin-left:16px; color:#e2e8f0; font-weight:500; }







.contact .btn { margin-right:8px; }
.map-wrapper { margin-top:14px; }
.map { width:100%; height:320px; border-radius:12px; overflow:hidden; }

.upload-group { grid-column:1/-1; }



.flash-container { margin:10px 0; }
.flash { padding:10px; border-radius:8px; margin-bottom:8px; }
.flash.success { background:#ecfdf3; color:#166534; }
.flash.info { background:#e0f2fe; color:#075985; }
.flash.warning { background:#fff7ed; color:#9a3412; }
.flash.danger { background:#fef2f2; color:#991b1b; }
.badge { background:#e5e7eb; padding:2px 6px; border-radius:6px; font-size:12px; text-transform:uppercase; }

.auth-form label { display:block; margin-bottom:10px; font-weight:600; }
.auth-form input { width:100%; padding:10px; margin-top:4px; border:1px solid #d1d5db; border-radius:8px; }

.input-error { border-color:#dc2626 !important; }



.is-disabled { opacity:0.6; }
.is-hidden { display:none; }

.missing-category { margin-top:10px; display:none; }
.missing-category.show { display:block; }
.missing-category textarea { width:100%; padding:10px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; min-height:70px; }
.rate-limit { display:none; padding:10px 12px; background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; border-radius:8px; margin-bottom:10px; font-size:13px; }
.autosave-status { color:#6b7280; font-size:12px; align-self:center; }
.draft-restore { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; margin-bottom:12px; font-size:13px; }
.draft-restore[hidden] { display: none; }

.guide { background:#fff; padding:18px; border-radius:16px; box-shadow:0 6px 18px rgba(15, 23, 42, 0.06); }
.guide-search { position:sticky; top:0; background:#fff; padding-bottom:12px; margin-bottom:16px; z-index:5; }
.guide-search h1 { margin-bottom:10px; }
.guide-search-field { display:flex; align-items:center; gap:10px; border:1px solid #e2e8f0; border-radius:14px; padding:10px 12px; box-shadow:0 4px 10px rgba(15, 23, 42, 0.06); }
.guide-search-field img { width:18px; height:18px; opacity:0.7; }
.guide-search-field input { border:none; outline:none; width:100%; font-size:15px; background:transparent; }
.guide-layout { display:grid; gap:16px; }
.guide-cats { display:flex; gap:8px; flex-wrap:wrap; }
.guide-cat-btn { border:1px solid #e2e8f0; border-radius:999px; padding:8px 12px; font-size:14px; background:#f8fafc; cursor:pointer; transition:all 0.2s ease; }
.guide-cat-btn.is-active { background:#0f172a; color:#fff; border-color:#0f172a; }
.guide-content h2 { margin-bottom:12px; font-size:18px; }
.guide-accordion { border:1px solid #e2e8f0; border-radius:14px; padding:12px 14px; margin-bottom:10px; background:#fff; }
.guide-question { background:transparent; border:none; width:100%; text-align:left; font-weight:600; font-size:15px; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.guide-question-text { flex:1; }
.guide-toggle { width:28px; height:28px; border-radius:999px; border:1px solid #e2e8f0; display:inline-flex; align-items:center; justify-content:center; font-size:18px; line-height:1; color:#0f172a; background:#f8fafc; transition:transform 0.2s ease, background 0.2s ease; }
.guide-accordion.is-open .guide-toggle { transform:rotate(90deg); background:#0f172a; color:#fff; border-color:#0f172a; }
.guide-answer { margin-top:10px; max-height:0; overflow:hidden; color:#475569; line-height:1.6; transition:max-height 0.25s ease; }
.guide-answer p { margin-bottom:10px; }
.guide-answer ul { padding-left:18px; margin-bottom:10px; }
.guide-empty { margin-top:12px; color:#64748b; }
.guide-cats.is-hidden { display:none; }

@media (min-width: 860px) {
    .guide-layout { grid-template-columns:240px 1fr; align-items:start; }
    .guide-cats { flex-direction:column; position:sticky; top:92px; }
    .guide-cat-btn { text-align:left; border-radius:12px; }
}

.not-found { min-height:70vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.not-found-card { max-width:520px; width:100%; background:#fff; border-radius:18px; padding:24px; text-align:center; box-shadow:0 10px 30px rgba(15, 23, 42, 0.08); }
.not-found-code { font-size:56px; font-weight:700; color:#0f172a; margin-bottom:6px; }
.not-found-text { color:#64748b; margin:10px 0 18px; line-height:1.6; }
.not-found-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
