*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:monospace;background:#000;color:#e8e8e8;min-height:100vh}.app{max-width:960px;margin:0 auto;padding:2rem 1rem}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;border-bottom:2px solid #fff;padding-bottom:1rem}@keyframes rainbow-shift{0%{background-position:0% 50%}to{background-position:200% 50%}}.app-header h1{display:flex;flex-direction:row;font-size:1.5rem;font-weight:900;font-family:Comic Sans MS,Comic Sans,cursive;letter-spacing:.05em;background:linear-gradient(90deg,red,#f80,#ff0,#0c0,#08f,#80f,red);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rainbow-shift 2s linear infinite}.header-logo-wrap{height:2em;width:2em;margin-right:.4em;background-color:#fff;display:block;flex-shrink:0}.header-logo{height:inherit;vertical-align:middle}.header-title{margin:auto}.app-tagline{color:#666;font-size:.85rem;margin-bottom:1.5rem;line-height:1.6}.upload-zone{border:2px dashed #fff;padding:4rem 2rem;text-align:center;cursor:pointer;transition:border-color .1s,background .1s}.upload-zone:hover,.upload-zone--active{border-color:#fff;background:#1a1a1a}.upload-icon{font-size:3rem;margin-bottom:1rem}.upload-primary{font-size:1.1rem;font-weight:700;color:#e8e8e8;margin-bottom:.5rem}.upload-secondary{font-size:.875rem;color:#888}.upload-secondary code{background:#222;padding:.1em .4em;color:#bbb}.error-box{background:#111;border:2px solid #fff;padding:1.25rem 1.5rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;color:#fff}.entry-selector h2{margin-bottom:1rem;font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.entry-selector ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}.entry-btn{width:100%;text-align:left;background:#1a1a1a;border:1px solid #444;padding:.75rem 1rem;cursor:pointer;color:#e8e8e8;display:flex;gap:.75rem;align-items:center;transition:background .1s,border-color .1s}.entry-btn:hover{background:#222;border-color:#fff}.entry-index{font-weight:900;color:#fff;flex-shrink:0}.entry-url{font-family:monospace;font-size:.85rem;color:#aaa;word-break:break-all}.results{display:flex;flex-direction:column;gap:1.5rem}.result-meta{font-size:.85rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.result-meta code{color:#bbb;padding:.1em .4em;word-break:break-all}.meta-label{color:#666;font-weight:700;font-size:.75rem;letter-spacing:.05em}.panel{border:1px solid #333;padding:1.25rem 1.5rem}.panel h2{font-size:.875rem;font-weight:900;letter-spacing:.08em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;color:#fff}.badge{background:#333;color:#aaa;font-size:.75rem;font-weight:700;padding:.1em .5em}.empty{color:#555;font-size:.9rem}.roles-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.role-chip{background:#000;border:1px solid #888;color:#fff;padding:.3em .75em;font-size:.875rem;font-weight:600}.table-wrap{overflow-x:auto}.claims-table{width:100%;border-collapse:collapse;font-size:.85rem}.claims-table th{text-align:left;padding:.5rem .75rem;color:#888;font-weight:700;font-size:.75rem;letter-spacing:.06em;border-bottom:1px solid #333}.claims-table td{padding:.5rem .75rem;border-bottom:1px solid #222;vertical-align:top}.claims-table tr:last-child td{border-bottom:none}.attr-name{font-family:monospace;font-size:.8rem;color:#aaa;word-break:break-all}.row--role td{background:#222}.row--role .attr-name{color:#fff;font-weight:700}.value-list{list-style:none;display:flex;flex-direction:column;gap:.2rem}.panel--xml{padding-bottom:0}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.panel-header h2{margin-bottom:0}.xml-pre{overflow-x:auto;background:#000;padding:1rem 1.25rem;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.6;color:#aaa;margin:0 -1.5rem;max-height:500px}.reset-btn,.copy-btn{background:#000;border:1px solid #555;color:#ccc;padding:.35em .9em;font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .1s,color .1s}.reset-btn:hover,.copy-btn:hover{border-color:#fff;color:#fff}.app-footer{margin-top:3rem;padding-top:1rem;border-top:1px solid #333;font-size:.8rem}.app-footer a{color:#666;text-decoration:none;letter-spacing:.05em;font-weight:600}.app-footer a:hover{color:#fff}
