:root{--capbe-bp-sm: 480px;--capbe-bp-md: 768px;--capbe-bp-lg: 1024px;--capbe-bp-xl: 1280px}*,*:before,*:after{box-sizing:border-box}img,svg,video,canvas{max-width:100%;height:auto}.capbe-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.capbe-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}@media(max-width:768px){table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}html,body{max-width:100%}.principale,.primary-button,.btn-primary,.bouton-primaire,.secondaire,.secondary-button,.action-button,.btn-secondary,.bouton-secondaire,.bouton-metier,.discret{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:var(--capbe-radius, 8px);font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}.principale,.primary-button,.btn-primary,.bouton-primaire{background:var(--capbe-primary);border-color:var(--capbe-primary);color:#052e16}.secondaire,.secondary-button,.action-button,.btn-secondary,.bouton-secondaire,.bouton-metier{background:var(--capbe-surface);border-color:var(--capbe-border);color:var(--capbe-text)}.discret{background:transparent;border-color:transparent;color:var(--capbe-muted);padding:0 10px}.secondaire:hover,.secondary-button:hover,.action-button:hover,.btn-secondary:hover,.bouton-secondaire:hover,.bouton-metier:hover,.discret:hover{border-color:var(--capbe-primary);color:var(--capbe-primary)}.discret:hover{background:var(--capbe-background)}.principale:hover,.primary-button:hover,.btn-primary:hover,.bouton-primaire:hover{filter:brightness(.96)}.action-button.primary,.secondary-button.primary{background:var(--capbe-primary);border-color:var(--capbe-primary);color:#052e16}.tool-button.labelled{width:auto;padding:0 11px}.tool-button.delete,.action-danger{color:var(--capbe-danger);border-color:color-mix(in srgb,var(--capbe-danger) 45%,var(--capbe-border))}.principale.danger{background:var(--capbe-danger);border-color:var(--capbe-danger);color:#fff}.danger-button,.bouton-danger,.secondaire.danger,.discret.danger{border-color:color-mix(in srgb,var(--capbe-danger) 45%,var(--capbe-border));color:var(--capbe-danger)}.danger-button{background:var(--capbe-surface)}.secondaire.succes,.discret.succes{border-color:color-mix(in srgb,#16a34a 45%,var(--capbe-border));color:#16a34a}.secondaire.attention,.discret.attention{border-color:color-mix(in srgb,#d97706 45%,var(--capbe-border));color:#b45309}.outil,.tool-button,.app-bar-button{display:inline-grid;place-items:center;width:40px;min-height:40px;border:1px solid var(--capbe-border);border-radius:var(--capbe-radius, 8px);background:var(--capbe-surface);color:var(--capbe-muted);text-decoration:none;cursor:pointer}.outil:hover,.tool-button:hover,.app-bar-button:hover{color:var(--capbe-primary);border-color:color-mix(in srgb,var(--capbe-primary) 45%,var(--capbe-border))}.mini-outil,.icon-button{display:inline-grid;place-items:center;width:32px;min-height:32px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--capbe-muted);text-decoration:none;cursor:pointer}.mini-outil:hover:not(:disabled),.icon-button:hover:not(:disabled){background:color-mix(in srgb,var(--capbe-primary) 10%,transparent);color:var(--capbe-primary)}.principale:disabled,.secondaire:disabled,.discret:disabled,.outil:disabled,.mini-outil:disabled,.primary-button:disabled,.secondary-button:disabled,.action-button:disabled{opacity:.5;cursor:not-allowed}.actions-ligne{display:flex;gap:6px;justify-content:flex-end;align-items:center}.sous-nav{display:flex;flex-wrap:wrap;gap:2px;background:var(--capbe-surface);border:1px solid var(--capbe-border);border-radius:12px;padding:4px}.sous-nav a,.sous-nav button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--capbe-muted);font:inherit;font-size:13px;text-decoration:none;cursor:pointer}.sous-nav a:hover,.sous-nav button:hover{background:var(--capbe-background);color:var(--capbe-text)}.sous-nav .actif{background:color-mix(in srgb,var(--capbe-primary) 16%,transparent);color:var(--capbe-text);font-weight:600}dialog.modale{border:1px solid var(--capbe-border);border-radius:14px;background:var(--capbe-surface);color:var(--capbe-text);padding:0;width:min(440px,92vw)}dialog.modale::backdrop{background:#0f172a8c}dialog.modale form{display:flex;flex-direction:column;gap:10px;padding:18px}dialog.modale h2{margin:0 0 2px;font-size:16px}dialog.modale label{display:flex;flex-direction:column;gap:4px;color:var(--capbe-muted);font-size:12px}dialog.modale input,dialog.modale select,dialog.modale textarea{padding:9px 10px;border:1px solid var(--capbe-border);border-radius:8px;background:var(--capbe-background);color:inherit;font:inherit}dialog.modale .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@font-face{font-family:CapbeIcons;src:url(../../../fonts/CapbeIcons-088db6d26e03.ttf) format("truetype");font-display:block}:root{--capbe-background: #f7f2e8;--capbe-surface: #fffdf8;--capbe-surface-alt: #efe8d9;--capbe-border: #d8cdb9;--capbe-text: #1a241d;--capbe-muted: #5b6b5f;--capbe-muted2: #8a988d;--capbe-primary: #1e5b3a;--capbe-success: #1e824c;--capbe-warning: #aa820a;--capbe-danger: #a94f32;--capbe-info: #1e5b3a;--capbe-gold: #aa820a;--capbe-gold-text: #8c6a05;--capbe-accent: #1e824c;--capbe-accent-soft: rgba(30, 130, 76, .12);--capbe-radius: 14px;--font-display: "Fraunces", Georgia, serif;--font-text: "Manrope", system-ui, -apple-system, sans-serif}body.theme-dark{--capbe-background: #0c1511;--capbe-surface: #111d16;--capbe-surface-alt: #16251c;--capbe-border: #2a3a2f;--capbe-text: #f7f2e8;--capbe-muted: #a9b8ad;--capbe-muted2: #7e9184;--capbe-primary: #3fa46a;--capbe-success: #48c78e;--capbe-warning: #d4af37;--capbe-danger: #e06d53;--capbe-info: #8adfae;--capbe-gold: #d4af37;--capbe-gold-text: #fceba4;--capbe-accent: #3fa46a;--capbe-accent-soft: rgba(63, 164, 106, .14)}body{margin:0;background:var(--capbe-background);color:var(--capbe-text);font-family:var(--font-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--capbe-info, #8ADFAE);text-decoration:none;transition:color .15s ease}a:visited{color:var(--capbe-info, #8ADFAE)}a:hover{color:var(--capbe-primary, #3FA46A);text-decoration:underline;text-underline-offset:3px}h1,h2,h3,h4,.page-entete h2{font-family:var(--font-display, "Fraunces", Georgia, serif);font-weight:600;letter-spacing:-.015em;color:var(--capbe-text)}.kicker{display:inline-flex;align-items:center;gap:.5rem;color:var(--capbe-gold-text, #D4AF37);font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.35rem}.badge-campagne{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem;border:1px solid var(--capbe-border);border-radius:999px;background:var(--capbe-surface-alt);color:var(--capbe-gold-text, #D4AF37);font-family:JetBrains Mono,monospace;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.app-root{background:var(--capbe-background, #0C1511)!important;color:var(--capbe-text, #F7F2E8)!important}.app-root .sidebar{background:#0c1511!important;border-right:1px solid #1D332A!important;color:#a9b8ad!important}body.theme-light .app-root .sidebar{background:#fffdf8!important;border-right:1px solid #D8CDB9!important;color:#5b6b5f!important}.app-root .brand{border-bottom:1px solid #1D332A!important;padding:12px 14px!important}body.theme-light .app-root .brand{border-bottom:1px solid #D8CDB9!important}.app-root .brand-mark{background:linear-gradient(135deg,#1e824c,#145a32)!important;border:1px solid rgba(212,175,55,.45)!important;color:#d4af37!important;border-radius:8px!important;box-shadow:0 0 12px #1e824c59!important}.app-root .brand-copy strong{font-family:var(--font-display, "Fraunces", Georgia, serif)!important;font-size:1.15rem!important;font-weight:600!important;letter-spacing:.04em!important;color:#f7f2e8!important}body.theme-light .app-root .brand-copy strong{color:#1a241d!important}.app-root .brand-copy small{font-family:JetBrains Mono,monospace!important;font-size:.65rem!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#8fa89c!important}.app-root .search-button{border:1px solid #1D332A!important;background:#111d16!important;color:#8fa89c!important;border-radius:8px!important}body.theme-light .app-root .search-button{border:1px solid #D8CDB9!important;background:#efe8d9!important;color:#5b6b5f!important}.app-root .nav-item{color:#a9b8ad!important;font-size:13px!important;border-radius:8px!important;transition:all .18s ease!important}body.theme-light .app-root .nav-item{color:#5b6b5f!important}.app-root .nav-item:hover{background:#16251c!important;color:#f7f2e8!important}body.theme-light .app-root .nav-item:hover{background:#efe8d9!important;color:#1a241d!important}.app-root .nav-item.active{background:#3fa46a2e!important;color:#3fa46a!important;font-weight:700!important;border-left:3px solid #3FA46A!important}body.theme-light .app-root .nav-item.active{background:#1e824c1f!important;color:#1e824c!important;border-left:3px solid #1E824C!important}.app-root .sidebar-footer{border-top:1px solid #1D332A!important}body.theme-light .app-root .sidebar-footer{border-top:1px solid #D8CDB9!important}.app-root .avatar{background:linear-gradient(135deg,#1e824c,#145a32)!important;border:1px solid #D4AF37!important;color:#d4af37!important}.app-root .footer-button{border:1px solid #2A3A2F!important;background:#111d16!important;color:#a9b8ad!important;border-radius:8px!important}body.theme-light .app-root .footer-button{border:1px solid #D8CDB9!important;background:#efe8d9!important;color:#5b6b5f!important}.page-geom{padding:28px 32px;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;max-width:1240px;margin:0 auto}.page-entete{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--capbe-border)}.page-entete h2{margin:0;font-size:28px;line-height:1.15}.page-entete p{margin:6px 0 0;color:var(--capbe-muted);font-size:15px}.mesures{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.mesure{border:1px solid var(--capbe-border);border-radius:var(--capbe-radius, 14px);padding:18px 20px;display:grid;gap:8px;text-decoration:none;color:inherit;background:var(--capbe-surface);box-shadow:0 4px 18px #00000026;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}.mesure:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--capbe-gold, #D4AF37),transparent);opacity:0;transition:opacity .2s ease}.mesure:hover{transform:translateY(-3px);border-color:var(--capbe-gold, #D4AF37);box-shadow:0 8px 30px #00000047}.mesure:hover:before{opacity:1}.mesure strong{font-family:var(--font-display, "Fraunces", Georgia, serif);font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--capbe-text);line-height:1.1}.mesure small{color:var(--capbe-muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.mesure.alerte strong{color:var(--capbe-danger)}.tableau-cadre{overflow-x:auto;border:1px solid var(--capbe-border);border-radius:var(--capbe-radius, 14px);background:var(--capbe-surface);box-shadow:0 4px 20px #0000001f}table.geom{width:100%;border-collapse:collapse;font-size:14px}table.geom th,table.geom td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--capbe-border);vertical-align:middle}table.geom th{text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:700;color:var(--capbe-muted);background:var(--capbe-surface-alt)}table.geom tr:last-child td{border-bottom:none}table.geom tr:hover td{background:color-mix(in srgb,var(--capbe-surface-alt) 60%,transparent)}table.geom td.nombre,table.geom th.nombre{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600;background:var(--capbe-surface-alt);color:var(--capbe-text);border:1px solid var(--capbe-border);white-space:nowrap}.badge.alerte{background:color-mix(in srgb,var(--capbe-danger) 16%,transparent);color:var(--capbe-danger);border-color:color-mix(in srgb,var(--capbe-danger) 32%,transparent)}.badge.ok,.badge.classe-A,.badge.classe-B{background:color-mix(in srgb,var(--capbe-success) 16%,transparent);color:var(--capbe-success);border-color:color-mix(in srgb,var(--capbe-success) 32%,transparent)}.badge.classe-C{background:color-mix(in srgb,var(--capbe-warning) 18%,transparent);color:var(--capbe-warning);border-color:color-mix(in srgb,var(--capbe-warning) 36%,transparent)}.badge.classe-D{background:color-mix(in srgb,var(--capbe-danger) 16%,transparent);color:var(--capbe-danger);border-color:color-mix(in srgb,var(--capbe-danger) 32%,transparent)}form.geom-form{display:grid;gap:14px;border:1px solid var(--capbe-border);border-radius:var(--capbe-radius, 14px);padding:24px;background:var(--capbe-surface);box-shadow:0 4px 20px #0000001f}form.geom-form.etroit{max-width:580px}.ligne-champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}form.geom-form label,.champ{display:grid;gap:6px;font-size:13px;font-weight:500;color:var(--capbe-text)}form.geom-form input,form.geom-form select,form.geom-form textarea{padding:11px 14px;border:1px solid var(--capbe-border);border-radius:8px;font:inherit;background:var(--capbe-background);color:var(--capbe-text);transition:border-color .18s ease,box-shadow .18s ease}form.geom-form input:focus,form.geom-form select:focus,form.geom-form textarea:focus{outline:none;border-color:var(--capbe-primary);box-shadow:0 0 0 3px var(--capbe-accent-soft)}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.actions form{display:inline}button.bouton-primaire,a.bouton-primaire{padding:11px 22px;border:0;border-radius:10px;background:var(--capbe-primary, #3FA46A);color:#0c1511;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 3px 14px color-mix(in srgb,var(--capbe-primary) 35%,transparent);transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}button.bouton-primaire:hover,a.bouton-primaire:hover{transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in srgb,var(--capbe-primary) 50%,transparent);color:#0c1511;text-decoration:none}button.bouton-primaire:active,a.bouton-primaire:active{transform:translateY(0)}button.bouton-secondaire{padding:11px 20px;border:1px solid var(--capbe-border);border-radius:10px;background:var(--capbe-surface);color:var(--capbe-text);font:inherit;font-weight:600;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}button.bouton-secondaire:hover{background:var(--capbe-surface-alt);border-color:var(--capbe-gold, var(--capbe-border));transform:translateY(-1px)}button.bouton-danger{padding:11px 20px;border:0;border-radius:10px;background:var(--capbe-danger);color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:opacity .16s ease,transform .16s ease}button.bouton-danger:hover{opacity:.92;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.message{border-radius:10px;padding:12px 16px;background:color-mix(in srgb,var(--capbe-success) 14%,transparent);border:1px solid color-mix(in srgb,var(--capbe-success) 28%,transparent);font-size:13.5px}.message.erreur{background:color-mix(in srgb,var(--capbe-danger) 14%,transparent);color:var(--capbe-danger);border-color:color-mix(in srgb,var(--capbe-danger) 28%,transparent)}.message.info{background:color-mix(in srgb,var(--capbe-info) 14%,transparent);border-color:color-mix(in srgb,var(--capbe-info) 28%,transparent)}.carte-geom{width:100%;height:480px;border-radius:var(--capbe-radius, 14px);border:1px solid var(--capbe-border);overflow:hidden;box-shadow:0 6px 24px #00000026}.deux-colonnes{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px}@media(max-width:900px){.deux-colonnes{grid-template-columns:minmax(0,1fr)}.page-geom{padding:18px 16px}}
