:root{--color-primary: #e86c1f;--color-primary-hover: #c24d15;--color-success: #059669;--color-warning: #f59e0b;--color-danger: #dc2626;--color-info: #2563eb;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-border-subtle: #f1f5f9;--color-text: #0f172a;--color-text-secondary: #334155;--color-text-muted: #64748b;--color-nav-dashboard: #0284c7;--color-nav-send: #ea580c;--color-nav-tracking: #7c3aed;--color-warning-border: #fde68a;--font-body: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg)}app-root{display:block;height:100%;overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:.65rem;padding:.55rem .95rem;font-size:.875rem;font-weight:600;background:var(--color-primary);color:#fff;transition:background .15s ease,opacity .15s ease}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border-subtle)}.btn-danger{background:var(--color-danger)}.btn-success{background:var(--color-success)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:600}.badge-ok{background:#dcfce7;color:#166534}.badge-warn{background:#fff7ed;color:#c2410c}.badge-danger{background:#fee2e2;color:#991b1b}.badge-muted{background:#f1f5f9;color:#475569}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.9rem;box-shadow:0 1px 2px #0f172a0a}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.875rem}table.data th,table.data td{text-align:left;padding:.75rem .85rem;border-bottom:1px solid var(--color-border);vertical-align:top}table.data th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:#fafbfc}.field{display:flex;flex-direction:column;gap:.35rem}.field>span{font-size:.78rem;font-weight:600;color:var(--color-text-muted)}.field input,.field textarea,.field select{border:1px solid var(--color-border);border-radius:.65rem;padding:.55rem .7rem;background:#fff;color:var(--color-text)}.field input:focus,.field textarea:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 35%,transparent);border-color:var(--color-primary)}.muted{color:var(--color-text-muted)}.banner{border-radius:.75rem;padding:.7rem .9rem;font-size:.875rem;margin-bottom:.85rem}.banner-error{background:#fee2e2;color:#991b1b}.banner-ok{background:#dcfce7;color:#166534}.upload-progress-backdrop{position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73;backdrop-filter:blur(5px)}.upload-progress-panel{width:min(100%,22rem);border-radius:1rem;border:1px solid var(--color-border);background:var(--color-surface);padding:1.5rem 1.35rem 1.25rem;text-align:center;box-shadow:0 25px 50px -12px #0f172a59}.upload-progress-spinner{width:2.25rem;height:2.25rem;margin:0 auto .85rem;border-radius:9999px;border:3px solid var(--color-warning-border);border-top-color:var(--color-nav-send);animation:upload-spin .7s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-progress-title{margin:0;font-size:1.0625rem;font-weight:700}.upload-progress-file{margin:.4rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.upload-progress-detail{margin:.35rem 0 1rem;font-size:.8125rem;color:var(--color-text-muted)}.upload-progress-track{position:relative;height:.5rem;overflow:hidden;border-radius:9999px;background:var(--color-border-subtle)}.upload-progress-fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,#f59e0b,var(--color-primary));transition:width .2s ease-out}.upload-progress-track.is-indeterminate .upload-progress-fill{width:40%!important;animation:upload-bar-slide 1.1s ease-in-out infinite}@keyframes upload-bar-slide{0%{transform:translate(-120%)}to{transform:translate(280%)}}.upload-progress-pct{margin:.55rem 0 0;font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.upload-progress-pct--soft{font-weight:500;color:var(--color-text-muted)}.nav-link-active{background:#fff7ed!important;color:#c2410c!important}
