/* Jahresplan-App: nur die Leiste, Notizen und Termine. Der Plan bringt seinen eigenen Stil mit (BusinessHub, Agenturstil). */
@font-face{font-family:"Jost";src:url(/static/fonts/jost-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Jost";src:url(/static/fonts/jost-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Jost";src:url(/static/fonts/jost-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Libre Baskerville";src:url(/static/fonts/libre-baskerville-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Libre Baskerville";src:url(/static/fonts/libre-baskerville-700.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --jp-bg:#FBFAF9; --jp-karte:#FFFFFF; --jp-ink:#181818; --jp-leise:#4a4944; --jp-linie:#E5E1D8;
  --jp-gruen:#5A6144; --jp-gold:#F2CA00; --jp-gold-tief:#7a5f00; --jp-fehler:#A9552E;
  --jp-r:6px;
}
@media (prefers-color-scheme:dark){:root{
  --jp-bg:#1C1B17; --jp-karte:#242320; --jp-ink:#F2EFE9; --jp-leise:#C9C4B8; --jp-linie:#3A382F;
  --jp-gruen:#A8B287; --jp-gold-tief:#E0B400; --jp-fehler:#D97D52;
}}
[hidden]{display:none !important}
body.jp-app{margin:0;background:var(--jp-bg);color:var(--jp-ink)}

/* Anmelden */
.jp-login{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--jp-bg);color:var(--jp-ink);font:16px/1.6 "Jost",system-ui,sans-serif;padding:16px}
.jp-login-karte{width:100%;max-width:380px;background:var(--jp-karte);border:1px solid var(--jp-linie);border-radius:var(--jp-r);padding:36px 28px}
.jp-login h1{font:700 2rem/1.2 "Libre Baskerville",Georgia,serif;margin:.2em 0 .4em}
.jp-kicker{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--jp-gruen);margin:0;font-weight:600}
.jp-leise{color:var(--jp-leise)}
.jp-fehler{color:var(--jp-fehler);font-weight:500}
.jp-login form{display:grid;gap:14px;margin-top:18px}
.jp-login label,.jp-notizform label{display:grid;gap:4px;font-weight:500;font-size:.92rem}
.jp-login input,.jp-notizform textarea{font:inherit;color:inherit;background:var(--jp-bg);border:1px solid var(--jp-linie);border-radius:var(--jp-r);padding:10px 12px}
.jp-login button,.jp-notizform button,.jp-knopf{font:600 .95rem "Jost",sans-serif;background:var(--jp-gruen);color:#fff;border:0;border-radius:var(--jp-r);padding:11px 18px;cursor:pointer;text-decoration:none;display:inline-block}
@media (prefers-color-scheme:dark){.jp-login button,.jp-notizform button,.jp-knopf{color:#1C1B17}}
:focus-visible{outline:3px solid var(--jp-gold);outline-offset:2px}

/* Leiste */
.jp-leiste{position:sticky;top:0;z-index:50;background:var(--jp-karte);border-bottom:1px solid var(--jp-linie);font:15px/1.4 "Jost",sans-serif;color:var(--jp-ink)}
.jp-leiste-innen{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.jp-marke{font:700 1.05rem "Libre Baskerville",Georgia,serif}
.jp-stand{color:var(--jp-leise);font-size:.85rem}
.jp-nav{display:flex;gap:16px;margin-left:auto}
.jp-nav a,.jp-link{color:var(--jp-ink);font:500 .95rem "Jost",sans-serif;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--jp-gold)}
.jp-ab{display:flex;gap:10px;align-items:center;margin:0;color:var(--jp-leise)}

/* Notiz-Knopf an Kapiteln und Monaten */
.jp-notizknopf{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;font:500 .85rem "Jost",sans-serif;color:var(--jp-ink);background:var(--jp-karte);border:1px solid var(--jp-linie);border-radius:var(--jp-r);padding:5px 11px;cursor:pointer}
.jp-notizknopf:hover{border-color:var(--jp-gruen)}
.jp-notizknopf[data-anzahl]:not([data-anzahl="0"])::after{content:attr(data-anzahl);background:var(--jp-gold);color:#181818;border-radius:var(--jp-r);padding:0 6px;font-weight:600;font-size:.78rem}

/* Schublade */
.jp-schublade{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);z-index:60;background:var(--jp-karte);color:var(--jp-ink);border-left:1px solid var(--jp-linie);box-shadow:-12px 0 32px rgba(0,0,0,.12);display:flex;flex-direction:column;font:15px/1.55 "Jost",sans-serif}
.jp-schublade-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--jp-linie)}
.jp-schublade-titel{font:700 1.15rem/1.3 "Libre Baskerville",Georgia,serif;margin:0}
.jp-zu{font-size:1.6rem;line-height:1;background:none;border:0;color:var(--jp-ink);cursor:pointer;padding:0 4px}
.jp-notizliste{list-style:none;margin:0;padding:12px 20px;overflow:auto;flex:1;display:grid;gap:12px;align-content:start}
.jp-notiz{border:1px solid var(--jp-linie);border-radius:var(--jp-r);padding:10px 12px;background:var(--jp-bg)}
.jp-notiz-kopf{display:flex;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--jp-leise);margin-bottom:4px}
.jp-notiz-kopf strong{color:var(--jp-ink);font-weight:600}
.jp-notiz-ort{font-size:.8rem;color:var(--jp-gruen);font-weight:500}
.jp-notiz p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.jp-notiz .jp-link{font-size:.82rem;color:var(--jp-leise)}
.jp-notizform{display:grid;gap:10px;padding:16px 20px;border-top:1px solid var(--jp-linie)}
.jp-notizform textarea{resize:vertical;min-height:90px}

/* Termine */
.jp-termine{background:var(--jp-bg);color:var(--jp-ink);font:16px/1.6 "Jost",sans-serif;padding:64px 0;border-top:1px solid var(--jp-linie)}
.jp-wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.jp-termine h2{font:700 clamp(1.6rem,4vw,2.2rem)/1.2 "Libre Baskerville",Georgia,serif;margin:.2em 0 .3em}
.jp-filter{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.jp-filter button{font:500 .88rem "Jost",sans-serif;background:var(--jp-karte);color:var(--jp-ink);border:1px solid var(--jp-linie);border-radius:var(--jp-r);padding:6px 12px;cursor:pointer}
.jp-filter button[aria-pressed="true"]{background:var(--jp-ink);color:var(--jp-bg);border-color:var(--jp-ink)}
.jp-terminliste{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.jp-termin{display:grid;grid-template-columns:118px 1fr auto;gap:16px;align-items:center;background:var(--jp-karte);border:1px solid var(--jp-linie);border-left:4px solid var(--jp-farbe,var(--jp-gruen));border-radius:var(--jp-r);padding:12px 16px}
.jp-termin-datum{font-weight:600}
.jp-termin-datum small{display:block;font-weight:400;color:var(--jp-leise)}
.jp-termin-titel{font-weight:500}
.jp-termin-art{font-size:.8rem;color:var(--jp-leise)}
.jp-termin-knoepfe{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.jp-termin-knoepfe a{font:500 .85rem "Jost",sans-serif;border-radius:var(--jp-r);padding:6px 12px;text-decoration:none;white-space:nowrap}
.jp-termin-knoepfe .jp-google{background:var(--jp-gruen);color:#fff}
@media (prefers-color-scheme:dark){.jp-termin-knoepfe .jp-google{color:#1C1B17}}
.jp-termin-knoepfe .jp-ics{border:1px solid var(--jp-linie);color:var(--jp-ink)}
.jp-termin-vorbei{opacity:.55}

/* Monatsansicht wie ein Wandkalender: farbige Termine je Angebot */
.jp-werkzeug{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}
.jp-werkzeug .jp-filter{margin:0}
.jp-ansicht{display:flex;border:1px solid var(--jp-linie);border-radius:var(--jp-r);overflow:hidden}
.jp-ansicht button{font:500 .88rem "Jost",sans-serif;background:var(--jp-karte);color:var(--jp-ink);border:0;padding:6px 14px;cursor:pointer}
.jp-ansicht button[aria-pressed="true"]{background:var(--jp-ink);color:var(--jp-bg)}
.jp-kal-kopf{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.jp-kal-monat{font:700 1.35rem/1.2 "Libre Baskerville",Georgia,serif;margin:0 0 0 6px;order:3}
.jp-kal-pfeil[data-schritt="1"]{order:2}
.jp-kal-pfeil{font-size:1.4rem;line-height:1;width:38px;height:38px;border:1px solid var(--jp-linie);background:var(--jp-karte);color:var(--jp-ink);border-radius:var(--jp-r);cursor:pointer}
.jp-kal-raster{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--jp-linie);border-left:1px solid var(--jp-linie);background:var(--jp-karte);border-radius:var(--jp-r);overflow:hidden}
.jp-kal-wt{font:600 .75rem "Jost",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--jp-leise);padding:8px;border-right:1px solid var(--jp-linie);border-bottom:1px solid var(--jp-linie);text-align:center}
.jp-kal-tag{min-height:104px;padding:4px;border-right:1px solid var(--jp-linie);border-bottom:1px solid var(--jp-linie);display:flex;flex-direction:column;gap:3px;min-width:0}
.jp-kal-tag.jp-fremd{background:var(--jp-bg)}
.jp-kal-tag.jp-fremd .jp-kal-nr{color:var(--jp-leise);opacity:.6}
.jp-kal-nr{font:500 .8rem "Jost",sans-serif;padding:2px 4px;align-self:flex-start;border-radius:var(--jp-r)}
.jp-kal-tag.jp-heute .jp-kal-nr{background:var(--jp-gruen);color:#fff}
.jp-kal-termin{display:block;width:100%;text-align:left;font:500 .76rem/1.3 "Jost",sans-serif;color:#fff;background:var(--jp-farbe);border:0;border-radius:4px;padding:3px 6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jp-kal-termin.jp-hell{color:#181818}
.jp-kal-termin.jp-weiter{opacity:.75}
.jp-kal-detail{margin-top:14px;background:var(--jp-karte);border:1px solid var(--jp-linie);border-left:4px solid var(--jp-farbe,var(--jp-gruen));border-radius:var(--jp-r);padding:14px 16px;display:grid;gap:8px}
.jp-kal-detail h4{margin:0;font:700 1.05rem "Libre Baskerville",Georgia,serif}
.jp-kal-detail .jp-termin-knoepfe{justify-content:flex-start}
@media (max-width:640px){
  .jp-kal-tag{min-height:64px;padding:2px}
  .jp-kal-wt{padding:6px 0;font-size:.68rem;letter-spacing:0}
  .jp-kal-termin{font-size:0;height:7px;padding:0;border-radius:3px}
}
@media (max-width:640px){
  .jp-termin{grid-template-columns:1fr;gap:6px}
  .jp-termin-knoepfe{justify-content:flex-start}
  .jp-leiste-innen{gap:12px;padding:8px 16px}
  .jp-stand,.jp-ab span{display:none}
  .jp-nav{margin-left:auto;gap:12px}
}
