.auth-gate{position:fixed;inset:0;z-index:30;background:rgba(33,38,35,.68);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e6e5df;padding:34px 36px 30px;box-shadow:0 24px 70px rgba(20,25,22,.22)}.auth-brand{display:flex;align-items:center;gap:9px;margin-bottom:34px;color:#252a28;font-size:12px;letter-spacing:2px;font-weight:700}.auth-brand .brand-mark{width:29px;height:29px;font-size:17px}.auth-card h2{font-family:Georgia,"Noto Sans SC",serif;font-weight:400;font-size:27px;margin:12px 0 9px;color:#202322}.auth-intro{color:#81857e;font-size:11px;line-height:1.7;margin:0 0 25px}.auth-label{display:block;color:#666b64;font-size:10px;margin:0 0 7px}.auth-input{display:block;width:100%;height:43px;border:1px solid #deded7;border-radius:4px;padding:0 12px;font-size:12px;color:#202322;background:#fbfbf8;outline:none}.auth-input:focus{border-color:#4c9b89;box-shadow:0 0 0 3px rgba(76,155,137,.12)}.auth-submit{width:100%;justify-content:center;margin-top:13px;height:43px}.auth-status{min-height:18px;color:#478575;font-size:10px;line-height:1.5;margin:14px 0 0}.auth-status.error{color:#bd604d}.auth-footnote{border-top:1px solid #efeee8;color:#a0a49c;font-size:9px;line-height:1.6;margin:24px 0 0;padding-top:17px}@media(max-width:520px){.auth-card{padding:28px 23px 25px}.auth-brand{margin-bottom:27px}.auth-card h2{font-size:24px}}
.form-label{display:block;color:#666b64;font-size:10px;margin:13px 0 6px}.form-input{display:block;width:100%;min-height:38px;border:1px solid #deded7;border-radius:4px;padding:8px 10px;font-size:11px;color:#202322;background:#fbfbf8;outline:none}.form-input:focus{border-color:#4c9b89;box-shadow:0 0 0 3px rgba(76,155,137,.12)}.form-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-textarea{min-height:68px;resize:vertical}.book-modal{max-height:calc(100vh - 30px);overflow:auto}.empty-table{padding:30px 10px;text-align:center;color:#a0a49c;font-size:10px}.book-table .table-row{grid-template-columns:1.7fr 1.15fr .95fr 1fr .8fr 1.1fr .55fr}.book-table .table-row:not(.table-head) .row-action{color:#8b9088;background:transparent;font-size:10px;padding:4px}.book-table .table-row:not(.table-head) .row-action:hover{color:var(--coral)}.book-table .book-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.book-table .table-row{grid-template-columns:1.6fr 1fr 1fr .6fr}.book-table .table-row>*:nth-child(n+4){display:none}.book-table .table-row>*:last-child{display:block}.form-two-col{grid-template-columns:1fr}}
.filter-select-label{display:inline-flex;align-items:center}.filter-select{min-height:30px;border:1px solid var(--line);border-radius:4px;background:#fbfbf8;color:#666b64;padding:0 25px 0 9px;font-size:10px;cursor:pointer}.filter-select:focus{outline:1px solid var(--mint)}.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}.search-modal{width:min(560px,calc(100vw - 32px))}.search-results{max-height:330px;overflow:auto;margin-top:12px}.search-result{display:flex;gap:14px;align-items:center;border-bottom:1px solid #efeee8;padding:12px 4px;font-size:11px}.search-result span{color:#a05f4f;font-size:9px;min-width:56px}.search-result b{font-weight:500;color:var(--ink)}
