@font-face{font-family:Outfit;src:url('/brand/fonts/outfit-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:Playfair;src:url('/brand/fonts/playfair-display-700.woff2') format('woff2');font-display:swap}
:root{font-family:Outfit,Arial,sans-serif;color:#291c35;background:#f7f5f1;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}h1,h2,p{margin-top:0}h1,h2{line-height:1.15}h1{font-family:Playfair,Georgia,serif;font-size:clamp(2rem,3vw,3.3rem);margin-bottom:.7rem}h2{font-family:Playfair,Georgia,serif;font-size:1.32rem;margin-bottom:.65rem}p{line-height:1.55}small,.hint{color:#706579}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kicker{color:#8e6b12;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;font-weight:700;margin-bottom:.65rem}.button{border:1px solid #d5ccdc;border-radius:11px;padding:.7rem 1rem;background:#fff;color:#39274c;font-weight:700;white-space:nowrap}.button:hover:not(:disabled){border-color:#764996;background:#f6eff9}.button.primary{background:#52366c;border-color:#52366c;color:white}.button.primary:hover:not(:disabled){background:#39244f}.button.secondary{background:#e9dfef;border-color:#ded0e8}.button.quiet{border-color:transparent;background:transparent}.tag{display:inline-flex;align-items:center;border-radius:99px;padding:.35rem .65rem;background:#e8f1ec;color:#1d5e45;font-size:.76rem;font-weight:700;white-space:nowrap}.tag.offline,.tag.warn{background:#fff0d9;color:#805014}.tag.pilot{background:#fff2c9;color:#6e5310}.tag.danger{background:#ffe5e5;color:#9a3434}.message{padding:.8rem 1rem;border-radius:10px;margin:.7rem 0}.message.error{background:#fff0f0;color:#822e2e;border:1px solid #e9baba}.message[hidden],section[hidden],div[hidden]{display:none!important}.callout{border:1px solid #e4d9c6;background:#fffaf0;border-radius:12px;padding:.9rem 1rem;color:#5f4d27;line-height:1.5}.callout.danger{border-color:#e8b9b9;background:#fff1f1;color:#823232}.callout.success{border-color:#bee1cc;background:#f0faf4;color:#205c3b}
input,select{min-height:43px;border:1px solid #d8d0da;border-radius:10px;padding:.64rem .75rem;background:#fff;color:#2d2137;min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #ccae74;outline-offset:2px}label{display:grid;gap:.36rem;font-size:.9rem;font-weight:650}.stack{display:grid;gap:1rem}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.4rem;background:radial-gradient(circle at 10% 0%,#f6e7bb 0,transparent 34%),linear-gradient(135deg,#2c1a40,#583776)}.login-card{width:min(100%,440px);padding:clamp(1.4rem,3vw,2.7rem);border-radius:22px;background:#fffefa;box-shadow:0 28px 80px #160b2760}.login-card>p:not(.kicker){color:#695f70}.login-logo{width:66px;height:66px;object-fit:contain;margin-bottom:1.2rem}.login-card .button{width:100%}
.app{min-height:100vh}.topbar{height:76px;background:#fffefa;border-bottom:1px solid #e8e2e9;display:flex;align-items:center;padding:0 clamp(1rem,2vw,2rem);gap:1.1rem;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:.65rem;min-width:215px}.brand img{width:47px;height:47px}.brand strong{display:block;color:#48305d;font-family:Playfair,Georgia,serif;font-size:1.12rem}.brand small{display:block;font-size:.74rem}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.8rem;font-size:.85rem}.menu-button{display:none;border:0;background:none;font-size:1.5rem;color:#48305d}.layout{display:grid;grid-template-columns:248px minmax(0,1fr)}.nav-panel{background:#2b1b3e;color:#f6eff8;min-height:calc(100vh - 76px);padding:1.5rem .8rem;display:flex;flex-direction:column;gap:.4rem}.nav-label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#c8b7d6;margin:1rem .9rem .45rem}.nav-panel nav{display:grid;gap:.16rem}.nav-link{display:flex;align-items:center;gap:.7rem;text-align:left;width:100%;padding:.78rem .85rem;color:#eee2f5;background:transparent;border:0;border-radius:10px;text-decoration:none;font-size:.91rem}.nav-link:hover,.nav-link.selected{background:#553971;color:#fff}.nav-link[hidden]{display:none}.nav-foot{margin-top:auto;border-top:1px solid #594363;padding:1rem .8rem;font-size:.8rem;color:#dccde6}.nav-foot p{margin:.5rem 0 0}.content{padding:clamp(1.2rem,2.8vw,2.7rem);max-width:1660px;width:100%;margin:0 auto}.page{display:none}.page.active{display:block}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-head p:not(.kicker){color:#6b6071;max-width:62ch;margin-bottom:0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.35rem}.metrics article,.panel{background:#fff;border:1px solid #ece5ec;border-radius:17px;box-shadow:0 5px 20px #2c173d08}.metrics article{padding:1.35rem}.metrics span{display:block;color:#6f6278;font-size:.83rem}.metrics strong{display:block;margin-top:.5rem;font-size:2rem;font-family:Playfair,Georgia,serif;color:#4c3263}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.panel{padding:1.4rem;margin-bottom:1rem}.panel p{color:#665d6b}.panel ol{padding-left:1.15rem;margin-bottom:0}.panel li{margin-bottom:.6rem;line-height:1.45}.search-row{display:flex;gap:.65rem;margin-bottom:1rem}.search-row input{width:100%}.table-scroll{overflow:auto;background:white;border:1px solid #ece5ec;border-radius:16px;max-width:100%}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid #eee9ef;vertical-align:middle;font-size:.87rem}th{background:#faf7fb;color:#6a5976;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}tr:last-child td{border-bottom:0}td strong{display:block;color:#332540}td small{display:block}.book-cell{display:flex;align-items:center;gap:.75rem;min-width:190px}.book-cell img{width:42px;height:60px;object-fit:cover;border-radius:5px;background:#e8e0e8}.book-placeholder{width:42px;height:60px;border-radius:5px;background:linear-gradient(150deg,#503965,#8e6a36);color:#fff;display:grid;place-items:center;font-family:Playfair,serif}.code{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;word-break:break-all}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;margin:1rem 0}.inline-form{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}.inline-form h2{width:100%}.inline-form label{min-width:160px;flex:1}.inline-form label input,.inline-form label select{width:100%}.mode-switch{display:flex;gap:1rem;margin:1rem 0}.mode-switch label{display:flex;align-items:center;gap:.4rem;font-weight:700}.mode-switch input{min-height:auto}.movement-panel{max-width:850px}.movement-panel .stack{max-width:600px}.match-box{padding:.75rem;border:1px solid #e7dfe9;background:#faf8fb;border-radius:10px;font-size:.86rem;color:#665d6b}.match-box .choice{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid #ece6ee}.match-box .choice:last-child{border-bottom:0}.match-box .choice button{white-space:normal;text-align:left}.conflict-list{display:grid;gap:.7rem}.conflict-card{border:1px solid #e6d5d5;background:#fffafa;border-radius:10px;padding:.8rem}.conflict-card p{margin:.2rem 0}.report-form{display:flex;align-items:end;gap:.8rem;flex-wrap:wrap}.report-form label{min-width:180px}.report-form input{width:100%}.detail-dialog,.scanner-dialog{width:min(95vw,760px);max-height:90vh;border:0;border-radius:18px;box-shadow:0 22px 80px #1b102780;padding:1.5rem;overflow:auto}.detail-dialog::backdrop,.scanner-dialog::backdrop{background:#20132cc9}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.detail-grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:1.4rem}.detail-cover{width:170px;max-height:260px;object-fit:contain;background:#eee6ee;border-radius:9px}.detail-grid dl{display:grid;grid-template-columns:150px 1fr;gap:.55rem .8rem;margin:0}.detail-grid dt{color:#74687b}.detail-grid dd{margin:0;overflow-wrap:anywhere}.marc-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;background:#f6f4f5;padding:1rem;border-radius:8px;font-size:.78rem}#scanner-video{width:100%;height:min(50vh,380px);object-fit:cover;background:#281e31;border-radius:12px}.scanner-dialog .button{margin-right:.5rem}.file-picker{display:inline-block;position:relative}.file-picker input{position:absolute;opacity:0;width:1px;height:1px}#toast{position:fixed;bottom:1.2rem;right:1.2rem;background:#342346;color:white;padding:.8rem 1.1rem;border-radius:11px;box-shadow:0 8px 30px #22112d50;z-index:20;opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translateY(0)}
.duplicate-list{display:grid;gap:.6rem}.duplicate-group{border:1px solid #e6d5d5;background:#fffafa;border-radius:11px;overflow:hidden}.duplicate-group summary{cursor:pointer;padding:.85rem 1rem;color:#733c3c;font-weight:700}.duplicate-group summary:focus-visible{outline:3px solid #ccae74;outline-offset:-3px}.duplicate-group .table-scroll{margin:.1rem .7rem .7rem}.duplicate-group table{min-width:760px}
.movement-ledger{min-width:1150px}.movement-ledger td{vertical-align:top}.movement-ledger td small{display:block;margin-top:.24rem;color:#6b6071}.movement-ledger .code{font-size:.78rem}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:215px minmax(0,1fr)}.nav-panel{padding:.9rem .55rem}.topbar-right #user-name{display:none}}
@media(max-width:800px){.menu-button{display:block}.layout{display:block}.nav-panel{display:none;position:fixed;top:76px;left:0;bottom:0;width:min(82vw,300px);z-index:8;overflow:auto;box-shadow:10px 0 30px #10091b60}.nav-panel.open{display:flex}.content{padding:1rem}.topbar{padding:.5rem .8rem}.brand{min-width:0}.page-head{display:block}.page-head .button{margin-top:1rem}.two-columns{grid-template-columns:1fr}.topbar-right{gap:.3rem}.topbar-right .tag{display:none}.detail-grid{grid-template-columns:1fr}.detail-grid dl{grid-template-columns:110px 1fr}.detail-cover{max-height:180px}}
@media(max-width:520px){.brand small{display:none}.brand strong{font-size:.98rem}.brand img{width:37px;height:37px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.metrics article{padding:.9rem}.metrics strong{font-size:1.55rem}.search-row{flex-wrap:wrap}.search-row button{width:100%}.inline-form{display:grid}.report-form{display:grid}.topbar-right #logout{padding:.5rem}}
