@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fff;--panel:#f6f6f5;--panel2:#eeeeec;--ink:#3a3d40;--ink-soft:#6c6f73;--ink-faint:#9b9ea3;--line:#e0e0de;--line-strong:#c2c3c1;--nord:#e8432d;--nord-deep:#c2331f;--nord-wash:#fdece9;--ok:#2e7d43;--ok-wash:#e8f3ec;--warn:#b07c10;--warn-wash:#f9f1dd;--bad:#b3362b;--radius:6px;--font-ui:"Schibsted Grotesk Variable", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15.5px;line-height:1.5}h1,h2,h3{letter-spacing:-.015em;margin:0}h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}p{margin:0}a{color:var(--nord-deep);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}.shell{max-width:1080px;margin:0 auto;padding:0 18px 64px}.shell.narrow{max-width:640px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;padding:18px 0 14px;display:flex}.topbar img.logo{height:26px;display:block}.topbar .sub{text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);white-space:nowrap;font-size:11.5px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint);font-size:13px}.mono{font-family:var(--font-mono)}.small{font-size:13.5px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.flat{background:var(--panel);border-color:#0000}.btn{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-soft);text-decoration:none}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:#26282b}.btn.accent{background:var(--nord);border-color:var(--nord-deep);color:#fff}.btn.accent:hover{background:var(--nord-deep)}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn.ghost{color:var(--ink-soft);border-color:#0000;font-weight:500}.btn.ghost:hover{color:var(--ink);border-color:var(--line)}.btn.big{padding:14px 24px;font-size:17px}.btn.slim{padding:6px 12px;font-size:13.5px}label.field{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:13.5px;font-weight:600;display:flex}input[type=text],input[type=search],input[type=number],input[type=datetime-local],select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);width:100%;padding:10px 12px;font-weight:400}input:focus,select:focus,textarea:focus{outline:2px solid var(--nord);outline-offset:-1px;border-color:var(--nord)}textarea{resize:vertical;min-height:96px}.code-input{font-family:var(--font-mono);letter-spacing:.08em;text-align:center;text-transform:uppercase;padding:14px;font-size:22px}.chip{border:1px solid var(--line-strong);background:var(--paper);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;display:inline-flex}.chip:hover{border-color:var(--ink-soft)}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip.accent-on{background:var(--nord-wash);border-color:var(--nord);color:var(--nord-deep)}.banner{border-radius:var(--radius);border:1px solid;padding:14px 16px}.banner.open{background:var(--ok-wash);color:var(--ok);border-color:#bcd9c6}.banner.closed{background:var(--warn-wash);color:var(--warn);border-color:#e4d2a4}.banner.error{background:var(--nord-wash);color:var(--bad);border-color:#f2c0b7}.tag{letter-spacing:.03em;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.tag.gemeldet{background:var(--nord-wash);color:var(--nord-deep)}.tag.geprueft{background:var(--warn-wash);color:var(--warn)}.tag.geklaert{background:var(--ok-wash);color:var(--ok)}.steps{gap:6px;margin-bottom:4px;display:flex}.steps .dot{background:var(--panel2);border-radius:2px;flex:1;height:4px}.steps .dot.done{background:var(--nord)}.book-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.book-card{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;align-items:flex-start;gap:10px;padding:10px;display:flex}.book-card:hover{border-color:var(--ink-soft)}.book-card.selected{border-color:var(--nord);outline:2px solid var(--nord);outline-offset:-2px}.book-card img{border-radius:3px;flex-shrink:0;width:42px}.book-card .noimg{background:var(--panel2);width:42px;height:58px;color:var(--ink-faint);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.photo-strip{flex-wrap:wrap;gap:10px;display:flex}.photo-strip .ph{position:relative}.photo-strip img{object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);width:96px;height:96px}.photo-strip .rm{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:50%;width:22px;height:22px;font-size:12px;line-height:1;position:absolute;top:-7px;right:-7px}.scan-overlay{z-index:50;background:#141517e0;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:20px;display:flex;position:fixed;inset:0}.scan-overlay video{background:#000;border-radius:8px;width:min(560px,100%);max-height:60vh}.scan-overlay p{color:#eee;text-align:center}.tablewrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:var(--panel);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px;font-size:12px}td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--panel)}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;margin-bottom:22px;display:flex}.tabs button{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600}.tabs button.on{color:var(--ink);border-bottom-color:var(--nord)}.statbar{flex-wrap:wrap;gap:10px;display:flex}.stat{background:var(--panel);border-radius:var(--radius);min-width:110px;padding:10px 16px}.stat b{font-size:22px;display:block}.stat span{color:var(--ink-soft);font-size:12.5px}.bar{align-items:center;gap:8px;font-size:13.5px;display:flex}.bar .track{background:var(--panel2);border-radius:4px;flex:1;height:8px;overflow:hidden}.bar .fill{background:var(--nord);border-radius:4px;height:100%}dialog{border:1px solid var(--line);border-radius:8px;width:100%;max-width:min(560px,100vw - 32px);padding:22px}dialog::backdrop{background:#14151773}.formgrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.switch{cursor:pointer;align-items:center;gap:10px;display:flex}.switch input{width:auto}@media (width<=640px){body{font-size:15px}.topbar .sub{display:none}.card{padding:14px}}
