:root{--color-primary: #3b82f6;--color-secondary: #8b5cf6;--color-success: #10b981;--color-danger: #ef4444;--color-warning: #f59e0b;--color-info: #06b6d4;--color-text-primary: #1f2937;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-border: #e5e7eb;--color-border-hover: #d1d5db;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1f2937;color:var(--color-text-primary);background-color:#f9fafb;background-color:var(--color-bg-secondary);line-height:1.6}html,body,#root{height:100%}.app-shell{min-height:100vh;display:flex;flex-direction:column;padding:1.5rem;padding:var(--spacing-lg)}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.page-title{font-size:1.5rem;font-weight:600}.page-subtitle{font-size:.875rem;color:#6b7280;color:var(--color-text-secondary)}.page-content{flex:1}.muted-text{color:#9ca3af;color:var(--color-text-muted);font-size:.9rem}.auth-card{max-width:360px;margin:auto;padding:2rem;padding:var(--spacing-xl);background:#fff;background:var(--color-bg-primary);border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow-md)}.auth-title{font-size:1.5rem;font-weight:700;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.auth-subtitle{font-size:.9rem;color:#6b7280;color:var(--color-text-secondary);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.auth-form{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-md)}.field{display:flex;flex-direction:column;gap:.25rem;gap:var(--spacing-xs)}.field-label{font-size:.85rem;color:#6b7280;color:var(--color-text-secondary)}.field-input{padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;border-radius:var(--radius-md);border:1px solid #e5e7eb;border:1px solid var(--color-border);background:#fff;background:var(--color-bg-primary);font-size:.95rem}.field-input:focus{outline:none;border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 1px #3b82f6;box-shadow:0 0 0 1px var(--color-primary)}.field-error{color:#ef4444;color:var(--color-danger);font-size:.85rem}.primary-button{margin-top:.5rem;margin-top:var(--spacing-sm);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;border-radius:var(--radius-md);border:none;cursor:pointer;background:#3b82f6;background:var(--color-primary);color:#fff;font-weight:500;font-size:.95rem;box-shadow:0 1px 2px #0000000d;box-shadow:var(--shadow-sm)}.primary-button:disabled{opacity:.6;cursor:default}.auth-footer{margin-top:1rem;margin-top:var(--spacing-md);text-align:center;font-size:.9rem;color:#6b7280;color:var(--color-text-secondary)}.auth-link{color:#3b82f6;color:var(--color-primary);-webkit-text-decoration:none;text-decoration:none;font-weight:500}.auth-link:hover{-webkit-text-decoration:underline;text-decoration:underline}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:1rem;grid-gap:var(--spacing-md);gap:1rem;gap:var(--spacing-md)}.card{background:#fff;background:var(--color-bg-primary);border-radius:.5rem;border-radius:var(--radius-md);padding:1rem;padding:var(--spacing-md);box-shadow:0 1px 2px #0000000d;box-shadow:var(--shadow-sm);border:1px solid #e5e7eb;border:1px solid var(--color-border)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.card-title{font-size:1rem;font-weight:600}.badge{padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:#f3f4f6;background:var(--color-bg-tertiary);color:#6b7280;color:var(--color-text-secondary)}.card-body{font-size:.9rem}.price-row{display:flex;align-items:center;justify-content:space-between}.label{color:#6b7280;color:var(--color-text-secondary)}.value{font-weight:600}nav a{transition:all .2s}nav a:hover{opacity:.8}
