:root{--border:#d0d0d0;--muted:#666;--accent:#1565c0;--danger:#c62828;--bg-soft:#f6f6f6}*{box-sizing:border-box}body{color:#222;background:#fff;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px}.app{flex-direction:column;height:100vh;display:flex}header{border-bottom:1px solid var(--border);background:var(--bg-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}header h1{margin:0;font-size:16px}header .version{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:16px;font-size:12px}header .search{margin-left:auto}header .search input{width:340px;max-width:80vw}button,.file-button{font:inherit;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:4px;padding:4px 10px}button:hover,.file-button:hover{border-color:var(--accent)}.file-button input{display:none}input[type=search]{font:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 8px}.intro{color:var(--muted);padding:16px}.message{border-radius:4px;margin:8px 16px;padding:8px 12px}.message.error{border:1px solid var(--danger);background:#ffebee}.message.warning{background:#fff8e1;border:1px solid #f9a825}.summary{color:var(--muted);flex-wrap:wrap;gap:16px;padding:6px 16px;display:flex}.summary .warn{color:var(--danger);font-weight:600}.tabs{border-bottom:1px solid var(--border);gap:4px;padding:0 16px;display:flex}.tabs button{background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:8px 12px}.tabs button.active{border-bottom-color:var(--accent);font-weight:600}main{flex:1;min-height:0;display:flex}main .content{flex:1;min-width:0;overflow:auto}main aside{border-left:1px solid var(--border);width:440px;max-width:45vw;padding:0 16px 16px;position:relative;overflow:auto}aside .close{border:none;font-size:20px;line-height:1;position:absolute;top:8px;right:8px}.address{cursor:pointer;text-align:left;border:1px solid;border-radius:4px;margin:1px 0;padding:1px 6px;font:12px ui-monospace,Cascadia Mono,Courier New,monospace;display:inline-block}.kind-mailbox{background:#e8f5e9;border-color:#2e7d32}.kind-forward{background:#e3f2fd;border-color:#1565c0}.kind-mailbox-forward{background:#e0f2f1;border-color:#00796b}.kind-external{background:#fff3e0;border-color:#e65100}.kind-unknown{background:#eee;border-style:dashed;border-color:#616161}.arrow{color:var(--muted)}.path{line-height:1.9}.graph-view{flex-direction:column;height:100%;display:flex}.graph-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:6px 16px;display:flex}.graph-canvas{flex:1;min-height:300px}.legend{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.legend .address{cursor:default}.legend-problem{color:var(--danger);font-size:12px}.details h2{word-break:break-all;margin-top:16px;padding-right:24px;font-size:15px}.details h3{margin:16px 0 4px;font-size:13px}.details ul{margin:0;padding-left:18px}.details .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.details .findings{background:#ffebee;border-radius:4px;padding:4px 12px 8px}.empty{color:var(--muted);margin:0}.report{padding:8px 16px 32px}.report h2{margin:24px 0 0;font-size:15px}.report h3{margin:16px 0 2px;font-size:14px}.report .no-findings h3{color:var(--muted)}.report .has-findings h3{color:var(--danger)}.report .hint{color:var(--muted);margin:0 0 4px;font-size:12px}.report li{margin:2px 0}.address-table{padding:8px 16px 32px}.address-table input[type=search]{width:340px;max-width:100%;margin-bottom:8px}.address-table table{border-collapse:collapse;width:100%}.address-table th,.address-table td{text-align:left;border-bottom:1px solid #eee;padding:3px 8px}.address-table th{background:#fff;position:sticky;top:0}.address-table .num{text-align:right}.details .via{color:var(--muted);word-break:break-all;margin:0 0 4px 2px;font-size:11px}button.link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.link:hover{color:var(--accent)}.address-table th button.sort{font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.address-table th.num button.sort{flex-direction:row-reverse}.address-table th button.sort:hover{color:var(--accent)}.address-table .sort-indicator{color:#bbb;font-size:11px}.address-table button.sort.active .sort-indicator{color:var(--accent)}.kind-filter{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.kind-filter label.address{align-items:center;gap:4px;font-family:inherit;display:inline-flex}.kind-filter label.address input{margin:0}.kind-filter label.off{opacity:.45;text-decoration:line-through}.kind-filter .count{color:var(--muted);margin-left:auto}