:root{
  --bg:#e9eff6; --bg2:#eef3f9;
  --glass:rgba(255,255,255,.74); --glass2:rgba(255,255,255,.88);
  --line:rgba(20,42,72,.13); --line2:rgba(20,42,72,.07);
  --card:#ffffff; --ink:#0e1c30; --ink2:#33485f;
  --text:#16273c; --muted:#5a6e84; --faint:#7d90a4;
  --cyan:#19c3ff; --blue:#2f7bff; --gold:#ffce4d; --mint:#46e6b8;
  --de:#b45f17;          /* German – copper */
  --en:#0e7aa8;          /* English – teal-blue */
  --ro:#b46a2f;          /* Romanian – warm */
  --der:#3b82f6; --die:#ff5d9e; --das:#1faa6b;
  --der-s:#e8f0ff; --die-s:#ffe9f2; --das-s:#e6f7ef;
  --rad:26px; --rad2:18px; --rad3:13px; --max:1120px;
  --shadow:0 20px 50px rgba(20,40,70,.13);
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"SF Mono","DejaVu Sans Mono",ui-monospace,Menlo,Consolas,monospace;
}
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"SF Mono","DejaVu Sans Mono",ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--text);line-height:1.55;-webkit-text-size-adjust:100%;
  background:
   radial-gradient(900px 520px at 12% -4%, rgba(25,160,220,.16), transparent 60%),
   radial-gradient(760px 480px at 92% -8%, rgba(255,196,70,.16), transparent 58%),
   radial-gradient(760px 760px at 100% 100%, rgba(47,123,255,.10), transparent 60%),
   linear-gradient(160deg,#eff5fc 0%, var(--bg) 50%, #e3ebf4 100%);
  background-attachment:fixed;min-height:100vh}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:8px}
.wrap{width:min(var(--max),calc(100% - 30px));margin:0 auto}

/* topbar */
.topbar{position:sticky;top:0;z-index:60;backdrop-filter:blur(20px);background:rgba(255,255,255,.8);border-bottom:1px solid var(--line)}
.tb{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.mark,.herologo,.footlogo{flex:0 0 auto;position:relative;
  background:conic-gradient(from 140deg,var(--cyan),var(--blue),var(--gold),var(--cyan));
  box-shadow:0 6px 18px rgba(25,160,220,.4)}
.mark::before,.herologo::before,.footlogo::before{content:"";position:absolute;inset:0;background:#fff;
  clip-path:polygon(58% 10%, 32% 52%, 48% 52%, 40% 90%, 70% 44%, 52% 44%, 60% 10%);
  filter:drop-shadow(0 1px 1.5px rgba(8,20,40,.35))}
.mark{width:55px;height:55px;border-radius:17px}
.herologo{display:block;width:74px;height:74px;border-radius:21px;margin:0 auto 20px;box-shadow:0 12px 30px rgba(25,160,220,.45)}
.footlogo{width:44px;height:44px;border-radius:14px;margin:0 auto 12px}
.scrollprog{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(20,42,72,.08)}
.scrollprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--blue));border-radius:0 3px 3px 0;transition:width .08s linear}
.brand b{display:block;font-size:.98rem;letter-spacing:.2px;line-height:1.1;color:#13243a}
.brand small{display:block;color:var(--muted);font-size:.74rem}
.tb .pill{white-space:nowrap;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 12px;border-radius:999px;background:var(--glass);border:1px solid var(--line);color:#2a4a66}
.tb .pill.gold{background:rgba(255,196,70,.22);border-color:rgba(190,140,20,.45);color:#8a5600}

/* section chip nav */
.chipnav{position:sticky;top:64px;z-index:55}
.chipnav .inner{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  display:flex;gap:7px;padding:11px 0}
.chipnav .inner::-webkit-scrollbar{display:none}
.chipnav a{flex:0 0 auto;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);
  padding:8px 13px;border-radius:999px;background:var(--glass);border:1px solid var(--line);white-space:nowrap}
.chipnav a:hover{color:#0e2438;border-color:rgba(25,160,220,.5)}

/* hero */
.hero{position:relative;margin:22px auto 30px;padding:46px 40px;border-radius:var(--rad);overflow:hidden;
  background:linear-gradient(135deg,#ffffff,#e8f1fb);border:1px solid rgba(25,150,210,.28);box-shadow:var(--shadow)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(25,150,210,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(25,150,210,.08) 1px,transparent 1px);
  background-size:36px 36px;mask-image:linear-gradient(105deg,rgba(0,0,0,.7),transparent 72%)}
.hero::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,196,70,.28),transparent 62%);pointer-events:none}
.hero>*{position:relative;z-index:1}
.kick{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px;justify-content:center}
.tag{font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.06em;padding:7px 12px;border-radius:999px;
  background:rgba(255,255,255,.7);border:1px solid var(--line);color:#2a4258}
.tag.gold{background:rgba(255,196,70,.2);border-color:rgba(190,140,20,.45);color:#8a5600}
.tag.cyan{background:rgba(25,160,220,.13);border-color:rgba(25,160,220,.4);color:#0a6b95}
.hero h1{margin:0 0 14px;font-size:clamp(1.75rem,6vw,3.6rem);line-height:1.02;letter-spacing:-1.2px;font-weight:850;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;
  background:linear-gradient(120deg,#12294a 28%,#0c6c9e 64%,#b9781f);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .sub{max-width:64ch;color:#3c5167;font-size:clamp(1rem,2vw,1.16rem);margin:0 auto}
.hero{text-align:center}
.hero .mod{margin-top:16px;font-family:var(--mono);font-size:.8rem;color:#5d7186;letter-spacing:.02em}
.langs{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap;justify-content:center}
.langs span{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--line);color:#33495f}
.langs span.de{color:#9a5410;border-color:rgba(180,95,23,.4)}
.langs span.en{color:#0a6b95;border-color:rgba(25,160,220,.4)}
.langs span.ro{color:#a05f23;border-color:rgba(180,106,47,.4)}

/* section panels */
main{padding-bottom:50px}
.section{margin:20px auto;scroll-margin-top:128px;padding:26px;border-radius:var(--rad);background:var(--glass);border:1px solid var(--line);box-shadow:0 14px 40px rgba(20,40,70,.1)}
.shead{display:flex;gap:15px;align-items:flex-start;margin-bottom:20px}
.sno{width:46px;height:46px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;font-family:var(--mono);font-weight:800;font-size:1.05rem;color:#fff;
  background:linear-gradient(135deg,var(--cyan),var(--blue));box-shadow:0 8px 20px rgba(25,160,220,.4)}
.shead h2{margin:0;font-size:clamp(1.3rem,3.2vw,1.95rem);line-height:1.08;letter-spacing:-.5px;font-weight:800;color:#14263c}
.shead p{margin:6px 0 0;color:var(--muted);font-size:.95rem}

/* objectives – modern list */
.olist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.olist li{display:flex;gap:15px;align-items:flex-start;padding:15px 4px;border-bottom:1px solid var(--line2)}
.olist li:last-child{border-bottom:none}
.olist .mk{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-weight:800;font-size:.84rem;color:#04101d;background:linear-gradient(135deg,var(--cyan),var(--blue));box-shadow:0 0 16px rgba(25,195,255,.35)}
.olist .ot{font-size:1rem;color:#1d3047;padding-top:4px;line-height:1.5}
.olist .ot b{color:var(--de);font-weight:800;margin-right:5px}

/* callout / notice */
.notice{background:rgba(255,206,77,.1);border:1px solid rgba(255,206,77,.34);border-radius:var(--rad2);padding:14px 16px;color:#ffe9b8;font-size:.94rem;margin-bottom:16px}
.notice b{color:#fff}

/* legend */
.legend{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 16px;font-family:var(--mono);font-size:.8rem;color:#1d3047;font-weight:800}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:13px;height:13px;border-radius:4px}

/* vocab */
.vgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.term{position:relative;background:var(--card);color:var(--ink);border-radius:var(--rad2);padding:18px 20px 18px 23px;border:1px solid #dcebf6;box-shadow:0 12px 30px rgba(4,16,32,.26);overflow:hidden}
.term::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px}
.term.der::before{background:var(--der)} .term.die::before{background:var(--die)} .term.das::before{background:var(--das)}
.term .head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.term .art{font-weight:800;font-size:1.2rem;letter-spacing:-.2px}
.term.der .art{color:var(--der)} .term.die .art{color:#c1185c} .term.das .art{color:#138a55}
.term .w{font-size:1.34rem;font-weight:800;color:#0d2138;letter-spacing:-.4px}
.term .plural{margin-top:11px;font-family:var(--mono);font-size:.9rem;color:#5b7489}
.term .plural b{color:#42546a;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;margin-right:7px;font-weight:800}
.term .pron{margin-top:9px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.94rem;color:#b65a22;font-weight:600;font-style:italic}
.term .pron svg{width:17px;height:17px;flex:0 0 auto;fill:#9aa7b4}
.term .glo{margin-top:11px;font-size:.97rem}
.term .glo .ro{color:#b46a2f;font-style:italic;font-weight:800}
.term .glo .en{color:#1466a0;font-weight:400}
.term .glo .s{color:#c3d2de;margin:0 5px}
.term .ex{margin-top:13px;border-top:1px dashed #d9e6f0;padding-top:13px}
.term .ex .de{font-size:1rem;color:#13283f;line-height:1.5}
.term .ex .de .kw{color:#b65a22;font-weight:800}
.term .ex .rox{color:#8a6a44;font-style:italic;font-size:.94rem;margin-top:6px;line-height:1.5}

/* tables */
.tbl{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--card);color:var(--ink);border-radius:var(--rad2);overflow:hidden;font-size:.9rem;box-shadow:0 12px 30px rgba(4,16,32,.26)}
.tbl th{text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#5a748c;background:#f3f8fc;padding:11px 14px;border-bottom:1px solid #e3eef7}
.tbl td{padding:12px 14px;border-bottom:1px solid #eef4f9;vertical-align:top;word-break:break-word;overflow-wrap:anywhere}
.tbl tr:last-child td{border-bottom:none}
.tbl .de{font-weight:700;color:#10243b}
.tbl .ro{color:#b46a2f;font-style:italic}
.tbl .en{color:#0a6fa8}
.tbl .bst{font-family:var(--mono);font-size:.82rem;color:#0a6fa8}

/* grammar */
.panel-w{background:var(--card);color:var(--ink);border-radius:var(--rad2);padding:18px;box-shadow:0 12px 30px rgba(4,16,32,.26)}
.gtopic{font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:#0a6fa8;margin-bottom:12px}
.exline{margin:9px 0;padding:11px 14px;background:#eef9ff;border-left:4px solid var(--cyan);border-radius:10px;color:#10213a;font-size:.94rem}
.gnotes{margin:14px 0 0;padding-left:18px;color:#46607a;font-size:.9rem;display:grid;gap:6px}
/* grammar reframed */
.gintro{color:#3a5067;font-size:.96rem;margin:0 0 16px}
.grule{display:grid;gap:11px}
.grule .row{background:var(--card);color:var(--ink);border-radius:var(--rad2);padding:15px 16px;border:1px solid #dceaf5;box-shadow:0 10px 26px rgba(4,16,32,.22)}
.grule .name{font-family:var(--mono);font-weight:800;font-size:.92rem;color:#0a6fa8;margin-bottom:6px}
.grule .when{color:#42586f;font-size:.9rem;margin-bottom:10px}
.grule .ex{background:#eef9ff;border-left:4px solid var(--cyan);border-radius:9px;padding:9px 12px;font-size:.93rem;color:#10213a;font-weight:600}
.grule .sens{color:#8a6a44;font-style:italic;font-size:.88rem;margin-top:7px}

/* austria reframed */
.aintro{color:#3a5067;font-size:.96rem;margin:0 0 16px}
.ainfo{display:grid;gap:11px}
.ainfo .row{display:flex;gap:14px;align-items:flex-start;background:var(--glass2);border:1px solid var(--line);border-radius:var(--rad2);padding:14px 16px}
.ainfo .t{flex:0 0 auto;font-family:var(--mono);font-weight:800;font-size:.84rem;color:var(--de);min-width:118px;padding-top:1px}
.ainfo .d{color:#33485f;font-size:.92rem;line-height:1.5}

/* austria */
.akey{margin-top:14px;border-radius:13px;padding:14px 16px;background:linear-gradient(135deg,rgba(25,195,255,.14),rgba(47,123,255,.12));border:1px solid rgba(25,195,255,.3)}
.akey .l{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#0a6b95;margin-bottom:6px}
.akey b{font-size:.98rem;color:#15273d}

/* text */
.textblk .de{background:var(--card);color:#15283d;border-radius:var(--rad2) var(--rad2) 0 0;padding:18px;font-size:.96rem;line-height:1.62;text-align:justify;box-shadow:0 12px 30px rgba(4,16,32,.26)}
.textblk .ro{background:#eef4f9;color:#42586f;border-radius:0 0 var(--rad2) var(--rad2);padding:18px;font-size:.88rem;line-height:1.6;text-align:justify}
.textblk .tag2{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px}
.textblk .de .tag2{color:#0a6fa8} .textblk .ro .tag2{color:#b46a2f}

/* dialog */
.dlg{display:grid;gap:12px}
.turn{display:grid;grid-template-columns:96px 1fr;gap:13px;background:var(--card);color:var(--ink);border-radius:var(--rad2);padding:15px;border:1px solid #dceaf5;box-shadow:0 10px 26px rgba(4,16,32,.24)}
.turn .who{font-family:var(--mono);font-size:.74rem;font-weight:800;letter-spacing:.04em}
.turn.a .who{color:var(--der)} .turn.b .who{color:#0a6fa8}
.turn .de{font-size:.97rem;color:#13283f}
.turn .ro{font-size:.9rem;color:#9a6638;font-style:italic;margin-top:6px}
.turn .en{font-size:.78rem;color:#3a7fb0;margin-top:5px}

/* phrases */
.plist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.plist li{background:var(--card);color:var(--ink);border:1px solid #dceaf5;border-radius:var(--rad3);padding:13px 15px;box-shadow:0 8px 22px rgba(4,16,32,.2)}
.plist .de{display:block;font-weight:700;color:#11243a;font-size:.94rem}
.plist .ro{display:block;color:#b46a2f;font-style:italic;font-size:.86rem;margin-top:4px}
.plist .en{display:block;color:#0a6fa8;font-size:.84rem;margin-top:2px}

/* diagnose */
.diag{display:grid;gap:11px}
.dstep{display:flex;gap:13px;align-items:flex-start;background:var(--glass2);border:1px solid var(--line);border-radius:var(--rad2);padding:14px 16px}
.dstep .n{width:30px;height:30px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-weight:800;color:#04101d;background:linear-gradient(135deg,var(--gold),#ffb03a)}
.dstep .de{font-weight:700;font-size:.95rem;color:#15273d}
.dstep .goal{font-size:.84rem;color:var(--muted);margin-top:3px}

/* quiz */
.scorebar{display:inline-flex;align-items:center;gap:11px;font-family:var(--mono);font-size:.84rem;color:#33485f;
  background:var(--glass2);border:1px solid var(--line);border-radius:999px;padding:9px 18px;margin-bottom:16px}
.scorebar b{color:#b45f17;font-size:1.05rem}
.q{background:var(--card);color:var(--ink);border:1px solid #dceaf5;border-radius:var(--rad2);padding:17px 18px;margin-bottom:13px;box-shadow:0 12px 30px rgba(4,16,32,.26)}
.q .qn{font-family:var(--mono);font-size:.72rem;font-weight:800;color:#0a6fa8;letter-spacing:.05em;margin-bottom:8px}
.q .qt{font-weight:800;font-size:1rem;color:#11243a;margin-bottom:13px}
.ans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opt{display:flex;gap:10px;align-items:center;text-align:left;width:100%;font-family:inherit;font-size:.93rem;font-weight:600;color:#11243a;
  background:#f7fbfe;border:1.5px solid #cfe2f0;border-radius:13px;padding:12px 14px;cursor:pointer;transition:border-color .12s,background .12s}
.opt .key{font-family:var(--mono);font-weight:800;color:#7d96ad;flex:0 0 auto}
.opt:hover{border-color:var(--cyan)}
.opt.correct{background:#e7f8f0;border-color:#3fbf86;color:#08502f}
.opt.correct .key{color:#10a063}
.opt.wrong{background:#ffeced;border-color:#f2807f;color:#7a1c1c;cursor:not-allowed}
.opt.wrong .key{color:#d64545}
.opt.locked{cursor:default}
.qmsg{display:none;margin-top:11px;font-family:var(--mono);font-size:.74rem;color:#10a063;font-weight:700}
.q.done .qmsg{display:block}

/* recap */
.recap{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.recap li{position:relative;background:var(--glass2);border:1px solid var(--line);border-radius:var(--rad2);padding:14px 15px 14px 42px;font-size:.92rem;color:#dcecfa}
.recap li::before{content:"";position:absolute;left:15px;top:16px;width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,var(--mint),#16a37a);box-shadow:0 0 12px rgba(70,230,184,.6)}

/* footer */
footer{position:relative;overflow:hidden;border-top:1px solid var(--line);background:rgba(255,255,255,.55);backdrop-filter:blur(10px);margin-top:30px}
footer::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(38,90,150,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(38,90,150,.15) 1px,transparent 1px);
  background-size:24px 24px;background-position:center top;
  -webkit-mask:linear-gradient(180deg,transparent,#000 70%);mask:linear-gradient(180deg,transparent,#000 70%)}
footer .fi{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;padding:30px 0 34px;color:var(--muted)}
footer .meta{font-size:.78rem;color:var(--faint)}
footer .flang{margin:8px 0 2px;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--faint)}
footer .flang span{text-transform:uppercase}
footer .flang .de{color:#9a5410}
footer .flang .en{color:#0a6b95}
footer .flang .ro{color:#a05f23}
footer .sig{font-family:var(--mono);color:#b45f17;font-weight:700;font-size:.84rem;letter-spacing:.04em;margin-top:12px}

@media(max-width:780px){
  .hero{padding:30px 20px}.section{padding:20px 15px}
  .obj,.vgrid,.plist,.ans,.recap{grid-template-columns:1fr}
  .turn{grid-template-columns:1fr}
  .term .pron,.term .plural{font-size:.84rem}
}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto}}

/* ===== glossary ===== */
.gbar{position:static;background:rgba(233,239,246,.94);border-bottom:1px solid var(--line);overflow-x:hidden}
.gbar .inner{padding:13px 0 10px;box-sizing:border-box}
.gsearch{display:block;box-sizing:border-box;width:100%;max-width:100%;font-family:var(--sans);font-size:1rem;padding:13px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 6px 18px rgba(20,40,70,.06)}
.gsearch::placeholder{color:#9fb0c0}
.grow{display:flex;gap:7px;max-width:100%;overflow-x:auto;padding-top:10px;scrollbar-width:none}
.grow::-webkit-scrollbar{display:none}
.gchip{flex:0 0 auto;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#43596f;cursor:pointer;white-space:nowrap}
.gchip .n{opacity:.55;margin-left:5px}
.gchip.on{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;border-color:transparent;box-shadow:0 5px 13px rgba(25,160,220,.3)}
.gchip.str.on{background:linear-gradient(135deg,#b45f17,#d98a2b)}
.gcount{font-family:var(--mono);font-size:.82rem;color:var(--muted);margin:15px 0 13px}
.gcount b{color:var(--de)}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:11px;align-items:start;grid-auto-flow:row dense}
.gc{position:relative;background:#fff;border:1px solid #dceaf5;border-radius:14px;padding:13px 12px 11px 15px;box-shadow:0 7px 18px rgba(20,40,70,.07);overflow:hidden}
.gc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#c4cdd8}
.gc.der::before{background:var(--der)} .gc.die::before{background:var(--die)} .gc.das::before{background:var(--das)}
.gc .gn{position:absolute;top:9px;right:10px;font-family:var(--mono);font-size:.58rem;font-weight:800;color:#bccad8}
.gc .gw{font-size:.96rem;font-weight:800;color:#0d2138;line-height:1.16;letter-spacing:-.2px;word-break:break-word;padding-right:20px}
.gc .gpl{font-family:var(--mono);font-size:.64rem;color:#8295a6;margin-top:3px;font-weight:600}
.gc .gpl b{color:#a0275a;font-weight:700}
.gc .ga{font-weight:800}
.gc.der .ga{color:var(--der)} .gc.die .ga{color:#c1185c} .gc.das .ga{color:#138a55}
.gc .gp{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.71rem;color:#b65a22;font-style:italic;margin-top:6px;line-height:1.2}
.gc .gp svg{width:12px;height:12px;fill:#9aa7b4;flex:0 0 auto}
.gc .gr{font-size:.83rem;font-weight:800;color:#b46a2f;font-style:italic;margin-top:7px;line-height:1.22}
.gc .gen{font-size:.77rem;color:#1466a0;margin-top:2px;line-height:1.22}
.gc .gcat{display:inline-block;margin-top:8px;font-family:var(--mono);font-size:.58rem;font-weight:700;color:#5b748c;background:#eef3f8;border-radius:999px;padding:2px 8px}
.gc.wide{grid-column:1/-1}
/* structure cards: full width */
.gs{grid-column:1/-1;display:none;background:#fff;border:1px solid #dceaf5;border-left:5px solid var(--de);border-radius:13px;padding:13px 16px;box-shadow:0 7px 18px rgba(20,40,70,.07);position:relative}
.gs .gn{position:absolute;top:10px;right:13px;font-family:var(--mono);font-size:.58rem;font-weight:800;color:#bccad8}
.gs .sde{font-size:1rem;font-weight:800;color:#13243a}
.gs .sro{font-size:.88rem;color:#b46a2f;font-style:italic;margin-top:4px}
.gs .sen{font-size:.82rem;color:#1466a0;margin-top:2px}
.gempty{display:none;text-align:center;color:var(--muted);font-family:var(--mono);padding:40px 0}

/* ===== hub calendar tiles ===== */
.intro{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:2px 0 16px}
.daygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:13px;align-items:start}
.daycard{display:flex;flex-direction:column;background:#fff;border:1px solid #dfe9f2;border-radius:18px;overflow:hidden;text-decoration:none;
  box-shadow:0 8px 22px rgba(20,40,70,.08);transition:transform .14s,box-shadow .14s}
.daycard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(20,40,70,.16)}
.daycard .cal{position:relative;overflow:hidden;padding:16px 10px 12px;text-align:center;color:#fff;
  background:linear-gradient(150deg,#2f7bff,#19c3ff)}
.daycard .cbolt{position:absolute;right:-10px;bottom:-14px;width:78px;height:78px;pointer-events:none;
  background:rgba(255,255,255,.18);transform:rotate(12deg);
  clip-path:polygon(58% 10%,32% 52%,48% 52%,40% 90%,70% 44%,52% 44%,60% 10%)}
.daycard .lbl,.daycard .num{position:relative;z-index:1}
.daycard .cal::before,.daycard .cal::after{content:"";position:absolute;top:7px;width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.7);box-shadow:0 1px 2px rgba(0,0,0,.25)}
.daycard .cal::before{left:34%}.daycard .cal::after{right:34%}
.daycard .lbl{display:block;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.22em;opacity:.9;margin-top:6px}
.daycard .num{display:block;font-family:var(--mono);font-weight:800;font-size:2.5rem;line-height:1;margin-top:2px;letter-spacing:-1px}
.daycard .body{padding:11px 13px 14px;display:flex;flex-direction:column;gap:3px;flex:1}
.daycard .de{font-weight:800;color:#13243a;font-size:.86rem;line-height:1.22;overflow-wrap:anywhere}
.daycard .ro{color:#8a6a44;font-size:.75rem;font-style:italic;line-height:1.25;overflow-wrap:anywhere}
/* per-block accent hues */
.b1 .cal{background:linear-gradient(150deg,#2f7bff,#19c3ff)}
.b2 .cal{background:linear-gradient(150deg,#5b53e0,#5aa6ff)}
.b3 .cal{background:linear-gradient(150deg,#c0392b,#ff7a59)}
.b4 .cal{background:linear-gradient(150deg,#0f8a7e,#33d6b5)}
.b5 .cal{background:linear-gradient(150deg,#1f7a3a,#5fd07a)}
.b6 .cal{background:linear-gradient(150deg,#b8730f,#ffb24d)}
.b7 .cal{background:linear-gradient(150deg,#2b6cb0,#5ab0e8)}
.b8 .cal{background:linear-gradient(150deg,#7048b6,#b07aff)}
.b9 .cal{background:linear-gradient(150deg,#0a7d8c,#3ad0d6)}
.b10 .cal{background:linear-gradient(150deg,#a3411f,#ff8a4d)}
.b11 .cal{background:linear-gradient(150deg,#13243a,#3a6ea5)}
.daycard.glos .cal{background:linear-gradient(150deg,#b8791b,#f1b53a)}
.daycard.glos .num{letter-spacing:1px}
.daycard.glos .de{color:#9a5410}
.statline{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
