:root{--color-bg:#f5f5f7;--color-surface:#fff;--color-surface-secondary:#f9f9fb;--color-border:#e5e5ea;--color-text-primary:#1d1d1f;--color-text-secondary:#6e6e73;--color-primary:#0071e3;--color-primary-hover:#0077ed;--color-primary-soft:#eaf4ff;--color-success:#248a3d;--color-warning:#b56a00;--color-error:#d70015;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--font-title:28px;--font-section:18px;--font-body:15px;--font-small:13px;--radius-card:14px;--radius-btn:10px;--radius-tag:8px;--space-1:6px;--space-2:10px;--space-3:14px;--space-4:20px;--space-5:28px;--space-6:40px;--max-width:1400px;--min-touch:40px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 12px 32px #0000001a;--transition-fast:.12s ease;--transition-base:.18s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text-primary);min-height:100dvh;line-height:1.5}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}input,select,textarea{font-family:inherit;font-size:inherit}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);background:#f5f5f7d1;position:sticky;top:0}.app-header__inner{padding:var(--space-2) var(--space-4);max-width:var(--max-width);justify-content:space-between;align-items:center;width:100%;margin:0 auto;display:flex}.app-header__brand{align-items:center;gap:var(--space-2);display:flex}.app-header__logo{color:var(--color-text-primary);letter-spacing:-.02em;font-size:20px;font-weight:700}.app-main{max-width:var(--max-width);width:100%;padding:var(--space-4);flex:1;margin:0 auto}.workspace{gap:var(--space-4);flex-direction:column;align-items:stretch;display:flex}.main-panel{gap:var(--space-4);flex-direction:column;order:1;min-width:0;display:flex}.side-panel{gap:var(--space-3);flex-direction:column;order:2;display:flex}.card{background:var(--color-surface);border-radius:var(--radius-card);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--space-3);transition:box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card__title{font-size:var(--font-section);margin-bottom:var(--space-3);font-weight:600}.card__subtitle{font-size:var(--font-small);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-btn);font-size:var(--font-body);min-height:var(--min-touch);transition:all var(--transition-fast);outline:none;font-weight:600;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--color-primary-soft)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--primary:active:not(:disabled){transform:translateY(1px)}.btn--secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-secondary)}.btn--secondary:active:not(:disabled){transform:translateY(1px)}.btn--ghost{color:var(--color-text-secondary);background:0 0;border:1px solid #0000}.btn--ghost:hover:not(:disabled){background:var(--color-surface-secondary);color:var(--color-text-primary)}.btn--block{width:100%}.btn--small{padding:var(--space-1) var(--space-2);font-size:var(--font-small);min-height:32px}.input{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-btn);border:1px solid var(--color-border);font-size:var(--font-body);min-height:var(--min-touch);background:var(--color-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.input::placeholder{color:var(--color-text-secondary);opacity:.7}.badge{border-radius:var(--radius-tag);font-size:var(--font-small);text-transform:uppercase;letter-spacing:.02em;align-items:center;padding:3px 8px;font-weight:600;display:inline-flex}.badge--error{color:var(--color-error);background:#d7001514}.badge--warning{color:var(--color-warning);background:#b56a0014}.badge--success{color:var(--color-success);background:#248a3d14}.badge--neutral{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.metric{flex-direction:column;gap:2px;display:flex}.metric__label{font-size:var(--font-small);color:var(--color-text-secondary)}.metric__value{letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.2}.metric__value--success{color:var(--color-success)}.metric__value--warning{color:var(--color-warning)}.metric__value--error{color:var(--color-error)}.mono{font-family:var(--font-mono);font-size:.95em}.text-secondary{color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-secondary);flex-direction:column;display:flex}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-card);padding:var(--space-6) var(--space-4);text-align:center;cursor:pointer;background:var(--color-surface);transition:all var(--transition-base);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;min-height:220px;display:flex}.dropzone:hover,.dropzone--dragging{border-color:var(--color-primary);background:var(--color-primary-soft)}.dropzone__title{font-size:var(--font-body);color:var(--color-text-primary);font-weight:600}.dropzone__hint{font-size:var(--font-small);color:var(--color-text-secondary)}.issue-card{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--space-3);border:1px solid var(--color-border);border-left:4px solid var(--color-error);box-shadow:var(--shadow-sm)}.issue-card--warning{border-left-color:var(--color-warning)}.issue-card__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.issue-card__title{font-size:var(--font-body);font-weight:600}.issue-card__message{font-size:var(--font-small);color:var(--color-text-secondary);margin-top:var(--space-1)}.correction{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-tag);background:var(--color-surface-secondary);font-size:var(--font-small);grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.correction>div{min-width:0}.correction__field{font-weight:600}.correction__old{color:var(--color-error);overflow-wrap:anywhere;text-decoration:line-through}.correction__new{color:var(--color-success);overflow-wrap:anywhere;font-weight:500}.correction__tag{text-transform:uppercase;white-space:nowrap;border-radius:4px;align-self:start;padding:2px 6px;font-size:11px;font-weight:600}.correction__tag--auto{color:var(--color-warning);background:#b56a001a}.correction__tag--manual{color:var(--color-primary);background:#0071e31a}.summary-metrics{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.issue-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=1024px){.workspace{grid-template-columns:1fr 320px;align-items:start;display:grid}.main-panel{order:0}.side-panel{top:calc(var(--space-2) * 2 + 36px);order:0;position:sticky}}@media (width>=768px) and (width<=1023px){.app-main{padding:var(--space-3)}}.mobile-blocker{display:none}@media (width<=767px){.mobile-blocker{z-index:200;background:var(--color-surface);text-align:center;padding:var(--space-4);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:fixed;inset:0}.mobile-blocker__title{font-size:var(--font-title);font-weight:700}.mobile-blocker__text{color:var(--color-text-secondary);max-width:320px}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#root{min-height:100dvh}
