:root{font-family:system-ui,-apple-system,"Malgun Gothic",sans-serif;background:#0c1018;color:#ecf2fa;color-scheme:dark;--panel:#151d2b;--panel2:#1d293a;--edge:#354257;--muted:#9aabc2;--accent:#82b6ff}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:var(--panel2);border:1px solid var(--edge);border-radius:8px;padding:9px 12px}button:hover{background:#2e4058}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #a0caff;outline-offset:2px}button:disabled{opacity:.4;cursor:default}.primary{background:#28528a;border-color:#4575b0}.primary:hover{background:#3969a6}a{color:inherit}.app{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100dvh}.sidebar{background:#111927;border-right:1px solid #2e3b4e;display:flex;flex-direction:column;gap:18px;padding:24px 14px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:0 6px}.brand-icon{font-size:30px;color:#9bc9ff}.brand span:last-child{display:flex;flex-direction:column}.brand small{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.add-folder{width:100%;margin-top:14px}.section-head{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:0 8px}.roots{display:grid;gap:5px}.root-row{display:flex;align-items:center;gap:6px;border-radius:9px;padding:4px}.root-row.active{background:#2b3f58}.root-row>button:first-child{flex:1;min-width:0;border:0;background:transparent;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-row>button.small{padding:5px 8px;font-size:12px}.root-row .offline{color:#ffcf9c}.sidebar-bottom{margin-top:auto;font-size:11px;line-height:1.8;color:#7f91aa;padding:10px 6px}.main{min-width:0;padding:24px 28px 50px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.topbar h1{font-size:25px;margin:0 0 7px}.topbar #status{color:var(--muted);font-size:13px}.top-actions{display:flex;gap:8px;align-items:center}.github-help{font-size:12px;text-decoration:none;color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:22px}.filters>input{width:min(440px,100%);flex:1;min-width:180px}.filters input,.filters select,.viewer-toolbar select{background:#1a2434;color:#e4f0ff;border:1px solid #3a4a63;border-radius:8px;padding:10px}.favorite-only{font-size:13px;white-space:nowrap;color:var(--muted)}#book-count{margin-left:auto;font-size:12px;color:var(--muted)}.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}.book-card{border:1px solid #314159;border-radius:12px;background:#192333;overflow:hidden;min-width:0;position:relative;cursor:pointer;transition:transform .12s,border-color .12s}.book-card:hover{transform:translateY(-3px);border-color:#7aa7dd}.cover{height:230px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(130deg,#283d57,#151a27)}.cover img{width:100%;height:100%;object-fit:cover}.cover-placeholder{font-size:48px;opacity:.5}.card-info{padding:11px 12px 13px}.card-title{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-path{font-size:11px;color:var(--muted);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-type{font-size:10px;color:#91bfff;margin-top:8px}.favorite{position:absolute;right:7px;top:7px;z-index:1;border:0;background:#0d1827cf;font-size:19px;padding:4px 7px}.favorite[aria-pressed="true"]{color:#ffc977}.empty{text-align:center;margin:70px auto;max-width:460px;color:var(--muted)}.empty h2{color:#e5efff;font-size:20px}.empty-icon{font-size:60px}.empty p{font-size:14px;line-height:1.75}.muted{font-size:12px!important;color:#778ba7}.viewer{position:fixed;inset:0;z-index:9999;background:#0d0f14}.viewer[hidden]{display:none}.viewer-toolbar{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#151d29f2;border-bottom:1px solid #354259;padding:9px 14px;min-height:58px}.viewer-toolbar button{padding:7px 10px}.viewer-title{min-width:75px;flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-toolbar select{padding:7px}.viewer-toolbar #width-wrap{display:flex;gap:7px;align-items:center;font-size:12px}.viewer-toolbar output{min-width:38px}#viewer-width{width:100px;accent-color:#81b9ff}.viewer-stage{position:absolute;top:60px;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:0;overflow:hidden}.viewer-stage .page{height:100%;min-width:0;flex:0 0 100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.viewer-stage.double .page{flex-basis:50%}.viewer-stage img{height:100%;width:100%;object-fit:contain;user-select:none;pointer-events:none}.viewer-stage.double .page:first-child img{object-position:right center}.viewer-stage.double .page:nth-child(2) img{object-position:left center}.viewer-stage.scroll{display:block;overflow:auto;scroll-behavior:smooth;padding:15px 0 30px}.viewer-stage.scroll .page{display:flex;align-items:flex-start;height:auto;overflow:visible}.viewer-stage.scroll img{display:block;height:auto;max-height:none;max-width:100%;width:var(--scroll-image-width,50%);margin:0 auto}.viewer-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);pointer-events:none;font-size:11px;background:#111c29bb;border-radius:20px;padding:6px 12px;color:#bac9df}.viewer-stage .page-error{color:#ffc4b9;font-size:14px}.viewer-stage .loading{font-size:13px;color:#93a4c0}@media(max-width:700px){.app{grid-template-columns:1fr}.sidebar{padding:12px;gap:9px}.roots{display:flex;overflow-x:auto}.root-row{min-width:130px}.sidebar-bottom,.section-head{display:none}.main{padding:18px 12px}.topbar h1{font-size:20px}.books{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:9px}.cover{height:170px}.viewer-toolbar{padding:6px;gap:4px}.viewer-title{flex-basis:100%;order:3}.viewer-stage{top:93px}.viewer-hint{display:none}}

/* v0.2: 작가 모드 / 한눈에 보기 / 최근 추가순, 카드 창 제한 */
.app{height:100dvh;min-height:0;overflow:hidden}
.sidebar{min-height:0;overflow-y:auto}
.main{height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:28px}
.view-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-6px 0 17px}
.view-tabs button{padding:10px 16px;font-weight:650;color:#acc0df}
.view-tabs button.active{color:#fff;background:#28528a;border-color:#69a0e1}
.view-help{font-size:12px;color:#829bb7;padding-left:8px}
.author-trail{display:flex;align-items:center;gap:12px;margin:-4px 0 14px;color:#a9cdf9}
.author-trail[hidden]{display:none}
.author-trail button{padding:7px 11px}
.books{--card-height:337px;grid-auto-rows:var(--card-height)}
.book-card{height:var(--card-height);overflow:hidden}
.book-card .card-info{height:106px}
.virtual-spacer[hidden]{display:none}
.books-foot{display:flex;align-items:center;justify-content:center;gap:15px;margin:26px 0 5px;color:#9aacbf;font-size:12px;min-height:35px}
.books-foot button{font-size:12px;padding:7px 11px}
.books-foot button[hidden]{display:none}
@media(max-width:700px){
 .app{height:100dvh;min-height:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
 .sidebar{max-height:220px;padding:10px 12px}
 .main{height:auto;min-height:0;overflow-y:auto}
 .view-help{display:none}
 .view-tabs{gap:5px}.view-tabs button{padding:8px 9px;font-size:12px}
 .books{--card-height:283px}
 .book-card .card-info{height:113px}
}

.older-banner{display:block;margin:0 auto 14px;font-size:12px;color:#b1d0f5}
.older-banner[hidden]{display:none}
