html,body{margin:0;background:#14161a;color:#ddd;font:14px/1.45 system-ui,sans-serif}
body{max-width:960px;margin:0 auto;padding:20px}
header h1{font-size:22px;margin:0 0 4px}
header p{color:#999;margin:0 0 16px}
#form{background:#1c1f26;border:1px solid #333;border-radius:8px;padding:14px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:10px}
label{display:block;color:#aaa;font-size:12px}
input,select{width:100%;box-sizing:border-box;margin-top:3px;padding:7px;border-radius:6px;border:1px solid #444;background:#262a33;color:#ddd;font-size:14px}
input.age{width:52px;display:inline-block;margin-right:4px}
label.hidden{visibility:hidden}
button{padding:8px 16px;border-radius:6px;border:1px solid #2b5cbf;background:#2b5cbf;color:#fff;font-size:14px;cursor:pointer}
button:hover{background:#3a6fd0}
button.ghost{background:#262a33;border-color:#444;color:#ccc;margin-left:8px}
button.ghost:hover{background:#30363f}
#warnings .warn{background:#3a2226;border:1px solid #6b3a3e;color:#ff9e9e;border-radius:6px;padding:8px 10px;margin-bottom:10px}
.warn label.inline{color:#ffb3b3}
.warn input{width:60px;display:inline-block;margin-left:4px}
#results{display:none}
section{background:#1c1f26;border:1px solid #333;border-radius:8px;padding:14px;margin-bottom:14px}
section h2{font-size:16px;margin:0 0 4px}
.sechead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sechead h2{flex:none}
.sechead button{flex:none;padding:6px 12px;font-size:13px}
.cheapest{color:#4caf50;font-weight:600;font-size:13px}
.popupnote{color:#777;font-size:12px;margin:4px 0 8px}
ul.sites{list-style:none;padding:0;margin:0}
li.site{border-top:1px solid #2a2e37;padding:8px 0}
li.site:first-child{border-top:none}
.srow{display:flex;align-items:center;gap:12px}
.srow .name{font-weight:600;color:#7ab3ff;min-width:150px;text-decoration:none}
.srow .name:hover{text-decoration:underline}
.srow .desc{flex:1;color:#999;font-size:13px}
.srow input.note{width:80px;padding:4px;margin:0;font-size:12px}
.srow .open{color:#8bc48b;text-decoration:none;font-size:13px;white-space:nowrap}
.url{color:#556;font-size:11px;margin-top:3px;word-break:break-all;font-family:ui-monospace,monospace}
.parkpanel h2 .loc{color:#888;font-size:13px;font-weight:400}
.pcols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:700px){.pcols{grid-template-columns:1fr}}
h3{font-size:13px;color:#aaa;margin:12px 0 6px;text-transform:uppercase;letter-spacing:.4px}
ul.links{list-style:none;padding:0;margin:0}
ul.links li{padding:3px 0}
ul.links a{color:#7ab3ff;text-decoration:none}
ul.links a:hover{text-decoration:underline}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{border:1px solid #333;padding:5px 8px;text-align:left;vertical-align:top}
th{background:#22262e;color:#aaa;font-weight:600}
td.pnote{color:#888;font-size:12px}
.asof{color:#888;font-size:12px;margin-top:6px}
.asof a{color:#7ab3ff}
.warn{color:#ff9e9e;font-size:12px;margin-top:4px}
footer{color:#666;font-size:12px;margin-top:18px}
#live{display:none}
#tripSummary{font-weight:600;margin-bottom:8px}
#refresh{margin:0 0 12px}
.loading{color:#999;padding:10px 0}
.err{background:#3a2226;border:1px solid #6b3a3e;color:#ff9e9e;border-radius:6px;padding:8px 10px}
.err .hint{color:#ffb3b3;margin-top:4px;font-size:12px}
.err a{color:#7ab3ff}
.sub{color:#888;font-size:12px;margin:6px 0}
.ittable,.opttable{margin:8px 0}
.ittable tbody tr{cursor:pointer}
.ittable tbody tr:hover{background:#232833}
tr.selrow{background:#26304a}
tr.cheapestrow .price{color:#4caf50;font-weight:700}
.tag{background:#2e7d32;color:#fff;border-radius:4px;padding:1px 5px;font-size:11px}
.optline{margin:10px 0 6px}
.save{color:#4caf50}
#hotelSel{width:100%;margin:8px 0;padding:7px;border-radius:6px;border:1px solid #444;background:#262a33;color:#ddd}
label.inline{display:inline;color:#aaa;font-size:13px}
details#manual summary{cursor:pointer;color:#999;margin:14px 0 10px;font-size:14px}
