:root {
  --bg: #faf8f5;
  --surface: #ffffff;
  --surface2: #f2efe9;
  --border: #e2ddd4;
  --text: #1a1a1a;
  --text2: #6b6560;
  --accent: #0d7377;
  --accent2: #0a5c5f;
  --green: #2e7d32;
  --red: #c62828;
  --yellow: #b8860b;
  --radius: 10px;
  --shadow: 0 2px 12px rgba(0,0,0,.08);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--bg); color: var(--text); line-height: 1.55;
  min-height: 100vh;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
button {
  font: inherit; cursor: pointer; border: 1px solid var(--border);
  background: var(--surface2); color: var(--text); border-radius: 8px;
  padding: 8px 16px; transition: background .15s;
}
button:hover { background: var(--border); }
button.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
button.primary:hover { background: var(--accent2); }
button.danger { background: var(--red); border-color: var(--red); color: #fff; }
button:disabled { opacity: .5; cursor: not-allowed; }
input, select, textarea {
  font: inherit; background: var(--surface); color: var(--text);
  border: 1px solid var(--border); border-radius: 8px; padding: 9px 12px;
  width: 100%;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); border-color: transparent; }
label { font-size: .85rem; color: var(--text2); display: block; margin-bottom: 4px; }
.field { margin-bottom: 14px; }

/* Header */
header {
  background: var(--surface); border-bottom: 1px solid var(--border);
  padding: 12px 24px; display: flex; align-items: center; gap: 16px;
  position: sticky; top: 0; z-index: 100;
}
header .logo { font-size: 1.2rem; font-weight: 700; color: var(--accent); }
/* Wordmark + orbit */
.wordmark { display: flex; align-items: center; gap: 10px; }
.wordmark .orbit { width: 36px; height: 36px; border: 2px solid var(--accent); border-radius: 50%; position: relative; }
.wordmark .orbit::after { content: ''; position: absolute; width: 8px; height: 8px; background: var(--accent); border-radius: 50%; top: -5px; left: 50%; transform: translateX(-50%); }
.wordmark .brand { font-size: 1.5rem; font-weight: 800; color: var(--text); letter-spacing: -.02em; }
.wordmark .brand span { color: var(--accent); }
/* Search-first hero */
.hero { text-align: center; padding: 60px 20px 30px; }
.hero .wordmark { justify-content: center; margin-bottom: 24px; }
.hero .wordmark .orbit { width: 56px; height: 56px; }
.hero .wordmark .brand { font-size: 2.4rem; }
.hero .tagline { color: var(--text2); font-size: 1rem; margin-bottom: 28px; }
/* Example chips */
.chips { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 20px; }
.chip { font-size: .8rem; padding: 6px 14px; border-radius: 99px; background: var(--surface2); border: 1px solid var(--border); color: var(--text2); cursor: pointer; transition: all .15s; }
.chip:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
/* Language toggle */
.lang-toggle { font-size: .8rem; padding: 4px 10px; border-radius: 6px; background: var(--surface2); border: 1px solid var(--border); color: var(--text2); cursor: pointer; }
.lang-toggle:hover { color: var(--accent); border-color: var(--accent); }
header nav { display: flex; gap: 12px; margin-left: auto; align-items: center; }
header nav a { color: var(--text2); font-size: .9rem; }
header nav a:hover { color: var(--text); }
.badge {
  display: inline-block; font-size: .7rem; padding: 2px 8px;
  border-radius: 99px; background: var(--surface2); color: var(--text2);
}
.badge.admin { background: #2a1a3a; color: #b58aff; }
.badge.editor { background: #1a2a3a; color: #6ab5ff; }
.badge.viewer { background: #1a3a2a; color: var(--green); }

/* Search page */
.search-wrap { max-width: 760px; margin: 0 auto; padding: 40px 20px; }
.search-box {
  display: flex; gap: 10px; margin-bottom: 8px;
}
.search-box input { flex: 1; font-size: 1.05rem; padding: 12px 16px; }
.search-box button { padding: 12px 24px; font-size: 1rem; }
.search-meta { font-size: .8rem; color: var(--text2); margin-bottom: 20px; }

/* Results */
.result {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 16px 20px; margin-bottom: 12px;
  transition: border-color .15s;
}
.result:hover { border-color: var(--accent); }
.result .title { font-size: 1.05rem; font-weight: 600; margin-bottom: 4px; }
.result .url { font-size: .8rem; color: var(--green); margin-bottom: 6px; }
.result .snippet { font-size: .9rem; color: var(--text2); }
.result .score-bar { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.result .score-chip {
  font-size: .7rem; padding: 2px 8px; border-radius: 99px;
  background: var(--surface2); color: var(--text2);
}
.result .score-chip strong { color: var(--text); }

/* AI answer */
.ai-answer {
  background: linear-gradient(135deg, #1a2040, #1a1d27);
  border: 1px solid var(--accent); border-radius: var(--radius);
  padding: 20px; margin-bottom: 24px;
}
.ai-answer .ai-label {
  font-size: .75rem; font-weight: 700; color: var(--accent);
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px;
}
.ai-answer .ai-text { font-size: .95rem; line-height: 1.7; white-space: pre-wrap; }
.ai-answer .ai-sources { margin-top: 12px; font-size: .8rem; color: var(--text2); }
.ai-answer .ai-sources a { margin-right: 12px; }
.ai-loading { display: flex; align-items: center; gap: 10px; color: var(--text2); }
.spinner {
  width: 18px; height: 18px; border: 2px solid var(--border);
  border-top-color: var(--accent); border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* States */
.state {
  text-align: center; padding: 48px 20px; color: var(--text2);
}
.state .icon { font-size: 2.5rem; margin-bottom: 12px; }
.state h3 { color: var(--text); margin-bottom: 8px; }
.state p { font-size: .9rem; }
.error-state { border: 1px solid var(--red); border-radius: var(--radius); padding: 20px; margin-bottom: 16px; }
.error-state .msg { color: var(--red); font-size: .9rem; }

/* Pagination */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 24px; }
.pagination button { min-width: 36px; text-align: center; }
.pagination button.active { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Auth */
.auth-wrap { max-width: 380px; margin: 60px auto; padding: 0 20px; }
.auth-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 28px;
}
.auth-card h2 { margin-bottom: 20px; font-size: 1.2rem; }
.auth-card .field:last-child { margin-bottom: 0; }
.auth-card button { width: 100%; margin-top: 8px; }
.auth-error { color: var(--red); font-size: .85rem; margin-bottom: 12px; }

/* Admin */
.admin-wrap { max-width: 1100px; margin: 0 auto; padding: 24px 20px; }
.admin-tabs { display: flex; gap: 4px; margin-bottom: 20px; flex-wrap: wrap; }
.admin-tabs button { border-radius: 8px 8px 0 0; border-bottom: none; }
.admin-tabs button.active { background: var(--surface); border-bottom: 2px solid var(--accent); }
.admin-panel { display: none; }
.admin-panel.active { display: block; }
.admin-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 20px; margin-bottom: 16px;
}
.admin-card h3 { font-size: 1rem; margin-bottom: 14px; }
table { width: 100%; border-collapse: collapse; font-size: .85rem; }
th { text-align: left; color: var(--text2); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--border); }
td { padding: 8px 10px; border-bottom: 1px solid var(--border); }
tr:last-child td { border-bottom: none; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 20px; }
.stat-card {
  background: var(--surface2); border-radius: 8px; padding: 16px;
  text-align: center;
}
.stat-card .num { font-size: 1.6rem; font-weight: 700; color: var(--accent); }
.stat-card .label { font-size: .75rem; color: var(--text2); margin-top: 4px; }
.status-pill {
  display: inline-block; font-size: .7rem; padding: 2px 8px;
  border-radius: 99px; font-weight: 600;
}
.status-pill.pending { background: #2a2a1a; color: var(--yellow); }
.status-pill.running { background: #1a2a3a; color: #6ab5ff; }
.status-pill.done { background: #1a3a2a; color: var(--green); }
.status-pill.failed { background: #3a1a1a; color: var(--red); }
.status-pill.cancelled { background: var(--surface2); color: var(--text2); }
.form-row { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.form-row .field { flex: 1; min-width: 120px; margin-bottom: 0; }
.form-row .field.narrow { flex: 0 0 auto; min-width: 80px; }
.checkbox-field { display: flex; align-items: center; gap: 8px; }
.checkbox-field input { width: auto; }
.checkbox-field label { margin: 0; }
.weight-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.weight-row label { flex: 0 0 120px; margin: 0; }
.weight-row input { flex: 1; }
.weight-row .val { flex: 0 0 50px; text-align: right; font-size: .85rem; color: var(--text2); }
.toast {
  position: fixed; bottom: 20px; right: 20px; padding: 12px 20px;
  border-radius: 8px; font-size: .9rem; z-index: 200;
  animation: fadeIn .2s;
}
.toast.success { background: #1a3a2a; color: var(--green); border: 1px solid var(--green); }
.toast.error { background: #3a1a1a; color: var(--red); border: 1px solid var(--red); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Model readiness */
.model-status { font-size: .8rem; color: var(--text2); margin-bottom: 16px; }
.model-status .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-left: 6px; }
.model-status .dot.ok { background: var(--green); }
.model-status .dot.bad { background: var(--red); }
.model-status .dot.unknown { background: var(--yellow); }

/* RTL support */
[dir="rtl"] { direction: rtl; }
[dir="rtl"] .result .url { direction: ltr; text-align: right; }
[dir="rtl"] .search-box { flex-direction: row-reverse; }
[dir="rtl"] .weight-row label { text-align: right; }
[dir="rtl"] .form-row { flex-direction: row-reverse; }

/* Mobile 390px */
@media (max-width: 390px) {
  .hero { padding: 36px 14px 20px; }
  .hero .wordmark .orbit { width: 44px; height: 44px; }
  .hero .wordmark .brand { font-size: 1.8rem; }
  .hero .tagline { font-size: .9rem; }
  .search-wrap { padding: 16px 12px; }
  .search-box { flex-direction: column; }
  .search-box button { width: 100%; }
  .chips { gap: 6px; }
  .chip { font-size: .75rem; padding: 5px 10px; }
  .result { padding: 12px 14px; }
  .admin-wrap { padding: 12px; }
  .form-row { flex-direction: column; }
  .form-row .field { min-width: 100%; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-tabs { overflow-x: auto; }
  header { padding: 10px 12px; flex-wrap: wrap; }
  header nav { margin-left: 0; width: 100%; justify-content: flex-end; }
}

/* Mobile 640px */
@media (max-width: 640px) {
  header { padding: 10px 14px; flex-wrap: wrap; }
  header nav { margin-left: 0; width: 100%; justify-content: flex-end; }
  .search-wrap { padding: 20px 14px; }
  .search-box { flex-direction: column; }
  .search-box button { width: 100%; }
  .admin-wrap { padding: 14px; }
  .form-row { flex-direction: column; }
  .form-row .field { min-width: 100%; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-tabs { overflow-x: auto; }
}


/* Shared accessible controls and the final search/admin layouts. */
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
header nav{margin-inline-start:auto;margin-inline-end:0;flex-wrap:wrap;justify-content:flex-end}header .wordmark{text-decoration:none;color:inherit;flex-shrink:0}.hero h1.brand{font-size:clamp(3.2rem,7vw,5.8rem);letter-spacing:-.065em;line-height:1.1}.hero>.wordmark{justify-content:center}.hero{padding:clamp(36px,7vh,90px) 18px 24px}.hero .orbit{width:62px;height:62px}.search-wrap{padding-top:16px}.search-box input{min-width:0;font-size:17px;border-radius:18px}.search-box button{border-radius:16px}.search-tools{display:flex;gap:10px;margin:12px 0}.search-tools input{flex:1;min-width:0}.search-tools button{flex-shrink:0}.index-scope{text-align:center;color:var(--text2);font-size:.9rem;margin:18px 0 6px}.search-wrap>.search-meta:empty{display:none}.has-results .hero{display:none}.has-results .chips,.has-results .index-scope{display:none}.result{background:transparent;border-inline:0;border-radius:0;padding-inline:0}.result h2{font-size:1.3rem;line-height:1.35;margin:5px 0}.result details{font-size:.78rem;color:var(--text2);margin-top:10px}.result summary{cursor:pointer}.result details p{margin:6px 0}.score-chip{display:inline-block;margin:5px 6px 0 0}.plain-answer{white-space:pre-wrap;overflow-wrap:anywhere}.ai-answer a{display:inline-block;margin:3px 5px}.pagination{flex-wrap:wrap;align-items:center}.search-meta{margin:12px 0}.admin-card h2{font-size:1.2rem;margin:0 0 18px}.admin-card form{max-width:680px}.admin-card form+form{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.admin-card input[type=checkbox]{width:auto;min-width:18px;min-height:18px}.admin-card .field:has(input[type=checkbox]){display:flex;gap:12px;align-items:center}.admin-card .field:has(input[type=checkbox]) label{order:1;margin:0}.admin-card p{margin:12px 0}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.table-wrap{max-width:100%;overflow:auto}.table-wrap table{min-width:560px}.table-wrap td{max-width:360px;overflow-wrap:anywhere;vertical-align:top}.table-wrap details form{min-width:220px;margin:12px 0}.table-wrap pre{white-space:pre-wrap;direction:ltr;font-size:.75rem}.panel-refresh{margin:12px 0}.button-link{display:inline-block;border:1px solid var(--border);padding:10px 16px;border-radius:10px;margin:6px 0}.admin-card dt{font-weight:600;margin-top:14px}.admin-card dd{overflow-wrap:anywhere;margin:5px 0 0}.toast{position:fixed;bottom:20px;inset-inline-end:20px;z-index:1000;max-width:calc(100vw - 40px);padding:14px 20px;border-radius:14px;background:var(--text);color:var(--bg);opacity:1;transform:none;box-shadow:var(--shadow)}dialog{border:1px solid var(--border);border-radius:20px;padding:24px;background:var(--surface);color:var(--text);width:min(440px,calc(100vw - 28px));max-height:90dvh;overflow:auto;margin:auto}dialog::backdrop{background:rgba(15,25,28,.35)}dialog .auth-card{padding:0;margin:0;box-shadow:none;border:0}dialog .dialog-close{float:inline-end;margin-bottom:15px}dialog.doc-dialog{width:min(920px,calc(100vw - 28px))}.auth-error{min-height:1.5em}button,a,input,textarea,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}html{scroll-padding-top:90px}body{min-height:100dvh}
@media(max-width:600px){header{padding:12px 14px;gap:10px;align-items:flex-start;flex-wrap:wrap}header nav{gap:8px;font-size:.85rem}header .brand{font-size:1.3rem}header .orbit{width:24px;height:24px}#nav-user{max-width:150px;overflow-wrap:anywhere;font-size:.75rem}.search-tools{flex-direction:column}.hero .orbit{width:38px;height:38px}.search-wrap{padding-inline:16px}.admin-wrap{padding:14px}.admin-card{padding:16px;min-width:0}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-width:0}.stat-card .num{font-size:1.8rem}.admin-tabs{gap:6px}.admin-tabs button{font-size:.85rem;padding:9px 11px}input,textarea,select{font-size:16px}.search-box button{padding-inline:16px}.chips{justify-content:center;gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.hero .wordmark h1.brand{font-size:clamp(3.2rem,7vw,5.8rem)}#q:placeholder-shown{direction:inherit;text-align:start}html[dir=rtl] .search-box{flex-direction:row}html[dir=rtl] #domain:placeholder-shown{text-align:right}

.search-box button{width:auto;flex:0 0 auto}.search-box input{flex:1 1 0;min-width:0;min-height:52px}
@media(max-width:640px){html[dir=rtl] .search-box,.search-box{flex-direction:row}.search-box button{min-height:48px}}
