:root{font-family:Space Grotesk,IBM Plex Sans SC,Noto Sans SC,sans-serif;line-height:1.45;font-weight:400;color:#162028;background:radial-gradient(circle at 15% 10%,#ffd56f 0%,transparent 30%),radial-gradient(circle at 85% 0%,#79d5c5 0%,transparent 35%),linear-gradient(145deg,#fffef7,#eef7ff)}*{box-sizing:border-box}body{margin:0;min-height:100vh}body.modal-open{overflow:hidden;touch-action:none}#root{min-height:100vh}.app-shell{width:min(1060px,calc(100% - 2rem));margin:2rem auto 3rem;padding:1.2rem}.top-panel h1{margin:0;font-size:clamp(1.4rem,1.2rem + 1vw,2rem);letter-spacing:.02em}.top-panel p{margin:.3rem 0 1rem;color:#3f535f}.drop-zone{border:2px dashed #2d6f79;border-radius:16px;padding:1.2rem;text-align:center;background:#fffc;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 10px 30px #11353e17}.drop-zone.is-hover{transform:translateY(-2px);box-shadow:0 14px 32px #11353e2e}.drop-zone.is-disabled{cursor:not-allowed;opacity:.65}.drop-main{margin:0;font-weight:700}.drop-sub{margin:.4rem 0 0;color:#425f69}.hidden-input{display:none}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.8rem;margin-top:1rem}.stat-card{background:#ffffffd1;border:1px solid rgba(17,53,62,.1);border-radius:12px;padding:.7rem .8rem}.stat-card span{color:#50616d;display:block;font-size:.9rem}.stat-card strong{font-size:1.05rem}.truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-row{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap;align-items:center}.chip{border:1px solid #2d6f79;border-radius:999px;padding:.32rem .72rem;background:transparent;cursor:pointer;font-weight:600}.chip.active{background:#2d6f79;color:#fff}.search-input{min-width:min(320px,100%);flex:1;border:1px solid #87a7b0;border-radius:999px;background:#ffffffe0;padding:.38rem .8rem;color:#22353f}.error-banner,.loading-tip{margin-top:1rem;padding:.7rem .8rem;border-radius:10px}.error-banner{color:#9f1d1d;background:#ffe9e9;border:1px solid #f4c1c1}.loading-tip{color:#285464;background:#e6f5fb;border:1px solid #b7dcea}.line-list{margin-top:1rem}.line-list-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;color:#41535f}.toolbar-actions{display:flex;gap:.45rem}.ghost-btn{border:1px solid #527782;border-radius:8px;background:#ffffffb8;padding:.32rem .65rem;cursor:pointer}.ghost-btn:disabled{opacity:.45;cursor:not-allowed}.line-item{border:1px solid rgba(17,53,62,.15);border-radius:10px;background:#ffffffe0;margin-bottom:.65rem;overflow:hidden}.line-error{border-color:#a0202066}.line-head{width:100%;border:0;background:transparent;padding:.72rem .8rem;text-align:left;display:flex;gap:.6rem;align-items:center;cursor:pointer}.line-title{font-weight:700}.line-status{border-radius:999px;padding:.08rem .55rem;font-size:.78rem;font-weight:700}.status-ok{color:#0a5d44;background:#d7ffef}.status-error{color:#8a1f1f;background:#ffe2e2}.line-summary{color:#5c6973;font-size:.9rem}.line-body{border-top:1px solid rgba(17,53,62,.12);padding:.65rem .8rem;overflow:auto}.line-body-actions{display:flex;gap:.45rem;margin:0 0 .55rem}.line-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#08131c94;display:flex;align-items:center;justify-content:center;padding:1rem;overscroll-behavior:contain}.line-fullscreen-panel{width:min(1200px,96vw);height:min(92vh,1000px);background:#fff;border:1px solid rgba(17,53,62,.2);border-radius:12px;box-shadow:0 20px 50px #00000038;display:flex;flex-direction:column}.line-fullscreen-header{border-bottom:1px solid rgba(17,53,62,.14);padding:.7rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.line-fullscreen-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.line-fullscreen-content{flex:1;overflow:auto;padding:.7rem .8rem;overscroll-behavior:contain}.error-text{margin:0 0 .5rem;color:#8a1f1f;font-weight:700}.raw-line{margin:0;background:#fff8f8;border:1px solid #f4d7d7;border-radius:8px;padding:.6rem;overflow:auto}.tree-line{display:flex;align-items:baseline;gap:.28rem;font-family:IBM Plex Mono,Fira Code,monospace;font-size:.9rem}.tree-toggle{border:0;padding:0;width:1rem;background:transparent;color:#264d63;cursor:pointer}.tree-key{color:#224e64}.tree-preview,.tree-bracket{color:#557282}.value-string{color:#8e4b00}.value-number{color:#125f8f}.value-boolean{color:#21734f}.value-null{color:#8f5f13}.value-generic{color:#27323a}.empty-state{background:#ffffffb8;border-radius:10px;padding:1.1rem;text-align:center;color:#60717e}.pagination{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1rem}@media(max-width:860px){.stats-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:600px){.app-shell{width:calc(100% - 1rem);margin:1rem auto 2rem;padding:.6rem}.line-head{flex-wrap:wrap}.line-fullscreen-overlay{padding:.5rem}.line-fullscreen-panel{width:100%;height:95vh;border-radius:10px}.line-fullscreen-header{align-items:flex-start;flex-direction:column}.line-fullscreen-actions{width:100%;justify-content:flex-start}}
