:root{--primary: #2c3e50;--secondary: #7f8c8d;--accent: #95a5a6;--success: #27ae60;--warning: #f39c12;--danger: #e74c3c;--light: #ecf0f1;--dark: #1a1a1a;--white: #ffffff;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--border-radius: 4px;--transition: all .2s ease}*{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;background-color:var(--light);color:var(--dark);line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background-color:var(--primary);color:var(--white);padding:var(--spacing-sm) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.nav-brand{font-size:1.5rem;font-weight:600;letter-spacing:.5px}.nav-links{display:flex;gap:var(--spacing-sm)}.nav-links button{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.3);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);font-size:.95rem}.nav-links button:hover{background-color:#ffffff1a;border-color:#ffffff80}.main-content{flex:1;padding:var(--spacing-lg);max-width:1400px;margin:0 auto;width:100%}.auth-container{max-width:450px;margin:4rem auto;padding:var(--spacing-xl);background-color:var(--white);border-radius:var(--border-radius);box-shadow:0 4px 6px #0000001a}.auth-container h1{margin-bottom:var(--spacing-lg);color:var(--primary);text-align:center;font-size:1.8rem}.auth-container form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-container input{padding:var(--spacing-sm);border:1px solid var(--accent);border-radius:var(--border-radius);font-size:1rem;transition:var(--transition)}.auth-container input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2c3e501a}.auth-container button[type=submit]{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--primary);color:var(--white);border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition)}.auth-container button[type=submit]:hover:not(:disabled){background-color:#1a2634;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.auth-container button[type=submit]:disabled{background-color:var(--secondary);cursor:not-allowed}.link-button{background:none;border:none;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}.link-button:hover{color:#1a2634}.dashboard{padding:var(--spacing-lg)}.dashboard h2{margin-bottom:var(--spacing-xl);color:var(--primary);font-size:2rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.card{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000014;cursor:pointer;transition:var(--transition);text-align:center}.card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.card h3{color:var(--primary);margin-bottom:var(--spacing-sm);font-size:1.5rem}.card p{color:var(--secondary);font-size:.95rem}.quotes-view,.jobs-view,.profile-view{padding:var(--spacing-lg)}.quotes-view h2,.jobs-view h2,.profile-view h2{margin-bottom:var(--spacing-lg);color:var(--primary);font-size:1.8rem}.quotes-view>button,.jobs-view>button{background-color:var(--success);color:var(--white);border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:var(--spacing-lg);transition:var(--transition)}.quotes-view>button:hover,.jobs-view>button:hover{background-color:#1e8449;transform:translateY(-1px)}.quotes-list,.jobs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.quote-card,.job-card{background-color:var(--white);padding:var(--spacing-md);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000014;transition:var(--transition)}.quote-card:hover,.job-card:hover{box-shadow:0 4px 8px #0000001f}.quote-card h3,.job-card h3{color:var(--primary);margin-bottom:var(--spacing-sm);font-size:1.2rem}.quote-card p,.job-card p{margin:var(--spacing-xs) 0;font-size:.95rem;color:var(--dark)}.quote-card p strong,.job-card p strong{color:var(--primary);margin-right:var(--spacing-xs)}.status-pending{color:var(--warning);font-weight:600}.status-approved{color:var(--success);font-weight:600}.status-rejected{color:var(--danger);font-weight:600}.status-completed{color:var(--secondary);font-weight:600}.status-queued,.status-in_progress{color:var(--warning);font-weight:600}.status-review{color:var(--accent);font-weight:600}.profile-info{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000014;max-width:600px}.profile-info p{margin:var(--spacing-sm) 0;font-size:1rem;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--light)}.profile-info p:last-child{border-bottom:none}.error{background-color:#fadbd8;color:var(--danger);padding:var(--spacing-sm);border-radius:var(--border-radius);margin:var(--spacing-sm) 0;border-left:4px solid var(--danger);font-size:.95rem}.loading{text-align:center;padding:var(--spacing-xl);color:var(--secondary);font-size:1.1rem}@media (max-width: 768px){.nav-links{flex-wrap:wrap}.dashboard-grid,.quotes-list,.jobs-list{grid-template-columns:1fr}.main-content{padding:var(--spacing-sm)}.auth-container{margin:2rem auto;padding:var(--spacing-lg)}}
