/* x-Inno Regions Journey — hand-written, no build step. Design follows the x-Inno Radar one-pager: Montserrat headings, Open Sans body, brand teal #18baa8. */
@font-face{font-family:"Montserrat";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/montserrat-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/montserrat-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Open Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Open Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Open Sans";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Open Sans";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Open Sans";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Open Sans";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/open-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --teal:#18baa8;--teal-d:#12978a;--teal-l:#e4f7f4;--navy:#1f3b73;--ink:#23313b;--muted:#5f6f7a;--line:#d8e3e6;
  --bg:#f6f9fa;--card:#fff;--warn:#c9861a;--warn-l:#fdf3e1;--bad:#c2413b;--bad-l:#fbe9e8;--ok:#2f9e5b;--ok-l:#e5f5ec;
  --r:10px;--shadow:0 1px 2px rgba(20,40,50,.06),0 2px 10px rgba(20,40,50,.05);
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--teal-d)}
h1,h2,h3{line-height:1.25;margin:0 0 .5em;font-family:"Montserrat","Open Sans",system-ui,sans-serif;font-weight:700}
h1{color:var(--teal-d)}
h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}
.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.narrow{max-width:720px}
header.top{background:#fff;border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:16px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none;font-family:"Montserrat",sans-serif}
.brand .sub{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-d);font-weight:700}
header.top .eu{margin-left:auto;height:34px}
header.top .eu img{height:34px;width:auto;display:block}
@media(max-width:760px){header.top .eu{display:none}}
.brand svg{flex:none}
nav.main{display:flex;gap:14px;align-items:center;margin-left:18px;flex-wrap:wrap}
header.top .eu{margin-left:auto}
@media(max-width:760px){nav.main{margin-left:auto}}
nav.main a{text-decoration:none;color:var(--ink)}
select.lang{width:auto;border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:#fff;font-size:.875rem}
main{padding:28px 0 48px}
footer.foot{border-top:1px solid var(--line);padding:18px 0;color:var(--muted);font-size:.8rem;background:#fff}
footer.foot .wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
footer.foot img{height:44px;width:auto}
footer.foot .eu-line{flex:1;min-width:240px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--teal);background:var(--teal);color:#fff;padding:9px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--teal-d);border-color:var(--teal-d)}
.btn.ghost{background:#fff;color:var(--teal-d)}
.btn.ghost:hover{background:var(--teal-l)}
.btn.small{padding:5px 10px;font-size:.85rem}
.btn.warn{background:var(--warn);border-color:var(--warn)}
.btn.danger{background:#fff;color:var(--bad);border-color:var(--bad)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
label{display:block;font-weight:600;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.check input{margin-top:4px}
.help{font-size:.82rem;color:var(--muted);margin-top:3px}
.err{color:var(--bad);font-size:.85rem;margin-top:4px}
.alert{padding:12px 14px;border-radius:8px;margin-bottom:16px;border:1px solid}
.alert.ok{background:var(--ok-l);border-color:#b5e0c6}
.alert.warn{background:var(--warn-l);border-color:#f0d49c}
.alert.bad{background:var(--bad-l);border-color:#efbdb9}
.alert.info{background:var(--teal-l);border-color:#b6e4dd}
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--teal-l);color:var(--teal-d)}
.badge.warn{background:var(--warn-l);color:#8a5a0c}.badge.grey{background:#eef2f4;color:var(--muted)}.badge.ok{background:var(--ok-l);color:#1f6e3f}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
/* Level path */
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:760px){.levels{grid-template-columns:1fr 1fr}}
.lvl{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:#fff;position:relative}
.lvl .num{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.lvl h3{margin:4px 0}
.lvl.done{border-color:#b5e0c6;background:var(--ok-l)}
.lvl.current{border:2px solid var(--teal);background:var(--teal-l)}
.lvl.locked{opacity:.6}
/* progress */
.meter{height:12px;background:#e9eff1;border-radius:99px;overflow:hidden}
.meter>span{display:block;height:100%;background:var(--teal);border-radius:99px}
.meter.full>span{background:var(--ok)}
.bignum{font-size:2rem;font-weight:700;line-height:1}
/* bars */
.bars{display:grid;grid-template-columns:minmax(120px,38%) 1fr auto;gap:4px 10px;align-items:center;font-size:.88rem;margin:8px 0 4px}
.bars .bar{height:14px;background:#e9eff1;border-radius:4px;overflow:hidden}
.bars .bar span{display:block;height:100%;background:var(--teal)}
.bars .v{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.stack{display:flex;height:14px;border-radius:4px;overflow:hidden;background:#e9eff1}
.stack span{display:block;height:100%}
.s1{background:#c2413b}.s2{background:#e89a73}.s3{background:#d3dcdf}.s4{background:#7fcfc4}.s5{background:#1d8c7f}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.report-text{font-size:1rem}
.report-text h1,.report-text h2{font-size:1.2rem;margin-top:1.4em}
.report-text h3{font-size:1.05rem;margin-top:1.2em}
.linkbox{display:flex;gap:8px}
.linkbox input{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}
.qr{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;width:180px;height:180px}
.qr img{width:100%;height:100%}
/* survey */
.survey header.top{border-bottom:4px solid var(--teal)}
.q{padding:18px 0;border-bottom:1px solid var(--line)}
.q:last-child{border-bottom:0}
.q .qt{font-weight:600;margin-bottom:8px}
.q.has-err .qt{color:var(--bad)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid #bfe3dd;border-radius:10px;padding:9px 12px;cursor:pointer;background:#fff;font-weight:400;margin:0}
.opt:hover{border-color:var(--teal)}
.opt input{margin-top:4px;accent-color:var(--teal)}
.opt.sel{background:var(--teal-l);border-color:var(--teal)}
.opt.dis{opacity:.45;cursor:not-allowed}
.matrix{width:100%;border-collapse:collapse;font-size:.88rem}
.matrix th{text-transform:none;letter-spacing:0;font-weight:500;font-size:.75rem;text-align:center;color:var(--muted)}
.matrix td{text-align:center;border-bottom:1px solid var(--line);padding:8px 4px}
.matrix td:first-child{text-align:left;font-weight:500}
.matrix input{accent-color:var(--teal);width:18px;height:18px}
@media(max-width:640px){
  .matrix thead{display:none}
  .matrix tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .matrix td{display:flex;align-items:center;gap:8px;border:0;padding:3px 0;text-align:left}
  .matrix td:first-child{display:block;margin-bottom:2px}
  .matrix td[data-l]::after{content:attr(data-l);font-size:.85rem;color:var(--ink)}
}
.hp{position:absolute;left:-9999px}
.sticky-submit{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:18px 0 8px}
@media print{header.top,footer.foot,.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:0;padding:0}}
[x-cloak]{display:none!important}

/* Region images */
.hero{height:220px;border-radius:var(--r);background-size:cover;background-position:center;margin-bottom:18px;position:relative;box-shadow:var(--shadow)}
.hero span{position:absolute;right:10px;bottom:8px;font-size:.72rem;color:#fff;background:rgba(20,40,50,.55);padding:2px 8px;border-radius:99px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.gal-item{position:relative;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}
.gal-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
.gal-item input[type=text]{padding:5px 8px;font-size:.85rem}

/* Region profile (Chemnitz-style) */
.profile .p-head{margin-bottom:20px}
.profile .p-cover{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.profile .p-cover img{width:100%;height:300px;object-fit:cover;display:block}
.profile .p-credit{position:absolute;right:10px;bottom:8px;font-size:.72rem;color:#fff;background:rgba(20,40,50,.55);padding:2px 8px;border-radius:99px}
.profile .p-kicker{font-family:"Montserrat",sans-serif;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--teal-d);margin-top:16px}
.profile h1{font-size:2.3rem;color:var(--teal);margin:0 0 4px;text-transform:none}
.profile .p-sub{font-size:1.05rem;color:var(--muted)}
.profile .p-meta{font-size:.8rem;color:var(--muted);margin-top:4px}
.profile table.p-tiles{border-collapse:separate;border-spacing:12px 0;margin:0 -12px 20px;width:calc(100% + 24px)}
.profile table.p-tiles td{border:0;padding:0;width:25%;vertical-align:top}
.profile .p-tile{background:var(--teal-l);border:1px solid #cdeee9;border-radius:var(--r);padding:14px 16px;height:100%}
.profile .p-tile-v{font-family:"Montserrat",sans-serif;font-size:1.6rem;font-weight:700;color:var(--teal-d);line-height:1.1}
.profile .p-tile-v small{font-size:.9rem;color:var(--muted);font-weight:400}
.profile .p-tile-l{font-size:.85rem;margin-top:4px}
.profile .p-tile-m{font-size:.75rem;color:var(--muted);margin-top:4px}
.profile .p-block{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px 24px 22px;margin-bottom:22px;overflow:hidden}
.profile .p-block h2.pill{margin:14px 0 16px -24px;font-size:1.05rem}
.profile .p-block h2.pill span{color:#fff}
.profile .p-text{max-width:820px}
.profile .p-text ul,.profile .p-text ol{padding-left:22px}
.profile .p-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin-top:10px}
@media(max-width:760px){.profile .p-charts{grid-template-columns:1fr}}
.profile .p-fig{margin:0;min-width:0}
.profile .p-fig-wide{grid-column:1 / -1}
.profile .p-fig figcaption{margin-bottom:6px}
.profile .p-fig-sub{color:var(--muted);font-size:.8rem;margin-left:6px}
.profile .p-svg svg{width:100%;height:auto;display:block}
.profile .p-latest{font-size:.82rem;margin-top:4px}
.profile .p-latest span{display:inline-block;margin-right:14px}
.profile .p-latest i{display:inline-block;width:10px;height:10px;border-radius:5px;margin-right:5px;vertical-align:-1px}
.profile .p-source{font-size:.75rem;color:var(--muted);margin-top:3px}
.profile .p-note{font-size:.85rem;color:var(--muted)}
.profile .p-table{font-size:.9rem;margin:8px 0 12px}
.profile .p-verdict{font-weight:600;font-size:.85rem}
.profile .v-confirmed{color:#1f6e3f}.profile .v-partly{color:#8a5a0c}.profile .v-rejected{color:var(--bad)}
.profile .p-first{background:var(--teal-l);border-color:#b6e4dd}
.profile .p-text{font-size:1rem;line-height:1.6}
.profile .p-text h3{font-size:1rem;margin:1.1em 0 .4em;color:var(--teal-d)}
.profile .p-fig figcaption strong{font-family:"Montserrat",sans-serif;font-size:.9rem}
.profile .p-action{margin-bottom:10px}
.profile .p-srclist{font-size:.82rem;color:var(--muted)}
@media(max-width:700px){.profile table.p-tiles,.profile table.p-tiles tr,.profile table.p-tiles td{display:block;width:100%}.profile table.p-tiles td{margin-bottom:10px}.profile .p-cover img{height:180px}}
@media print{.no-print{display:none}.profile .p-block,.profile .p-tile{box-shadow:none}.profile .p-fig{break-inside:avoid}}

/* Busy overlay */
.busy{position:fixed;inset:0;background:rgba(246,249,250,.92);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.busy[hidden]{display:none}
.busy-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 40px rgba(20,40,50,.15);padding:32px 36px;max-width:440px;text-align:center}
.busy-card h2{margin:14px 0 6px}
.busy-card p{margin:0 0 6px}
.busy-hint{font-size:.85rem;color:var(--muted)}
.busy-spinner{width:44px;height:44px;margin:0 auto;border-radius:50%;border:4px solid var(--teal-l);border-top-color:var(--teal);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
body.busy-open{overflow:hidden}
/* Profile photo gallery */
.profile .p-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.profile .p-gallery figure{margin:0}
.profile .p-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
.profile .p-gallery figcaption{font-size:.78rem;color:var(--muted);margin-top:4px}

/* One-pager style section labels */
.pill{display:inline-flex;align-items:center;gap:10px;background:var(--teal);color:#fff;font-family:"Montserrat",sans-serif;font-weight:700;font-size:1rem;padding:8px 22px 8px 16px;border-radius:0 999px 999px 0;margin:0 0 14px -24px;letter-spacing:.01em}
.pill svg{width:20px;height:20px;flex:none}
.kicker{font-family:"Montserrat",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--teal);font-size:.9rem}
/* Start page */
.start-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center;padding:24px 0 8px}
@media(max-width:820px){.start-hero{grid-template-columns:1fr}}
.start-hero h1{font-size:2.5rem;line-height:1.12;margin:.2em 0 .4em;color:var(--ink)}
.start-hero h1 span{color:var(--teal)}
.start-hero .lead{font-size:1.1rem;color:var(--muted);max-width:560px}
.hero-art{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#e4f7f4,#fff 60%);border:1px solid var(--line);padding:22px}
.hero-art .steps{display:grid;gap:10px;position:relative;z-index:1}
.hero-art .step{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.hero-art .step .n{width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;font-family:"Montserrat",sans-serif;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.waves{position:absolute;right:-40px;bottom:-30px;width:320px;opacity:.55;pointer-events:none}
.howto{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.howto .card{margin:0}
.howto .card h3{margin-top:6px}
.section-title{display:flex;align-items:center;gap:12px;margin:34px 0 16px}
.section-title::after{content:"";flex:1;height:1px;background:var(--line)}
.profile .p-lead{font-size:1.08rem;line-height:1.65;max-width:820px}
.profile .p-summary{background:var(--teal-l);border-color:#cdeee9}
.profile .p-tile-r{font-size:.75rem;color:var(--teal-d);font-weight:600;margin-top:4px}
.profile .p-rank{font-size:.8rem;color:var(--teal-d);font-weight:600;margin-top:3px}
.profile table.p-tiles td{width:33.33%}

/* comparison dashboard */
.cmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:18px;margin-top:6px}
.cmp-fig{margin:0;padding:18px 20px}
.cmp-fig figcaption{margin-bottom:8px}
.cmp-fig .p-svg svg{width:100%;height:auto}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
@media (max-width:560px){.cmp-grid{grid-template-columns:1fr}}

/* similar regions */
.sim-table{font-size:.86rem}.sim-table td,.sim-table th{white-space:nowrap;padding:5px 6px;vertical-align:top}.sim-table td:nth-child(2){white-space:normal;min-width:220px}.sim-tags{margin-top:2px}
.sim-table .sim-own td{background:#e4f7f4}
.tag{display:inline-block;background:#f1f4f6;border:1px solid #d8e3e6;border-radius:12px;padding:1px 8px;font-size:.75rem;margin:1px 2px 1px 0;white-space:nowrap}
