/* VORSCHAU Portal-Rahmen (statisch, Beispieldaten). Nutzt Tokens und Schriften aus ../landing.css */
body{background:var(--cream)}
.app{display:grid;grid-template-columns:272px 1fr;min-height:100vh}
.side{background:var(--ink);color:rgba(255,255,255,.78);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:1.1rem .9rem;overflow:auto}
.side__brand{display:flex;align-items:center;gap:.7rem;padding:.3rem .5rem 1.1rem;text-decoration:none;color:#fff}
.side__brand img{height:34px;width:34px}
.side__brand strong{font-family:var(--font-display);font-size:1.1rem;display:block;line-height:1.1}
.side__brand span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.nav-group{margin-top:1rem}
.nav-group>h4{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);padding:0 .7rem;margin-bottom:.35rem;font-weight:600}
.nav-item{display:flex;align-items:center;gap:.7rem;width:100%;padding:.62rem .8rem;border-radius:12px;color:rgba(255,255,255,.78);text-decoration:none;font-weight:600;font-size:.95rem;border:0;background:none;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s,color .15s,transform .1s;min-height:44px}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item:active{transform:scale(.98)}
.nav-item.is-active{background:rgba(201,168,76,.18);color:#fff;box-shadow:inset 3px 0 0 var(--brass)}
.nav-item svg{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-item .count{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;background:var(--brass);color:var(--ink);border-radius:20px;padding:.05em .55em;font-weight:700}
.side__foot{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12);font-size:.85rem}
.side__foot b{color:#fff;display:block}
.main{min-width:0}
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1rem;padding:.8rem 1.6rem;background:rgba(250,247,241,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);min-height:68px}
.burger{display:none}
.crumbs{font-family:var(--font-mono);font-size:.74rem;color:var(--slate);letter-spacing:.04em;text-transform:uppercase}
.crumbs b{color:var(--ink)}
.top__sp{flex:1}
.hotel-switch{position:relative}
.hotel-btn{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:40px;padding:.5rem 1rem;font:600 .92rem var(--font-body);cursor:pointer;color:var(--ink);min-height:44px;transition:border-color .15s,box-shadow .15s}
.hotel-btn:hover{border-color:var(--brass);box-shadow:var(--shadow-sm)}
.hotel-btn .dot{width:9px;height:9px;border-radius:50%;background:var(--teal)}
.hotel-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:270px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:.4rem;display:none;z-index:60}
.hotel-menu.open{display:block}
.hotel-menu button{display:flex;width:100%;align-items:center;gap:.6rem;padding:.65rem .8rem;border:0;background:none;border-radius:10px;font:600 .92rem var(--font-body);cursor:pointer;text-align:left;color:var(--ink);min-height:44px}
.hotel-menu button:hover{background:var(--cream)}
.hotel-menu small{display:block;font-weight:400;color:var(--slate);font-size:.78rem}
.hotel-menu hr{border:0;border-top:1px solid var(--line);margin:.3rem 0}
.content{padding:2rem 1.6rem 5rem;max-width:1100px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.page-head h1{font-size:clamp(1.6rem,3vw,2.1rem)}
.page-head p{color:var(--slate);margin-top:.3rem}
.view{display:none}.view.is-active{display:block}
.tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--line);margin-bottom:1.6rem;overflow-x:auto}
.tab{border:0;background:none;padding:.8rem 1.1rem;font:700 .93rem var(--font-body);color:var(--slate);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap;min-height:44px;transition:color .15s}
.tab:hover{color:var(--ink)}
.tab.is-active{color:var(--ink);border-bottom-color:var(--brass)}
.tab .count{font-family:var(--font-mono);font-size:.7rem;background:var(--gold-soft);color:var(--brass-dark);border-radius:20px;padding:.1em .6em;margin-left:.4em}
.tabpane{display:none}.tabpane.is-active{display:block}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.6rem}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm)}
.stat span{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.stat strong{display:block;font-family:var(--font-display);font-size:1.9rem;margin-top:.2rem}
.stat em{font-style:normal;font-size:.8rem;color:var(--teal);font-weight:600}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow-sm);margin-bottom:1.4rem}
.panel>h2,.panel>h3{font-size:1.15rem;margin-bottom:.9rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.progress{height:8px;background:var(--cream);border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brass),var(--teal));border-radius:20px;transition:width .4s}
.check{list-style:none;padding:0;margin:1rem 0 0}
.check li{display:flex;align-items:center;gap:.8rem;padding:.6rem 0;border-top:1px solid var(--line);margin:0}
.check .tick{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;display:grid;place-items:center;font-size:.8rem;color:#fff}
.check .done .tick{background:var(--teal);border-color:var(--teal)}
.check .done span.t{color:var(--slate);text-decoration:line-through}
.check .btn{margin-left:auto}
.chip{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.25em .7em;border-radius:30px}
.chip--ok{background:var(--teal-soft);color:var(--teal)}
.chip--wait{background:var(--gold-soft);color:var(--brass-dark)}
.chip--err{background:#fbeae9;color:#b3261e}
.chip--mute{background:#eceef2;color:var(--slate)}
.toolbar{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.search{flex:1;min-width:200px;position:relative}
.search input{width:100%;padding:.7rem 1rem .7rem 2.5rem;border:1.5px solid var(--line);border-radius:40px;font:inherit;background:#fff;min-height:44px;transition:border-color .15s,box-shadow .15s}
.search input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(201,168,76,.25)}
.search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--slate);fill:none;stroke-width:2}
.row{display:grid;grid-template-columns:1fr auto;gap:.8rem 1rem;padding:1rem 0;border-top:1px solid var(--line);align-items:start}
.row:first-child{border-top:0}
.row h4{font-family:var(--font-body);font-size:1rem;font-weight:700;letter-spacing:0}
.row p{color:var(--slate);font-size:.92rem;margin-top:.2rem}
.row .acts{display:flex;gap:.4rem}
.row .edit{grid-column:1/-1;display:none}
.row.editing .edit{display:block}
.row.editing .view-txt{display:none}
.field{display:block;margin-bottom:.8rem}
.field>span{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--slate);margin-bottom:.3rem;font-weight:600}
.field input,.field textarea,.field select{width:100%;padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:12px;font:inherit;background:#fff;min-height:44px}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(201,168,76,.25)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn--danger{background:#fff;border-color:#e9b9b6;color:#b3261e}
.btn--danger:hover{background:#b3261e;color:#fff;border-color:#b3261e}
.btn--icon{padding:.5rem;min-width:44px;min-height:44px;border-radius:12px;background:transparent;border:1px solid transparent;color:var(--slate)}
.btn--icon:hover{background:var(--cream);border-color:var(--line);color:var(--ink)}
.btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.spin{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.drop{border:2px dashed var(--line);border-radius:var(--radius);background:#fff;padding:2.2rem 1rem;text-align:center;transition:border-color .15s,background .15s;cursor:pointer}
.drop:hover,.drop.over{border-color:var(--brass);background:var(--gold-soft)}
.drop strong{display:block;font-family:var(--font-display);font-size:1.15rem;margin-bottom:.2rem}
.drop small{color:var(--slate)}
.file{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;align-items:center;padding:.9rem 0;border-top:1px solid var(--line)}
.file:first-child{border-top:0}
.file small{color:var(--slate)}
.file .progress{grid-column:1/-1}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.setcard{display:flex;flex-direction:column;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer;text-align:left;font:inherit}
.setcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--brass)}
.setcard:active{transform:scale(.99)}
.setcard svg{width:26px;height:26px;stroke:var(--brass-dark);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.setcard h3{font-size:1.05rem}
.setcard p{font-size:.88rem;color:var(--slate)}
.code{background:var(--ink);color:#e9e6da;border-radius:12px;padding:1rem 1.1rem;font-family:var(--font-mono);font-size:.78rem;overflow:auto;white-space:pre;position:relative}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line)}
td{padding:.8rem .5rem;border-bottom:1px solid var(--line)}
tr:hover td{background:var(--cream)}
.savebar{position:fixed;left:272px;right:0;bottom:0;z-index:70;background:var(--ink);color:#fff;padding:.9rem 1.6rem;display:flex;align-items:center;gap:1rem;transform:translateY(110%);transition:transform .25s}
.savebar.show{transform:none}
.savebar span{flex:1;font-weight:600}
#toasts{position:fixed;right:1.2rem;bottom:1.2rem;z-index:100;display:flex;flex-direction:column;gap:.6rem}
.toast{background:var(--ink);color:#fff;border-left:4px solid var(--brass);padding:.8rem 1.1rem;border-radius:12px;box-shadow:var(--shadow);font-weight:600;font-size:.92rem;animation:ti .25s}
.toast.ok{border-left-color:#4fb08f}
@keyframes ti{from{opacity:0;transform:translateY(10px)}}
dialog{border:0;border-radius:var(--radius);padding:1.6rem;max-width:440px;width:calc(100% - 2rem);box-shadow:0 30px 80px rgba(21,23,43,.35)}
dialog::backdrop{background:rgba(21,23,43,.5)}
dialog h3{margin-bottom:.5rem}
dialog p{color:var(--slate);margin-bottom:1.2rem}
dialog .acts{display:flex;gap:.6rem;justify-content:flex-end}
.tabbar{display:none}
.scrim{display:none}
.banner{background:var(--gold-soft);border:1px solid #e6d9aa;border-radius:12px;padding:.7rem 1rem;font-size:.88rem;margin-bottom:1.4rem}
@media (max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;z-index:90;left:0;top:0;width:280px;transform:translateX(-105%);transition:transform .25s}
  .side.open{transform:none}
  .scrim.open{display:block;position:fixed;inset:0;background:rgba(21,23,43,.5);z-index:80}
  .burger{display:inline-grid;place-items:center}
  .top{padding:.6rem 1rem}.crumbs{display:none}
  .content{padding:1.4rem 1rem 6rem}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:.3rem .2rem calc(.3rem + env(safe-area-inset-bottom))}
  .tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;font:700 .66rem var(--font-body);color:var(--slate);padding:.45rem 0;min-height:48px;cursor:pointer}
  .tabbar button.is-active{color:var(--brass-dark)}
  .tabbar svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .savebar{left:0;bottom:60px}
  #toasts{bottom:72px}
  .cards{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}
}

/* ---- Ergänzungen für die echten Seiten ---- */
.status{margin-top:.8rem;font-weight:600;font-size:.92rem;min-height:1.2em}
.status.ok{color:var(--teal)}.status.err{color:#b3261e}
details.more{margin:.2rem 0 1rem;border:1px dashed var(--line);border-radius:12px;padding:.2rem .9rem}
details.more summary{cursor:pointer;font-weight:700;padding:.7rem 0;min-height:44px;display:flex;align-items:center}
details.more[open]{padding-bottom:.6rem}
.field select[multiple]{min-height:130px}
.field small{display:block;color:var(--slate);font-size:.82rem;margin-top:.3rem}
.checkline{display:flex;gap:.7rem;align-items:center;font-weight:600;margin:.4rem 0 .2rem;min-height:44px}
.checkline input{width:20px;height:20px;accent-color:var(--brass-dark)}
.pager{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;color:var(--slate);font-size:.9rem;margin-top:1rem}
.pager .is-off{opacity:.4;pointer-events:none}
.row .meta{font-family:var(--font-mono);font-size:.72rem;color:var(--slate-soft);margin-top:.35rem}
.empty{text-align:center;padding:2rem 1rem;color:var(--slate)}
.empty strong{display:block;font-family:var(--font-display);font-size:1.15rem;color:var(--ink);margin-bottom:.3rem}
.csvprev{display:none;margin:0 0 1rem;padding:.9rem 1rem;background:var(--cream);border:1px solid var(--line);border-radius:12px;font-size:.88rem}
.drop input[type=file]{display:none}
.drop .picked{display:block;margin-top:.6rem;font-weight:700;color:var(--teal)}
.ul-plain{padding-left:1.1rem;color:var(--slate);font-size:.93rem}
.side__foot a{color:var(--brass)}
.nav-item .count{display:none}
/* echte Seiten: Links statt Buttons in Tabbar/Hotelmenü */
.hotel-menu a{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;border-radius:10px;font:600 .92rem var(--font-body);color:var(--ink);text-decoration:none;min-height:44px}
.hotel-menu a:hover{background:var(--cream)}
.hotel-menu a svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.hotel-menu .dot2{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.nav-item svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.btn--icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9}
.tabbar a{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;font:700 .66rem var(--font-body);color:var(--slate);padding:.45rem 0;min-height:48px;text-decoration:none}
.tabbar a.is-active{color:var(--brass-dark)}
.tabbar a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn svg{flex-shrink:0}

/* ---- H48: Meldungen, Formulare, Tabellen, Codeblöcke ---- */
.alert{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1.1rem;border-radius:12px;margin-bottom:1.2rem;border:1px solid var(--line);background:#fff;font-size:.95rem}
.alert--ok{background:var(--teal-soft);border-color:#c5ded5;color:#1d4f45}
.alert--err{background:#fbeae9;border-color:#efc4c1;color:#8c1d18}
.alert--info{background:var(--gold-soft);border-color:#e6d9aa;color:#5d4a14}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}
@media (max-width:760px){.form-grid{grid-template-columns:1fr}}
.field .ro{font-family:var(--font-mono);font-size:.85rem;color:var(--slate);padding:.6rem 0}
.field input:disabled{background:var(--cream);color:var(--slate)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.2rem;font-size:.92rem}
.kv>span:nth-child(odd){font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);align-self:center}
.mono{font-family:var(--font-mono);font-size:.85em}
.table-wrap{overflow-x:auto}
.codeblock{position:relative;margin:.4rem 0 1.1rem}
.codeblock pre{background:var(--ink);color:#e9e6da;border-radius:12px;padding:1rem 1.1rem;font-family:var(--font-mono);font-size:.78rem;overflow:auto;margin:0;white-space:pre-wrap;word-break:break-word}
.codeblock .btn{position:absolute;right:.5rem;top:.5rem}
.codeblock+.hint,.hint{font-size:.85rem;color:var(--slate);margin:-.5rem 0 1.1rem}
.label-s{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--slate);font-weight:600;display:block;margin-bottom:.2rem}
.linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.4rem}
@media (max-width:860px){.linkcards{grid-template-columns:1fr}}
.hotel-card{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;align-items:center;padding:1rem 0;border-top:1px solid var(--line)}
.hotel-card:first-child{border-top:0}
.hotel-card h4{font-family:var(--font-body);font-size:1.02rem;font-weight:700;letter-spacing:0}
.hotel-card small{color:var(--slate)}
.hotel-card .acts{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:620px){.hotel-card{grid-template-columns:1fr}.hotel-card .acts{justify-content:flex-start}}
.inline-form{display:inline}

/* ---- H50: Widget-Design mit Live-Vorschau ---- */
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:1.4rem;align-items:start}
@media (max-width:980px){.split{grid-template-columns:1fr}}
.sticky{position:sticky;top:calc(var(--header-h) + 14px)}
@media (max-width:980px){.sticky{position:static}}
.color-row{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.2rem}
@media (max-width:560px){.color-row{grid-template-columns:1fr}}
.color-field{display:flex;gap:.6rem;align-items:center}
.color-field input[type=color]{width:46px;height:44px;padding:2px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;flex-shrink:0}
.color-field input[type=text]{flex:1;font-family:var(--font-mono)}
.stage{background:repeating-conic-gradient(#f1ede2 0 25%,#faf7f1 0 50%) 0 0/20px 20px;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem}
.pv-launcher{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.1rem;border-radius:40px;font-weight:700;font-size:.92rem;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.pv-launcher i{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.35);display:grid;place-items:center;font-style:normal;font-size:.8rem}
.pv-window{margin-top:1rem;border-radius:16px;overflow:hidden;border:1.5px solid;box-shadow:0 14px 30px rgba(0,0,0,.18)}
.pv-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1.5px solid}
.pv-head div{display:flex;align-items:center;gap:.6rem;font-weight:700}
.pv-head img{height:28px;width:auto;border-radius:6px;display:none}
.pv-body{padding:.9rem;display:flex;flex-direction:column;gap:.55rem;min-height:130px}
.pv-msg{max-width:82%;padding:.55rem .8rem;border-radius:14px;font-size:.88rem;line-height:1.4}
.pv-msg.bot{border:1px solid;align-self:flex-start}
.pv-msg.me{align-self:flex-end}
.pv-input{display:flex;gap:.5rem;padding:.6rem .8rem;border-top:1.5px solid;font-size:.85rem}
.pv-input span{flex:1;opacity:.55}

/* H52 Wissen: Fragen ohne Antwort, Bearbeiten */
.btn--icon.is-text{width:auto;padding:0 .7rem;font-size:.82rem;font-weight:700}
.unans{border-left:3px solid var(--brass,#b8893a)}
.unans .row h4{font-weight:600}
.unans .cnt{font-family:var(--font-mono);font-size:.72rem;color:var(--slate-soft)}
#faqNewBox.is-edit h2::after{content:" bearbeiten";}
/* H53 Kalender */
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;font-size:.82rem}
.calgrid .dn{text-align:center;font-family:var(--font-mono);font-size:.68rem;color:var(--slate-soft);padding:.2rem 0;text-transform:uppercase}
.calgrid .d{min-height:3.4rem;border-radius:10px;border:1px solid var(--line);padding:.3rem .4rem;background:#fff;color:inherit;text-decoration:none;display:block}
.calgrid a.d:hover{border-color:var(--brass)}
.calgrid .d b{display:block;font-size:.95rem}
.calgrid .d small{font-size:.7rem}
.calgrid .d--out{background:var(--cream);color:var(--slate-soft)}
.calgrid .d--free{background:var(--teal-soft);border-color:#c5ded5}
.calgrid .d--busy{background:#fbeae9;border-color:#efc4c1}
.calgrid .d--closed{background:#eceef2}
.dayrow{display:grid;grid-template-columns:130px 1fr;gap:.4rem 1rem;padding:.9rem 0;border-top:1px solid var(--line);scroll-margin-top:90px}
.dayrow:first-child{border-top:0}
.dayrow form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}
.dayrow .field{margin:0}
.dayrow .field input[type=time]{width:8rem}
@media(max-width:700px){.dayrow{grid-template-columns:1fr}}
/* H56 Rechnungsansicht */
.paper{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(1rem,3vw,2rem);box-shadow:0 6px 24px rgba(10,22,40,.06)}
.paper .p-head{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.4rem}
.paper .p-head img{width:64px;height:64px;border-radius:12px;display:block;margin-bottom:.5rem}
.paper .p-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1rem}
.paper .p-lab{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-soft)}
.paper table{margin-top:.4rem}
.paper td.r,.paper th.r{text-align:right}
.paper .p-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--slate)}
@media(max-width:760px){.paper .p-cols,.paper .p-foot{grid-template-columns:1fr}}
/* H56 schlanker Rahmen (Tarifwahl, erstes Setup) */
.shell--bare{background:var(--cream)}
.bare-top{display:flex;align-items:center;gap:1rem;padding:.8rem clamp(1rem,4vw,2.4rem);background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.bare-top .side__brand{color:var(--ink);padding:0}
.bare-top__sp{flex:1}
.bare-top__user{font-family:var(--font-mono);font-size:.78rem;color:var(--slate)}
.bare-main{max-width:1040px;margin:0 auto;padding:clamp(1.2rem,4vw,2.6rem) clamp(1rem,4vw,2rem) 3rem}
.planpick{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}
.planpick label.plan-card{display:flex;flex-direction:column;cursor:pointer;position:relative}
.planpick label.plan-card input{position:absolute;opacity:0;pointer-events:none}
.planpick label.plan-card:has(input:checked){border-color:var(--brass);box-shadow:0 0 0 3px rgba(201,168,76,.28)}
.planpick label.plan-card:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.planpick .pick{margin-top:auto;padding-top:1rem;font-weight:700;color:var(--brass-dark)}
.planpick label.plan-card:has(input:checked) .pick::before{content:"✓ "}
/* H56 Anmelde- und Konto-Seiten */
.shell--auth{background:var(--cream);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem}
.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.4rem,4vw,2.2rem);box-shadow:0 10px 40px rgba(10,22,40,.08)}
.auth-card .auth-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem;text-decoration:none;color:var(--ink)}
.auth-card .auth-brand img{height:40px;width:40px;border-radius:10px}
.auth-card .auth-brand strong{font-family:var(--font-display);font-size:1.15rem;display:block;line-height:1.1}
.auth-card .auth-brand span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-soft)}
.auth-card h1{font-size:1.6rem;margin-bottom:.3rem}
.auth-card .lead{color:var(--slate);margin-bottom:1.2rem;font-size:.95rem}
.auth-card .btn{width:100%;justify-content:center}
.auth-card .alt{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:1rem;font-size:.9rem}
.auth-card .alt a{color:var(--brass-dark);font-weight:600}
.auth-card .sep{display:flex;align-items:center;gap:.8rem;margin:1.3rem 0;color:var(--slate-soft);font-size:.8rem}
.auth-card .sep::before,.auth-card .sep::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-card .legal{margin-top:1.2rem;text-align:center;font-size:.78rem;color:var(--slate-soft)}

.auth-card--wide{max-width:600px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.field .err{color:#b3261e;font-size:.85rem;margin-top:.3rem}
