:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-card: #222222;--bg-hover: #2a2a2a;--bg-input: #1a1a1a;--border: #333333;--border-light: #444444;--text-primary: #e8e8e8;--text-secondary: #999999;--text-muted: #666666;--accent: #c9a96e;--accent-hover: #d4b87d;--accent-muted: rgba(201, 169, 110, .15);--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--star: #f59e0b;--ben: #3b82f6;--kp: #a855f7;--anna: #ef4444;--radius: 8px;--radius-lg: 12px;--shadow: 0 2px 8px rgba(0,0,0,.3);--transition: .15s ease;--font-serif: "Libre Baskerville", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}h1,h2,h3{font-family:var(--font-serif);font-weight:700;letter-spacing:-.01em}h1{font-size:1.75rem}h2{font-size:1.35rem}h3{font-size:1.1rem}button{cursor:pointer;font-family:var(--font-sans);border:none;background:none;color:var(--text-primary);font-size:.875rem}input,textarea,select{font-family:var(--font-sans);font-size:.875rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:.5rem .75rem;outline:none;transition:border-color var(--transition)}input:focus,textarea:focus,select:focus{border-color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius);font-weight:500;transition:all var(--transition)}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-light)}.btn-danger{background:var(--danger);color:#fff}.btn-small{padding:.25rem .5rem;font-size:.8rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:99px;font-size:.75rem;font-weight:500}.member-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.spoiler{filter:blur(4px);cursor:pointer;-webkit-user-select:none;user-select:none;transition:filter .2s}.spoiler:hover,.spoiler.revealed{filter:none}.stars{display:inline-flex;gap:2px;color:var(--star)}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:1.5rem 0;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:100}.sidebar-logo{font-family:var(--font-serif);font-size:1.3rem;color:var(--accent);padding:0 1.25rem;margin-bottom:2rem;letter-spacing:.02em}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;color:var(--text-secondary);font-size:.9rem;transition:all var(--transition);border-left:3px solid transparent}.sidebar-link:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-link.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-muted)}.sidebar-section{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:1rem 1.25rem .5rem}.main-content{flex:1;margin-left:220px;padding:2rem;min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.mobile-header,.sidebar-backdrop{display:none}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:none;border:none;cursor:pointer}.hamburger-line{display:block;width:100%;height:2px;background:var(--text-primary);border-radius:1px;transition:transform .25s ease,opacity .25s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:768px){.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:56px;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 1rem;z-index:200}.mobile-header-logo{font-family:var(--font-serif);font-size:1.15rem;color:var(--accent);letter-spacing:.02em}.mobile-header-user{width:36px;display:flex;justify-content:center}.mobile-header-user .member-dot{width:10px;height:10px}.sidebar{transform:translate(-100%);transition:transform .3s ease;width:260px;z-index:300;padding-top:1.5rem}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:250;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main-content{margin-left:0;padding:1.25rem;padding-top:calc(56px + 1.25rem)}.page-header h1{font-size:1.35rem}.book-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}}.book-cover{border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow)}.book-cover-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-serif);font-size:.8rem;text-align:center;padding:.5rem}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.25rem}.book-list{display:flex;flex-direction:column;gap:.75rem}.loading{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted)}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state h3{font-family:var(--font-sans);margin-bottom:.5rem}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.tab{padding:.75rem 1.25rem;color:var(--text-secondary);font-weight:500;border-bottom:2px solid transparent;transition:all var(--transition)}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.progress-bar{height:4px;background:var(--bg-hover);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .3s ease}
