:root{--type-normal:#a8a77a;--type-fire:#ee8130;--type-water:#6390f0;--type-electric:#f7d02c;--type-grass:#7ac74c;--type-ice:#96d9d6;--type-fighting:#c22e28;--type-poison:#a33ea1;--type-ground:#e2bf65;--type-flying:#a98ff3;--type-psychic:#f95587;--type-bug:#a6b91a;--type-rock:#b6a136;--type-ghost:#735797;--type-dragon:#6f35fc;--type-dark:#705746;--type-steel:#b7b7ce;--type-fairy:#d685ad}*,:before,:after{box-sizing:border-box}body{color:#222;-webkit-font-smoothing:antialiased;background:#f5f6fa;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}.app-layout{min-height:100vh;display:flex}.sidebar{z-index:100;background:#fafbfc;border-right:1px solid #e0e0e0;flex-direction:column;width:280px;height:100vh;padding:16px;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar h2{margin:0 0 12px;font-size:18px}.sort-toggle{border:1px solid #d0d0d0;border-radius:6px;gap:0;margin-bottom:12px;display:flex;overflow:hidden}.sort-toggle button{cursor:pointer;color:#666;background:#fff;border:none;flex:1;padding:5px 0;font-size:13px;font-weight:600;transition:background .15s,color .15s}.sort-toggle button+button{border-left:1px solid #d0d0d0}.sort-toggle button.active{color:#fff;background:#6390f0}.sort-toggle button:hover:not(.active){background:#f0f0f0}.sidebar-search{border:1px solid #d0d0d0;border-radius:6px;outline:none;width:100%;margin-bottom:12px;padding:8px 10px;font-size:14px}.sidebar-search:focus{border-color:#6390f0;box-shadow:0 0 0 2px #6390f033}.sidebar-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.sidebar-list li button{color:#333;cursor:pointer;text-align:left;text-transform:capitalize;background:0 0;border:none;border-radius:4px;width:100%;padding:4px 8px;font-size:13px;transition:background .15s}.sidebar-list li button:hover{background:#e8ecf0}.sidebar-list li button.active{color:#fff;background:#6390f0;font-weight:600}.sidebar-footer{border-top:1px solid #eee;padding-top:12px}.main-content{flex-direction:column;align-items:center;width:calc(100% - 280px);min-height:100vh;margin-left:280px;padding:20px;display:flex}.book-page{background:#fff;border-radius:4px;flex-direction:column;width:210mm;height:297mm;margin:0 auto 20px;padding:20mm 18mm;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px #00000014}.book-page:before{content:"";opacity:.1;pointer-events:none;z-index:0;background:url(/page-bg.jpg) 50%/cover no-repeat;position:absolute;inset:0}.book-page>*{z-index:1;position:relative}.page-number{text-align:center;color:#999;margin-top:auto;padding-top:12px;font-size:12px}.page-nav{justify-content:space-between;align-items:center;margin-bottom:16px;padding:8px 0;display:flex}.page-nav button{cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:6px 16px;font-size:14px;transition:background .15s}.page-nav button:hover:not(:disabled){background:#f0f0f0}.page-nav button:disabled{opacity:.4;cursor:default}.page-nav span{color:#666;font-size:14px}.pokemon-entry{border-left:4px solid var(--entry-type-color,#888);flex-direction:column;flex:1;padding:16px 0 16px 16px;display:flex}.pokemon-entry+.pokemon-entry{border-top:1px solid #eee;margin-top:8px;padding-top:20px}.entry-header{border-radius:6px;align-items:baseline;gap:10px;margin-bottom:4px;margin-left:-12px;margin-right:-4px;padding:6px 12px;display:flex;position:relative}.entry-header-bg{background:var(--entry-type-color,#888);opacity:.12;pointer-events:none;border-radius:6px;position:absolute;inset:0}.entry-header h2{margin:0;font-size:20px;font-weight:700;position:relative}.entry-header .dex-number{color:#666;font-size:14px;font-weight:600;position:relative}.entry-header .form-badge{color:#555;text-transform:uppercase;letter-spacing:.5px;background:#eee;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600;position:relative}.pokemon-entry.info-left .entry-body{flex-direction:row-reverse}.pokemon-entry.info-left .entry-header{text-align:right;flex-direction:row-reverse}.entry-genus{color:#666;margin:0 0 8px;font-size:13px;font-style:italic}.pokemon-entry.info-left .entry-genus{text-align:right}.pokemon-entry.info-left .entry-types{justify-content:flex-end}.entry-types{gap:6px;margin-bottom:10px;display:flex}.entry-body{align-items:flex-start;gap:16px;display:flex}.entry-visual{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.entry-artwork{object-fit:contain;width:140px;height:140px}.stat-hexagon{width:120px;height:auto;margin-top:-4px}.entry-info{flex:1;min-width:0}.entry-description{color:#333;margin:0 0 10px;font-size:13px;line-height:1.5}.pokemon-entry.full-page .entry-artwork{width:200px;height:200px}.pokemon-entry.full-page .stat-hexagon{width:150px}.pokemon-entry.full-page .entry-header h2{font-size:24px}.pokemon-entry.full-page .entry-description{font-size:14px}.inline-forms{border-top:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:8px;display:flex}.inline-forms-label{color:#999;text-transform:uppercase;letter-spacing:.5px;margin-right:4px;font-size:11px;font-weight:700}.inline-form-thumb{flex-direction:column;align-items:center;gap:2px;display:flex}.inline-form-thumb img{object-fit:contain;width:48px;height:48px}.inline-form-thumb span{color:#666;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:60px;font-size:9px;overflow:hidden}.type-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.stats-block{font-size:12px;line-height:1.6}.stats-block .stat-row{align-items:center;gap:6px;display:flex}.stats-block .stat-label{color:#777;flex-shrink:0;width:80px;font-weight:600}.stats-block .stat-value{color:#333;flex:1}.stats-block .abilities-list{flex-wrap:wrap;gap:4px;display:flex}.stats-block .ability-tag{text-transform:capitalize;background:#f0f0f0;border-radius:4px;padding:1px 6px;font-size:11px}.stats-block .ability-tag.hidden-ability{background:#fff3e0;border:1px solid #ffe0b2}.weakness-list{flex-wrap:wrap;gap:3px;display:flex}.weakness-list .type-badge{padding:1px 7px;font-size:10px}.gender-bar{border-radius:4px;width:100px;height:8px;display:flex;overflow:hidden}.gender-bar .male{background:#6390f0}.gender-bar .female{background:#f95587}.evolution-chain{border-top:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;padding-top:8px;display:flex}.evolution-chain .evo-label{color:#999;text-transform:uppercase;letter-spacing:.5px;margin-right:4px;font-size:11px;font-weight:700}.evo-stage{align-items:center;gap:2px;display:flex}.evo-member{flex-direction:column;align-items:center;display:flex;position:relative}.evo-member img{object-fit:contain;width:40px;height:40px}.evo-member.current{background:#6390f01a;border-radius:8px;padding:2px}.evo-member .evo-name{text-transform:capitalize;color:#666;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:50px;font-size:9px;overflow:hidden}.evo-arrow{color:#ccc;margin:0 2px;font-size:14px}.evo-trigger{color:#999;text-align:center;font-size:8px}main{padding:2rem}.home-status{max-width:600px}.home-status .status-ready{color:#4caf50;font-weight:600}.home-status .status-missing{color:#f44336}.feedback-bubble{z-index:1000;color:#fff;cursor:pointer;background:#6390f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;transition:background .15s,transform .15s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 2px 12px #0003}.feedback-bubble:hover{background:#4a7ae0;transform:scale(1.05)}.feedback-panel{z-index:1000;background:#fff;border-radius:12px;flex-direction:column;width:360px;max-height:480px;display:flex;position:fixed;bottom:84px;right:24px;overflow:hidden;box-shadow:0 4px 24px #00000026}.feedback-panel-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:12px 16px;font-size:15px;font-weight:700;display:flex}.feedback-panel-close{cursor:pointer;color:#999;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px}.feedback-panel-close:hover{color:#333;background:#f0f0f0}.feedback-comments{flex:1;max-height:240px;padding:12px 16px;overflow-y:auto}.feedback-empty{color:#999;text-align:center;margin:24px 0;font-size:13px}.feedback-comment{border-bottom:1px solid #f5f5f5;margin-bottom:12px;padding-bottom:12px}.feedback-comment:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.feedback-comment-header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.feedback-comment-header strong{font-size:13px}.feedback-comment-time{color:#aaa;font-size:11px}.feedback-comment p{color:#333;word-break:break-word;margin:0;font-size:13px;line-height:1.5}.feedback-form{border-top:1px solid #eee;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.feedback-input,.feedback-textarea{resize:none;border:1px solid #d0d0d0;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.feedback-input:focus,.feedback-textarea:focus{border-color:#6390f0;box-shadow:0 0 0 2px #6390f033}.feedback-honeypot{opacity:0;pointer-events:none;width:0;height:0;position:absolute;left:-9999px}.feedback-submit{color:#fff;cursor:pointer;background:#6390f0;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s}.feedback-submit:hover:not(:disabled){background:#4a7ae0}.feedback-submit:disabled{opacity:.5;cursor:default}.feedback-error{color:#d32f2f;background:#fff3f3;border:1px solid #ffcdd2;border-radius:4px;padding:6px 10px;font-size:12px}@media print{.sidebar,.page-nav,.feedback-bubble,.feedback-panel{display:none!important}.main-content{width:100%!important;margin-left:0!important;padding:0!important}.book-page{box-shadow:none;border-radius:0;margin:0}body{background:#fff}}
