.app{max-width:960px;margin:0 auto;padding:16px;font-family:system-ui,sans-serif}.book-table{border-collapse:collapse;width:100%}.book-table th,.book-table td{text-align:left;border:1px solid #ccc;padding:4px 8px}.book-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.book-table th.sortable:hover{background:#f0f0f0}.book-row{cursor:pointer}.book-row:hover{background:#f5f5f5}.thumb{object-fit:cover;width:40px;height:40px}.attr-cell{white-space:nowrap}.term{color:#b45309;cursor:help;border-bottom:1px dotted #b45309}.term:hover{background:#fef3c7}.term-seen{color:#999;cursor:default;border-bottom-color:#ccc}.hovercard{z-index:1000;white-space:pre-wrap;background:#fff;border:1px solid #bbb;border-radius:8px;width:max-content;max-width:300px;padding:10px 12px;font-size:14px;line-height:1.6;position:fixed;box-shadow:0 4px 16px #0000002e}.hovercard:before{content:"";z-index:-1;position:absolute;inset:-2px}.glossary-manager{background:#fafafa;border:1px solid #ddd;border-radius:6px;margin:8px 0;padding:12px}.glossary-manager h2{margin:0 0 4px;font-size:15px}.glossary-manager .hint{color:#666;margin:0 0 8px;font-size:12px}.glossary-row{align-items:flex-start;gap:8px;margin:6px 0;display:flex}.glossary-name{width:140px}.glossary-desc{resize:vertical;font:inherit;flex:1}.skill-line{white-space:nowrap;cursor:help}.skill-line+.skill-line{margin-top:2px}.book-detail td{background:#fafafa;font-size:.9em}.max-points{text-align:right;font-variant-numeric:tabular-nums}.skill-detail-list{margin:2px 0 2px 1.2em;padding:0}.skill-detail-list li{margin:4px 0}.skill-name-line{font-weight:600}.effect-text{white-space:pre-wrap;margin-left:1em}.skill-effect-input{resize:vertical;font:inherit;box-sizing:border-box;width:100%}.top-actions{gap:8px;margin:8px 0;display:flex}.top-actions .secondary{background:#f0f0f0}.row-actions{justify-content:flex-end;margin-top:8px;display:flex}.action-menu{position:relative}.action-menu-btn{cursor:pointer;font:inherit;background:#f7f7f7;border:1px solid #ccc;border-radius:4px;padding:2px 10px;line-height:1}.action-menu-btn:hover{background:#ececec}.action-menu-popup{z-index:10;background:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;gap:4px;margin-bottom:4px;padding:4px;display:flex;position:absolute;bottom:100%;right:0;box-shadow:0 -2px 8px #00000026}.action-menu-popup button{white-space:nowrap}.filter-bar{flex-wrap:wrap;align-items:flex-start;gap:8px;margin:8px 0;display:flex}.filter-dd{position:relative}.filter-dd-btn{cursor:pointer;white-space:nowrap;font:inherit;background:#f7f7f7;border:1px solid #ccc;border-radius:4px;padding:4px 10px}.filter-dd-btn:hover{background:#f0f0f0}.filter-dd-btn.open{background:#e6e6e6;border-color:#999}.filter-dd-panel{z-index:10;background:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;gap:2px;min-width:140px;max-height:260px;margin-top:4px;padding:8px;display:flex;position:absolute;overflow:auto;box-shadow:0 2px 8px #00000026}.filter-dd-panel label{white-space:nowrap}.filter-dd-empty{color:#999;font-size:.9em}.book-form{border:1px solid #ccc;border-radius:6px;flex-direction:column;gap:8px;margin:12px 0;padding:16px;display:flex}.book-form fieldset{border:1px solid #ddd;border-radius:4px}.book-form label{margin:4px 0;display:block}.form-actions{gap:8px;margin-top:8px;display:flex}.req-editor .req-block{border:1px dashed #ccc;margin:8px 0;padding:8px}.req-editor .cond-row{align-items:center;gap:4px;margin:4px 0;display:flex}
