:root{--navy:#0b3d5c;--navy-2:#0f4f76;--teal:#0e9aa7;--teal-2:#0b7f8a;--sand:#f4f7fa;--card:#fff;--ink:#16273a;--muted:#5f7082;--line:#dde5ec;--good:#177a4a;--good-bg:#e6f5ec;--bad:#b42323;--bad-bg:#fbe9e9;--warn:#8a5a00;--warn-bg:#fff4dc;--info-bg:#e4f3f5;--radius:14px;--shadow:0 2px 10px rgba(11,61,92,.08)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;color:var(--ink);background:var(--sand)}
a{color:var(--navy-2)}
h1{font-size:1.75rem;line-height:1.2;margin:.4em 0 .5em}
h2{font-size:1.3rem;margin:1.2em 0 .5em}
h3{font-size:1.05rem;margin:.2em 0 .5em}
p{margin:.4em 0 .8em}
.wrap{max-width:1140px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)}.small{font-size:.86rem}.good{color:var(--good)}.bad{color:var(--bad)}.nowrap{white-space:nowrap}
.pre{white-space:pre-wrap}.clamp{max-height:4.5em;overflow:hidden}
.narrow{max-width:420px;margin:40px auto}
.inline{display:inline-block;margin-right:6px}
/* Header */
.site-head{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:12px}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.2rem;display:flex;align-items:center;gap:6px}
.brand-icon{font-size:1.4rem}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{color:#dfeaf2;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:.95rem}
.nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.nav-admin{background:rgba(255,255,255,.15)}
main{padding:12px 0 40px}
.site-foot{border-top:1px solid var(--line);padding:20px 0 30px;font-size:.9rem;color:var(--muted)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
/* Flash */
.flash{padding:12px 16px;border-radius:10px;margin:12px 0;background:var(--info-bg);border:1px solid #bfe3e8}
.flash-success{background:var(--good-bg);border-color:#b6dfc6}.flash-error{background:var(--bad-bg);border-color:#efc2c2}
/* Hero */
.hero{padding:22px 0 8px}
.hero h1{font-size:2.1rem;max-width:820px}
.lead{font-size:1.1rem;color:var(--muted);max-width:760px;margin-bottom:18px}
.lead-small{color:var(--muted);max-width:820px}
.hero-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 6px;color:var(--muted);font-size:.92rem}
.hero-stats strong{color:var(--ink);font-size:1.05rem}
/* Cards & grid */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin:12px 0}
.grid{display:grid;grid-template-columns:1fr;gap:12px}
.grid .card{margin:0}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.two-col{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
@media(min-width:860px){.two-col{grid-template-columns:3fr 2fr}}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.section-head h2,.section-head h3{margin:0}
.crumbs{font-size:.88rem;color:var(--muted);margin:8px 0}
/* Search form */
.search{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin:8px 0 12px}
.search-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
@media(min-width:760px){.search-row{grid-template-columns:2fr 1fr 1fr .7fr}}
.search-row-filters{margin-top:10px;grid-template-columns:1fr 1fr}
@media(min-width:760px){.search-row-filters{grid-template-columns:repeat(6,auto) 1fr;align-items:end}}
.field{display:flex;flex-direction:column;gap:3px;font-size:.85rem;color:var(--muted)}
.field-grow{flex:1}.field-full{grid-column:1/-1}
.field input,.field select,.field textarea,.ms summary{font:inherit;font-size:.98rem;color:var(--ink);padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;width:100%}
.field textarea{resize:vertical}
.check{display:flex;align-items:center;gap:6px;font-size:.95rem;padding:8px 0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font:inherit;font-size:.84rem;color:var(--navy-2);cursor:pointer}
.chip:hover,.chip.active{background:var(--info-bg);border-color:var(--teal)}
.chip-clear{color:var(--muted)}
.ms{position:relative;font-size:.85rem;color:var(--muted)}
.ms summary{list-style:none;cursor:pointer;white-space:nowrap;color:var(--ink);display:flex;justify-content:space-between;gap:8px}
.ms summary::-webkit-details-marker{display:none}
.ms summary::after{content:"▾";color:var(--muted)}
.ms[open] summary{border-color:var(--teal)}
.ms-list{position:absolute;z-index:15;top:100%;left:0;min-width:240px;max-height:300px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;margin-top:4px}
.ms-list label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;color:var(--ink);font-size:.93rem;cursor:pointer}
.ms-list label:hover{background:var(--sand)}
.ms-list label[hidden]{display:none}
/* Buttons */
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--navy-2);border-radius:10px;padding:9px 16px;font:inherit;font-size:.95rem;text-decoration:none;cursor:pointer;line-height:1.3}
.btn:hover{border-color:var(--teal);background:var(--info-bg)}
.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-primary:hover{background:var(--teal-2);color:#fff}
.btn-small{padding:6px 12px;font-size:.88rem}
.btn-danger{color:var(--bad);border-color:#efc2c2}.btn-danger:hover{background:var(--bad-bg)}
/* Result cards */
.result,.storno-card{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:640px){.result,.storno-card{grid-template-columns:1fr auto}}
.result h3,.storno-card h3{margin:4px 0;font-size:1.1rem}
.result h3 a,.storno-card h3 a{color:var(--ink);text-decoration:none}
.result h3 a:hover,.storno-card h3 a:hover{color:var(--teal-2)}
.result-head{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--sand);color:var(--muted);border:1px solid var(--line)}
.tag-line{background:#e8eef4;color:var(--navy);border-color:#d3dfe9}
.tag-special{background:var(--warn-bg);color:var(--warn);border-color:#f2dfae}
.tag-storno{background:#fde8d6;color:#8a3d00;border-color:#f6cfae}
.tag-good{background:var(--good-bg);color:var(--good)}.tag-warn{background:var(--warn-bg);color:var(--warn)}.tag-bad{background:var(--bad-bg);color:var(--bad)}
.result-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.9rem;color:var(--muted)}
.ports{font-size:.86rem;color:var(--muted);margin:4px 0 0}
.result-price{text-align:left;min-width:190px;display:flex;flex-direction:column;gap:4px;border-top:1px dashed var(--line);padding-top:8px}
@media(min-width:640px){.result-price{text-align:right;border-top:0;padding-top:0;border-left:1px dashed var(--line);padding-left:14px;align-items:flex-end}}
.price-pp strong{font-size:1.45rem;color:var(--navy)}
.price-total{font-size:.92rem;color:var(--muted)}
.price-total strong{color:var(--ink)}
.trend{font-size:.84rem;color:var(--muted)}.trend.down{color:var(--good)}.trend.up{color:var(--bad)}
/* Detail */
.detail-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}
.persons-switch{display:flex;align-items:center;gap:4px;font-size:.9rem;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.persons-switch a{display:inline-block;min-width:28px;text-align:center;padding:3px 6px;border-radius:999px;text-decoration:none;color:var(--navy-2)}
.persons-switch a.active{background:var(--teal);color:#fff}
.best-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.best-card{margin:0;display:flex;flex-direction:column;gap:4px}
.best-card-top{outline:2px solid var(--teal)}
.best-card .btn{align-self:flex-start;margin-top:6px}
.chart-card canvas{width:100%!important;max-height:280px}
.verdict{border-left:5px solid var(--line)}
.verdict-good{border-left-color:var(--good);background:var(--good-bg)}
.verdict-warn{border-left-color:#e2a100;background:var(--warn-bg)}
.verdict-info{border-left-color:var(--teal);background:var(--info-bg)}
.verdict-text{font-size:1.1rem;font-weight:600;margin:.2em 0}
/* Tables */
.table-wrap{overflow-x:auto;padding:0}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}
.table tr:last-child td{border-bottom:0}
.row-best td{background:#f3fbfc}
.sort{display:flex;gap:4px;flex-wrap:wrap;font-size:.9rem}
.sort a{padding:5px 10px;border-radius:999px;text-decoration:none;border:1px solid var(--line);background:#fff}
.sort a.active{background:var(--navy);color:#fff;border-color:var(--navy)}
/* Alert form */
.alert-box{border-top:4px solid var(--teal)}
.alert-form{display:grid;grid-template-columns:1fr;gap:10px;align-items:end}
@media(min-width:700px){.alert-form{grid-template-columns:2fr 1fr 1fr auto}}
/* Forms */
.form-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:700px){.form-grid{grid-template-columns:repeat(3,1fr)}}
.form-grid h3{margin:10px 0 0}
[data-parse-btn]{margin-top:6px;align-self:flex-start}
.howto-teaser .card{background:linear-gradient(135deg,#0b3d5c,#0e9aa7);color:#fff}
.howto-teaser a{color:#fff;font-weight:600}
/* Admin */
.admin-nav{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0 4px;font-size:.92rem}
.admin-nav a{padding:6px 10px;border-radius:8px;background:#fff;border:1px solid var(--line);text-decoration:none}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.tile{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.tile b{font-size:1.6rem;color:var(--navy)}.tile span{font-size:.82rem;color:var(--muted)}
.admin-row{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
.admin-row-main{flex:1;min-width:260px}
.admin-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.import-row.is-dup{opacity:.75;border-left:4px solid #e2a100}
.import-head{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
pre{background:var(--sand);padding:10px;border-radius:8px;overflow:auto}
code{background:var(--sand);padding:1px 5px;border-radius:4px;font-size:.9em}
/* Reisende */
.ms-trav summary b{font-weight:500;color:var(--muted);font-size:.85rem}
.trav-list{min-width:300px;padding:10px}
.trav-list .field{margin-bottom:8px}
.ages{display:flex;gap:6px}
.ages input{width:72px;font:inherit;font-size:.95rem;padding:8px;border:1px solid var(--line);border-radius:9px}
.trav-box{margin:0;padding:10px 14px;max-width:520px}
.trav-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.trav-row .field{margin:0}
.tag-lm{background:#e8f7ee;color:var(--good);border-color:#bfe6cd}
/* Demo-Banner */
.demo-banner{background:var(--warn-bg);border:1px solid #f2dfae;color:var(--warn);border-radius:10px;padding:10px 14px;margin:12px 0 0;font-size:.9rem;line-height:1.4}
.demo-banner a{color:var(--warn);font-weight:600}
