:root{--accent: #43c6ac;--bg: #0b0f12;--panel: #171d22;--text: #f2f5f7;--muted: #9aa5ad;--danger: #e0433d;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,system-ui,sans-serif;-webkit-text-size-adjust:100%;overscroll-behavior:none}#app{height:100%;display:flex;flex-direction:column}button{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 18px;background:var(--panel);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4}button.primary{background:var(--accent);color:#05110e;font-weight:600}button.danger{background:var(--danger);color:#fff}button.icon{width:48px;height:48px;padding:0;border-radius:24px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;background:#00000073}button.icon.active{background:var(--accent);color:#05110e}input,textarea{font:inherit;width:100%;padding:12px;border-radius:10px;border:1px solid #2b343b;background:var(--panel);color:var(--text)}textarea{min-height:64px;resize:vertical}label{display:block;color:var(--muted);font-size:14px;margin:14px 0 6px}h2{margin:8px 0}.screen{flex:1;display:flex;flex-direction:column;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--safe-top) + 10px) 14px 10px}.topbar h1{font-size:18px;margin:0}.topbar>span{min-width:72px}.content{flex:1;overflow-y:auto;padding:0 16px calc(var(--safe-bottom) + 16px)}.bottombar{display:flex;gap:12px;align-items:center;justify-content:center;padding:14px 16px calc(var(--safe-bottom) + 14px)}.camera{position:relative;flex:1;background:#000;overflow:hidden}.camera video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .1s}.camera .overlay-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:calc(var(--safe-top) + 10px) 14px 0}.camera .overlay-top>div{display:flex;gap:10px}.camera .overlay-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;padding:20px 16px calc(var(--safe-bottom) + 24px);background:linear-gradient(transparent,#0009)}.shutter{width:76px;height:76px;border-radius:38px;background:#fff;border:5px solid rgba(255,255,255,.4);background-clip:padding-box;padding:0}.shutter:active{transform:scale(.94)}.done{position:absolute;right:16px}.banner{padding:8px 14px;font-size:14px;text-align:center;background:#2a3138}.banner.error{background:var(--danger);color:#fff}.banner.hidden{display:none}.notice{padding:24px;text-align:center;color:var(--muted);position:relative}.camera .notice{position:absolute;top:30%;left:0;right:0;color:#fff;background:#0009}.photo-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #222a30}.photo-row img{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:none}.photo-row .fields{flex:1;display:flex;flex-direction:column;gap:8px}.photo-row .fields textarea{min-height:56px}.photo-row .fields button{align-self:flex-end;padding:8px 14px}.message{margin-top:12px;color:var(--muted)}.message.error{color:var(--danger)}.message.ok{color:var(--accent)}.scan-frame{position:absolute;left:12%;right:12%;top:35%;height:30%;border:2px solid var(--accent);border-radius:12px}.result dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:12px 0}.result dt{color:var(--muted)}.result dd{margin:0}.stack{display:flex;flex-direction:column;gap:10px;margin-top:16px}.file-fallback input{margin-top:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:6px 10px;font-size:13px;border-radius:14px;background:#2a3138;color:var(--text)}.chip.active{background:var(--accent);color:#05110e;font-weight:600}.consumers{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;color:var(--muted)}.topbar-actions{display:flex;gap:8px}.overview h2{font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px}.overview .actions{display:flex;gap:10px;margin:6px 0 10px}.overview .actions button{flex:1}.stamp{font-size:13px;margin-bottom:8px}.muted{color:var(--muted)}.card{background:var(--panel);border-radius:12px;padding:12px 14px;margin-bottom:10px}.card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:14px}.card ul{margin:6px 0 0;padding-left:18px}.card li{margin:4px 0}.card li.ausfall{color:var(--danger);font-weight:600}.card li.neu{border-left:3px solid var(--accent);padding-left:8px;list-style:none;margin-left:-18px}.card ul.infos li{color:var(--muted);font-size:14px}.card ul.mails{padding-left:0;list-style:none}.card ul.mails li{margin:8px 0;font-size:14px}.card ul.mails li.neu{margin-left:0}.card a{color:var(--accent);text-decoration:none}.error-card{background:#3a1f1f}.summary .md h3{font-size:16px;margin:10px 0 4px}.summary .md h4{font-size:14px;margin:8px 0 4px;color:var(--muted)}.summary .md p{margin:4px 0}.badge{display:inline-block;background:var(--accent);color:#05110e;font-size:11px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:8px;margin-right:6px;vertical-align:middle}.pill{display:inline-block;background:#2a3138;color:var(--muted);font-size:11px;padding:1px 6px;border-radius:8px;margin-left:6px;vertical-align:middle}.card li.past,.card li.past a{color:#5b6670}.card li.archived .mail-body{opacity:.6}label.mail{display:flex;gap:10px;align-items:flex-start;margin:0;color:var(--text);font-size:14px}label.mail input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--accent)}.mail-body{flex:1;min-width:0}.mail-body .preview{font-size:13px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}button svg{flex:none}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi{background:var(--panel);border-radius:12px;padding:12px 14px}.kpi-value{font-size:22px;font-weight:700}.kpi-label{font-size:13px;color:var(--muted)}.kpi-note{font-size:12px;margin-top:4px}.small{font-size:13px}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;color:var(--muted);font-weight:500;padding:4px 0}table.data td{padding:6px 0;border-top:1px solid #222a30}ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:6px 0;border-top:1px solid #222a30}ul.plain li:first-child{border-top:0}.toolbar{display:flex;gap:10px;margin:6px 0 10px}.toolbar .tool{position:relative;flex:1;height:44px;padding:0;border-radius:12px}.toolbar .tool.active{outline:2px solid var(--accent)}.toolbar .tool.busy svg{animation:spin 1s linear infinite}.toolbar .count{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#05110e;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}@keyframes spin{to{transform:rotate(360deg)}}.plan-content{padding:0 0 calc(var(--safe-bottom) + 16px)}.plan-content .message,.plan-content .legend,.plan-content .hints,.plan-content .small,.plan-content .week-banner{margin-left:12px;margin-right:12px}.plan-wrap{width:100%}table.plan{border-collapse:collapse;width:100%;font-size:11px;line-height:1.25;table-layout:fixed}table.plan th:first-child{width:36px}table.plan th,table.plan td{border:1px solid #222a30;padding:4px 3px;vertical-align:top;text-align:left}table.plan thead th{text-align:center;color:var(--muted);font-weight:600}table.plan tbody th{width:34px;text-align:center;font-weight:600}table.plan .time{font-size:10px;font-weight:400}table.plan .today{background:#ffffff0d}table.plan .lesson.other,table.plan .week.other{color:#4f5b64}table.plan .lesson.current{color:var(--accent);font-weight:600}.week.current{background:var(--accent);color:#05110e}.week.big{font-size:13px;padding:2px 7px;margin-right:8px}.week-banner{display:flex;align-items:center;margin:4px 0 10px;font-size:14px}table.plan thead th.today{color:var(--accent)}table.plan td.vertretung{box-shadow:inset 0 0 0 2px var(--accent)}table.plan td.ausfall{box-shadow:inset 0 0 0 2px var(--danger)}table.plan td.ausfall .lesson{text-decoration:line-through;color:var(--muted)}table.plan .marker{margin-top:3px;font-weight:700;color:var(--accent)}table.plan td.ausfall .marker{color:var(--danger)}.lesson{word-break:break-word}.week{display:inline-block;font-size:9px;font-weight:700;background:#2a3138;color:var(--muted);border-radius:4px;padding:0 3px;margin-right:3px;vertical-align:middle}.legend{font-size:12px;color:var(--muted);margin:12px 0}.legend-vertretung{color:var(--accent);font-weight:600}.legend-ausfall{color:var(--danger);font-weight:600}.hints{padding-left:18px}
