@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;600;700&family=Noto+Sans+KR:wght@300;400;500;600&family=Inter:wght@300;400;500;600;700&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg-2:#f7f7f7;--bg-3:#f0f0f0;--dark:#0a0a0a;--dark-2:#1a1a1a;--text:#111;--text-2:#444;--text-3:#888;--text-4:#bbb;--border:#e5e5e5;--border-2:#ccc;--accent:#06f;--accent-light:#eef4ff;--red:#e53e3e;--green:#38a169;--orange:#d69e2e;--ff:"Noto Sans KR",sans-serif;--fi:"Inter",sans-serif;--fs:"Noto Serif KR",serif}html{scroll-behavior:smooth}body{font-family:var(--ff);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.6}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit}.container{max-width:1100px;margin:0 auto;padding:0 2rem}.btn-primary{padding:.6rem 1.5rem;background:var(--accent);color:#fff;border:none;font-size:.82rem;font-weight:500;border-radius:6px;transition:opacity .2s;display:inline-block;cursor:pointer}.btn-primary:hover{opacity:.85}.btn-dark{padding:.6rem 1.5rem;background:var(--dark);color:#fff;border:none;font-size:.82rem;font-weight:500;border-radius:6px;transition:opacity .2s;display:inline-block;cursor:pointer}.btn-dark:hover{opacity:.75}.btn-outline{padding:.6rem 1.5rem;background:transparent;color:var(--dark);border:1.5px solid var(--dark);font-size:.82rem;border-radius:6px;transition:all .2s;display:inline-block;cursor:pointer}.btn-outline:hover{background:var(--dark);color:#fff}.btn-full{width:100%;padding:.75rem;background:var(--accent);color:#fff;border:none;font-size:.85rem;font-weight:500;border-radius:6px;transition:opacity .2s;cursor:pointer}.btn-full:hover{opacity:.85}.btn-full:disabled{opacity:.35;cursor:not-allowed}.btn-full.dark{background:var(--dark)}.form-group{margin-bottom:1.1rem}.form-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-2);margin-bottom:.4rem;letter-spacing:.02em}.form-label em{color:var(--red);font-style:normal;margin-left:.2rem}.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .9rem;border:1.5px solid var(--border);background:#fff;font-family:inherit;font-size:.85rem;color:var(--text);outline:none;transition:border-color .15s;border-radius:6px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent)}.form-textarea{resize:vertical;min-height:120px;line-height:1.75}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-hint{font-size:.72rem;color:var(--text-4);margin-top:.3rem}.filter-btn{padding:.35rem .85rem;border:1.5px solid var(--border);background:transparent;font-family:inherit;font-size:.75rem;cursor:pointer;color:var(--text-3);border-radius:20px;transition:all .15s}.filter-btn.active,.filter-btn:hover{background:var(--dark);color:#fff;border-color:var(--dark)}.tab-btn{padding:.5rem 1rem;background:transparent;font-family:inherit;font-size:.82rem;cursor:pointer;color:var(--text-3);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.book-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:1.25rem;gap:1.25rem}.book-cover{aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:4px;margin-bottom:.6rem;box-shadow:0 2px 8px rgba(0,0,0,.12)}.book-spine{top:0;width:5px;background:rgba(0,0,0,.2);z-index:1}.book-info-overlay,.book-spine{position:absolute;left:0;bottom:0}.book-info-overlay{right:0;padding:.6rem .5rem;background:linear-gradient(transparent,rgba(0,0,0,.6));z-index:2}.book-genre-tag{font-size:.58rem;background:hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.9);padding:.1rem .3rem;border-radius:2px;letter-spacing:.04em}.book-title-txt{font-size:.72rem;color:#fff;font-weight:500;line-height:1.35;margin-top:.2rem}.book-author-txt{font-size:.62rem;color:hsla(0,0%,100%,.7)}.badge{display:inline-block;font-size:.65rem;padding:.2rem .55rem;border-radius:3px;font-weight:500}.badge-blue{background:#eef4ff;color:#06f}.badge-orange{background:#fff8e1;color:#d69e2e}.badge-green{background:#f0fff4;color:#38a169}.badge-gray{background:#f5f5f5;color:#666}.card{background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:1.5rem}.sec-title{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;color:var(--dark)}.sec-sub{font-size:.88rem;color:var(--text-3);margin-top:.35rem}.divider{height:1px;background:var(--border);margin:2rem 0}.check-item{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.6rem}.check-item input{width:15px;height:15px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}.check-item label{font-size:.8rem;color:var(--text-2);line-height:1.55;cursor:pointer}.ann-row{display:grid;grid-template-columns:60px 85px 1fr 95px;grid-gap:.75rem;gap:.75rem;padding:.8rem .5rem;border-bottom:1px solid var(--border);align-items:center}.ann-row.head{font-size:.7rem;font-weight:600;color:var(--text-4);letter-spacing:.04em;text-transform:uppercase}.ann-row:not(.head){cursor:pointer;transition:background .1s;border-radius:4px}.ann-row:not(.head):hover{background:var(--bg-2)}.pagination{display:flex;justify-content:center;gap:.3rem;margin-top:2rem}.pg-btn{width:32px;height:32px;border:1.5px solid var(--border);background:transparent;font-family:inherit;font-size:.78rem;cursor:pointer;border-radius:6px;color:var(--text-3);transition:all .15s}.pg-btn.active,.pg-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}