.app-shell{width:100%;max-width:none;margin:0 auto;padding:16px 20px 40px}.top-bar{display:grid;grid-template-columns:160px 1fr 160px;gap:16px;align-items:center;margin-bottom:24px}.brand-logo{width:140px;height:auto;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}.brand-logo-right{justify-self:end}.hero{text-align:center}.eyebrow{margin:0 0 8px;color:var(--accent);font-size:.875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hero h1{margin:0;font-size:2rem;line-height:1.2;color:var(--page-text)}.subtitle{margin:8px 0 0;color:var(--muted)}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.tabs button{border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--page-text);padding:10px 16px;border-radius:999px;cursor:pointer}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#0b141c}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card,.panel,.state-card{background:var(--surface);border:1px solid var(--border);border-radius:16px}.stat-card{padding:20px}.stat-card span{display:block;color:var(--muted);font-size:.9rem}.stat-card strong{display:block;margin-top:8px;font-size:2rem;line-height:1}.grid.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.panel{padding:20px;margin-bottom:16px}.panel.wide{width:100%}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap}.panel-header h2{margin:0;font-size:1.125rem}.caption{margin:4px 0 0;color:var(--muted);font-size:.875rem}.chart-wrap{width:100%}.status-list{display:grid;gap:12px}.status-item{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center}.status-dot{width:12px;height:12px;border-radius:999px}.status-name{color:var(--text)}.filters{display:flex;gap:12px;flex-wrap:wrap}.filters input,.filters select{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff}.filters input{min-width:220px}.list-panel{padding:16px 16px 8px}.table-wrap{overflow:auto;max-height:72vh}.complaint-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;font-size:.8125rem}.complaint-table th,.complaint-table td{padding:10px 12px;border-bottom:1px solid #edf1f5;vertical-align:top;text-align:left;word-break:normal;overflow-wrap:break-word}.complaint-table th{position:sticky;top:0;z-index:1;background:#f3f6f9;color:#3d4d5c;font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:none;white-space:nowrap}.complaint-table tbody tr:nth-child(2n):not(.row-open-status){background:#f8fafc}.complaint-table .col-narrow,.complaint-table .col-date,.complaint-table .col-status,.complaint-table .col-qty,.complaint-table .col-group,.complaint-table .col-type{text-align:center}.complaint-table .col-narrow{width:48px}.complaint-table .col-date{width:96px;font-variant-numeric:tabular-nums}.complaint-table .col-status{width:110px}.complaint-table .col-customer{width:140px;font-weight:600}.complaint-table .col-product{width:160px;max-width:180px}.complaint-table .col-description{min-width:280px;max-width:420px;white-space:normal;line-height:1.45}.complaint-table .col-qty,.complaint-table .col-lot{min-width:110px;max-width:180px;white-space:normal;text-align:left}.card-meta{margin:0 0 6px;font-size:.8rem;color:#3d4d5c}.complaint-table .col-group,.complaint-table .col-type{width:110px}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.03em}.status-badge.is-closed{background:#e8f6ee;color:#067647}.status-badge.is-open{background:#dc2626;color:#fff}.complaint-cards{display:grid;gap:10px;padding-bottom:12px}.complaint-card{border:1px solid #e4ebf1;border-radius:12px;padding:12px;background:#fff}.complaint-card.row-open-status{border-color:#f87171}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.card-top strong{font-size:.95rem}.card-product{margin:0 0 6px;color:#3d4d5c;font-size:.8rem}.card-desc{margin:0 0 10px;font-size:.86rem;line-height:1.4}.card-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.72rem;color:#5c6b7a}.card-dates b{display:block;margin-top:2px;color:#1a2332;font-size:.8rem}.compact-table{max-height:520px}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{position:sticky;top:0;background:#f8fafc;z-index:1;white-space:nowrap}tbody tr:not(.row-open-status):hover{background:#f1f6fa}.row-open-status td,.complaint-card.row-open-status{animation:row-status-blink 10s ease-in-out 2 forwards}.row-open-status .status-badge.is-open{background:#fff;color:#b91c1c}@keyframes row-status-blink{0%,to{background-color:#f87171;color:#fff}50%{background-color:#dc2626;color:#fff}}.state-card{padding:32px;max-width:560px;margin:80px auto}.state-card.error h1{margin-top:0}.state-card code{display:inline-block;margin-top:12px;padding:8px 10px;background:#eef3f7;border-radius:8px}@media(max-width:768px){.app-shell{padding:12px 12px 32px}.hero h1{font-size:1.25rem;line-height:1.35}.brand-logo{width:110px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tabs button{width:100%;text-align:center;padding:12px 10px}.filters{width:100%}.filters input,.filters select{width:100%;min-width:0}.list-panel{padding:12px}}@media(max-width:960px){.top-bar{grid-template-columns:1fr;justify-items:center}.brand-logo-right{display:none}.stats-grid,.grid.two-col{grid-template-columns:1fr}.panel-header{flex-direction:column}.filters input{min-width:100%}}:root{color-scheme:dark;--bg: #121820;--surface: #ffffff;--text: #1a2332;--muted: #5c6b7a;--border: #d8e0e8;--accent: #4db8d9;--accent-soft: #e6f3f7;--danger: #b42318;--success: #067647;--warning: #b54708;--page-text: #eef2f6}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:IBM Plex Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}button,input,select{font:inherit}
