*{margin:0;padding:0;box-sizing:border-box}body{font-family:SF Mono,Menlo,Monaco,Consolas,monospace;background:#0d1117;color:#c9d1d9;min-height:100vh}.app{display:flex;flex-direction:column;height:100vh}.topbar{background:#161b22;border-bottom:1px solid #30363d;padding:12px 20px;display:flex;align-items:center;gap:16px;flex-shrink:0}.topbar-logo{width:22px;height:22px}.topbar h1{font-size:14px;color:#58a6ff;font-weight:600}.topbar .file-info{font-size:12px;color:#8b949e}.topbar .file-select{font-family:inherit;font-size:12px;background:#0d1117;color:#c9d1d9;border:1px solid #30363d;border-radius:4px;padding:4px 8px;cursor:pointer;outline:none}.topbar .file-select:hover{border-color:#58a6ff}.topbar .file-select:focus{border-color:#58a6ff;box-shadow:0 0 0 1px #58a6ff}.topbar-btn{font-family:inherit;font-size:11px;background:#21262d;color:#c9d1d9;border:1px solid #30363d;border-radius:4px;padding:4px 10px;cursor:pointer;transition:all .15s}.topbar-btn:hover{background:#30363d;border-color:#58a6ff}.topbar-link{margin-left:auto;font-size:11px;color:#8b949e;text-decoration:none;transition:color .15s}.topbar-link:hover{color:#58a6ff}.topbar-btn-danger:hover{background:#3d1f28;border-color:#f85149;color:#f85149}.main-content{display:flex;flex:1;overflow:hidden}.sidebar{width:260px;background:#161b22;border-right:1px solid #30363d;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}.sidebar-header{padding:12px 16px;font-size:11px;text-transform:uppercase;color:#8b949e;letter-spacing:.5px;border-bottom:1px solid #30363d}.page-list{list-style:none}.page-list li{padding:6px 16px;font-size:12px;cursor:pointer;border-left:2px solid transparent;transition:all .15s}.page-list li:hover{background:#1c2128}.page-list li.active{background:#1c2128;border-left-color:#58a6ff;color:#58a6ff}.page-list .page-type{color:#8b949e;font-size:10px;margin-left:4px}.page-list .page-items{color:#7ee787;font-size:10px;float:right}.viewer{flex:1;display:flex;flex-direction:column;overflow:hidden}.page-view{flex:1;display:flex;overflow:auto;padding:12px;gap:16px}.grid-panel{flex-shrink:0;height:100%}.grid-panel svg{filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.items-panel{flex:1;min-width:260px;max-width:380px;overflow-y:auto;padding-top:62px}.items-section{margin-bottom:16px}.items-section-title{font-size:11px;text-transform:uppercase;color:#8b949e;letter-spacing:.5px;padding:4px 0 6px;border-bottom:1px solid #30363d;margin-bottom:2px}.item-row{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:11px;cursor:pointer;border-radius:4px;transition:background .1s}.item-row:hover,.item-row-highlight{background:#1c2128}.item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.item-label{color:#c9d1d9;white-space:nowrap}.item-meta{color:#8b949e;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tooltip{position:fixed;background:#1c2128;border:1px solid #30363d;border-radius:6px;padding:10px 14px;font-size:11px;line-height:1.6;pointer-events:none;z-index:1000;max-width:400px;box-shadow:0 8px 24px #0006}.tooltip .tt-title{color:#58a6ff;font-weight:600;font-size:12px;margin-bottom:4px}.tooltip .tt-row{display:flex;gap:8px}.tooltip .tt-key{color:#8b949e;min-width:100px}.tooltip .tt-val{color:#c9d1d9;word-break:break-all}.sidebar-detail{border-top:1px solid #30363d;flex-shrink:0}.sidebar-placeholder{padding:16px;font-size:11px;color:#484f58;text-align:center}.detail-panel{padding:12px 16px;overflow-y:auto}.detail-panel h3{font-size:12px;color:#58a6ff;margin-bottom:8px}.detail-panel table{width:100%;font-size:11px;border-collapse:collapse}.detail-panel td{padding:2px 8px;border-bottom:1px solid #21262d}.detail-panel td:first-child{color:#8b949e;width:160px}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:#8b949e;font-size:14px}.welcome{flex:1;display:flex;align-items:center;justify-content:center}.welcome-content{text-align:center;max-width:420px}.welcome-logo{width:80px;height:80px;margin-bottom:16px}.welcome-title{font-size:32px;color:#58a6ff;font-weight:700;margin-bottom:4px}.welcome-subtitle{font-size:14px;color:#8b949e;margin-bottom:24px}.welcome-desc{font-size:13px;color:#6e7681;line-height:1.6;margin-bottom:32px}.welcome-btn{font-family:inherit;font-size:14px;background:#238636;color:#fff;border:1px solid #2ea043;border-radius:6px;padding:10px 32px;cursor:pointer;transition:background .15s}.welcome-btn:hover{background:#2ea043}.mobile-detail{display:none}.mobile-detail-close{display:none;position:absolute;top:8px;right:8px;background:none;border:none;color:#8b949e;font-size:16px;cursor:pointer;padding:4px 8px;line-height:1}.mobile-detail-close:hover{color:#c9d1d9}.page-grid-svg{height:100%;width:auto;max-width:100%}@media(max-width:767px){.topbar{flex-wrap:wrap;padding:8px 12px;gap:8px}.topbar h1{font-size:13px}.topbar .file-select{flex:1;min-width:0}.main-content{flex-direction:column;overflow-y:auto;overflow-x:hidden}.sidebar{width:100%;border-right:none;border-bottom:1px solid #30363d;max-height:none;overflow:visible}.page-list{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch}.page-list li{white-space:nowrap;border-left:none;border-bottom:2px solid transparent;padding:6px 12px;flex-shrink:0}.page-list li.active{border-left-color:transparent;border-bottom-color:#58a6ff}.sidebar-detail{display:none}.mobile-detail{display:block;position:fixed;bottom:0;left:0;right:0;background:#161b22;border-top:1px solid #30363d;box-shadow:0 -4px 16px #00000080;max-height:40vh;overflow-y:auto;z-index:900;padding:12px;animation:slide-up .2s ease-out}.mobile-detail-close{display:block}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.viewer{overflow:visible}.page-view{flex-direction:column;padding:8px;gap:12px;overflow:visible}.grid-panel{width:100%;height:auto}.page-grid-svg{width:100%;height:auto;max-width:100%}.items-panel{min-width:0;max-width:100%;padding-top:0}.detail-panel td:first-child{width:auto}.tooltip{display:none}.welcome-content{padding:0 20px}.welcome-title{font-size:24px}}@media(max-height:500px)and (min-width:568px){.topbar{padding:4px 12px;gap:8px}.topbar h1{font-size:12px}.sidebar{width:180px}.sidebar-header{padding:6px 12px}.page-list li{padding:3px 12px;font-size:11px}.page-view{padding:6px;gap:8px}.items-panel{padding-top:0;min-width:200px}}@media(min-width:768px)and (max-width:1024px){.sidebar{width:200px}.items-panel{min-width:200px;max-width:280px}}
