*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Arial,sans-serif;background:var(--hasr-bg);color:var(--hasr-text);min-height:100vh}.hasr-shell{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.hasr-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.hasr-brand{display:flex;align-items:baseline;gap:10px}.hasr-brand-name{font-size:1.35rem;font-weight:700;color:var(--hasr-danger-deep)}.hasr-brand-sub{color:var(--hasr-text-muted);font-size:.85rem;direction:ltr}.hasr-phase{font-size:.75rem;color:var(--hasr-primary-strong);background:color-mix(in srgb,var(--hasr-accent) 22%,#fff);border:1px solid color-mix(in srgb,var(--hasr-accent) 55%,#fff);padding:3px 10px;border-radius:999px}.hasr-card{background:var(--hasr-surface);border:1px solid var(--hasr-border);border-radius:var(--hasr-radius);box-shadow:var(--hasr-shadow);padding:18px;margin-bottom:16px}.hasr-card-title{font-size:1rem;margin-bottom:12px;color:var(--hasr-gray-800)}.hasr-btn{border:0;border-radius:8px;padding:9px 18px;font-size:.92rem;font-weight:600;cursor:pointer;font-family:inherit;transition:filter .15s ease}.hasr-btn:disabled{opacity:.55;cursor:default}.hasr-btn:hover:not(:disabled){filter:brightness(.95)}.hasr-btn-primary{background:var(--hasr-primary);color:#fff}.hasr-btn-ghost{background:transparent;color:var(--hasr-gray-700);border:1px solid var(--hasr-border)}.dropzone{border:2px dashed var(--hasr-gray-300);border-radius:var(--hasr-radius);padding:44px 20px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone.is-over,.dropzone:hover{border-color:var(--hasr-primary);background:color-mix(in srgb,var(--hasr-accent) 8%,#fff)}.dropzone-icon{font-size:2rem;margin-bottom:8px}.dropzone-hint{color:var(--hasr-text-muted);font-size:.85rem;margin-top:6px;direction:ltr}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.chip{background:var(--hasr-gray-100);border:1px solid var(--hasr-border);border-radius:999px;padding:4px 12px;font-size:.8rem;color:var(--hasr-gray-700)}.chip b{color:var(--hasr-gray-900)}.hasr-badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:600;line-height:1.6}.hasr-badge-written{color:var(--hasr-prov-written);background:var(--hasr-prov-written-bg)}.hasr-badge-inferred{color:var(--hasr-prov-inferred);background:var(--hasr-prov-inferred-bg)}.hasr-badge-estimated{color:var(--hasr-prov-estimated);background:var(--hasr-prov-estimated-bg)}.hasr-badge-user{color:var(--hasr-prov-user);background:var(--hasr-prov-user-bg)}.hasr-badge-conflict{color:#fff;background:var(--hasr-danger)}.hasr-badge-neutral{color:var(--hasr-gray-600);background:var(--hasr-gray-100)}.hasr-conf{position:relative;display:inline-block;width:110px;height:18px;border-radius:999px;overflow:hidden;vertical-align:middle;background:var(--hasr-gray-200)}.hasr-conf-high .hasr-conf-fill{background:var(--hasr-conf-high)}.hasr-conf-mid .hasr-conf-fill{background:var(--hasr-conf-mid)}.hasr-conf-low .hasr-conf-fill{background:var(--hasr-conf-low)}.hasr-conf-fill{height:100%}.hasr-conf-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tab{border:1px solid var(--hasr-border);background:var(--hasr-surface);border-radius:8px;padding:7px 16px;font-size:.85rem;cursor:pointer;font-family:inherit;color:var(--hasr-gray-700)}.tab.is-active{background:var(--hasr-primary);border-color:var(--hasr-primary);color:#fff;font-weight:600}.hasr-table{width:100%;border-collapse:collapse;font-size:.85rem}.hasr-table td,.hasr-table th{border-bottom:1px solid var(--hasr-border);padding:8px 10px;text-align:start}.hasr-table th{color:var(--hasr-text-muted);font-weight:600;font-size:.78rem}.hasr-table td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;direction:ltr}.muted{color:var(--hasr-text-muted);font-size:.78rem}.plan-canvas-wrap{border:1px solid var(--hasr-border);border-radius:8px;overflow:hidden;background:#fff;direction:ltr}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:.78rem;color:var(--hasr-text-muted)}.legend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;-webkit-margin-end:5px;margin-inline-end:5px;vertical-align:-1px}.conflict-item,.warn-item{border-radius:8px;padding:10px 14px;margin-bottom:8px;font-size:.85rem}.conflict-item{background:var(--hasr-conf-low-bg);border:1px solid #fecaca;color:var(--hasr-conf-low)}.warn-item{background:var(--hasr-conf-mid-bg);border:1px solid #fde68a;color:var(--hasr-conf-mid)}.error-box{background:var(--hasr-conf-low-bg);border:1px solid #fecaca;color:var(--hasr-conf-low);border-radius:8px;padding:12px 16px;margin-top:12px;font-size:.88rem}.hasr-footer{text-align:center;color:var(--hasr-gray-400);font-size:.75rem;margin-top:28px}.lang-toggle{font-size:.8rem}:root{--hasr-primary:#f6850c;--hasr-primary-strong:#d96e04;--hasr-accent:#ffc917;--hasr-accent-bright:#ffe100;--hasr-danger:#f00000;--hasr-danger-deep:#8c0000;--hasr-gray-50:#fafafa;--hasr-gray-100:#f4f4f5;--hasr-gray-200:#e4e4e7;--hasr-gray-300:#d4d4d8;--hasr-gray-400:#a1a1aa;--hasr-gray-500:#71717a;--hasr-gray-600:#52525b;--hasr-gray-700:#3f3f46;--hasr-gray-800:#27272a;--hasr-gray-900:#18181b;--hasr-bg:linear-gradient(180deg,var(--hasr-gray-50) 0%,var(--hasr-gray-100) 100%);--hasr-surface:#fff;--hasr-border:var(--hasr-gray-200);--hasr-text:var(--hasr-gray-800);--hasr-text-muted:var(--hasr-gray-500);--hasr-conf-high:#15803d;--hasr-conf-mid:#b45309;--hasr-conf-low:#b91c1c;--hasr-conf-high-bg:#dcfce7;--hasr-conf-mid-bg:#fef3c7;--hasr-conf-low-bg:#fee2e2;--hasr-prov-written:#1d4ed8;--hasr-prov-written-bg:#dbeafe;--hasr-prov-inferred:#7c3aed;--hasr-prov-inferred-bg:#ede9fe;--hasr-prov-estimated:#b45309;--hasr-prov-estimated-bg:#fef3c7;--hasr-prov-user:#0f766e;--hasr-prov-user-bg:#ccfbf1;--hasr-radius:12px;--hasr-shadow:0 1px 3px rgba(24,24,27,.08),0 4px 16px rgba(24,24,27,.06)}