:root{--primary-rgb:22, 123, 58;--secondary-rgb:201, 162, 39;--success-rgb:38, 191, 148;--destructive-rgb:230, 83, 60;--warning-rgb:245, 184, 73;--info-rgb:73, 182, 245;--orange-rgb:255, 165, 5;--pink-rgb:231, 145, 188;--teal-rgb:18, 194, 194;--dark-rgb:35, 35, 35;--primary:rgb(var(--primary-rgb));--primary-foreground:#fff;--secondary:rgb(var(--secondary-rgb));--success:rgb(var(--success-rgb));--destructive:rgb(var(--destructive-rgb));--warning:rgb(var(--warning-rgb));--info:rgb(var(--info-rgb));--background:#f0f1f7;--card:#fff;--border:#f3f3f3;--input:#e9edf6;--sidebar:#fff;--sidebar-foreground:#536485;--sidebar-border:#f3f3f3;--header:#fff;--foreground:#333335;--muted-foreground:#8c9097;--font-sans:"Inter", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-size-base:1rem;--radius:.5rem;--radius-sm:.35rem;--shadow-sm:0 1px 4px #0000000d;--shadow-lg:0 4px 16px #0000001f;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:24px;--spacing-6:32px;--sidebar-width:240px;--header-height:64px;--z-sticky:100;--z-sidebar:200;--z-offcanvas:1040;--z-modal:1060;--z-toast:1090;--touch-target:44px;--spacing-page:16px;--bottomnav-height:64px;--scan-button-size:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p{margin:0}a{color:var(--primary)}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}code{font-family:monospace}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.screen{padding:calc(var(--safe-top) + 8px) var(--spacing-page) calc(var(--bottomnav-height) + var(--safe-bottom) + 24px);flex:1;width:100%;max-width:520px;margin:0 auto;overflow-y:auto}.screen.no-nav{padding-bottom:calc(var(--safe-bottom) + 24px)}.screen-header{align-items:center;gap:10px;padding:8px 0 14px;display:flex}.screen-header .back{width:var(--touch-target);height:var(--touch-target);background:var(--card);box-shadow:var(--shadow-sm);color:var(--foreground);border:0;border-radius:12px;place-items:center;display:grid}.screen-header h1{flex:1;font-size:19px}.bottomnav{height:calc(var(--bottomnav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--card);border-top:1px solid var(--border);z-index:var(--z-sticky);grid-template-columns:repeat(5,1fr);align-items:stretch;display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--muted-foreground);min-height:var(--touch-target);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.bottomnav a.active{color:var(--primary)}.bottomnav svg{width:22px;height:22px}.bottomnav .scan-slot{position:relative}.scan-fab{width:var(--scan-button-size);height:var(--scan-button-size);background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(var(--primary-rgb), .45);border:4px solid var(--background);border-radius:50%;place-items:center;display:grid;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.scan-fab svg{width:24px;height:24px}.bottomnav .scan-slot .scan-label{text-align:center;color:var(--muted-foreground);font-size:11px;font-weight:500;position:absolute;bottom:8px;left:0;right:0}.m-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--spacing-4);margin-bottom:var(--spacing-3)}.m-btn{border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;font-size:16px;font-weight:600;display:flex}.m-btn:disabled{opacity:.5;cursor:not-allowed}.m-btn.primary{background:var(--primary);color:#fff}.m-btn.light{background:var(--card);color:var(--foreground);box-shadow:var(--shadow-sm)}.m-btn.outline{border:1.5px solid var(--primary);color:var(--primary);background:0 0}.m-field{margin-bottom:var(--spacing-4)}.m-field label{margin-bottom:6px;font-size:14px;font-weight:600;display:block}.m-field input,.m-field select,.m-field textarea{border:1px solid var(--input);background:var(--card);width:100%;min-height:48px;color:inherit;border-radius:12px;padding:0 14px;font-family:inherit;font-size:16px}.m-field textarea{min-height:96px;padding:12px 14px}.m-field .help{color:#6b7280;margin-top:4px;font-size:13px;display:block}.m-field .error{color:var(--destructive);margin-top:4px;font-size:13px;display:block}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--border);background:var(--card);border-radius:99px;align-items:center;gap:6px;min-height:40px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.chip.selected{border-color:var(--primary);background:rgba(var(--primary-rgb), .1);color:var(--primary)}.alert{border-radius:var(--radius);margin-bottom:var(--spacing-3);gap:10px;padding:12px 14px;font-size:14px;display:flex}.alert-danger{background:rgba(var(--destructive-rgb), .1);color:#b23518}.alert-warning{background:rgba(var(--warning-rgb), .15);color:#7a5408}.alert-info{background:rgba(var(--info-rgb), .12);color:#16688f}.alert-success{background:rgba(var(--success-rgb), .12);color:#157a5b}.badge{border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-primary{background:rgba(var(--primary-rgb), .15);color:#0a6425}.toast-item{color:#fff;box-shadow:var(--shadow-lg);border-radius:12px;padding:12px 16px;font-size:14px}.toast-success{background:#157a5b}.toast-danger{background:var(--destructive)}.toast-info{background:#16688f}.muted{color:var(--muted-foreground)}.link-button{color:var(--primary);font-weight:600;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.small{font-size:13px}.auth-screen{min-height:100dvh;padding:24px var(--spacing-page);flex-direction:column;justify-content:center;width:100%;max-width:480px;margin:0 auto;display:flex}.auth-logo{text-align:center;margin-bottom:26px}.progress-dots{gap:6px;margin:18px 0 20px;display:flex}.progress-dots span{background:rgba(var(--primary-rgb), .2);border-radius:99px;flex:1;height:5px}.progress-dots span.done{background:var(--primary)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
