:root{--bg: #0f1419;--bg-elevated: #171e26;--bg-soft: #1c2530;--border: #2a3544;--text: #e8eef5;--text-muted: #8b9aab;--accent: #3d9a7a;--accent-hover: #48b08c;--danger: #d45d5d;--warn: #c9a227;--info: #4a8fc7;--radius: 8px;--font: "DM Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--shadow: 0 12px 40px rgba(0, 0, 0, .35);--page-pad-x: clamp(1rem, 1.2vw + .6rem, 2.75rem);--page-pad-y: clamp(1rem, 1vw + .5rem, 2rem);--modal-width: min(96vw, clamp(920px, 72vw, 1480px));--modal-height: min(90vh, clamp(720px, 82vh, 980px))}*,*:before,*:after{box-sizing:border-box}html{font-size:clamp(15px,.22vw + 14.2px,18px)}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,rgba(61,154,122,.12),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(74,143,199,.1),transparent 50%),var(--bg);color:var(--text);line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select{font:inherit}code,.mono{font-family:var(--mono);font-size:.9em}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-topbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem var(--page-pad-x);border-bottom:1px solid var(--border);background:#0f1419eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.app-brand{display:flex;align-items:baseline;gap:.4rem;flex-shrink:0}.app-brand-kicker{font-size:.7rem;color:var(--text-muted);letter-spacing:.08em}.app-brand-name{font-size:1.15rem;font-weight:700;letter-spacing:-.03em}.app-nav{display:flex;align-items:center;gap:.15rem;flex:1;min-width:0;overflow-x:auto}.app-user{display:flex;align-items:center;gap:.75rem;margin-left:auto;flex-shrink:0}.app-user-meta{font-size:.8rem;color:var(--text-muted);text-align:right;line-height:1.25}.app-user-name{color:var(--text);font-weight:600}.app-user-role{font-size:.75rem}.app-main{padding:var(--page-pad-y) var(--page-pad-x) 2.75rem;min-width:0;flex:1;width:100%}@media (max-width: 720px){.app-user-meta{display:none}}@media (min-width: 1600px){.app-brand-name{font-size:1.25rem}}@media (max-width: 1100px){.sale-analysis-cols{grid-template-columns:1fr!important}}
