/* Dark, accessible, responsive theme */
:root{
  --bg:#0b0f14; --panel:#0f151d; --muted:#9fb3c8; --text:#e6eef6; --accent:#3b82f6; --danger:#ef4444; --info:#14b8a6; --warn:#f59e0b; --border:#1f2a37;
  --radius:12px; --shadow:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text);}
img{display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.container{max-width:1100px;margin:24px auto;padding:0 16px}
.app-header{padding:20px 16px 0;display:flex;flex-direction:column;align-items:center}
.logo-wrap{display:flex;align-items:center;gap:10px}
.logo-wrap h1{font-size:1.4rem;margin:0}
.app-subtitle{color:var(--muted);margin-top:8px;text-align:center}

.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 12px;box-shadow:var(--shadow);margin-bottom:18px}
.card.warn{border-color:var(--warn)}

.form-grid{display:grid;grid-template-columns:1fr;gap:14px}
.form-row{display:flex;flex-direction:column;gap:6px}
.form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{font-weight:600}
.hint{color:var(--muted);font-size:.85rem}
input[type=text],input[type=number],select,textarea{background:#0b1220;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.25)}
select[multiple]{height:96px}

.switch-row{flex-direction:row;align-items:center;justify-content:space-between}
.switch{position:relative;display:inline-block;width:44px;height:26px}
.switch input{display:none}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#1a2230;transition:.2s;border-radius:26px;border:1px solid var(--border)}
.slider:before{content:"";position:absolute;height:18px;width:18px;left:4px;top:3px;background:#cbd5e1;border-radius:50%;transition:.2s}
.switch input:checked + .slider{background:var(--accent)}
.switch input:checked + .slider:before{transform:translateX(18px);background:#fff}

.actions{display:flex;gap:10px;justify-content:flex-start}
.btn{background:#162235;border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:600}
.btn:hover{border-color:#2a3a52}
.btn.primary{background:var(--accent);border-color:transparent;color:#fff}
.btn.ghost{background:transparent}
.btn.small{padding:8px 10px;font-size:.9rem}
.btn.tiny{padding:6px 8px;font-size:.8rem}
.badge{background:#132033;color:#b5cdf6;border:1px solid #2b3c55;padding:2px 8px;border-radius:999px;font-size:.75rem}

.alert{border-left:4px solid var(--info);background:#0c151d;padding:10px 12px;border-radius:8px}
.alert.error{border-left-color:var(--danger);}
.alert.info{border-left-color:var(--info)}
.muted{color:var(--muted)}

.results .results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.results .grid{display:grid;grid-template-columns:1fr;gap:12px}
.hook-col .plat-title{font-weight:700;margin-bottom:8px}
.hook{border:1px solid var(--border);border-radius:10px;padding:12px;background:#0c141f}
.hook-text{white-space:pre-wrap}
.hook-meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:var(--muted)}
.empty{color:var(--muted)}

.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.history-item{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:10px;background:#0c141f}
.hist-main{min-width:0}
.hist-topic{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-sub{font-size:.9rem}
.hist-actions{display:flex;gap:6px}

.app-footer{padding:12px 4px;text-align:center;color:var(--muted)}

.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#101a26;color:#dbeafe;border:1px solid #1f2e43;padding:8px 12px;border-radius:999px;box-shadow:var(--shadow);opacity:0;transition:.2s ease;}
.toast.show{opacity:1}

.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

@media (min-width: 860px){
  .results .grid{grid-template-columns:repeat(3,1fr)}
}
