:root{--navy:#0b3558;--blue:#174f79;--sky:#eaf3f8;--bg:#f3f6f8;--white:#fff;--ink:#172433;--muted:#647482;--line:#dce5eb;--green:#24775b;--red:#a53838;--amber:#a36b00;--radius:16px;--shadow:0 12px 35px rgba(18,49,72,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.app-topbar,.student-header{position:sticky;top:0;z-index:50;height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.app-brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:900}.app-brand span{display:flex;flex-direction:column;line-height:1.05}.app-brand small{font-size:.7rem;color:var(--muted);margin-top:4px}.top-actions,.student-header nav{display:flex;align-items:center;gap:16px}.top-actions form,.student-header nav form{margin:0}.app-menu{display:none;border:0;background:transparent;font-size:1.5rem}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 68px)}.sidebar{background:#0d2d47;color:#fff;padding:24px 14px}.sidebar nav{display:grid;gap:5px}.sidebar a{color:#d7e4ec;padding:11px 13px;border-radius:10px;font-weight:700}.sidebar a:hover{background:rgba(255,255,255,.09);color:#fff}.app-main{padding:28px;min-width:0}.student-main{width:min(1100px,calc(100% - 30px));margin:28px auto 90px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-heading h1{margin:0;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.035em}.panel,.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel h2,.card h2{margin-top:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;color:var(--ink);box-shadow:var(--shadow)}.stat-card strong{font-size:2.2rem;line-height:1;color:var(--navy)}.stat-card span{color:var(--muted);font-weight:700;margin-top:8px}.dashboard-grid,.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.quick-grid{grid-template-columns:repeat(4,1fr)}.quick-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:grid;gap:7px;color:var(--ink)}.quick-card span{color:var(--muted)}.focus-card{background:linear-gradient(135deg,var(--navy),#1c5c87);color:#fff}.focus-card .eyebrow,.focus-card p{color:#d6e7f1}.timeline{display:grid}.timeline-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:18px;padding:16px 0;border-top:1px solid var(--line);align-items:center}.timeline-row:first-child{border-top:0}.timeline-row time{font-size:1.35rem;font-weight:900;color:var(--navy)}.timeline-row div{display:grid}.timeline-row span,.timeline-row small{color:var(--muted)}.alert{padding:13px 16px;border-radius:12px;margin:0 0 18px}.alert-success{background:#e6f6ef;color:#155b43}.alert-error{background:#fdecec;color:#8a2929}.alert-info{background:#eaf3f8;color:#184e72}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:12px 17px;font-weight:800;cursor:pointer;background:#e7edf1;color:var(--ink)}.button.primary{background:var(--navy);color:#fff}.button.small{padding:9px 13px}.button.tiny{padding:6px 9px;font-size:.82rem}.link-button{border:0;background:transparent;color:var(--blue);cursor:pointer;padding:3px;font-weight:750}.link-button.danger{color:var(--red)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid h2{grid-column:1/-1;margin:14px 0 0}.form-grid label{display:grid;gap:6px;font-weight:750}.span-2{grid-column:1/-1}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{font-weight:750}label small{font-weight:500;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #bccbd5;background:#fff;border-radius:10px;padding:10px 11px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(23,79,121,.13);border-color:var(--blue)}.checkbox{grid-template-columns:auto 1fr!important;align-items:start}.checkbox input{width:auto;margin-top:4px}.filter-bar{display:flex;align-items:end;gap:12px;background:#fff;border:1px solid var(--line);padding:14px;border-radius:14px;margin-bottom:18px}.filter-bar label{display:grid;gap:4px}.filter-bar .grow{flex:1}.table-panel{overflow:auto;padding:0}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th,.data-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.data-table th{background:#f7f9fb;color:#526372;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.data-table input,.data-table select{padding:7px 8px}.inline-edit{display:flex;gap:6px;flex-wrap:wrap}.inline-edit input{width:160px}.inline-edit select{width:auto}.status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e8eef2;color:#465b6a;font-size:.75rem;font-weight:850}.status.paid,.status.active,.status.completed{background:#dff4eb;color:#176045}.status.warning{background:#fff1cc;color:#7b5200}.status.cancelled{background:#fde8e8;color:#922f2f}.list-stack{display:grid}.list-row{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid var(--line);align-items:center}.list-row:first-child{border-top:0}.list-row>div:first-child{display:grid}.list-row span{color:var(--muted)}.row-actions{display:flex;align-items:center;gap:12px}.package-card{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line)}.booking-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}.booking-selector,.booking-form{margin:0}.slot-list{display:grid;gap:10px;margin-top:15px;max-height:620px;overflow:auto}.slot-button{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 14px;text-align:left;padding:13px;border:1px solid var(--line);background:#fff;border-radius:11px;cursor:pointer}.slot-button:hover,.slot-button.selected{border-color:var(--blue);background:#f0f7fb}.slot-button .slot-price{grid-column:2;grid-row:1/3;text-align:right}.slot-button small{color:var(--muted)}.slot-button .bonus{color:var(--green);font-weight:800}.selected-slot{padding:13px;border-radius:11px;background:var(--sky);margin-bottom:15px}.student-header{height:auto;min-height:68px}.mobile-tabs{display:none}.content-editor .panel{margin-bottom:14px}.sticky-save{position:sticky;bottom:14px;display:flex;justify-content:flex-end;padding:10px}.vehicle-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.admin-vehicle-image{width:100%;height:240px;object-fit:cover;border-radius:12px}.new-card{border-style:dashed}.competency-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.competency{display:grid;padding:12px;border:1px solid var(--line);border-radius:11px}.competency span{font-size:.72rem;color:var(--muted);text-transform:uppercase}.competency em{justify-self:end;font-style:normal;font-weight:900;color:var(--blue)}.install-page{background:linear-gradient(135deg,#e7f2f7,#f8f6ee);min-height:100vh;padding:40px}.install-shell{width:min(900px,100%);margin:auto}.install-heading{display:flex;gap:18px;align-items:center;margin-bottom:22px}.install-heading h1{margin:0}.install-heading p{margin:4px 0;color:var(--muted)}.install-shell .card{padding:28px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:900;color:var(--blue)}code{background:#eef2f5;padding:2px 5px;border-radius:5px}.filter-tabs{display:flex;gap:8px;margin-bottom:12px}.filter-tabs a{padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:9px}@media(max-width:1050px){.stat-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.vehicle-admin-grid{grid-template-columns:1fr}.competency-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;z-index:60;left:0;top:68px;bottom:0;width:260px}.sidebar.open{display:block}.app-menu{display:block}.top-actions>span{display:none}.app-main{padding:18px}.booking-grid{grid-template-columns:1fr}.student-header nav a{display:none}.mobile-tabs{display:flex;position:fixed;z-index:40;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);justify-content:space-around;padding:10px}.mobile-tabs a{font-weight:800}.timeline-row{grid-template-columns:58px 1fr}.timeline-row>a{display:none}}@media(max-width:600px){.install-page{padding:16px}.form-grid,.two-cols,.stat-grid,.quick-grid,.dashboard-grid,.competency-grid{grid-template-columns:1fr}.span-2,.form-grid h2{grid-column:auto}.app-topbar{padding:0 12px}.top-actions>a{display:none}.app-main{padding:13px}.student-main{width:calc(100% - 20px);margin-top:12px}.panel,.card{padding:16px}.timeline-row{gap:10px}.list-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%;justify-content:space-between}.filter-bar{align-items:stretch;flex-direction:column}.data-table{min-width:760px}}
.availability-form{display:grid;gap:18px}.availability-grid{display:grid;gap:9px}.availability-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.7fr) minmax(120px,.7fr);gap:14px;align-items:end;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc}.availability-row .day-toggle{align-self:center;font-size:1rem}.availability-panels{grid-template-columns:1fr 1.2fr}.muted{color:var(--muted)}.offline-note{padding:10px 13px;border-radius:10px;background:#fff7df;color:#735200;font-weight:700;margin-bottom:12px}.draft-status{display:block;margin-top:8px;color:var(--muted);font-size:.78rem;font-weight:600}@media(max-width:850px){.availability-panels{grid-template-columns:1fr}.availability-row{grid-template-columns:1fr 1fr}.availability-row .day-toggle{grid-column:1/-1}}@media(max-width:520px){.availability-row{grid-template-columns:1fr}}
.content-group{margin-bottom:34px}.content-group-title{margin:0 0 12px;font-size:1.35rem;color:var(--navy)}.content-field .panel-head h3{margin:0}.content-field .panel-head small{color:var(--muted)}
.card-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card-admin-grid .card{margin:0}.form-grid.compact{gap:10px}.qr-box{display:flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:10px 0}.qr-box svg{display:block;max-width:100%;height:auto}.mono-link{display:block;max-width:260px;overflow-wrap:anywhere;font-size:.78rem}.scan-panel{max-width:620px;margin-inline:auto;text-align:center}.scan-panel form{text-align:left}.balance-display{display:flex;flex-direction:column;align-items:center;margin:24px 0}.balance-display strong{font-size:4rem;line-height:1;color:var(--navy)}.balance-display span{color:var(--muted);font-weight:800}.button.big{font-size:1.05rem;padding:15px 22px}.status.redeemed{background:#e8eef2;color:#465b6a}.status.expired{background:#fde8e8;color:#922f2f}.platform-domain{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.offline-transaction-note{border-left:4px solid var(--amber);padding:10px 14px;background:#fff7df}@media(max-width:1150px){.card-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.card-admin-grid{grid-template-columns:1fr}}

/* Karten, Guthaben und Quittungsstatus */
.package-overview .span-2{grid-column:span 2}.qr-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.qr-package-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#f9fbfc}.qr-package-card>div:first-child{display:flex;flex-direction:column;gap:5px}.package-balance{font-size:1.15rem;font-weight:900;color:var(--navy)}.credit-balance{font-size:2rem;font-weight:900;color:var(--navy);margin:.25rem 0}.receipt-missing{background:#fffaf0}.table-scroll{overflow-x:auto}.compact-stats .card{display:flex;flex-direction:column}.compact-stats .metric{font-size:2rem;font-weight:900;color:var(--navy)}
@media(max-width:850px){.package-overview .span-2{grid-column:auto}.qr-card-grid{grid-template-columns:1fr}}
@media(max-width:520px){.qr-package-card{grid-template-columns:1fr}.qr-package-card .qr-box{margin-inline:auto}}

/* Lektionsbewertung und Ausbildungskarte */
.assessment-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.assessment-head h2{margin:0}.assessment-head-actions,.timeline-actions,.booking-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.timeline-actions form,.booking-actions form{margin:0}.assessment-form{padding-bottom:92px}.assessment-group{padding:0;overflow:hidden}.assessment-group .panel-head{padding:18px 20px;margin:0;border-bottom:1px solid var(--line)}.assessment-list{display:grid}.assessment-row{display:grid;grid-template-columns:minmax(170px,1.15fr) minmax(400px,2.2fr) minmax(110px,.6fr);gap:16px;align-items:center;padding:15px 20px;border-top:1px solid var(--line)}.assessment-row:first-child{border-top:0}.assessment-topic{display:grid;gap:3px}.assessment-topic small{color:var(--muted)}.rating-options{display:grid;grid-template-columns:repeat(4,minmax(82px,1fr));gap:8px}.rating-choice{position:relative}.rating-choice input{position:absolute;opacity:0;pointer-events:none}.rating-choice span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:8px;border:1px solid #b9c9d3;border-radius:10px;background:#fff;cursor:pointer;font-size:.82rem}.rating-choice b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e8eef2;color:var(--navy);text-transform:uppercase}.rating-choice input:checked+span{border-color:var(--blue);background:#eaf3f8;box-shadow:0 0 0 2px rgba(23,79,121,.12)}.rating-choice input:focus-visible+span{outline:3px solid rgba(23,79,121,.22)}.practice-choice{display:flex!important;align-items:center;gap:8px!important;font-size:.88rem}.practice-choice input{width:auto}.assessment-savebar{position:sticky;bottom:12px;z-index:35;display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 14px 40px rgba(18,49,72,.18);backdrop-filter:blur(10px)}.bookings-table .booking-actions{min-width:170px}.competency small{color:var(--muted);margin-top:4px}
@media(max-width:1050px){.assessment-row{grid-template-columns:1fr}.rating-options{grid-template-columns:repeat(4,1fr)}.practice-choice{justify-self:start}.assessment-head{align-items:flex-start;flex-direction:column}.timeline-actions{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.rating-options{grid-template-columns:repeat(2,1fr)}.assessment-row{padding:14px}.assessment-group .panel-head{padding:15px}.assessment-savebar{align-items:stretch;flex-direction:column}.assessment-savebar .button{width:100%}}

/* Vereinfachte Buchung: Fahrzeug -> Einzel/Doppel -> Termin */
.booking-step{display:grid;gap:14px;padding:4px 0 22px;border-bottom:1px solid var(--line);margin-bottom:22px}.booking-step:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.booking-step-title{display:flex;align-items:flex-start;gap:12px}.booking-step-title>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900}.booking-step-title h2{margin:0;font-size:1.2rem}.booking-step-title p{margin:3px 0 0;color:var(--muted)}.booking-choice-grid{display:grid;gap:12px}.vehicle-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-choice{width:100%;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);cursor:pointer;text-align:left;transition:.15s ease}.booking-choice:hover{border-color:#8eabbc;transform:translateY(-1px)}.booking-choice.selected{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,79,121,.12);background:#f2f8fb}.vehicle-choice{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;padding:10px}.vehicle-choice img,.vehicle-placeholder{width:92px;height:72px;border-radius:10px;object-fit:cover;background:#eaf3f8;display:grid;place-items:center;font-size:2rem}.vehicle-choice>span:last-child{display:grid;gap:3px}.vehicle-choice small,.lesson-choice span{color:var(--muted)}.lesson-choice{display:grid;gap:4px;padding:18px}.lesson-choice strong{font-size:1.08rem}.slot-day{display:grid;gap:8px}.slot-day h3{margin:10px 0 2px;font-size:.92rem;color:var(--navy);text-transform:capitalize}.slot-day-list{display:grid;gap:8px}.slot-day .slot-button{grid-template-columns:75px minmax(0,1fr) auto;align-items:center}.slot-day .slot-button>strong{font-size:1.12rem}.slot-day .slot-button>small{grid-column:2}.slot-day .slot-button .bonus{grid-column:2}.slot-day .slot-price{grid-column:3!important;grid-row:1/4!important}.fixed-validity,.voucher-price-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f7fafb}.fixed-validity span,.voucher-price-box span{color:var(--muted);font-weight:750}.voucher-price-box strong{font-size:1.3rem;color:var(--navy)}

/* Schnelle, farbige Lektionsbewertung */
.assessment-guide{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin-bottom:20px}.assessment-guide>div{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.assessment-guide>div>strong:first-child{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff}.assessment-guide .assessment-counter{display:grid;justify-items:center;min-width:125px}.assessment-guide .assessment-counter span{font-size:.78rem;color:var(--muted);font-weight:800}.assessment-guide .assessment-counter strong{font-size:1.8rem;color:var(--navy)}.assessment-simple-group .panel-head{margin-bottom:12px}.assessment-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assessment-skill{border:2px solid var(--line);border-radius:15px;background:#fff;overflow:hidden;transition:.15s ease}.assessment-skill.has-rating{box-shadow:0 8px 24px rgba(18,49,72,.08)}.assessment-skill-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--ink);padding:16px;text-align:left;cursor:pointer}.assessment-skill-name{font-weight:900}.assessment-skill-status{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#edf1f4;color:var(--muted);font-size:.78rem;font-weight:900}.assessment-rating-panel{padding:0 14px 14px}.assessment-rating-panel>p{margin:0 0 8px;color:var(--muted);font-weight:800}.assessment-color-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assessment-color{position:relative}.assessment-color input{position:absolute;opacity:0;pointer-events:none}.assessment-color span{display:grid;gap:1px;min-height:64px;padding:10px;border:2px solid transparent;border-radius:11px;cursor:pointer}.assessment-color strong{font-size:.92rem}.assessment-color small{font-weight:650;opacity:.8}.assessment-color.rating-explained span{background:#e5f1ff;color:#15568d}.assessment-color.rating-practised span{background:#fff2bf;color:#765700}.assessment-color.rating-uncertain span{background:#ffe4e4;color:#8d2929}.assessment-color.rating-independent span{background:#dcf5e8;color:#176143}.assessment-color input:checked+span{border-color:currentColor;box-shadow:0 0 0 2px rgba(0,0,0,.06);transform:translateY(-1px)}.assessment-skill-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.colourful-practice{display:flex!important;align-items:center;gap:7px!important;padding:7px 10px;border-radius:9px;background:#f3ecff;color:#63358f}.colourful-practice input{width:auto}.assessment-skill.rating-explained{border-color:#6ea9dc;background:#f7fbff}.assessment-skill.rating-practised{border-color:#d5a91d;background:#fffdf5}.assessment-skill.rating-uncertain{border-color:#d86d6d;background:#fff9f9}.assessment-skill.rating-independent{border-color:#5da982;background:#f8fffb}.assessment-skill.rating-explained .assessment-skill-status{background:#dbeeff;color:#15568d}.assessment-skill.rating-practised .assessment-skill-status{background:#ffedac;color:#765700}.assessment-skill.rating-uncertain .assessment-skill-status{background:#ffdada;color:#8d2929}.assessment-skill.rating-independent .assessment-skill-status{background:#d4f1e1;color:#176143}.assessment-notes summary{cursor:pointer;font-weight:900;color:var(--navy)}.assessment-note-fields{margin-top:16px}
@media(max-width:900px){.assessment-guide{grid-template-columns:1fr}.assessment-guide .assessment-counter{display:flex;justify-content:space-between}.assessment-skill-grid{grid-template-columns:1fr}}
@media(max-width:620px){.vehicle-choice-grid,.lesson-choice-grid{grid-template-columns:1fr}.vehicle-choice{grid-template-columns:78px minmax(0,1fr)}.vehicle-choice img,.vehicle-placeholder{width:78px;height:62px}.slot-day .slot-button{grid-template-columns:64px minmax(0,1fr)}.slot-day .slot-price{grid-column:2!important;grid-row:auto!important;text-align:left!important}.assessment-color-options{grid-template-columns:1fr 1fr}.assessment-skill-actions{align-items:flex-start;flex-direction:column}.assessment-skill-button{align-items:flex-start;flex-direction:column}.assessment-skill-status{align-self:flex-start}}

[hidden]{display:none!important}

/* Kartenpreise, Gutscheinversand und Plattform */
.card-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.package-price-form{margin:0}.price-calculation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.price-calculation>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f7fafb}.price-calculation span{font-size:.78rem;color:var(--muted);font-weight:800}.price-calculation strong{font-size:1.18rem;color:var(--navy)}.price-calculation .final{background:#eaf3f8;border-color:#bfd5e2}.inline-money{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:6px!important}.inline-money input{padding:7px 8px}.voucher-resend-form{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:6px;margin-top:8px}.voucher-resend-form input{min-width:0;padding:7px 8px}.platform-nav-link{border:1px solid rgba(255,255,255,.15);margin-top:8px}.platform-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf3f8;font-size:.75rem;font-weight:900}.platform-setup-card{max-width:760px}.status.sent{background:#dff4eb;color:#176045}.status.failed{background:#fde8e8;color:#922f2f}.status.pending{background:#fff1cc;color:#7b5200}.status.not_requested{background:#e8eef2;color:#465b6a}

/* Ausbildungsstand auf einen Blick */
.progress-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.progress-stat{display:grid;gap:3px;padding:13px;border-radius:12px;border:2px solid transparent}.progress-stat strong{font-size:1.8rem;line-height:1}.progress-stat span{font-size:.78rem;font-weight:900}.rating-independent{background:#dcf5e8!important;color:#176143!important;border-color:#6fbd94!important}.rating-practised{background:#fff2bf!important;color:#765700!important;border-color:#d8b437!important}.rating-uncertain{background:#ffe4e4!important;color:#8d2929!important;border-color:#d87979!important}.rating-explained{background:#e5f1ff!important;color:#15568d!important;border-color:#77add9!important}.rating-unrated{background:#edf1f4!important;color:#586a77!important;border-color:#cbd5db!important}.progress-bar{display:flex;height:18px;overflow:hidden;border-radius:999px;background:#edf1f4;margin:16px 0}.progress-bar span{display:block;height:100%;border:0!important;border-radius:0}.priority-box{margin-top:18px}.priority-box h3{margin:0 0 10px}.priority-chips{display:flex;flex-wrap:wrap;gap:9px}.priority-chip{display:grid;gap:1px;padding:9px 11px;border-radius:11px;border:1px solid transparent}.priority-chip small{font-weight:750}.progress-competency-grid .competency{border-width:2px}.progress-competency-grid .competency span,.progress-competency-grid .competency em{color:inherit}.progress-details{margin-top:17px}.progress-details summary{cursor:pointer;font-weight:900;color:var(--navy)}.progress-details .competency-grid{margin-top:14px}

@media(max-width:1050px){.card-admin-grid{grid-template-columns:1fr}.progress-stat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.price-calculation{grid-template-columns:1fr}.progress-stat-grid{grid-template-columns:repeat(2,1fr)}.voucher-resend-form{grid-template-columns:1fr}.platform-badge{display:none}}

/* E-Mail-Test und direkte Kartenpreise */
.mail-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.mail-status-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f7fafb}.mail-status-grid span{font-size:.78rem;color:var(--muted);font-weight:800}.inline-test-mail{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;max-width:680px}.inline-test-mail label{display:grid;gap:6px}.price-calculation .inline-money input{font-weight:900;color:var(--navy);background:#fff}
@media(max-width:700px){.mail-status-grid{grid-template-columns:1fr}.inline-test-mail{grid-template-columns:1fr}}

/* Buchung als isolierter Block: Fahrzeug → Lektion → Termin */
.booking-flow{display:grid;gap:18px}.booking-step{padding:22px}.booking-step-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.booking-step-head>span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900}.booking-step-head h2{margin:0 0 4px}.booking-step-head p{margin:0;color:var(--muted)}.vehicle-choice-grid,.lesson-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vehicle-choice,.lesson-choice{appearance:none;width:100%;border:2px solid var(--line);border-radius:17px;background:#fff;color:var(--text);text-align:left;cursor:pointer;position:relative}.vehicle-choice.selected,.lesson-choice.selected{border-color:var(--blue);box-shadow:0 0 0 4px rgba(23,79,121,.1)}.vehicle-choice{display:grid;grid-template-columns:125px 1fr auto;align-items:center;overflow:hidden;min-height:108px;padding-right:14px}.vehicle-choice-image{height:108px;background:var(--sky);display:grid;place-items:center;overflow:hidden}.vehicle-choice-image img{width:100%;height:100%;object-fit:cover}.vehicle-choice-copy{display:grid;gap:4px;padding:14px}.vehicle-choice-copy strong{font-size:1.08rem}.vehicle-choice-copy small{color:var(--muted)}.choice-check{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#edf2f5;color:transparent;font-weight:900}.selected .choice-check{background:var(--blue);color:#fff}.lesson-choice{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:19px}.lesson-choice>span:first-child{display:grid}.lesson-choice small{color:var(--muted)}.lesson-choice b{color:var(--navy)}.booking-location-note{display:flex;gap:10px;align-items:center;padding:12px 15px;border-radius:13px;background:#eef6fa;border:1px solid #d7e7ef}.booking-location-note span{color:var(--muted)}.slot-list{display:grid;gap:18px}.slot-day{display:grid;gap:9px}.slot-day h3{margin:0;font-size:1rem;text-transform:capitalize}.slot-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.slot-button{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;width:100%;min-height:88px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer}.slot-button.selected{border:2px solid var(--blue);background:#f3f8fb}.slot-clock,.slot-details{display:grid;gap:2px}.slot-clock small,.slot-details small{color:var(--muted)}.slot-details{text-align:right}.slot-badge{grid-column:1/-1;justify-self:start;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:900}.slot-badge.bonus{background:#fff1bd;color:#6c5200}.slot-badge.recommended{background:#e0f1e9;color:#176746}.selected-slot{padding:14px;border-radius:13px;background:#eef6fa;margin-bottom:14px}
/* Treffpunkt-Editor und klickbare Karte */
.settings-stack{display:grid;gap:18px}.location-settings{display:grid;gap:20px}.location-editor-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:18px;align-items:stretch}.location-fields{display:grid;gap:12px;align-content:start}.location-fields h3{margin:0}.compact-fields{gap:10px}.coordinate-fields input{font-family:monospace}.prominent-check{padding:14px 16px;border-radius:13px;background:#eef6fa}.simple-map{position:relative;min-height:330px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#dce7ed;touch-action:none;cursor:crosshair}.simple-map-tiles{position:absolute;inset:0;overflow:hidden}.simple-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none}.simple-map-pin{position:absolute;z-index:4;left:50%;top:50%;width:36px;height:36px;transform:translate(-50%,-100%);pointer-events:none}.simple-map-pin:before{content:"";position:absolute;inset:0;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#c83f3f;box-shadow:0 3px 9px rgba(0,0,0,.25)}.simple-map-pin span{position:absolute;z-index:1;left:12px;top:12px;width:12px;height:12px;border-radius:50%;background:#fff}.simple-map-controls{position:absolute;z-index:6;right:10px;top:10px;display:grid;gap:5px}.simple-map-controls button{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:1.2rem;font-weight:900;cursor:pointer}.simple-map-help,.simple-map-credit{position:absolute;z-index:6;bottom:8px;padding:5px 8px;border-radius:7px;background:rgba(255,255,255,.9);font-size:.68rem}.simple-map-help{left:8px}.simple-map-credit{right:8px}.simple-map-credit a{color:var(--muted)}.map-external-link{justify-self:start}
@media(max-width:900px){.location-editor-grid{grid-template-columns:1fr}.vehicle-choice-grid,.lesson-choice-grid{grid-template-columns:1fr}.slot-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.booking-step{padding:16px}.vehicle-choice{grid-template-columns:90px 1fr auto;min-height:92px}.vehicle-choice-image{height:92px}.lesson-choice{grid-template-columns:1fr auto}.lesson-choice .choice-check{display:none}.slot-time-grid{grid-template-columns:1fr}.simple-map{min-height:280px}}

/* Fahrlehrer-/Fahrzeug-Block: eigene Daten, eigene Zuordnungen, keine Vermischung mit Preisen oder Zahlungen. */
.instructor-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.instructor-form{margin:0}.instructor-form .panel-head{grid-column:1/-1}.instructor-form-actions{display:flex;gap:10px;flex-wrap:wrap}.assignment-fieldset{margin:0;padding:15px;border:1px solid var(--line);border-radius:13px}.assignment-fieldset legend{padding:0 7px;font-weight:850;color:var(--navy)}.assignment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.assignment-options.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-option{display:grid!important;grid-template-columns:auto 1fr!important;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:#f8fafb;cursor:pointer}.assignment-option input{width:auto}.assignment-option>span{display:grid;grid-template-columns:52px 1fr;gap:9px;align-items:center}.assignment-option>span>img{width:52px;height:42px;object-fit:cover;border-radius:7px;grid-row:1/3}.assignment-option strong,.assignment-option small{grid-column:2}.assignment-option small{color:var(--muted)}.assignment-option.text-only>span{grid-template-columns:1fr}.assignment-option.text-only strong,.assignment-option.text-only small{grid-column:1}.assignment-option:has(input:checked){border-color:var(--blue);background:#eef6fa}

/* 60/120 Minuten und optionale Fahrlehrerwahl in der Schüler-App. */
.duration-choice{grid-template-columns:auto minmax(0,1fr) auto auto!important}.duration-number{display:grid!important;place-items:center;align-content:center;min-width:86px;min-height:76px;padding:8px;border-radius:14px;background:var(--navy);color:#fff!important;line-height:1}.duration-number b{font-size:2rem!important;color:#fff!important}.duration-number small{margin-top:4px;color:#d9e8f1!important;font-size:.66rem;font-weight:900;letter-spacing:.12em}.duration-copy{display:grid;gap:3px}.duration-price{white-space:nowrap}.instructor-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.instructor-choice{appearance:none;display:grid;grid-template-columns:104px minmax(0,1fr) auto;align-items:center;width:100%;min-height:96px;padding:0 15px 0 0;border:2px solid var(--line);border-radius:17px;background:#fff;color:var(--ink);overflow:hidden;text-align:left;cursor:pointer}.instructor-choice:hover{border-color:#8ab6cf}.instructor-choice.selected{border-color:var(--blue);box-shadow:0 0 0 4px rgba(23,79,121,.1)}.instructor-choice-image{height:96px;display:grid;place-items:center;background:var(--sky);overflow:hidden}.instructor-choice-image img{width:100%;height:100%;object-fit:cover}.instructor-choice-copy{display:grid;gap:4px;padding:14px}.instructor-choice-copy strong{font-size:1.04rem}.instructor-choice-copy small{color:var(--muted)}

/* Lokale Leaflet-Karte: ein Klick setzt den exakten Punkt, die Textadresse bleibt unabhängig. */
.location-editor-map{position:relative;min-height:390px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#dce7ed;z-index:1;cursor:crosshair}.map-editor-tools{display:grid;gap:12px}.map-mode-buttons{display:flex;gap:9px;flex-wrap:wrap}.map-coordinate-summary{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.location-end-fields{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafb}.map-fallback{display:grid;place-items:center;min-height:300px;color:var(--muted)}.map-unavailable:after{content:"Karte konnte nicht geladen werden. Bitte Seite neu laden.";display:grid;place-items:center;min-height:300px;padding:20px;color:var(--muted);text-align:center}.leaflet-container{font:inherit}.leaflet-control-container button{font:inherit}

@media(max-width:1050px){.instructor-admin-grid{grid-template-columns:1fr}}
@media(max-width:800px){.assignment-options,.assignment-options.compact,.instructor-choice-grid{grid-template-columns:1fr}.duration-choice{grid-template-columns:auto 1fr auto!important}.duration-choice .choice-check{display:none}}
@media(max-width:560px){.duration-choice{grid-template-columns:72px minmax(0,1fr)!important}.duration-number{min-width:72px;min-height:68px}.duration-number b{font-size:1.65rem!important}.duration-price{grid-column:2;justify-self:start}.instructor-choice{grid-template-columns:86px minmax(0,1fr) auto}.instructor-choice-image{height:88px}}

/* Verkauf: offene Gutschein-/Kartenbestellungen und persönliche Karten im Schülerportal. */
.commerce-orders-panel{scroll-margin-top:18px}.commerce-count{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:7px 11px;border-radius:999px;background:#fff1bd;color:#6c5200;font-weight:900}.commerce-order-list{display:grid;gap:14px}.commerce-order-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:22px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.commerce-order-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.commerce-order-title small{color:var(--muted)}.commerce-order-main h3{margin:12px 0}.commerce-order-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:0}.commerce-order-details div{display:grid;gap:2px}.commerce-order-details dt{font-size:.76rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.commerce-order-details dd{margin:0}.commerce-message{padding:10px 12px;border-radius:11px;background:#f7f9fa}.commerce-order-actions{display:grid;align-content:start;gap:10px;padding:14px;border-radius:14px;background:#f4f7f8}.commerce-order-actions form{display:grid;gap:10px;margin:0}.commerce-order-actions label{display:grid;gap:5px}.commerce-cancel-form{justify-items:start}.commerce-history{margin-top:18px}.commerce-history>summary{cursor:pointer;font-weight:850}.commerce-history .table-scroll{margin-top:12px;overflow-x:auto}.status.pending_payment{background:#fff1bd;color:#6c5200}.status.fulfilled{background:#e0f1e9;color:#176746}.status.cancelled{background:#f7e5e5;color:#8a2929}.empty-state.compact{padding:20px;text-align:center;border:1px dashed var(--line);border-radius:14px}.empty-state.compact p{margin:4px 0 0;color:var(--muted)}
.student-commerce-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.student-commerce-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-commerce-product{display:grid;gap:14px}.student-commerce-product h2{margin:0}.student-commerce-meta{display:flex;gap:8px;flex-wrap:wrap}.student-commerce-meta span{padding:5px 9px;border-radius:999px;background:#eef6fa;color:var(--navy);font-size:.78rem;font-weight:850}.student-commerce-price{font-size:1.45rem;font-weight:950;color:var(--navy)}.student-commerce-order-form{display:grid;gap:10px}.student-commerce-order-form label{display:grid;gap:5px}.student-commerce-orders{display:grid;gap:10px}.student-commerce-order{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:13px}.student-commerce-order p{margin:3px 0 0;color:var(--muted)}
@media(max-width:850px){.commerce-order-card{grid-template-columns:1fr}.student-commerce-products{grid-template-columns:1fr}.student-commerce-intro{grid-template-columns:1fr}.commerce-order-details{grid-template-columns:1fr}}

/* Gutscheinshop-Einstellungen im Manager. */
.commerce-settings-panel{scroll-margin-top:18px}.commerce-settings-form textarea{min-height:128px;resize:vertical}.commerce-public-link{display:grid;align-content:end;gap:7px}.commerce-public-link>span{font-weight:750}.commerce-settings-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.commerce-settings-actions p{margin:0}.status.inactive{background:#eef1f3;color:#596974}@media(max-width:600px){.commerce-settings-actions{align-items:stretch;flex-direction:column}.commerce-settings-actions .button{width:100%}}


/* Persönliche Kartenbestellung: Bestellbedingungen */
.portal-terms-check{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;line-height:1.4;color:var(--muted,#526273)}
.portal-terms-check input{width:1.1rem;height:1.1rem;margin-top:.12rem;flex:0 0 auto}
.portal-terms-check a{font-weight:700;text-decoration:underline}

/* Versandstatus abgeschlossener Gutschein- und Kartenbestellungen. */
.status.partial{background:#fff1cc;color:#7b5200}
.commerce-history .voucher-resend-form{grid-template-columns:1fr;justify-items:start;margin:7px 0 0}
.commerce-history .voucher-resend-form .button{white-space:nowrap}

/* White-Label-Schülerportal: Name und Monogramm der Fahrschule statt Fahrkurve-Marke. */
.school-app-brand{min-width:0}.school-app-brand>span:last-child{min-width:0}.school-app-brand strong{max-width:min(58vw,440px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.school-brand-mark{display:grid!important;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;font-size:1.15rem;font-weight:950;line-height:1;box-shadow:0 7px 18px rgba(11,53,88,.2)}
@media(max-width:600px){.school-app-brand strong{max-width:52vw}.school-app-brand small{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* White-Label-Logo im Schülerportal und einfache Portalgestaltung im Manager. */
.school-brand-logo{display:grid!important;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.school-brand-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.portal-brand-settings{overflow:hidden}.portal-domain-card{display:grid;gap:4px;margin-bottom:18px;padding:16px;border:1px solid #cfe0ea;border-radius:14px;background:#f1f8fb}.portal-domain-card span{font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.portal-domain-card strong{font-size:1.1rem;color:var(--navy);overflow-wrap:anywhere}.portal-domain-card small{color:var(--muted)}.portal-brand-grid input[type=color]{min-height:48px;padding:5px;cursor:pointer}.portal-logo-preview{display:flex;align-items:center;gap:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fafb}.portal-logo-preview>img{width:92px;height:70px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff;padding:5px}.portal-logo-preview .checkbox{margin:0}
@media(max-width:600px){.portal-logo-preview{align-items:flex-start;flex-direction:column}.school-brand-logo{width:40px;height:40px;flex-basis:40px}}
