*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font-heading: "IBM Plex Sans", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--color-primary: #F39429;--color-primary-dark: #A8530F;--color-secondary: #163F1D;--color-secondary-light: #1F5A2A;--color-accent-gold: #F8B03F;--color-deep: #511311;--color-bg: #FFFBF3;--color-surface: #FFFFFF;--color-text: #181B1E;--color-text-muted: #6B6560;--color-border: #EDE1CC;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--space-7: 64px;--space-8: 96px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--shadow-sm: 0 1px 3px rgba(24, 27, 30, .06);--shadow-md: 0 4px 16px rgba(24, 27, 30, .08);--shadow-lg: 0 12px 32px rgba(24, 27, 30, .12)}html,body{width:100%;margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2;color:var(--color-text)}h1{font-size:clamp(2rem,4vw,2.75rem);font-weight:700}h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:600}h3{font-size:1.25rem;font-weight:600}p{color:var(--color-text)}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:var(--font-body);font-size:1rem}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.mono{font-family:var(--font-mono)}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 var(--space-4)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:12px 22px;border-radius:var(--radius-sm);border:2px solid transparent;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;text-decoration:none}.btn-primary,.btn-primary:hover,.btn-primary:focus,.btn-primary:visited{color:#fff}.btn-primary{background:var(--color-primary-dark)}.btn-primary:hover{background:#8f450c;transform:translateY(-1px);box-shadow:var(--shadow-md);text-decoration:none}.btn-secondary,.btn-secondary:visited{color:var(--color-secondary)}.btn-secondary{background:transparent;border-color:var(--color-secondary)}.btn-secondary:hover,.btn-secondary:focus{background:var(--color-secondary);color:#fff;text-decoration:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);transition:transform .2s ease,box-shadow .2s ease}.card:hover,.card:focus-within{transform:translateY(-2px);box-shadow:var(--shadow-md)}.animate-in{animation:fadeInUp .6s ease-out both}.animate-in:nth-child(1){animation-delay:.05s}.animate-in:nth-child(2){animation-delay:.12s}.animate-in:nth-child(3){animation-delay:.19s}.animate-in:nth-child(4){animation-delay:.26s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.animate-in,.card{animation:none!important;transition:none!important}}@media(max-width:640px){.container{padding:0 var(--space-3)}}.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.navbar-inner.container{max-width:1240px}.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);padding-bottom:var(--space-3)}.navbar-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex-shrink:0}.navbar-brand:hover{text-decoration:none}.navbar-logo{height:32px;width:auto;display:block}.navbar-brand-text{font-family:var(--font-heading);font-weight:600;color:var(--color-text);font-size:.95rem;white-space:nowrap}.navbar-toggle{display:none;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:40px;height:40px;font-size:1.1rem;cursor:pointer;color:var(--color-text)}.navbar-links{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.navbar-link{color:var(--color-text-muted);font-weight:500;font-size:.95rem;padding:6px 2px;border-bottom:2px solid transparent;text-decoration:none}.navbar-link:hover{color:var(--color-text);text-decoration:none}.navbar-link.is-active{color:var(--color-secondary);font-weight:600;border-bottom-color:var(--color-primary)}@media(max-width:860px){.navbar-toggle{display:inline-flex;align-items:center;justify-content:center}.navbar-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:0;padding:var(--space-2) var(--space-4) var(--space-4)}.navbar-links.is-open{display:flex}.navbar-link{padding:10px 0;width:100%}}.main{flex:1 0 auto}.footer{background:var(--color-secondary);color:#fff;margin-top:var(--space-8)}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-5);padding-bottom:var(--space-5)}.footer-brand{font-family:var(--font-heading);font-weight:600;color:#fff}.footer-muted{color:#ffffffbf;font-size:.9rem}.footer-links{display:flex;gap:var(--space-4)}.footer-links a{color:#fff}.footer-links a:hover{color:var(--color-accent-gold)}.status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid transparent}.status-badge-neutral{background:#f1eee8;color:var(--color-text-muted);border-color:var(--color-border)}.status-badge-pending{background:#fff3e0;color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.status-badge-success{background:#e8f3ea;color:var(--color-secondary);border-color:var(--color-secondary-light)}.status-badge-warning{background:#fcefee;color:var(--color-deep);border-color:var(--color-deep)}.stat-card{text-align:left}.stat-card-label{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-card-value{font-size:1.75rem;font-weight:700;color:var(--color-secondary)}.stat-card-hint{font-size:.85rem;color:var(--color-text-muted);margin-top:var(--space-1)}.stat-card-link{display:block;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s}.stat-card-link:hover,.stat-card-link:focus-visible{box-shadow:0 4px 16px #00000014;transform:translateY(-2px);text-decoration:none}.form-section{border:none;padding:0;margin:0 0 var(--space-5) 0}.form-section-legend{font-family:var(--font-heading);font-weight:600;font-size:1.1rem;margin-bottom:var(--space-1);padding:0}.form-section-description{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--space-3)}.form-section-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3) var(--space-4)}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-weight:500;font-size:.9rem}.form-required{color:var(--color-deep)}.form-field input,.form-field select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.form-field input:focus-visible,.form-field select:focus-visible{outline:3px solid var(--color-primary);outline-offset:1px}.form-field input[readonly]{background:var(--color-surface-muted, #f2f0ec);color:var(--color-text-muted);cursor:not-allowed}.datepicker{position:relative}.datepicker-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:1rem;text-align:left;cursor:pointer}.datepicker-trigger:focus-visible{outline:3px solid var(--color-primary);outline-offset:1px}.datepicker-trigger-icon{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0}.datepicker-panel{position:absolute;z-index:20;top:calc(100% + var(--space-2));left:0;width:280px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:var(--space-3)}.datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.datepicker-title{font-weight:600;text-transform:capitalize}.datepicker-nav{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-secondary);font-size:1.1rem;cursor:pointer}.datepicker-nav:hover:not(:disabled){background:var(--color-border)}.datepicker-nav:disabled{opacity:.35;cursor:not-allowed}.datepicker-weekdays,.datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr)}.datepicker-weekdays span{text-align:center;font-size:.75rem;color:var(--color-text-muted);padding-bottom:var(--space-1)}.datepicker-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font-body);font-size:.9rem;color:var(--color-text);cursor:pointer}.datepicker-day:hover:not(:disabled){background:var(--color-border)}.datepicker-day:disabled{color:var(--color-text-muted);opacity:.4;cursor:not-allowed}.datepicker-day.is-selected{background:var(--color-primary);color:#fff;font-weight:600}.form-field input[type=date]{color-scheme:light;font-family:var(--font-body);cursor:pointer}.form-field input[type=date]::-webkit-calendar-picker-indicator{padding:4px;margin-left:8px;border-radius:var(--radius-sm);cursor:pointer;filter:opacity(.6)}.form-field input[type=date]::-webkit-calendar-picker-indicator:hover{filter:opacity(1)}.form-hint{font-size:.8rem;color:var(--color-text-muted)}@media(max-width:640px){.form-section-grid{grid-template-columns:1fr}}.onboarding-list{list-style:none;margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.onboarding-item{display:flex;align-items:center;gap:var(--space-3)}.onboarding-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;font-size:.85rem;flex-shrink:0}.onboarding-item.is-done .onboarding-index{background:var(--color-secondary)}.onboarding-item a{font-weight:500;color:var(--color-text)}.project-card{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.project-card-status{min-height:30px;display:flex;align-items:center}.project-card-dates{color:var(--color-text-muted);font-size:.85rem}.project-card-info{color:var(--color-text-muted);font-size:.9rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-title{text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.calendar-weekdays{color:var(--color-text-muted);font-size:.8rem;text-align:center;margin-bottom:var(--space-2)}.calendar-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center}.calendar-day{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;color:var(--color-text);transition:background .15s ease,border-color .15s ease}.calendar-day:hover{border-color:var(--color-primary)}.calendar-day.is-available{background:var(--color-secondary);color:#fff;border-color:var(--color-secondary)}.hero{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-light) 45%,var(--color-primary) 100%);background-image:radial-gradient(circle at 15% 25%,rgba(248,176,63,.35) 0,transparent 6%),radial-gradient(circle at 70% 60%,rgba(248,176,63,.25) 0,transparent 5%),radial-gradient(circle at 40% 80%,rgba(248,176,63,.3) 0,transparent 4%),linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-light) 45%,var(--color-primary) 100%);color:#fff}.hero-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding-top:var(--space-8);padding-bottom:var(--space-8)}.hero-eyebrow{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-gold);margin-bottom:var(--space-2)}.hero-copy h1{color:#fff}.hero-lead{color:#ffffffe0;max-width:46ch;margin-top:var(--space-3);font-size:1.05rem}.hero-logo{height:90px;width:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.25));flex-shrink:0}.section{padding-top:var(--space-6);padding-bottom:var(--space-6)}.section-title{margin-bottom:var(--space-4)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}@media(max-width:760px){.hero-inner{flex-direction:column;align-items:flex-start}.hero-logo{height:60px}.stat-grid{grid-template-columns:1fr}}.page-lead{color:var(--color-text-muted);margin:var(--space-2) 0 var(--space-5)}.form-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}.page-header-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2)}.contract-terms{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0}.contract-terms dt{font-weight:600;margin-bottom:2px}.contract-terms dd{color:var(--color-text-muted)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.empty-state{color:var(--color-text-muted);padding:var(--space-5) 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.assignments-table{width:100%;border-collapse:collapse;min-width:640px}.assignments-table th,.assignments-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--color-border)}.assignments-table th{font-family:var(--font-heading);font-weight:600;font-size:.85rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.assignments-table tr:last-child td{border-bottom:none}.process-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3);padding-left:var(--space-4)}.process-list li{color:var(--color-text)}.profile-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3) var(--space-4);margin:var(--space-2) 0 var(--space-4)}.profile-empty{color:var(--color-text-muted);font-style:italic}@media(max-width:640px){.profile-fields{grid-template-columns:1fr}}.profile-logo-section{margin:var(--space-4) 0;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.profile-logo-label{font-weight:600;margin-bottom:var(--space-2)}.profile-logo-preview{display:block;max-width:160px;max-height:100px;object-fit:contain;margin-bottom:var(--space-3)}.profile-logo-upload{display:inline-flex;cursor:pointer}.offerte-preview-frame{width:100%;height:70vh;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:var(--space-3) 0}.navbar-auth{display:flex;align-items:center;flex-shrink:0}.auth-button{display:flex;align-items:center;gap:var(--space-2)}.auth-button-user{flex-wrap:wrap}.auth-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-secondary);color:#fff;font-size:.8rem;font-weight:700;flex-shrink:0}.auth-name{font-weight:500;font-size:.9rem}.auth-signout{padding:6px 14px;font-size:.85rem}.navbar-auth-mobile{display:none}.navbar-auth-desktop{margin-left:var(--space-3)}@media(max-width:860px){.navbar-auth-desktop{display:none}.navbar-auth-mobile{display:flex;margin:var(--space-2) 0 0;width:100%}.auth-button-user{justify-content:space-between;width:100%}}.contract-full{max-width:760px;max-height:70vh;overflow-y:auto}.contract-section{margin-bottom:var(--space-4)}.contract-section h2{font-size:1.05rem;margin-bottom:var(--space-2)}.contract-section p{margin-bottom:var(--space-2);color:var(--color-text);line-height:1.6;font-size:.92rem}.contract-agree{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3);cursor:pointer}.contract-agree input{margin-top:3px;accent-color:var(--color-secondary)}
