@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=Syne:wght@600;700;800&display=swap";:root{--color-primary: #c8673b;--color-primary-dark: #9e4e28;--color-primary-deep: #7a3a1c;--color-primary-light: #f5e0d5;--color-primary-soft: rgba(200, 103, 59, .08);--color-gold: #c9963a;--color-gold-light: #fef3c7;--color-charcoal: #1a1612;--color-charcoal-soft: #2e2820;--color-forest: #1a3d2b;--color-forest-light: #d1fae5;--color-stone: #8a8279;--color-bg: #f4efe9;--color-surface: #fdfaf7;--color-surface-alt: #f0ebe4;--color-border: #e4dcd3;--color-border-soft: #ede8e2;--color-text: #1a1612;--color-text-muted: #6b5f54;--color-text-subtle: #9a8f85;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-error: #ef4444;--color-error-light: #fee2e2;--color-info: #3b82f6;--color-info-light: #eff6ff;--font-body: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-display: "Syne", "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--text-xs: .7rem;--text-sm: .8rem;--text-base: .9rem;--text-md: 1rem;--text-lg: 1.15rem;--text-xl: 1.4rem;--text-2xl: 1.7rem;--text-3xl: 2.1rem;--text-4xl: 2.6rem;--radius-xs: 4px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(26, 22, 18, .06);--shadow-sm: 0 2px 6px rgba(26, 22, 18, .07), 0 1px 2px rgba(26, 22, 18, .04);--shadow-md: 0 6px 18px rgba(26, 22, 18, .09), 0 2px 4px rgba(26, 22, 18, .05);--shadow-lg: 0 16px 40px rgba(26, 22, 18, .11), 0 4px 8px rgba(26, 22, 18, .06);--shadow-xl: 0 32px 64px rgba(26, 22, 18, .14), 0 8px 16px rgba(26, 22, 18, .07);--shadow-accent: 0 8px 24px -4px rgba(200, 103, 59, .35);--shadow-accent-lg: 0 16px 40px -8px rgba(200, 103, 59, .45);--shadow-gold: 0 8px 24px -4px rgba(201, 150, 58, .35);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .12s;--duration-base: .22s;--duration-slow: .4s;--focus-ring: 0 0 0 3px rgba(200, 103, 59, .2);--z-base: 1;--z-overlay: 100;--z-modal: 200;--z-toast: 300;--z-nav: 400}html{--lumo-primary-color: var(--color-primary);--lumo-primary-text-color: var(--color-primary);--lumo-primary-color-50pct: rgba(200, 103, 59, .5);--lumo-primary-color-10pct: rgba(200, 103, 59, .1);--lumo-base-color: var(--color-surface);--lumo-body-text-color: var(--color-text);--lumo-secondary-text-color: var(--color-text-muted);--lumo-disabled-text-color: var(--color-text-subtle);--lumo-border-radius-m: var(--radius-sm);--lumo-border-radius-l: var(--radius-md);--lumo-space-xs: 4px;--lumo-space-s: 8px;--lumo-space-m: 16px;--lumo-space-l: 24px;--lumo-space-xl: 40px;--lumo-font-family: var(--font-body);--lumo-font-size-s: var(--text-sm);--lumo-font-size-m: var(--text-base);--lumo-font-size-l: var(--text-md)}html,body{max-width:100%;overflow-x:hidden;font-family:var(--font-body);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#outlet{height:100vh;margin:0;padding:0;overflow:hidden;background:var(--color-bg);color:var(--color-text)}vaadin-app-layout{display:flex;flex-direction:column;height:100vh}h1,.h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--color-text);margin:0 0 .4em}h2,.h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--color-text);margin:0 0 .4em}h3,.h3{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;line-height:1.3;color:var(--color-text);margin:0 0 .3em}h4,.h4{font-family:var(--font-body);font-size:var(--text-md);font-weight:600;color:var(--color-text);margin:0 0 .3em}p{margin:0 0 1em;line-height:1.6}label,.field-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;color:var(--color-text);text-transform:uppercase}@keyframes loading-bar{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-indicator{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-gold));z-index:var(--z-toast);display:none}body.is-loading .loading-indicator{display:block;animation:loading-bar 1.2s var(--ease-in-out) infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pin-drop{0%{transform:rotate(-45deg) translate(-50%,-200%);opacity:0}to{transform:rotate(-45deg) translate(-50%,-100%);opacity:1}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-surface-alt) 25%,var(--color-surface) 50%,var(--color-surface-alt) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.6s var(--ease-in-out) infinite;border-radius:var(--radius-sm)}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:page-enter var(--duration-slow) var(--ease-out) both}#pdf-canvas{cursor:crosshair}.modifier-chantier-view .sticky-header{position:sticky;top:0;z-index:var(--z-overlay);background:#fdfaf7f2!important;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:12px 16px}.modifier-chantier-view .back-button{color:var(--color-primary);font-weight:600;font-family:var(--font-body)}.chantier-tabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.chantier-tabs::-webkit-scrollbar{height:3px}.chantier-tabs::-webkit-scrollbar-track{background:transparent}.chantier-tabs::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}@media(max-width:640px){.modifier-chantier-view .sticky-header{padding:8px 12px}.chantier-tabs .vaadin-tab{min-width:76px;padding:8px 4px;font-size:var(--text-xs)}}.corps-etat-full{width:100%;margin:0!important;padding:0!important}.corps-etat-full .corps-fixed-header{position:sticky;top:0;background:#fdfaf7f5!important;backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.corps-etat-full .building-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-lg);color:var(--color-primary-dark);display:flex;align-items:center;gap:6px}.corps-etat-full .action-bar{padding:0 16px 12px;gap:8px;flex-wrap:wrap;align-items:center}.corps-etat-full .building-select,.corps-etat-full .search-field{flex:1 1 200px;min-width:140px}.corps-etat-full .counter-label{font-weight:700;color:var(--color-primary);white-space:nowrap;font-size:var(--text-base)}.corps-etat-full .scrollable-content{height:calc(100vh - 120px);overflow-y:auto;-webkit-overflow-scrolling:touch}.corps-etat-full .category-title{font-weight:700;font-size:var(--text-md);color:var(--color-text)}.corps-etat-full .category-content{padding:0 16px 16px;background:var(--color-bg);border-radius:0 0 var(--radius-md) var(--radius-md)}@media(max-width:600px){.corps-etat-full .action-bar{flex-direction:column;gap:8px}.corps-etat-full .building-select,.corps-etat-full .search-field,.corps-etat-full .counter-label,.corps-etat-full .toggle-all-btn{width:100%!important;flex:none}.corps-etat-full .toggle-all-btn{order:-1}.corps-etat-full .building-title{font-size:var(--text-md)}}.compact-field .vaadin-text-field-container,.compact-combo .vaadin-combo-box-container{height:36px!important;padding:0!important}.compact-field .vaadin-text-field-input,.compact-combo .vaadin-combo-box-input{font-size:13px!important;padding:0 8px!important}.compact-field .vaadin-field-label,.compact-combo .vaadin-field-label{display:none!important}.compact-field:focus-within,.compact-combo:focus-within{outline:2px solid var(--color-primary-light);outline-offset:1px;border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid transparent;line-height:1.4}.badge.success{background:var(--color-forest-light);color:var(--color-forest);border-color:#a7f3d0}.badge.warning{background:var(--color-warning-light);color:#92400e;border-color:#fde68a}.badge.error{background:var(--color-error-light);color:#991b1b;border-color:#fca5a5}.badge.info{background:var(--color-info-light);color:#1e40af;border-color:#bfdbfe}.badge.contrast{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.badge.primary{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#f9c9b5}.badge.gold{background:var(--color-gold-light);color:#92400e;border-color:#fde68a}.progress-complete{--lumo-primary-color: var(--color-forest)}.progress-high{--lumo-primary-color: #4ade80}.progress-medium{--lumo-primary-color: var(--color-warning)}.progress-low{--lumo-primary-color: var(--color-primary)}vaadin-grid::part(header-cell){background:var(--color-surface-alt);font-weight:700;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}vaadin-grid::part(row):hover{background:#c8673b0a}vaadin-grid::part(pending-review){background-color:var(--color-primary-light)}.pending-review,.pending-review:hover{background-color:var(--color-primary-light)!important}.photo-thumbnail{transition:transform var(--duration-base) var(--ease-out);border-radius:var(--radius-sm);overflow:hidden}.photo-thumbnail:hover{transform:scale(1.05)}.corps-etat-section{border-left:3px solid var(--color-primary);padding-left:14px}.stat-card{transition:transform var(--duration-base) var(--ease-spring),box-shadow var(--duration-base) var(--ease-out);cursor:pointer}.stat-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-md)}.chart-container{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px}.small-icon-button{padding:4px;min-width:auto}.document-viewer{background:var(--color-surface)}.document-toolbar{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.document-status-bar{position:sticky;bottom:0;z-index:var(--z-base)}.document-top-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:8px 16px;flex-wrap:wrap;gap:8px}@media(max-width:768px){.document-toolbar{padding:8px}.document-status-bar{font-size:var(--text-sm)}.document-top-bar{flex-direction:column;align-items:stretch}.document-top-bar>*{width:100%}.delais-form-section{padding:.5rem!important}.delais-role-section{flex-direction:column!important}.delais-controls{width:100%!important}.delais-info{width:100%!important;margin-bottom:1rem}.hide-on-mobile{display:none!important}}@media(max-width:600px){#delais-content-delais-inner{grid-template-columns:1fr!important}#delais-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}#delais-form vaadin-integer-field,#delais-form vaadin-checkbox{width:100%}}vaadin-accordion-panel[opened]{background-color:var(--color-primary-light)!important}vaadin-checkbox[disabled]{opacity:.55}.formulaire-chantier{font-family:var(--font-body);padding:24px;background-color:var(--color-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin:20px auto;max-width:800px}.content-container{display:flex;justify-content:center;width:100%}.new-stakeholder-form{background-color:var(--color-surface);border-radius:var(--radius-md);padding:20px}.new-stakeholder-form .vaadin-combo-box,.new-stakeholder-form .vaadin-text-field,.new-stakeholder-form .vaadin-email-field,.new-stakeholder-form .vaadin-multi-select-combo-box{width:100%}vaadin-button[theme~=primary]{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)!important;color:#fff!important;border-radius:var(--radius-sm)!important;font-family:var(--font-body)!important;font-weight:600!important;font-size:var(--text-base)!important;padding:0 24px!important;height:42px!important;box-shadow:var(--shadow-accent)!important;transition:transform var(--duration-base) var(--ease-spring),box-shadow var(--duration-base) var(--ease-out),background var(--duration-fast) linear!important;border:none!important}vaadin-button[theme~=primary]:hover{transform:translateY(-2px)!important;box-shadow:var(--shadow-accent-lg)!important;background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary-deep) 100%)!important}vaadin-button[theme~=primary]:active{transform:scale(.97)!important;box-shadow:0 2px 8px -4px #c8673b66!important;transition-duration:var(--duration-fast)!important}vaadin-button[theme~=primary][focus-ring]{box-shadow:var(--focus-ring),var(--shadow-accent)!important}vaadin-button[theme~=tertiary]{background:transparent!important;color:var(--color-text-muted)!important;border-radius:var(--radius-sm)!important;font-family:var(--font-body)!important;font-size:var(--text-base)!important;font-weight:500!important;height:42px!important;padding:0 20px!important;border:1.5px solid var(--color-border)!important;transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)!important}vaadin-button[theme~=tertiary]:hover{background:var(--color-surface-alt)!important;border-color:var(--color-stone)!important;color:var(--color-text)!important}vaadin-text-field::part(input-field),vaadin-combo-box::part(input-field),vaadin-password-field::part(input-field),vaadin-email-field::part(input-field),vaadin-integer-field::part(input-field),vaadin-number-field::part(input-field),vaadin-date-picker::part(input-field),vaadin-text-area::part(input-field){background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-body);transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);padding:0 12px;min-height:42px}vaadin-text-field::part(input-field):hover,vaadin-combo-box::part(input-field):hover,vaadin-password-field::part(input-field):hover,vaadin-email-field::part(input-field):hover,vaadin-integer-field::part(input-field):hover,vaadin-number-field::part(input-field):hover,vaadin-date-picker::part(input-field):hover,vaadin-text-area::part(input-field):hover{background:var(--color-surface);border-color:var(--color-stone)}vaadin-text-field[focus-within]::part(input-field),vaadin-combo-box[focus-within]::part(input-field),vaadin-password-field[focus-within]::part(input-field),vaadin-email-field[focus-within]::part(input-field),vaadin-integer-field[focus-within]::part(input-field),vaadin-number-field[focus-within]::part(input-field),vaadin-date-picker[focus-within]::part(input-field),vaadin-text-area[focus-within]::part(input-field){background:var(--color-surface);border-color:var(--color-primary);box-shadow:var(--focus-ring)}vaadin-text-field::part(label),vaadin-combo-box::part(label),vaadin-password-field::part(label),vaadin-email-field::part(label),vaadin-integer-field::part(label),vaadin-number-field::part(label),vaadin-date-picker::part(label),vaadin-text-area::part(label){font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;color:var(--color-text);letter-spacing:.03em;text-transform:uppercase;margin-bottom:4px;padding-left:2px}vaadin-text-field::part(required-indicator),vaadin-combo-box::part(required-indicator),vaadin-password-field::part(required-indicator),vaadin-email-field::part(required-indicator){color:var(--color-primary);margin-left:2px}vaadin-text-field::part(error-message),vaadin-combo-box::part(error-message),vaadin-password-field::part(error-message),vaadin-email-field::part(error-message){font-size:var(--text-xs);font-weight:500;color:var(--color-error);padding-left:2px;margin-top:2px}.projet-cover{margin-bottom:20px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);background:var(--color-surface)}.projet-cover-image-wrapper{position:relative;width:100%;aspect-ratio:10 / 3;min-height:140px;max-height:260px;overflow:hidden;background:var(--color-surface-alt)}.projet-cover-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-base) var(--ease-out)}.projet-cover-image-wrapper:hover .projet-cover-image{transform:scale(1.04)}.projet-cover-upload{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center}.projet-cover-upload vaadin-upload{width:100%;height:100%;min-height:unset;display:flex;align-items:center;justify-content:center;position:relative}.projet-cover-upload vaadin-upload::part(drop-label){display:none!important}.projet-cover-upload-btn{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;cursor:pointer!important;z-index:6;display:flex!important;align-items:center!important;justify-content:center!important;transition:background var(--duration-base) var(--ease-out)!important}.projet-cover-image-wrapper:hover .projet-cover-upload-btn{background:#1a161266!important}.projet-cover-upload-btn vaadin-icon{width:36px;height:36px;color:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.projet-cover-delete-btn{position:absolute!important;top:10px;right:10px;z-index:var(--z-overlay);background:#fdfaf7eb!important;backdrop-filter:blur(6px);border-radius:50%!important;min-width:36px!important;height:36px!important;padding:0!important;box-shadow:var(--shadow-md);opacity:0;transform:translateY(-6px);transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-spring)!important}.projet-cover-image-wrapper:hover .projet-cover-delete-btn{opacity:1;transform:translateY(0)}.projet-cover-delete-btn:hover{background:var(--color-error-light)!important;box-shadow:0 4px 14px #ef44444d}@media(prefers-color-scheme:dark){:root{--color-bg: #1a1612;--color-surface: #231e1a;--color-surface-alt: #2e2820;--color-border: #3d342c;--color-border-soft: #342c25;--color-text: #f0ebe4;--color-text-muted: #a39589;--color-text-subtle: #6b5f54;--color-primary: #d4784f;--color-primary-dark: #c8673b;--color-primary-light: rgba(212, 120, 79, .14);--color-primary-soft: rgba(212, 120, 79, .09);--color-gold: #d4a847;--color-gold-light: rgba(212, 168, 71, .12);--color-forest-light: rgba(26, 61, 43, .35);--color-warning-light: rgba(245, 158, 11, .12);--color-error-light: rgba(239, 68, 68, .12);--color-info-light: rgba(59, 130, 246, .12);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 6px 20px rgba(0, 0, 0, .4), 0 2px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .48), 0 4px 10px rgba(0, 0, 0, .28);--shadow-xl: 0 32px 68px rgba(0, 0, 0, .55), 0 8px 18px rgba(0, 0, 0, .32);--shadow-accent: 0 8px 28px -4px rgba(212, 120, 79, .4);--shadow-accent-lg: 0 16px 44px -8px rgba(212, 120, 79, .5);--shadow-gold: 0 8px 28px -4px rgba(212, 168, 71, .38);--focus-ring: 0 0 0 3px rgba(212, 120, 79, .28)}html{--lumo-base-color: #231e1a;--lumo-body-text-color: #f0ebe4;--lumo-secondary-text-color: #a39589;--lumo-disabled-text-color: #6b5f54;--lumo-primary-color: #d4784f;--lumo-primary-text-color: #d4784f;--lumo-primary-color-50pct: rgba(212, 120, 79, .5);--lumo-primary-color-10pct: rgba(212, 120, 79, .12);--lumo-contrast-5pct: rgba(240, 235, 228, .05);--lumo-contrast-10pct: rgba(240, 235, 228, .1);--lumo-contrast-20pct: rgba(240, 235, 228, .18);--lumo-contrast-30pct: rgba(240, 235, 228, .28);--lumo-contrast-40pct: rgba(240, 235, 228, .38);--lumo-contrast-50pct: rgba(240, 235, 228, .5);--lumo-contrast-60pct: rgba(240, 235, 228, .62);--lumo-contrast-70pct: rgba(240, 235, 228, .72);--lumo-contrast-80pct: rgba(240, 235, 228, .82);--lumo-contrast-90pct: rgba(240, 235, 228, .9);--lumo-tint-5pct: rgba(240, 235, 228, .05);--lumo-tint-10pct: rgba(240, 235, 228, .1);--lumo-tint-20pct: rgba(240, 235, 228, .18);--lumo-tint-30pct: rgba(240, 235, 228, .28)}.skeleton{background:linear-gradient(90deg,var(--color-surface-alt) 25%,rgba(240,235,228,.06) 50%,var(--color-surface-alt) 75%)}vaadin-grid::part(header-cell){background:var(--color-surface-alt);color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}vaadin-grid::part(row):hover{background:#d4784f0f}.badge.contrast{background:var(--color-surface-alt);color:var(--color-text-muted);border-color:var(--color-border)}.badge.info{background:#3b82f624;color:#93c5fd;border-color:#3b82f647}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
