/* NAVTOOL Colreg – Komponenten für app.js */
.cr-section{margin-top:46px;scroll-margin-top:90px}
.cr-head h2{margin:0 0 6px;font-size:clamp(24px,3.4vw,38px);letter-spacing:-.02em}
.cr-head p{margin:0 0 18px;color:var(--nt-muted);max-width:720px}
.main-nav .chip{display:inline-block}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--nt-teal);z-index:900}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s}
.reveal.visible{opacity:1;transform:none}
.card-code,.scenario-number,.sound-rule,.buoy-tag,.modal-code{color:var(--nt-teal);font-size:11px;font-weight:800;letter-spacing:.12em}
.rule-card,.light-card,.sound-card,.buoy-card,.scenario-card,.knot-card{background:var(--nt-panel);border:1px solid var(--nt-line);border-radius:16px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:border-color .2s,transform .2s}
.rule-card:hover,.light-card:hover,.sound-card:hover,.buoy-card:hover,.scenario-card:hover,.knot-card:hover{border-color:var(--nt-line-strong);transform:translateY(-2px)}
.rule-card h3,.light-card h3,.sound-card h3,.buoy-card h3,.scenario-card h3,.knot-card h3{margin:0;font-size:17px}
.rule-card p,.light-card p,.sound-card p,.buoy-card p,.scenario-card p,.knot-card p{margin:0;color:var(--nt-muted);font-size:14px}
.card-bottom{display:flex;justify-content:space-between;margin-top:auto;color:var(--nt-teal);font-size:12px}
.light-visual,.buoy-photo,.knot-image,.nt-card-sc{background:#06121a;border-radius:12px;overflow:hidden;display:grid;place-items:center;min-height:150px}
.light-visual img,.buoy-photo img,.knot-image img,.navtool-media{width:100%;height:100%;max-height:230px;object-fit:contain;display:block}
.light-stack{height:150px;width:180px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.light-stack i{display:block;width:22px;height:22px;border-radius:50%;box-shadow:0 0 18px currentColor}
.light-stack i.white{background:#fff;color:#fff}.light-stack i.red{background:#e5232e;color:#e5232e}.light-stack i.green{background:#43d17b;color:#43d17b}.light-stack i.yellow{background:#ffd34d;color:#ffd34d}
.light-stack i.stern{position:absolute;right:38px;bottom:38px;width:14px;height:14px}
.media-placeholder{color:var(--nt-muted);font-size:12px;padding:30px}
.nt-sc,.scn-anim{width:100%;height:auto;display:block;border-radius:12px}
.sound-top{display:flex;justify-content:space-between;align-items:center}
.sound-play{border:1px solid var(--nt-line-strong);background:transparent;color:var(--nt-teal);border-radius:10px;padding:6px 12px;font-weight:800;cursor:pointer}
.sound-pattern{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sound-tone{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--nt-teal);opacity:.8}
.sound-tone.long{width:44px;border-radius:8px}
.sound-tone.playing{background:#fff;box-shadow:0 0 12px var(--nt-teal)}
.sound-meta{color:var(--nt-muted);font-size:12px}
.sound-source,.modal-source{color:var(--nt-teal);font-size:12px;font-weight:800}
.modal-backdrop{position:fixed;inset:0;z-index:950;background:rgba(0,0,0,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px}
.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:var(--nt-panel-strong,#0c1b22);border:1px solid var(--nt-line-strong);border-radius:18px}
.modal-head{display:flex;justify-content:space-between;gap:16px;padding:22px;border-bottom:1px solid var(--nt-line)}
.modal-head h2{margin:4px 0 0;font-size:22px}
.modal-close{width:38px;height:38px;border-radius:10px;border:1px solid var(--nt-line-strong);background:transparent;color:#fff;font-size:20px;cursor:pointer}
.modal-body{padding:22px}.modal-body h3{color:var(--nt-teal);font-size:12px;letter-spacing:.12em}
.modal-body p{color:#b9cccc}
.step-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.step-list li{padding:12px 14px;border:1px solid var(--nt-line);border-radius:12px;font-size:14px}.step-list li b{color:var(--nt-teal);margin-right:8px}
.nt-ex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.nt-ex figure{margin:0}.nt-ex figcaption{font-size:12px;color:var(--nt-muted);margin-top:6px}.nt-leg{font-size:12px;color:var(--nt-muted)}
.scn-anim{margin-bottom:16px;border:1px solid var(--nt-line)}

/* ===== Schallsignale: Töne immer grün, beim Abspielen weiß ===== */
.sound-pattern{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:44px;padding:12px 14px;background:rgba(0,0,0,.28);border-radius:12px;overflow:visible}
.sound-pattern .sound-tone{display:block;flex:none;width:18px;min-width:0;height:18px;padding:0;border:0;border-radius:50%;background:#3fcf86;color:transparent;font-size:0;line-height:0;opacity:1;transform:none;box-shadow:0 0 0 0 rgba(63,207,134,0);transition:background .12s,box-shadow .12s,transform .12s}
.sound-pattern .sound-tone.long{width:54px;min-width:0;border-radius:9px}
.sound-pattern .sound-tone.playing{background:#fff;border:0;transform:scale(1.12);box-shadow:0 0 14px rgba(255,255,255,.85)}
.sound-pattern .sound-tone::before,.sound-pattern .sound-tone::after{content:none}
/* ===== Tageskennzeichen ===== */
.day-box{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px;border:1px solid var(--nt-line);border-radius:12px;background:rgba(0,0,0,.22)}
.day-box img{flex:none;width:84px;height:126px;object-fit:contain;border-radius:8px}
.day-box b{display:block;margin-bottom:3px;color:var(--nt-teal);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.day-box span{display:block;color:var(--nt-muted);font-size:12.5px;line-height:1.45}
.modal-body .day-box img{width:96px;height:144px}
/* ===== Knoten ===== */
.en-name{display:block;margin-top:3px;color:var(--nt-teal);font-size:12px;font-weight:700;letter-spacing:.04em}
.modal-head .en-name{font-size:14px}
.knot-tip{margin-top:12px;padding:10px 12px;border-left:3px solid var(--nt-teal);border-radius:8px;background:rgba(85,229,209,.07);color:var(--nt-muted);font-size:13px}
.knot-tip b{color:var(--nt-teal)}
.knot-image img{background:#0a1a22}
