narty-2027/pages/szablon-maila.html
oskar c4f6cf3f1d Karty HTML konceptów: gen_pages.py + katalog pages/
Graf pokazywał strukturę, ale treść (ceny, dostępność, plusy/minusy)
siedziała tylko w panelu szczegółów viewera. gen_pages.py renderuje każdy
koncept do pages/<id>.html: metadane frontmattera jako tabelka (wszystkie
pola, też polskie rozszerzenia), body poniżej, plus pages/index.html
z listą kart.

Renderer: python-markdown, jeśli jest w systemie; tutaj go nie ma, więc
działa fallback na samej bibliotece standardowej (nagłówki, akapity,
tabele GFM, listy z - [ ], cytaty, kod, hr, inline bold/kursywa/kod/linki).

Linki miedzy konceptami przepisane na względne <id>.html, linki
zewnętrzne bez zmian. Pliki zarezerwowane (index.md, log.md) nie są
konceptami (§3.1) i nie mają kart — linki do nich prowadzą do listy kart.

Pliki .md nietknięte.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:46:08 +02:00

87 lines
5.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Szablon zapytania grupowego (EN) — Ski 2027 — Skicircus Saalbach</title>
<style>
:root { color-scheme: light dark; --fg:#0f172a; --muted:#64748b; --bg:#ffffff;
--line:#e2e8f0; --accent:#0d9488; --chip:#f1f5f9; --quote:#f8fafc; }
@media (prefers-color-scheme: dark) {
:root { --fg:#e2e8f0; --muted:#94a3b8; --bg:#0f172a; --line:#334155;
--accent:#2dd4bf; --chip:#1e293b; --quote:#1e293b; }
}
* { box-sizing: border-box; }
body { margin: 0 auto; padding: 1.25rem 1rem 4rem; max-width: 46rem;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
font-size: 17px; line-height: 1.55; color: var(--fg); background: var(--bg);
-webkit-text-size-adjust: 100%; }
nav { font-size: .85rem; margin-bottom: 1.25rem; }
nav a { color: var(--muted); }
h1 { font-size: 1.55rem; line-height: 1.25; margin: 0 0 .35rem; }
h2 { font-size: 1.2rem; margin: 2rem 0 .5rem; padding-top: .5rem;
border-top: 1px solid var(--line); }
h3 { font-size: 1.02rem; margin: 1.4rem 0 .4rem; }
p, ul, ol { margin: .6rem 0; }
ul, ol { padding-left: 1.3rem; }
li { margin: .25rem 0; }
li.task { list-style: none; margin-left: -1.3rem; }
li.task input { margin-right: .45rem; }
a { color: var(--accent); }
a.ext::after { content: " ↗"; font-size: .8em; color: var(--muted); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88em;
background: var(--chip); padding: .1em .35em; border-radius: 4px; }
pre { background: var(--chip); padding: .75rem; border-radius: 6px; overflow-x: auto; }
pre code { background: none; padding: 0; }
blockquote { margin: .9rem 0; padding: .6rem .9rem; background: var(--quote);
border-left: 3px solid var(--accent); border-radius: 0 6px 6px 0; }
blockquote p { margin: .2rem 0; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.5rem 0; }
.table-wrap { overflow-x: auto; margin: .8rem 0; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { border: 1px solid var(--line); padding: .4rem .55rem; vertical-align: top; }
th { background: var(--chip); font-weight: 600; }
.chip { display: inline-block; background: var(--chip); color: var(--muted);
font-size: .72rem; text-transform: uppercase; letter-spacing: .04em;
padding: .15rem .5rem; border-radius: 999px; }
.lead { color: var(--muted); margin: .35rem 0 1.25rem; }
.meta { margin: 0 0 1.5rem; }
.meta summary { cursor: pointer; font-size: .85rem; color: var(--muted);
padding: .3rem 0; }
.meta table { font-size: .85rem; }
.meta th { width: 38%; text-align: left; font-weight: 500; word-break: break-word; }
.cards { list-style: none; padding: 0; margin: 0; }
.cards li { border: 1px solid var(--line); border-radius: 8px; padding: .8rem .9rem;
margin: .6rem 0; }
.cards a { font-weight: 600; text-decoration: none; }
.cards p { margin: .3rem 0 0; font-size: .9rem; color: var(--muted); }
footer { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line);
font-size: .78rem; color: var(--muted); }
</style>
</head>
<body>
<nav><a href="index.html">← Wszystkie karty</a> · <a href="../viz.html">Graf</a></nav>
<span class="chip">narzedzie</span>
<h1>Szablon maila — zapytanie grupowe (EN)</h1>
<p class="lead">Gotowy angielski mail z zapytaniem o 4 apartamenty dla 14 osób w terminie 1623.01.2027 wraz z notatkami negocjacyjnymi.</p>
<details class="meta" open><summary>Metadane (frontmatter)</summary><div class="table-wrap"><table><tbody><tr><th>type</th><td>narzedzie</td></tr><tr><th>title</th><td>Szablon zapytania grupowego (EN)</td></tr><tr><th>description</th><td>Gotowy angielski mail z zapytaniem o 4 apartamenty dla 14 osób w terminie 1623.01.2027 wraz z notatkami negocjacyjnymi.</td></tr><tr><th>timestamp</th><td>2026-07-31T00:00:00Z</td></tr><tr><th>tags</th><td>szablon, komunikacja, rezerwacja</td></tr><tr><th>id</th><td>szablon-maila</td></tr><tr><th>nazwa</th><td>Szablon zapytania grupowego (EN)</td></tr><tr><th>ostatnia_aktualizacja</th><td>2026-07-31</td></tr></tbody></table></div></details>
<p>Wysłać ten sam mail do 23 obiektów równolegle, podmieniając [pola]. Wersja uniwersalna pod 4 apartamenty; przy Sportchalet/Glemm Lodge dopisać pytanie o zajęcie całego obiektu.</p>
<hr>
<p><strong>Subject:</strong> Group inquiry — 4 apartments, week 1623 Jan 2027 (14 persons)</p>
<p>Dear [Sir or Madam / imię gospodarza],</p>
<p>We are a group of four families from Poland (14 persons in total: 8 adults, 4 teenagers and 2 children) planning a ski week in Saalbach in January 2027.</p>
<p>We would like to ask about availability and a group offer for:</p>
<ul><li><strong>4 apartments</strong> (2× for 4 persons: 2 adults + 2 teenagers; 2× for 3 persons: 2 adults + 1 child)</li><li><strong>Arrival Sat 16 January departure Sat 23 January 2027</strong> (7 nights)</li><li>Alternative dates: 916 January 2027</li></ul>
<p>Could you please send us:</p>
<ol><li>Availability for these dates and apartment types,</li><li>Your best total price for the group (incl. final cleaning and taxes),</li><li>Deposit and cancellation terms.</li></ol>
<p>Since we are booking four apartments for a full week directly with you, we would appreciate a group rate if possible.</p>
<p>Best regards, [Imię i nazwisko] [Telefon / e-mail]</p>
<hr>
<h2>Notatki taktyczne</h2>
<ul><li>Wysyłać z jednego "kontaktowego" adresu — jedna osoba negocjuje za grupę.</li><li>Nie podawać budżetu w pierwszym mailu; najpierw ich oferta.</li><li>Po otrzymaniu 2 ofert można uczciwie napisać "we received a comparable offer at X €" — w Alpach to normalna praktyka.</li><li>Prosić o ofertę mailem (pisemnie), nie telefonicznie.</li></ul>
<footer>Wygenerowane z bundle'a OKF przez <code>gen_pages.py</code> — nie edytuj
tych plików, edytuj <code>.md</code> i przegeneruj.</footer>
</body>
</html>