:root {
  --red:#d9361e;
  --red-dark:#b92c18;
  --ink:#141a20;
  --ink-soft:#202a33;
  --slate:#5f6b77;
  --line:#dfe4e8;
  --paper:#ffffff;
  --off:#f3f5f7;
  --success:#16845b;
  --warning:#8a5a00;
  --max:760px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);
  background:var(--off);
  font-synthesis:none;
}
*{box-sizing:border-box}
html{background:var(--off);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--off);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{touch-action:manipulation}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(217,54,30,.28);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hidden{display:none!important}

.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:11px;min-height:68px;padding:10px max(16px,env(safe-area-inset-left));border-bottom:1px solid rgba(255,255,255,.1);background:var(--ink);color:white;box-shadow:0 4px 16px rgba(20,26,32,.2)}
.brand-mark{display:block;width:42px;height:42px;border:1px solid rgba(255,255,255,.14);border-radius:9px;object-fit:cover}
.brand-copy{display:flex;flex:1;flex-direction:column;line-height:1.12}
.brand-copy strong{text-transform:uppercase;font-size:14px;letter-spacing:.05em}
.brand-copy span{color:rgba(255,255,255,.7);font-size:12px}
.version{padding:5px 8px;border:1px solid rgba(255,255,255,.2);border-radius:999px;color:rgba(255,255,255,.8);font-size:11px;font-weight:700}
main{width:min(100%,var(--max));margin:0 auto;padding:0 16px 104px}
.view{display:none;animation:fade-in .16s ease}
.view.active{display:block}
@keyframes fade-in{from{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:none}}
.intro,.section-top{padding:28px 2px 18px}
.eyebrow{margin:0 0 5px;color:var(--red);font-size:11px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
h1{margin:0 0 8px;font-size:clamp(28px,7vw,40px);line-height:1.08;letter-spacing:-.035em}
.intro p:last-child,.section-top p:last-child{max-width:600px;margin:0;color:var(--slate);font-size:15px;line-height:1.48}

.search-form{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 10px 30px rgba(20,26,32,.07)}
.search-row{display:flex;gap:8px}
#search-input{width:100%;min-height:54px;padding:0 15px;border:2px solid #cbd2d8;border-radius:10px;background:white;color:var(--ink);font-size:17px}
#search-input:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(217,54,30,.12)}
.icon-button{flex:0 0 54px;width:54px;height:54px;border:0;border-radius:10px;background:var(--ink);color:white;cursor:pointer}
.icon-button span{display:inline-block;width:15px;height:15px;border:3px solid white;border-radius:50%;color:transparent;position:relative}
.icon-button span:after{content:"";position:absolute;left:4px;top:12px;width:3px;height:8px;background:white;border-radius:2px}
.icon-button.listening{background:var(--red);animation:pulse 1s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(217,54,30,.15)}}
.search-button{width:100%;min-height:50px;margin-top:10px;border:0;border-radius:9px;background:var(--red);color:white;font-weight:800;cursor:pointer}
.search-button:hover{background:var(--red-dark)}
.quick-search{display:flex;gap:8px;margin:14px 0 18px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
.quick-search::-webkit-scrollbar,.filter-strip::-webkit-scrollbar{display:none}
.quick-search button{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:white;color:var(--ink-soft);font-size:12px;font-weight:700;cursor:pointer}
.filter-strip{display:flex;gap:8px;margin:0 -16px 16px;padding:0 16px;overflow-x:auto;scrollbar-width:none}
.filter-chip{flex:0 0 auto;min-height:40px;padding:0 15px;border:1px solid #cbd2d8;border-radius:999px;background:white;color:var(--ink-soft);font-size:13px;font-weight:750;cursor:pointer}
.filter-chip.active{border-color:var(--ink);background:var(--ink);color:white}
.document-label{display:block;margin:0 0 6px;color:var(--slate);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
#document-filter{width:100%;min-height:46px;padding:0 12px;border:1px solid #cbd2d8;border-radius:9px;background:white;color:var(--ink)}
.search-options{display:grid;gap:8px;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:white}
.search-options label{display:flex;align-items:center;gap:9px;color:#394550;font-size:13px;font-weight:700}
.search-options input{width:18px;height:18px;margin:0;accent-color:var(--red)}
.search-command-status{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;color:var(--slate);font-size:11px}
.search-command-status span{padding:5px 8px;border:1px solid #cfd9e0;border-radius:999px;background:#eef4f7;font-weight:750}
.connection-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 24px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#eaf6f1;color:var(--success);font-size:12px}
.connection-card>div{display:flex;align-items:center;gap:7px}
.connection-card strong{font-size:12px}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(22,132,91,.12)}
.connection-card.loading{background:#fff7e5;color:var(--warning)}
.connection-card.loading .status-dot{background:#e7a814;box-shadow:0 0 0 4px rgba(231,168,20,.12)}

.results-section{margin-top:4px}
.results-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}
.results-heading h2{margin:0;font-size:19px}
#results-count{color:var(--slate);font-size:12px;font-weight:700}
.results-list{display:grid;gap:12px}
.result-card{padding:16px;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:11px;background:white;box-shadow:0 5px 18px rgba(20,26,32,.045)}
.result-top{display:flex;align-items:flex-start;gap:10px}
.result-title{flex:1}
.result-title h3{margin:0 0 3px;font-size:16px;line-height:1.3}
.result-title p{margin:0;color:var(--slate);font-size:12px}
.favourite-button{flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:9px;background:white;color:#9aa3ab;font-size:23px;cursor:pointer}
.favourite-button.saved{border-color:#efc3ba;background:#fff4f1;color:var(--red)}
.tag-row{display:flex;gap:6px;flex-wrap:wrap;margin:11px 0}
.result-tag{padding:4px 7px;border-radius:5px;background:var(--off);color:var(--slate);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.authority-tag{background:#e5f4ed;color:#126745}
.duplicate-tag{background:#fff3d8;color:#7b5200}
.smart-match{margin:2px 0 12px;padding:11px 12px;border-left:3px solid var(--success);border-radius:7px;background:#edf8f3;color:#29463b}
.smart-match strong,.smart-match span{display:block}
.smart-match strong{font-size:13px}
.smart-match span{margin-top:2px;color:#266c53;font-size:11px;font-weight:750}
.smart-match p{margin:5px 0 0;color:#466158;font-size:12px;line-height:1.45}
.result-snippet{margin:0 0 12px;color:#394550;font-size:13px;line-height:1.52}
.result-snippet mark{background:#ffe1d9;color:inherit;padding:0 1px}
.page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}
.page-box{padding:9px;border-radius:7px;background:var(--off)}
.page-box span{display:block;color:var(--slate);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.page-box strong{display:block;margin-top:2px;font-size:12px}
.disabled-link{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:#f7f8f9;color:#89939c;font-weight:750}
.empty-state{padding:34px 20px;border:1px dashed #cbd2d8;border-radius:12px;background:rgba(255,255,255,.6);text-align:center}
.empty-icon{margin-bottom:8px;color:var(--red);font-size:36px;font-weight:900}
.empty-state strong{display:block;margin-bottom:6px}
.empty-state p{max-width:460px;margin:0 auto;color:var(--slate);font-size:13px;line-height:1.5}
.secondary-button{width:100%;min-height:46px;margin-top:14px;border:1px solid var(--ink);border-radius:8px;background:white;color:var(--ink);font-weight:800;cursor:pointer}
.danger-outline{border-color:#e2a79b;color:var(--red-dark)}

.history-list{display:grid;gap:8px}
.history-item{display:flex;align-items:center;gap:10px;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:white;text-align:left;cursor:pointer}
.history-item span{color:var(--red);font-weight:900}
.history-item strong{font-size:14px}
.setup-card{margin-bottom:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:white}
.setup-card h2{margin:0 0 7px;font-size:17px}
.setup-card p{margin:0;color:var(--slate);font-size:14px;line-height:1.52}
.setup-card ul{margin:10px 0 0;padding-left:21px;color:#394550;font-size:13px;line-height:1.6}
.primary-setup{border-top:4px solid var(--red)}
.warning-card{border-color:#ebd39c;background:#fff8e8}
.warning-card h2,.warning-card p{color:#6f4a00}

.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);min-height:72px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -7px 24px rgba(20,26,32,.1);backdrop-filter:blur(12px)}
.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:#77828c;cursor:pointer}
.nav-button span{font-size:21px;line-height:1}
.nav-button strong{font-size:10px}
.nav-button.active{color:var(--red)}
.toast{position:fixed;left:50%;bottom:88px;z-index:40;max-width:calc(100% - 32px);padding:11px 15px;border-radius:8px;background:var(--ink);color:white;font-size:13px;font-weight:700;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(min-width:700px){
  body{padding-top:18px;padding-bottom:18px}
  .app-header{top:18px;width:min(calc(100% - 36px),var(--max));margin:0 auto;border-radius:14px 14px 0 0}
  main{min-height:calc(100vh - 36px);padding-inline:24px;border:1px solid var(--line);border-top:0;background:var(--off)}
  .bottom-nav{left:50%;right:auto;bottom:18px;width:min(calc(100% - 36px),var(--max));transform:translateX(-50%);border:1px solid var(--line);border-radius:0 0 14px 14px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
