:root{--bg: #0f0f17;--surface: #1a1a26;--surface-2: #232333;--border: #2f2f42;--text: #e7e7ef;--text-dim: #9a9ab0;--accent: #7c3aed;--accent-hover: #8b5cf6;--green: #22c55e;--amber: #f59e0b;--red: #ef4444;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark;scrollbar-color:var(--surface-2) var(--bg);scrollbar-width:thin}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-2);border:3px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--border)}::-webkit-scrollbar-corner{background:var(--bg)}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent-hover);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem}h1{font-size:1.6rem}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.5rem .9rem;background:var(--accent);color:#fff;transition:background .15s}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}button.ghost:hover{background:var(--surface-2);color:var(--text)}button.ghost.aktiv,button.ghost.aktiv:disabled{background:var(--surface-2);color:var(--text);border-color:var(--accent);opacity:1}button.danger{background:transparent;color:var(--red);border:1px solid var(--border)}button.danger:hover{background:#ef44441f}input,select,textarea{font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:.3rem}.field{margin-bottom:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.25rem;position:sticky;top:0;height:100vh}.brand{font-size:1.3rem;font-weight:700;margin-bottom:.2rem}.brand span{color:var(--accent-hover)}.brand-tag{font-size:.7rem;color:var(--text-dim);margin-bottom:1rem}.navlink{display:block;padding:.55rem .7rem;border-radius:8px;color:var(--text-dim)}.navlink:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.navlink.active{background:var(--accent);color:#fff}.sidebar-footer{margin-top:auto;font-size:.8rem;color:var(--text-dim)}.content{flex:1;padding:1.5rem 2rem;max-width:1100px}.auth-wrap{display:grid;place-items:center;min-height:100vh;padding:1rem}.auth-card{width:100%;max-width:380px}.auth-card .brand{text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.stat .value{font-size:1.8rem;font-weight:700}.stat .label{font-size:.8rem;color:var(--text-dim)}.dist{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.bar-row{display:flex;align-items:center;gap:.6rem;margin:.35rem 0;font-size:.85rem}.bar-row .k{width:90px;color:var(--text-dim);text-transform:capitalize}.bar-track{flex:1;background:var(--surface-2);border-radius:6px;height:10px;overflow:hidden}.bar-fill{height:100%;background:var(--accent)}.bar-row .n{width:30px;text-align:right}.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}.toolbar .field{margin:0}.toolbar .grow{flex:1;min-width:180px}.list{display:flex;flex-direction:column;gap:.6rem}.row{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem 1rem}.row .main{flex:1;min-width:0}.row .title{font-weight:600}.row .sub{font-size:.82rem;color:var(--text-dim)}.row .actions{display:flex;gap:.4rem;align-items:center}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.badge{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.badge.habe,.badge.nur_digital{color:var(--green);border-color:#22c55e66}.badge.wunsch,.badge.vorbestellt{color:var(--amber);border-color:#f59e0b66}.badge.durch{color:var(--green);border-color:#22c55e66}.badge.lese{color:var(--accent-hover);border-color:#7c3aed80}.badge.adult{color:var(--red);border-color:#ef444480}.cover-box{display:inline-block;flex:0 0 auto;overflow:hidden;border-radius:6px;background:linear-gradient(135deg,var(--surface-2),var(--border));font-size:0;line-height:0}.cover-box img{display:block;width:100%;height:100%;object-fit:cover}.cover-box,.cover-ph{max-width:100%;height:auto}.cover-kachel{min-width:0}.cover-kachel>*,.cover-kachel .kachel-bild,.cover-kachel .cover-box,.cover-kachel .cover-ph{max-width:100%}.cover-ph{background:linear-gradient(135deg,var(--surface-2),var(--border));border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.cover-ph svg{width:62%;height:62%;opacity:.75}input[type=checkbox],input[type=radio]{width:auto}.cover-blur{filter:blur(10px)}img[class=cover-blur]{object-fit:cover;border-radius:6px}.cover-box img.cover-blur{border-radius:0}.muted{color:var(--text-dim)}.error{color:var(--red);font-size:.85rem}.success{color:var(--green);font-size:.85rem}.spacer{height:1rem}.center-msg{text-align:center;color:var(--text-dim);padding:3rem 1rem}.inline{display:flex;gap:.5rem;align-items:center}.row-wrap{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:100%;max-width:460px;max-height:90vh;overflow-y:auto}@media(max-width:900px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:sticky;top:0;z-index:20;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.3rem;padding:.5rem .75rem;border-right:none;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.brand{font-size:1.05rem;margin:0 .4rem 0 0}.brand-tag{display:none}.navlink{padding:.45rem .7rem;white-space:nowrap;font-size:.9rem}.sidebar-footer{margin:0 0 0 auto;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.sidebar-footer .muted{margin:0!important}.sidebar-footer button{width:auto!important;padding:.4rem .7rem}.content{padding:.9rem;max-width:100%}.row{flex-direction:column;align-items:stretch;gap:.6rem}.row .actions{flex-wrap:wrap}.row .actions button{flex:1 1 auto;min-height:40px}.toolbar{flex-direction:column;align-items:stretch}.toolbar .field,.toolbar .grow{width:100%;min-width:0}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem}.modal{max-width:100%;max-height:92vh}.modal-backdrop{padding:.5rem}h1{font-size:1.4rem}h2{font-size:1.15rem}}@media(max-width:480px){.row .actions button{flex:1 1 calc(50% - .4rem);min-width:0}.inline{flex-wrap:wrap}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}@media(max-width:900px){.row .main,.row .title,.row .sub{min-width:0;overflow-wrap:anywhere}code{overflow-wrap:anywhere}img{max-width:100%;height:auto}}@media(max-width:900px){input,select,textarea{font-size:16px}}button.blank{background:none;border:0;padding:0;margin:0;cursor:pointer;line-height:0}.title.klickbar{cursor:pointer}.title.klickbar:hover{text-decoration:underline;text-underline-offset:2px}.cover-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.9rem;margin-top:.6rem}.cover-kachel{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;line-height:1.25}.cover-kachel .kachel-titel{font-size:.95rem;font-weight:600;color:var(--text, #e8e8ef);line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-kachel .kachel-band{font-size:.82rem;color:var(--muted, #9aa);margin-top:.35rem}.cover-kachel .kachel-bild{position:relative;display:block;line-height:0}.cover-kachel .kachel-status{position:absolute;left:0;right:0;bottom:0;padding:.2rem .3rem;font-size:.72rem;font-weight:600;line-height:1.2;text-align:center;color:#fff;background:#11111ad1;border-radius:0 0 6px 6px}.cover-kachel .kachel-status.durch{background:#228b54e0}.cover-kachel .kachel-status.lese{background:#7856d6e0}.cover-kachel .kachel-stern{margin-left:.35rem;padding:0;font-size:.9rem;line-height:1;color:var(--muted, #9aa);cursor:pointer}.cover-kachel .kachel-stern:hover{color:var(--text, #e8e8ef)}@media(max-width:480px){.cover-raster{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:1.5rem .8rem}}.row .title .badge{margin-left:.3rem}.stat.problem-stat{border-color:var(--red);margin-bottom:.8rem;text-decoration:none;color:inherit}.stat.problem-stat:hover{background:var(--surface-2);text-decoration:none}.stat.problem-stat .value{color:var(--red)}a.button{display:inline-block;padding:.45rem .8rem;border-radius:var(--radius);border:1px solid var(--border);text-decoration:none}a.button:hover{background:var(--surface-2);text-decoration:none}a.button.ghost{background:transparent;color:var(--text-dim)}a.button.ghost:hover{color:var(--text)}@media(prefers-reduced-motion:no-preference){:root:not([data-bewegung=aus]) .card,:root:not([data-bewegung=aus]) .row,:root:not([data-bewegung=aus]) .stat{transition:border-color .14s ease,background .14s ease,transform .14s ease}:root:not([data-bewegung=aus]) .row:hover,:root:not([data-bewegung=aus]) .stat:hover{border-color:var(--accent)}:root:not([data-bewegung=aus]) .cover-kachel img,:root:not([data-bewegung=aus]) .cover-kachel .cover-ph{transition:transform .16s ease,box-shadow .16s ease}:root:not([data-bewegung=aus]) .cover-kachel:hover img,:root:not([data-bewegung=aus]) .cover-kachel:hover .cover-ph{transform:translateY(-3px);box-shadow:0 6px 18px #00000059}:root:not([data-bewegung=aus]) button,:root:not([data-bewegung=aus]) .navlink,:root:not([data-bewegung=aus]) .badge{transition:background .12s ease,color .12s ease,border-color .12s ease}:root:not([data-bewegung=aus]) .modal,:root:not([data-bewegung=aus]) .list>.row{animation:anima-auf .16s ease both}}@keyframes anima-auf{0%{opacity:0}to{opacity:1}}.cover-kachel:focus-visible,.row:focus-within{outline:2px solid var(--accent);outline-offset:2px}.cover-kachel.verlag-kachel{justify-content:center;min-height:120px;padding:.8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.cover-kachel.verlag-kachel .kachel-titel{-webkit-line-clamp:3}.navgruppe{margin-top:.2rem}.navgruppe-kopf{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;text-align:left;cursor:pointer;color:var(--text-dim);font:inherit}.navgruppe-kopf:hover{background:var(--surface-2);color:var(--text)}.navgruppe-kind{margin-left:.7rem;padding-left:.7rem;border-left:2px solid var(--border);font-size:.92rem}.navgruppe-kind.active{border-left-color:var(--accent)}.fusszeile{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:1rem;font-size:.82rem;color:var(--text-dim)}.fusszeile a{color:var(--text-dim)}.fusszeile a:hover{color:var(--accent-hover)}@media(prefers-reduced-motion:no-preference){:root:not([data-bewegung=aus]) .stat-grid>*{animation:anima-kachel .32s cubic-bezier(.22,.61,.36,1) both}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(1){animation-delay:0ms}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(2){animation-delay:40ms}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(3){animation-delay:80ms}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(4){animation-delay:.12s}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(5){animation-delay:.16s}:root:not([data-bewegung=aus]) .stat-grid>*:nth-child(n+6){animation-delay:.2s}:root:not([data-bewegung=aus]) .bar-fill{transition:width .42s cubic-bezier(.22,.61,.36,1)}}@keyframes anima-kachel{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:640px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.stat{padding:.7rem .8rem}.stat .value{font-size:1.4rem}.card{padding:.8rem}.row{flex-direction:column;align-items:stretch;gap:.5rem}.row .actions{justify-content:flex-start;flex-wrap:wrap}.row .actions button,.row .actions select{flex:1 1 auto;min-height:2.4rem}.row .sub .badge:nth-child(n+4){display:none}.toolbar{flex-direction:column;align-items:stretch}.toolbar .field{width:100%}.verteilung{display:none}h1{font-size:1.4rem}.fusszeile{gap:.7rem}}
