:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--panel:#161b22;--border:#2d333b;--text:#e6edf3;--muted:#8b949e;--accent:#4c8dff;--green:#3fb950;--yellow:#d29922;--red:#f85149}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.login-wrap{place-items:center;min-height:100vh;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;gap:1rem;width:340px;padding:2rem;display:grid}.login-card h1{margin:0;font-size:1.5rem}.login-card h1 span{color:var(--accent)}.qr{border:1px solid var(--border);border-radius:8px;justify-self:center;width:200px;overflow:hidden}.qr svg{background:#fff;width:100%;height:auto;display:block}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.brand{color:inherit;font-size:1.1rem;font-weight:700;text-decoration:none}.brand span{color:var(--accent);margin-left:.15rem}.user{color:var(--muted);align-items:center;gap:.75rem;display:flex}main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem}.stats{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.stat,.stats.skeleton{background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:110px;padding:.75rem 1.25rem}.stat-num{font-size:1.4rem;font-weight:700;display:block}.stat-label{color:var(--muted);font-size:.8rem}.stats.skeleton{color:var(--muted);width:100%}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.pager{align-items:center;gap:.75rem;margin-top:1rem;display:flex}input,select,textarea,button{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;padding:.45rem .7rem}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}button{cursor:pointer;background:#21262d}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.6;cursor:default}label{gap:.35rem;display:grid}.error{color:var(--red);margin:0}.error-page{background:var(--panel);border:1px solid var(--red);border-radius:8px;padding:1rem}.tbl{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.55rem .75rem}.tbl th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.tbl tr:last-child td{border-bottom:none}.muted{color:var(--muted)}.badge{border:1px solid;border-radius:999px;padding:.1rem .55rem;font-size:.78rem;display:inline-block}.badge-active{color:var(--accent);border-color:var(--accent)}.badge-delivered{color:var(--green);border-color:var(--green)}.badge-expired{color:var(--red);border-color:var(--red)}.note-edit summary{cursor:pointer;white-space:pre-wrap;list-style:none}.note-edit summary:after{content:" ✎";color:var(--muted)}.note-edit form{gap:.4rem;margin-top:.4rem;display:flex}.note-cell{max-width:320px}.note{white-space:pre-wrap}.note-row{align-items:flex-start;gap:.35rem;display:flex}.note-del{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:.15rem;padding:0 .3rem;font-size:.9rem}.note-del:hover{color:var(--red)}.back{color:var(--muted);margin-bottom:.75rem;display:inline-block}.cards{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex:1;min-width:240px;padding:1rem 1.25rem}.card h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem;font-size:.85rem}.card dl{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0;display:grid}.card dt{color:var(--muted)}.card dd{margin:0}.movement-group h4{margin:1rem 0 .5rem}.timeline{border-left:2px solid var(--border);margin:0;padding:0 0 0 1rem;list-style:none}.timeline li{flex-wrap:wrap;gap:1rem;padding:.3rem 0 .3rem .75rem;display:flex;position:relative}.timeline li:before{content:"";background:var(--accent);border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:.85rem;left:-.35rem}.mv-date{color:var(--muted);min-width:150px}.mv-event{font-weight:600}.mv-loc{color:var(--muted)}
