:root{--color-primary: #1a7a47;--color-primary-dark: #145e36;--color-primary-light: rgba(26, 122, 71, .11);--color-text: #1c1f1a;--color-bg: #f0f5ed;--color-bg-alt: #e8efe3;--color-surface: #ffffff;--color-accent: #d4920b;--color-accent-light: rgba(212, 146, 11, .12);--color-border: rgba(0, 0, 0, .1);--color-muted: rgba(28, 31, 26, .52);--color-muted-strong: rgba(28, 31, 26, .78);--color-danger: #c62828;--color-danger-light: rgba(198, 40, 40, .1);--color-warn: #d97706;--color-warn-light: rgba(217, 119, 6, .1);--font-sans: "Inter", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-lg: 18px;--font-size-xl: 22px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.09), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 28px rgba(0,0,0,.12), 0 4px 10px rgba(0,0,0,.08);--z-header: 10;--z-fab: 20;--z-nav: 25;--z-modal: 30}html[data-theme=dark]{--color-primary: #4caf50;--color-primary-dark: #2e7d32;--color-primary-light: rgba(76, 175, 80, .18);--color-text: #e8eae3;--color-bg: #121613;--color-bg-alt: #1a1f1c;--color-surface: #1f2521;--color-accent: #f0b545;--color-accent-light: rgba(240, 181, 69, .16);--color-border: rgba(255, 255, 255, .12);--color-muted: rgba(232, 234, 227, .55);--color-muted-strong: rgba(232, 234, 227, .8);--color-danger: #f06262;--color-danger-light: rgba(240, 98, 98, .16);--color-warn: #f4a73a;--color-warn-light: rgba(244, 167, 58, .16);--shadow-sm: 0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.35);--shadow-md: 0 4px 12px rgba(0,0,0,.55), 0 2px 4px rgba(0,0,0,.35);--shadow-lg: 0 10px 28px rgba(0,0,0,.65), 0 4px 10px rgba(0,0,0,.45)}@media(prefers-color-scheme:dark){html:not([data-theme]){--color-primary: #4caf50;--color-primary-dark: #2e7d32;--color-primary-light: rgba(76, 175, 80, .18);--color-text: #e8eae3;--color-bg: #121613;--color-bg-alt: #1a1f1c;--color-surface: #1f2521;--color-accent: #f0b545;--color-accent-light: rgba(240, 181, 69, .16);--color-border: rgba(255, 255, 255, .12);--color-muted: rgba(232, 234, 227, .55);--color-muted-strong: rgba(232, 234, 227, .8);--color-danger: #f06262;--color-danger-light: rgba(240, 98, 98, .16);--color-warn: #f4a73a;--color-warn-light: rgba(244, 167, 58, .16);--shadow-sm: 0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.35);--shadow-md: 0 4px 12px rgba(0,0,0,.55), 0 2px 4px rgba(0,0,0,.35);--shadow-lg: 0 10px 28px rgba(0,0,0,.65), 0 4px 10px rgba(0,0,0,.45)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.5;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;height:100dvh;overflow:hidden}img,svg,video,canvas{max-width:100%;height:auto}.beta-banner{display:flex;align-items:center;justify-content:center;gap:10px;background:#7c3aed;color:#fff;font-size:.8rem;padding:6px 12px;text-align:center;flex-wrap:wrap}.beta-banner strong{font-weight:700}.beta-banner-close{background:none;border:none;color:#ffffffbf;cursor:pointer;font-size:1rem;line-height:1;padding:0 4px;margin-left:4px;flex-shrink:0}.beta-banner-close:hover{color:#fff}.beta-banner.hidden{display:none}.topbar{position:sticky;top:0;z-index:var(--z-header);height:calc(60px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:#ffffffeb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.08);padding-left:var(--space-5);padding-right:var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.logo{width:36px;height:36px;border-radius:10px;background:var(--color-primary);display:grid;place-items:center;font-size:18px;line-height:1;flex-shrink:0}.title{font-weight:var(--font-weight-bold);font-size:16px;color:var(--color-text);letter-spacing:-.2px}.topbar-right{display:flex;align-items:center;gap:var(--space-2)}.sync-badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .25s ease,transform .12s ease,background .2s ease}.sync-badge:hover{filter:brightness(.97)}.sync-badge:active{transform:scale(.97)}.sync-badge.local{color:#6b7280;background:#f3f4f6;border-color:#d1d5db}.sync-badge.syncing{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd;animation:syncPulse 1.1s ease-in-out infinite}.sync-badge.synced{color:#166534;background:#dcfce7;border-color:#86efac}.sync-badge.synced.sync-faded{opacity:.55}.sync-badge.error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}@keyframes syncPulse{0%,to{box-shadow:0 0 #1d4ed840}50%{box-shadow:0 0 0 6px #1d4ed800}}.toast-root{position:fixed;right:14px;bottom:14px;left:14px;z-index:2000;display:grid;gap:8px;justify-items:end;pointer-events:none}.toast{background:#111827;color:#fff;padding:10px 10px 10px 12px;border-radius:10px;max-width:min(320px,calc(100vw - 28px));font-size:13px;box-shadow:0 8px 24px #00000040;pointer-events:auto;word-wrap:break-word;display:flex;align-items:flex-start;gap:8px;cursor:pointer;opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease}.toast.toast-enter,.toast.toast-leave{opacity:0;transform:translateY(8px)}.toast-text{flex:1;line-height:1.4}.toast-close{background:transparent;border:none;color:#ffffffb3;cursor:pointer;padding:0 2px;font-size:14px;line-height:1;flex-shrink:0;align-self:flex-start;margin-top:1px}.toast-close:hover{color:#fff}.toast.success{background:#166534}.toast.error{background:#991b1b}.toast.warn{background:#92400e}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:2100;display:grid;place-items:center;padding:16px}.confirm-card{width:min(92vw,420px);background:#fff;border-radius:12px;padding:14px;box-shadow:0 16px 40px #00000040}.confirm-title{font-weight:700;margin-bottom:6px}.confirm-msg{color:#374151;margin-bottom:12px;white-space:pre-wrap}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.btn-new{display:flex;align-items:center;gap:7px;background:var(--color-primary);color:#fff;border:none;border-radius:999px;padding:8px 18px 8px 14px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:0 2px 8px #1a7a4747;transition:background .15s,box-shadow .15s,transform .12s;white-space:nowrap;line-height:1}.btn-new:hover{background:var(--color-primary-dark);box-shadow:0 4px 14px #1a7a4759}.btn-new:active{transform:scale(.96);box-shadow:0 1px 4px #1a7a4733}.farm-chip{display:flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border:1.5px solid var(--color-border);border-radius:999px;background:transparent;cursor:pointer;color:var(--color-muted-strong);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;max-width:200px;transition:border-color .15s,background .15s,color .15s;line-height:1}.farm-chip:hover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.farm-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.farm-chip-icon{flex-shrink:0;opacity:.55}.farm-chip:hover .farm-chip-icon{opacity:1}.user-avatar-wrap{position:relative}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:13px;font-weight:var(--font-weight-bold);border:2px solid rgba(26,122,71,.18);cursor:pointer;display:grid;place-items:center;line-height:1;letter-spacing:0;transition:box-shadow .15s,transform .12s}.user-avatar:hover{box-shadow:0 0 0 3px #1a7a4733}.user-avatar:active{transform:scale(.93)}.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:224px;background:#fff;border:1px solid rgba(0,0,0,.09);border-radius:var(--radius-lg);box-shadow:0 8px 30px #00000021,0 2px 6px #0000000d;z-index:200;overflow:hidden;animation:dropdownIn .16s cubic-bezier(.16,1,.3,1)}.user-dropdown[hidden]{display:none}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.user-dropdown-header{padding:12px 16px 10px;border-bottom:1px solid rgba(0,0,0,.07)}.user-dropdown-email{font-size:var(--font-size-sm);color:var(--color-muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-divider{height:1px;background:#0000000f;margin:4px 0}.user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:none;border:none;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:left;transition:background .12s}.user-dropdown-item:hover{background:var(--color-bg)}.user-dropdown-item.danger{color:var(--color-danger)}.user-dropdown-item.danger:hover{background:var(--color-danger-light)}@media(max-width:600px){.topbar{padding-left:var(--space-3);padding-right:var(--space-3)}.btn-new-label{display:none}.btn-new{padding:9px 11px}.farm-chip-name{display:none}.farm-chip{padding:6px 10px}}.app-layout{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:var(--space-2);gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:none;background:none;cursor:pointer;width:100%;text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-muted-strong);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s;position:relative}.nav-item:hover{background:var(--color-bg);color:var(--color-text)}.nav-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.nav-icon{font-size:18px;line-height:1;flex-shrink:0}.nav-label{flex:1}.nav-badge{display:none;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);line-height:18px;text-align:center}.nav-badge:not(:empty){display:block}.content-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-4)}@media(max-width:960px){.grid{grid-template-columns:1fr}}@media(max-width:768px){.app-layout{flex-direction:column}.sidebar{order:2;width:100%;height:62px;flex-direction:row;padding:0;gap:0;border-right:none;border-top:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden;flex-shrink:0}.content-area{order:1;flex:1}.nav-item{flex-direction:column;gap:2px;padding:6px 4px;border-radius:0;flex:1;min-width:52px;align-items:center;justify-content:center}.nav-label{font-size:9px;font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;max-width:100%}.nav-icon{font-size:20px}.nav-badge{position:absolute;top:5px;right:calc(50% - 18px)}}.section-panel{display:none;flex:1;min-height:0;flex-direction:column;overflow:hidden}.section-panel.panel-active{display:flex;animation:panelFade .18s ease}@keyframes panelFade{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-bg);border-bottom:1.5px solid var(--color-border);gap:var(--space-3)}.section-panel[data-panel=dashboard] .panel-header{border-left:4px solid #2196f3}.section-panel[data-panel=rabbits] .panel-header{border-left:4px solid var(--color-primary)}.section-panel[data-panel=lots] .panel-header{border-left:4px solid #9c27b0}.section-panel[data-panel=genealogy] .panel-header{border-left:4px solid var(--color-accent)}.section-panel[data-panel=batiments] .panel-header{border-left:4px solid #b45309}.section-panel[data-panel=magasin] .panel-header{border-left:4px solid #059669}.section-panel[data-panel=stats] .panel-header{border-left:4px solid #7c3aed}.section-panel[data-panel=actions] .panel-header{border-left:4px solid #607d8b}.section-panel[data-panel=aide] .panel-header{border-left:4px solid #7c3aed}#panel-aide .panel-body{overflow:hidden;padding:0}.panel-title-group{display:flex;align-items:center;gap:var(--space-2);min-width:0}.panel-icon{font-size:20px;line-height:1;flex-shrink:0}.panel-title{font-size:15px;font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-5)}@media(max-width:768px){.panel-body{padding:var(--space-3)}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card.kpi-accent{border-color:#d4920b66;box-shadow:var(--shadow-md)}.card h2{margin:0 0 var(--space-3) 0;font-size:16px;font-weight:var(--font-weight-semibold)}.dash{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}@media(max-width:960px){.dash{grid-template-columns:repeat(2,1fr)}}.tile{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface);transition:box-shadow .15s,transform .12s}.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.tile .n{font-size:28px;font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1.1}.tile .t{font-size:var(--font-size-sm);color:var(--color-muted);margin-top:3px;line-height:1.3}.row{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-3);flex-wrap:wrap}.input{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text);padding:10px var(--space-4);border-radius:var(--radius-md);outline:none;font-size:var(--font-size-base);font-family:inherit;min-width:180px;min-height:44px;max-width:100%;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}textarea.input{min-height:90px;resize:vertical}.btn{background:var(--color-primary);color:#fff;border:1.5px solid transparent;padding:10px var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);font-family:inherit;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .12s,transform .1s,box-shadow .12s,border-color .12s;white-space:nowrap;line-height:1}.btn:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:3px solid var(--color-primary-light);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn.secondary:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.btn.ghost{background:transparent;border-color:transparent;color:var(--color-primary);font-weight:var(--font-weight-medium)}.btn.ghost:hover{background:var(--color-primary-light)}.btn.danger{background:var(--color-danger);border-color:transparent}.btn.danger:hover{background:#a82121}.btn.file{position:relative;overflow:hidden}.btn.file input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.list{display:flex;flex-direction:column;gap:var(--space-2)}.item{border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);cursor:pointer;min-height:60px;transition:border-color .15s,box-shadow .15s,background .15s}.item:hover{border-color:#1a7a474d;box-shadow:var(--shadow-sm)}.item.active{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-sm)}.rl-item{min-height:48px;padding:var(--space-2) var(--space-3)}.rl-event-btn{opacity:0;transition:opacity .15s}.rl-item:hover .rl-event-btn,.rl-item.active .rl-event-btn{opacity:1}.badge{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-muted-strong);background:#0000000a;font-weight:var(--font-weight-medium);display:inline-block;line-height:1.4}.badge.ok{color:var(--color-primary);border-color:#1a7a474d;background:#1a7a4714}.badge.warn{color:var(--color-warn);border-color:#d977064d;background:#d9770614}.badge.danger{color:var(--color-danger);border-color:#c628284d;background:#c6282814}.badge.accent{color:var(--color-accent);border-color:#d4920b59;background:#d4920b1a}.kv{display:grid;grid-template-columns:140px 1fr;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0;align-items:baseline}.kv div:nth-child(odd){color:var(--color-muted);font-size:var(--font-size-sm)}.kv div:nth-child(2n){color:var(--color-text)}.muted{color:var(--color-muted);line-height:1.4}.small{font-size:var(--font-size-sm);color:var(--color-muted)}.sep{height:1px;background:var(--color-border);margin:var(--space-3) 0}.error{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-light);border:1px solid rgba(198,40,40,.25);color:var(--color-danger);font-size:var(--font-size-sm)}.linkbtn{background:none;border:none;padding:0;color:var(--color-primary);cursor:pointer;font:inherit;text-align:left;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s}.linkbtn:hover{text-decoration-color:currentColor}.quickguide{margin:var(--space-2) 0 0 1ch;padding-left:1em;color:var(--color-muted)}.quickguide li{margin-bottom:4px}.modal.hidden{display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000006b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{position:relative;width:min(680px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-body{padding:var(--space-4);overflow-y:auto;flex:1}.iconbtn{background:transparent;border:1.5px solid var(--color-border);color:var(--color-muted-strong);width:36px;height:36px;border-radius:var(--radius-md);cursor:pointer;display:grid;place-items:center;font-size:14px;transition:background .15s,color .15s}.iconbtn:hover{background:#0000000d;color:var(--color-text)}.form{display:grid;gap:var(--space-3)}.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media(max-width:600px){.form .row2{grid-template-columns:1fr}}.label{font-size:var(--font-size-sm);color:var(--color-muted);margin-bottom:var(--space-1);font-weight:var(--font-weight-medium)}.field{display:flex;flex-direction:column}#panel-rabbits .panel-body{padding:0}.rl-body{display:flex;align-items:stretch}.rl-left{width:340px;min-width:220px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;padding:var(--space-4);background:var(--color-bg)}.rl-search{display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:0;background:var(--color-bg);z-index:2;padding:var(--space-2) 0 var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3)}.rl-search-row{display:flex;align-items:stretch;gap:var(--space-2)}.rl-search-input{flex:1;min-width:0}.rl-filters-toggle{position:relative;flex-shrink:0;padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-size:.9rem;white-space:nowrap}.rl-filters-toggle[aria-expanded=true]{background:var(--color-primary-light, rgba(76,175,80,.18));color:var(--color-primary-dark, #2e7d32);border-color:var(--color-primary, #4caf50)}.rl-filters-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--color-accent, #f0b545);color:#fff;font-size:11px;font-weight:700;line-height:1}.rl-advanced-filters{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-border);animation:rlFiltersFadeIn .14s ease-out}.rl-advanced-filters[hidden]{display:none}@keyframes rlFiltersFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.rl-filters-toggle-label{display:none}.rl-filters-toggle{padding:0 10px}}.rl-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) var(--space-3);margin-top:var(--space-2);background:var(--color-primary-light, rgba(76,175,80,.12));border:1px solid var(--color-primary, #4caf50);border-radius:8px;position:sticky;top:0;z-index:3}.rl-bulk-bar[hidden]{display:none}.rl-bulk-count{font-size:.9rem;white-space:nowrap}.rl-bulk-actions{display:flex;gap:6px;flex-wrap:wrap}.rl-item.rl-selected{background:var(--color-primary-light, rgba(76,175,80,.14));outline:1px solid var(--color-primary, #4caf50);outline-offset:-1px}.rl-check{accent-color:var(--color-primary, #4caf50);cursor:pointer}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:1.1em;height:1.1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.18em}.spinner-sm{width:.85em;height:.85em;border-width:2px}.spinner-lg{width:34px;height:34px;border-width:3px}.loading-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:36px 20px;color:var(--color-muted)}.loading-block .spinner{color:var(--color-primary, #4caf50)}.loading-label{font-size:var(--font-size-sm)}#appLoadingBar{position:fixed;top:0;left:0;right:0;height:3px;z-index:10000;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .2s ease}#appLoadingBar.active{opacity:1}#appLoadingBar:before{content:"";position:absolute;top:0;bottom:0;left:0;width:35%;background:var(--color-primary, #4caf50);animation:loadingBarSlide 1.1s ease-in-out infinite}@keyframes loadingBarSlide{0%{left:-35%}to{left:100%}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.4s}#appLoadingBar:before{animation-duration:2s}}#panel-lots .panel-body.lot-body{padding:0;display:flex;align-items:stretch}.lot-left{width:360px;min-width:240px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;padding:var(--space-4);background:var(--color-bg)}.lot-right{flex:1;overflow-y:auto;padding:var(--space-4)}.lot-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:var(--space-3)}.lot-sum-cell{background:var(--color-surface, #fff);border:1px solid var(--color-border);border-radius:8px;padding:8px 6px;text-align:center}.lot-sum-n{font-size:1.25rem;font-weight:800;line-height:1.1}.lot-sum-t{font-size:.7rem;color:var(--color-muted);margin-top:2px}.lot-sum-cell.ok .lot-sum-n{color:var(--color-primary, #2e7d32)}.lot-sum-cell.warn .lot-sum-n{color:#b4690e}.lot-sum-cell.alert{border-color:#e0a800;background:#e0a8001a}.lot-sum-cell.alert .lot-sum-n{color:#b4690e}.lot-search{position:sticky;top:0;z-index:2;background:var(--color-bg);padding-bottom:var(--space-2);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.lot-chips{display:flex;flex-wrap:wrap;gap:4px}.lot-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:.8rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface, #fff);color:var(--color-text, #222);cursor:pointer;white-space:nowrap}.lot-chip:hover{border-color:var(--color-primary, #4caf50)}.lot-chip.active{background:var(--color-primary, #4caf50);color:#fff;border-color:var(--color-primary, #4caf50)}.lot-chip-n{font-size:.72rem;font-weight:700;background:#00000014;border-radius:999px;padding:0 5px;min-width:16px;text-align:center}.lot-chip.active .lot-chip-n{background:#ffffff47}.lot-card{display:block!important;padding:10px 12px}.lot-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.lot-card-cage{font-weight:800;font-size:1rem}.lot-card-alert{margin-left:auto}.lot-card-sub{color:var(--color-muted);margin-top:2px}.lot-card-stats{margin-top:3px}.lot-loss-txt{color:#b4690e}.lot-detail-head{display:flex;align-items:flex-start;gap:8px}.lot-detail-titles{flex:1;min-width:0}.lot-detail-title{font-size:1.15rem;font-weight:900;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lot-back{display:none;flex-shrink:0;padding:4px 10px}.lot-stepper{display:flex;align-items:center;margin:14px 0}.lot-step{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.lot-step:hover .lot-step-dot{border-color:var(--color-primary, #4caf50);transform:scale(1.06)}.lot-step:focus-visible{outline:2px solid var(--color-primary, #4caf50);outline-offset:2px;border-radius:8px}.lot-step-dot{transition:transform .12s ease,border-color .12s ease}.lot-step-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);background:var(--color-surface, #fff);font-size:.95rem;opacity:.55}.lot-step-label{font-size:.68rem;color:var(--color-muted);text-align:center}.lot-step-line{flex:1;height:2px;background:var(--color-border);margin:17px 2px 0;align-self:flex-start}.lot-step.done .lot-step-dot{opacity:1;border-color:var(--color-primary, #4caf50);background:#4caf501f}.lot-step.current .lot-step-dot{opacity:1;border-color:var(--color-primary, #4caf50);background:var(--color-primary, #4caf50);box-shadow:0 0 0 3px #4caf502e}.lot-step.current .lot-step-label{color:var(--color-text, #222);font-weight:700}.lot-hint{background:#4caf501a;border:1px solid rgba(76,175,80,.35);border-radius:8px;padding:8px 10px;font-size:.85rem;margin-bottom:12px}.lot-hint.urgent{background:#e0a8001f;border-color:#e0a800}.lot-meta-line{display:flex;gap:14px;flex-wrap:wrap;color:var(--color-muted-strong);margin:8px 0 4px}.lot-kpi{margin-top:4px}.lot-actions{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.lot-section-title{font-weight:700;margin:14px 0 6px}.lot-kits{width:100%;border-collapse:collapse;font-size:.85rem}.lot-kits th{text-align:left;padding:5px 6px;border-bottom:1px solid var(--color-border);color:var(--color-muted);font-weight:600}.lot-kits td{padding:5px 6px;border-bottom:1px solid var(--color-border)}.lot-kits tr.lot-kit-inactive{opacity:.55}.lot-kits .btn.ghost{padding:2px 8px;font-size:.8rem}.lot-losses{display:flex;flex-direction:column;gap:3px}.lot-loss-row{padding:3px 0;border-bottom:1px dashed var(--color-border)}.lot-loss-cause{color:#b4690e;font-weight:600}.lot-advanced{margin-top:16px;border-top:1px solid var(--color-border);padding-top:10px}.lot-advanced>summary{cursor:pointer;font-weight:600;color:var(--color-muted-strong)}@media(max-width:1100px){#panel-lots .panel-body.lot-body{flex-direction:column}.lot-left{width:100%;border-right:none;border-bottom:1px solid var(--color-border)}.lot-back{display:inline-flex}#panel-lots.lot-selected .lot-left{display:none}#panel-lots:not(.lot-selected) .lot-right{display:none}}@media(max-width:480px){.lot-summary{grid-template-columns:repeat(2,1fr)}}.rl-right{flex:1;overflow-y:auto;padding:var(--space-4);position:relative}.rabbit-nav-bar{position:sticky;bottom:0;margin:16px -16px -16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(255,255,255,0) 0%,var(--color-bg, #fff) 30%);display:flex;gap:8px;z-index:5;border-top:1px solid var(--color-border, #e5e7eb)}.rabbit-nav-bar .btn{flex:1}.rabbit-nav-bar .rabbit-nav-cage{font-size:.8rem;color:var(--color-muted);display:block;font-weight:400}.rl-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:220px;color:var(--color-muted);text-align:center;gap:var(--space-3)}.rl-empty-state .rl-empty-icon{font-size:2.5rem;opacity:.4}.rl-empty-state .rl-empty-text{font-size:var(--font-size-sm)}@media(max-width:1100px){.rl-body{flex-direction:column}.rl-left{width:100%;max-height:none;border-right:none;border-bottom:1px solid var(--color-border)}.rl-right{max-height:none;padding:var(--space-3)}#panel-rabbits.rabbit-selected .rl-left{display:none}#panel-rabbits:not(.rabbit-selected) .rl-right{display:none}#panel-rabbits .rl-left,#panel-rabbits .rl-right{animation:rlSlide .18s ease}}@media(min-width:1101px){#panel-rabbits #btnBack{display:none}}@keyframes rlSlide{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.rl-empty-tips{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:var(--font-size-sm);color:var(--color-muted-strong);max-width:340px}.rl-empty-tips li{padding:8px 12px;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.rl-empty-actions{display:flex;flex-direction:column;gap:10px;align-items:center;max-width:280px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.two-col .col h3{font-size:12px;margin:0 0 var(--space-3) 0;color:var(--color-primary);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.7px;padding-bottom:var(--space-2);border-bottom:2px solid var(--color-primary-light)}@media(max-width:900px){.two-col{grid-template-columns:1fr}}.gene-panel-body{display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden;height:100%}#geneViews{flex:1;min-height:0;overflow:auto;padding:var(--space-3)}#geneViews .gene-viewport{flex:1;min-height:380px}.gene-controls{display:flex;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap;align-items:center}.gene-viewport{display:flex;gap:var(--space-3);flex:1;min-height:0;position:relative}.gene-3d-stage{flex:1;position:relative;overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(180deg,#07101f,#0e1a2e);cursor:grab;-webkit-user-select:none;user-select:none;min-height:380px;touch-action:none}.gene-3d-stage:active{cursor:grabbing}.gene-canvas{position:absolute;transform-origin:0 0;will-change:transform}.gene-lane{position:absolute;pointer-events:none}.gene-lane--alt{background:#ffffff06}.gene-gen-label{position:absolute;font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#64748b66;pointer-events:none;-webkit-user-select:none;user-select:none}.gene-svg-overlay{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.gene-edge{fill:none;stroke-width:1.8;stroke:#94a3b82e;transition:opacity .2s}.gene-edge--mother{stroke:#f472b673}.gene-edge--father{stroke:#60a5fa73}.gene-node{position:absolute;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none}.gene-node-inner{background:#0c1428ed;border:1.5px solid rgba(148,163,184,.22);border-radius:12px;padding:10px 14px 9px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 10px #00000073;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.gene-node:hover .gene-node-inner,.gene-node:focus-visible .gene-node-inner{border-color:#ffffff7a;box-shadow:0 0 18px 3px #ffffff17,0 4px 18px #00000080;transform:translateY(-2px)}.gene-node--focus .gene-node-inner{border-color:var(--color-accent);box-shadow:0 0 22px 5px #6366f16b,0 4px 16px #00000080;transform:translateY(-2px)}.gene-node--matched .gene-node-inner{border-color:#fbbf24b8;box-shadow:0 0 16px 3px #fbbf2433}.gene-node--dimmed{opacity:.1;pointer-events:none;transition:opacity .2s}.gene-sex-f .gene-node-inner{border-color:#f472b685}.gene-sex-f .gene-node-label{color:#f9a8d4}.gene-sex-m .gene-node-inner{border-color:#60a5fa85}.gene-sex-m .gene-node-label{color:#93c5fd}.gene-sex-u .gene-node-inner{border-color:#a78bfa6b}.gene-sex-u .gene-node-label{color:#c4b5fd}.gene-status-vendu .gene-node-inner{opacity:.7}.gene-status-mort .gene-node-inner{opacity:.4;filter:grayscale(.65)}.gene-node-label{font-size:12px;font-weight:700;line-height:1.25;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:134px}.gene-node-sub{font-size:10px;color:#94a3b8ad;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:134px}.gene-tooltip{position:absolute;z-index:200;background:#080e1cf7;border:1px solid rgba(148,163,184,.25);border-radius:var(--radius-md);padding:12px 14px 10px;min-width:210px;max-width:270px;box-shadow:0 8px 32px #000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.gene-tooltip-title{font-size:14px;font-weight:700;color:#e2e8f0;margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gene-tooltip-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:11px;color:#94a3b8e6;margin-bottom:10px}.gene-tooltip-grid span:nth-child(odd){color:#64748bcc}.gene-tooltip-btn{width:100%;font-size:12px;padding:5px 10px}.gene-focus-badge{background:#6366f124;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-sm);color:#a5b4fc;font-size:11px;padding:4px 12px;flex-shrink:0;display:flex;align-items:center;gap:8px;transition:background .15s}.gene-focus-badge[hidden]{display:none}.gene-focus-badge:hover{background:#6366f13d}.gene-focus-badge kbd{display:inline-block;background:#6366f140;border-radius:3px;padding:0 4px;font-size:.85em;font-family:inherit}.gene-focus-close{margin-left:4px;opacity:.7;font-size:13px;line-height:1}.gene-focus-close:hover{opacity:1}.gene-sidecard{width:268px;flex-shrink:0;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.gene-sidecard[hidden]{display:none}.gene-sidecard-header{padding:12px 14px 8px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px}.gene-sidecard-name{font-size:16px;font-weight:800}.gene-sidecard-body{flex:1;overflow-y:auto;padding:10px 14px}.gene-sidecard-section{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-muted);margin:10px 0 5px}.gene-sidecard-child{display:flex;align-items:center;gap:6px;font-size:12px;padding:5px 6px;border-radius:6px;cursor:default}.gene-sidecard-child:hover{background:var(--color-bg)}.gene-sidecard-link{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.gene-sidecard-link:hover{color:var(--color-accent)}.gene-sidecard-actions{padding:8px 14px;border-top:1px solid var(--color-border);display:flex;gap:6px;flex-wrap:wrap;align-items:center}.gene-sidecard-close{margin-left:auto;font-size:16px;padding:4px 10px}@media(max-width:700px){.gene-viewport{flex-direction:column}.gene-sidecard{width:100%;max-height:240px}.gene-3d-stage{min-height:280px}}.more-actions{display:flex;flex-direction:column;gap:var(--space-2)}.more-action-tile{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:inherit;color:var(--color-text);min-height:60px;width:100%;text-align:left;position:relative;overflow:hidden;transition:border-color .15s,background .15s,box-shadow .15s,transform .1s}.more-action-tile:hover{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-sm)}.more-action-tile:active{transform:scale(.99)}.more-action-tile .tile-icon{font-size:26px;width:36px;text-align:center;flex-shrink:0}.more-action-tile .tile-body{flex:1}.more-action-tile .tile-title{display:block;font-weight:var(--font-weight-semibold)}.more-action-tile .tile-sub{display:block;font-size:var(--font-size-sm);color:var(--color-muted);font-weight:var(--font-weight-regular);margin-top:1px}.more-action-tile.danger-tile{color:var(--color-danger)}.more-action-tile.danger-tile:hover{border-color:var(--color-danger);background:var(--color-danger-light)}.more-action-tile.file-tile input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.more-guide-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);min-height:60px;gap:var(--space-3)}.more-guide-label{flex:1;display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.more-guide-label .tile-icon{font-size:26px;width:36px;text-align:center;flex-shrink:0}.guide-label-text{font-weight:var(--font-weight-semibold)}.guide-label-sub{font-size:var(--font-size-sm);color:var(--color-muted)}.switch-dark-slider{display:inline-block;width:44px;height:24px;background:var(--color-border);border-radius:12px;position:relative;transition:background .2s;border:1px solid rgba(0,0,0,.1)}.switch-dark-input{display:none}.switch-dark-input:checked+.switch-dark-slider{background:var(--color-primary)}.switch-dark-slider:after{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 4px #00000026}.switch-dark-input:checked+.switch-dark-slider:after{left:22px}.guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) + 10);background:#00000073;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-4);padding-bottom:0}.guide-overlay.hidden{display:none}.guide-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:640px;max-height:65vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.guide-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.guide-header h2{margin:0;font-size:18px;font-weight:var(--font-weight-bold)}.guide-header .iconbtn{width:38px;height:38px}.guide-body{flex:1;overflow-y:auto;padding:var(--space-4)}.guide-step-number{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.guide-description{font-size:16px;line-height:1.65;color:var(--color-text);margin-bottom:var(--space-3)}.guide-footer{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--color-border);background:var(--color-primary-light);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))}.guide-footer .btn{flex:1;max-width:150px}.guide-progress{flex:1;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.guide-progress:after{content:"";display:block;height:100%;background:var(--color-primary);width:var(--progress, 0%);transition:width .3s ease}@media(max-width:600px){.guide-content{max-height:80vh}.guide-footer{flex-wrap:wrap}.guide-footer .btn{max-width:none}}.rabbit-detail-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:8px}.rabbit-detail-info{flex:1;min-width:0}.rabbit-avatar{flex-shrink:0;width:72px;height:72px;border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:center}.rabbit-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.rabbit-avatar-placeholder{font-size:34px;line-height:1}.rabbit-thumb{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;border:1.5px solid var(--color-border);background:var(--color-bg);object-fit:cover;font-size:1rem;line-height:1;vertical-align:middle}img.rabbit-thumb{padding:0}.rabbit-thumb--ph{background:var(--color-bg);color:var(--color-muted)}.rabbit-thumb--f{background:#fde7f3;color:#b03372}.rabbit-thumb--m{background:#e2f0fb;color:#2d6ca3}.rabbit-thumb--pending{background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 6px,var(--color-surface) 6px,var(--color-surface) 12px);color:var(--color-muted)}.photo-upload-zone{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.photo-upload-placeholder{width:120px;height:96px;border:2px dashed var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:26px;color:var(--color-muted);text-align:center}.photo-upload-placeholder span{font-size:11px}.photo-upload-preview{max-width:160px;max-height:140px;border-radius:var(--radius-md);object-fit:cover;border:1.5px solid var(--color-border);display:block}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--space-2);margin-top:var(--space-1)}.photo-grid-item{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1.5px solid var(--color-border);background:var(--color-bg);aspect-ratio:1;cursor:default}.photo-grid-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .22s ease}.photo-grid-item:hover .photo-grid-img{transform:scale(1.06)}.photo-grid-pending,.event-photo-pending{display:grid;place-items:center;background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 10px,var(--color-surface) 10px,var(--color-surface) 20px);color:var(--color-muted);font-size:1.6rem}.event-photo-pending{font-size:.9rem;width:28px;height:28px;border-radius:6px}.photo-grid-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%);padding:4px 5px 5px;pointer-events:none}.photo-grid-label{font-size:10px;color:#fff;line-height:1.3;display:block}.photo-grid-source{font-size:9px;color:#ffffffbf;display:block}.photo-grid-del{position:absolute;top:4px;right:4px;background:#c62828d1;border:none;color:#fff;width:20px;height:20px;border-radius:50%;font-size:14px;font-weight:700;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1;transition:background .12s;padding:0}.photo-grid-item:hover .photo-grid-del{display:flex}.photo-grid-del:hover{background:#c62828}.event-photo-thumb{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-md);border:1.5px solid var(--color-border);display:block;flex-shrink:0}.wc-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.wc-step{font-size:var(--font-size-sm);color:var(--color-muted);white-space:nowrap;flex-shrink:0}.wc-bar{flex:1;height:6px;background:var(--color-border);border-radius:999px;overflow:hidden}.wc-fill{height:100%;background:var(--color-primary);border-radius:999px;transition:width .3s ease}.wc-rabbit-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-2)}.wc-name{font-size:1.15rem;font-weight:var(--font-weight-bold);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.wc-meta{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--font-size-sm);color:var(--color-muted);margin-bottom:var(--space-2)}.wc-last{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--font-size-sm)}.pc-last-photo{margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.pc-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-md);border:1.5px solid var(--color-border);flex-shrink:0}.pc-thumb-label{font-size:var(--font-size-sm);color:var(--color-muted)}.pc-no-photo{margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-muted)}.pc-upload-zone{margin-top:var(--space-3);border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;transition:border-color .15s}.pc-upload-zone:focus-within{border-color:var(--color-primary)}.pc-upload-label{cursor:pointer;display:block;color:var(--color-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.pc-upload-label:hover{text-decoration:underline}.pc-preview{max-width:100%;max-height:220px;border-radius:var(--radius-md);margin-top:var(--space-3);object-fit:contain}.photo-grid-note{font-size:10px;color:#ffffffd9;margin-top:2px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:linear-gradient(135deg,#1a7a47,#0f5132);display:flex;align-items:center;justify-content:center;padding:var(--space-4);overflow-y:auto}.auth-overlay.hidden{display:none!important}.auth-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-7) var(--space-6);width:100%;max-width:420px;box-shadow:0 20px 60px #00000040;animation:fadeIn .24s ease}.farm-card{max-width:480px}.auth-logo{font-size:3rem;text-align:center;margin-bottom:var(--space-2);line-height:1}.auth-title{font-size:1.6rem;font-weight:var(--font-weight-bold);text-align:center;margin:0 0 var(--space-1);color:var(--color-text)}.auth-sub{text-align:center;color:var(--color-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-4)}.auth-invite-banner{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border:1.5px solid color-mix(in srgb,var(--color-primary) 40%,transparent);border-radius:var(--radius-md);color:var(--color-primary);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);margin:0 0 var(--space-4);text-align:center}.auth-tabs{display:flex;gap:0;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-4)}.auth-tab{flex:1;padding:var(--space-2) var(--space-3);background:transparent;border:none;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-muted);transition:all .15s}.auth-tab.active{background:var(--color-primary);color:#fff}.auth-tab:not(.active):hover{background:var(--color-bg)}.auth-form{display:flex;flex-direction:column;gap:var(--space-3)}.auth-btn{margin-top:var(--space-1)}.auth-error{min-height:1.2em;margin:var(--space-2) 0 0;color:var(--color-danger);font-size:var(--font-size-sm);text-align:center}.auth-loading{text-align:center;color:var(--color-muted);padding:var(--space-6) 0}.farm-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);max-height:240px;overflow-y:auto}.farm-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;text-align:left;width:100%;transition:border-color .15s,background .15s}.farm-item:hover{border-color:var(--color-primary);background:#f0f9f4}.farm-item-icon{font-size:1.4rem;flex-shrink:0}.farm-item-name{flex:1;font-weight:var(--font-weight-medium);color:var(--color-text)}.farm-item-role{font-size:11px}.farm-sep{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-3);color:var(--color-muted);font-size:var(--font-size-sm)}.farm-sep:before,.farm-sep:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-logout-link{display:block;margin:var(--space-4) auto 0;background:none;border:none;cursor:pointer;color:var(--color-muted);font-size:var(--font-size-sm);text-decoration:underline}.auth-logout-link:hover{color:var(--color-danger)}.user-info{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.user-info.hidden{display:none!important}@media(max-width:900px){.auth-card{padding:var(--space-5) var(--space-4)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.farm-actions-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-4) var(--space-3);margin-bottom:var(--space-4);box-shadow:0 1px 4px #0000000f}.farm-actions-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.farm-actions-title{font-weight:800;font-size:1rem;color:var(--color-text)}.farm-actions-summary{font-size:var(--font-size-sm);color:var(--color-muted);background:var(--color-surface);padding:3px 10px;border-radius:999px;border:1px solid var(--color-border)}.farm-actions-ok{font-size:var(--font-size-sm);color:#2e7d32;font-weight:600}.farm-section{border-radius:var(--radius);margin-bottom:var(--space-2);overflow:hidden;border:1px solid var(--color-border)}.farm-section-urgent{border-color:#f5c2c2}.farm-section-today{border-color:#ffe0a0}.farm-section-opportunity{border-color:#c8e6c9}.farm-section-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-weight:700;font-size:.9rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.farm-section-header::-webkit-details-marker{display:none}.farm-section-urgent>.farm-section-header{background:#fff5f5;color:#c62828}.farm-section-today>.farm-section-header{background:#fffde7;color:#e65100}.farm-section-opportunity>.farm-section-header{background:#f1f8e9;color:#2e7d32}.farm-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:.75rem;font-weight:700;color:#fff;background:currentColor;filter:brightness(.7)}.farm-section-list{display:flex;flex-direction:column;gap:1px;background:var(--color-border)}.farm-section-extra{display:flex;flex-direction:column;gap:1px}.farm-section-toggle{align-self:center;margin:8px auto;font-size:var(--font-size-sm);font-weight:600;min-height:36px;padding:6px 14px}.farm-action-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#fff}.farm-action-icon{font-size:1.3rem;flex-shrink:0;width:32px;text-align:center}.farm-action-body{flex:1;min-width:0}.farm-action-label{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.farm-action-meta{font-size:.78rem;color:var(--color-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.farm-action-btns{display:flex;gap:var(--space-2);flex-shrink:0}.farm-action-treat{font-size:.8rem;padding:4px 12px}.farm-action-dismiss{font-size:.8rem;padding:4px 10px;color:var(--color-muted)}@media(max-width:600px){.farm-action-card{flex-wrap:wrap;gap:var(--space-2)}.farm-action-btns{width:100%;justify-content:flex-end}.farm-actions-summary{font-size:.72rem}}.stats-container{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-6)}.stats-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-3)}.stats-kpi{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-2);text-align:center;transition:box-shadow .15s}.stats-kpi:hover{box-shadow:var(--shadow-sm)}.stats-kpi-n{font-size:1.6rem;font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1.1}.stats-kpi-t{font-size:.7rem;color:var(--color-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.stats-kpi--warn .stats-kpi-n{color:var(--color-danger)}.stats-kpi--ok .stats-kpi-n{color:var(--color-primary)}.stats-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.stats-card-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin-bottom:var(--space-3)}.stats-card-footer{margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-muted);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.stats-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.stats-hbar-row{display:flex;align-items:center;gap:var(--space-2);padding:3px 0}.stats-hbar-label{flex:0 0 120px;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-hbar-track{flex:1;height:8px;background:var(--color-bg-alt, #f3f4f6);border-radius:4px;overflow:hidden}.stats-hbar-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .4s ease;min-width:2px}.stats-hbar-fill.fill-warn{background:var(--color-danger)}.stats-hbar-val{flex:0 0 52px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right}.stats-barchart{display:flex;align-items:flex-end;gap:6px;height:120px;overflow-x:auto;padding-bottom:var(--space-2)}.sbc-col{flex:1;min-width:32px;display:flex;flex-direction:column;align-items:center;gap:2px;height:100%}.sbc-val{font-size:.65rem;color:var(--color-muted);height:14px}.sbc-track{flex:1;width:100%;display:flex;align-items:flex-end;background:var(--color-bg-alt, #f3f4f6);border-radius:4px 4px 0 0;overflow:hidden}.sbc-bar{width:100%;background:var(--color-primary);border-radius:3px 3px 0 0;transition:height .4s ease;min-height:2px}.sbc-label{font-size:.65rem;color:var(--color-muted);margin-top:2px}.stats-type-grid{display:flex;flex-direction:column;gap:4px}.stats-type-cell{display:flex;align-items:center;gap:var(--space-2)}.stats-type-label{flex:0 0 140px;font-size:var(--font-size-sm)}.stats-type-bar-wrap{flex:1;height:8px;background:var(--color-bg-alt, #f3f4f6);border-radius:4px;overflow:hidden}.stats-type-bar{height:100%;background:var(--color-primary);border-radius:4px;min-width:2px;opacity:.75}.stats-type-count{flex:0 0 36px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right;color:var(--color-muted)}.stats-progress-row{display:flex;align-items:center;gap:var(--space-2)}.stats-progress-label{flex:0 0 auto;font-size:var(--font-size-sm);min-width:170px}.stats-progress-track{flex:1;height:10px;background:var(--color-bg-alt, #f3f4f6);border-radius:5px;overflow:hidden}.stats-progress-fill{height:100%;background:var(--color-primary);border-radius:5px;transition:width .4s ease;min-width:2px}.stats-progress-pct{flex:0 0 36px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right}@media(max-width:700px){.stats-two-col{grid-template-columns:1fr}.stats-kpi-row{grid-template-columns:repeat(4,1fr)}.stats-hbar-label{flex:0 0 90px}.stats-type-label{flex:0 0 110px}.stats-progress-label{min-width:120px}}.wc-id-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--font-size-sm);color:var(--color-muted-strong);margin-top:4px;margin-bottom:6px}.wc-cage strong{color:var(--color-text)}.wc-code{font-family:monospace}.stock-alert{display:flex;align-items:center;gap:8px;background:var(--color-danger-light);border:1px solid rgba(198,40,40,.2);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:16px;font-size:var(--font-size-sm);color:var(--color-danger);font-weight:var(--font-weight-semibold)}.stock-category{margin-bottom:20px}.stock-category-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--color-border)}.stock-item-list{display:flex;flex-direction:column;gap:6px}.stock-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;transition:border-color .15s}.stock-item--low{border-color:#c6282859;background:var(--color-danger-light)}.stock-item--empty{opacity:.7}.stock-item-main{flex:1;min-width:0}.stock-item-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.stock-item-qty{font-size:1.1rem;font-weight:var(--font-weight-bold);color:var(--color-primary);margin:2px 0}.stock-item-qty.qty-low{color:var(--color-danger)}.stock-item-qty.qty-empty{color:var(--color-muted)}.stock-unit{font-size:.8rem;font-weight:400;color:var(--color-muted);margin-left:3px}.stock-low-badge{display:inline-block;background:var(--color-danger);color:#fff;font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:999px;vertical-align:middle;margin-left:6px;text-transform:uppercase}.stock-mini-bar{height:4px;background:var(--color-bg-alt);border-radius:2px;overflow:hidden;margin:4px 0;max-width:160px}.stock-mini-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .4s;min-width:2px}.stock-mini-fill.fill-danger{background:var(--color-danger)}.stock-item-notes{font-size:var(--font-size-sm);margin-top:2px}.stock-item-actions{display:flex;gap:4px;flex-shrink:0}.stock-item-actions .btn{padding:4px 10px;font-size:1rem;font-weight:700;min-width:32px}.tournee-checks{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;padding:12px 14px;background:var(--color-bg);border-radius:var(--radius-md);border:1.5px solid var(--color-border)}.tournee-check-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:var(--font-weight-semibold)}.tournee-check-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.tournee-check-label{font-size:var(--font-size-base)}.tournee-section-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin:14px 0 6px}.tournee-quick-btns{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}.tournee-rabbit-list{max-height:320px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.tournee-rabbit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--color-border)}.tournee-rabbit-row:last-child{border-bottom:none}.tournee-rabbit-row:nth-child(2n){background:var(--color-bg)}.tournee-rabbit-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}.tournee-cage{font-size:var(--font-size-sm);background:var(--color-primary-light);color:var(--color-primary-dark);padding:1px 7px;border-radius:var(--radius-sm);flex-shrink:0}.tournee-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.tournee-code{font-size:var(--font-size-xs);font-family:monospace}.tournee-breed{font-size:var(--font-size-xs)}.bld-empty{text-align:center;padding:48px 24px}.bld-empty-icon{font-size:3rem;margin-bottom:12px}.bld-empty-title{font-size:1.2rem;font-weight:700;margin-bottom:8px}.bld-empty-sub{color:var(--color-muted);line-height:1.6}.bld-alert{display:flex;align-items:center;gap:10px;border-radius:var(--radius-md);padding:10px 14px;margin-bottom:14px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.bld-alert--danger{background:var(--color-danger-light);border:1px solid rgba(198,40,40,.2);color:var(--color-danger)}.bld-alert--warn{background:var(--color-accent-light);border:1px solid rgba(212,146,11,.2);color:var(--color-accent)}.bld-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:16px;overflow:hidden}.bld-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:8px}.bld-card-title{display:flex;align-items:center;gap:10px;font-weight:var(--font-weight-semibold);flex-wrap:wrap}.bld-letter{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:8px;font-size:1.1rem;font-weight:var(--font-weight-bold);flex-shrink:0}.bld-meta{font-weight:400}.bld-defect-badge{background:var(--color-danger);color:#fff;font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:999px}.bld-inspect-badge{background:var(--color-accent);color:#fff;font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:999px}.bld-card-actions{display:flex;gap:6px;flex-wrap:wrap}.bld-card-actions .btn{font-size:.8rem;padding:4px 10px}.bld-grid{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.bld-row{display:flex;align-items:center;gap:8px}.bld-row-label{width:32px;font-size:.72rem;color:var(--color-muted);text-align:right;flex-shrink:0}.bld-lodges-row{display:flex;flex-wrap:wrap;gap:6px}.bld-lodge{position:relative;width:72px;min-height:64px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;background:var(--color-surface);transition:border-color .15s,box-shadow .15s,transform .1s}.bld-lodge:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.bld-lodge:active{transform:scale(.97)}.bld-lodge--occupied{background:var(--color-primary-light);border-color:var(--color-primary)}.bld-lodge--defect{border-color:var(--color-danger)!important;background:var(--color-danger-light)}.bld-lodge--overdue{border-style:dashed}.bld-lodge--empty{opacity:.7}.bld-lodge-code{font-size:.68rem;font-weight:700;color:var(--color-muted-strong);text-align:center;line-height:1;margin-bottom:3px}.bld-lodge--occupied .bld-lodge-code{color:var(--color-primary-dark)}.bld-lodge-content{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.bld-lodge-rabbit{font-size:.63rem;font-weight:600;color:var(--color-primary-dark);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;text-align:center}.bld-lodge-more{font-size:.6rem;color:var(--color-muted)}.bld-lodge-empty-icon{font-size:1.1rem;color:var(--color-muted);opacity:.5}.bld-lodge-badge{position:absolute;top:2px;right:2px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.55rem;font-weight:800}.bld-lodge-badge--def{background:var(--color-danger);color:#fff}.bld-lodge-badge--insp{background:var(--color-accent);color:#fff;font-size:.6rem}.lodge-detail-sections{display:flex;flex-direction:column;gap:16px}.lodge-detail-section{padding:12px;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.lodge-detail-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin-bottom:8px;display:flex;align-items:center;gap:8px}.lodge-detail-rabbit{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--color-border)}.lodge-detail-rabbit:last-child{border-bottom:none}.lodge-rabbit-name{font-weight:var(--font-weight-semibold)}.lodge-detail-actions{display:flex;gap:8px}.lodge-defect-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.lodge-defect-row:last-child{border-bottom:none}.defect-resolved{opacity:.55}.defect-sev-majeur,.defect-sev-mineur{flex-shrink:0}.radio-group{display:flex;gap:16px;flex-wrap:wrap}.radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--font-size-sm)}.radio-label input{accent-color:var(--color-primary)}@media(max-width:640px){.bld-lodge{width:58px;min-height:52px}.bld-card-header{flex-direction:column;align-items:flex-start}.bld-card-actions{flex-wrap:wrap}}.doc-wrap{display:flex;gap:0;height:100%;overflow:hidden}.doc-toc{width:220px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;padding:16px 0;background:var(--color-surface)}.doc-toc-title{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);padding:0 16px 8px}.doc-toc a{display:block;padding:6px 16px;font-size:var(--font-size-sm);color:var(--color-text);text-decoration:none;border-left:3px solid transparent;transition:background .12s,border-color .12s}.doc-toc a:hover{background:var(--color-hover);border-left-color:var(--color-primary);color:var(--color-primary)}.doc-content{flex:1;overflow-y:auto;padding:24px 32px}.doc-section{margin-bottom:48px;scroll-margin-top:16px}.doc-h2{font-size:1.25rem;font-weight:700;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--color-primary);color:var(--color-text)}.doc-h3{font-size:1rem;font-weight:600;margin:20px 0 8px;color:var(--color-text)}.doc-p{margin:0 0 12px;font-size:var(--font-size-sm);color:var(--color-text);line-height:1.65}.doc-list{margin:0 0 12px;padding-left:20px;font-size:var(--font-size-sm);color:var(--color-text);line-height:1.65}.doc-list li{margin-bottom:4px}.doc-steps{list-style:none;padding:0;margin:0 0 12px;counter-reset:step}.doc-steps li{counter-increment:step;display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;font-size:var(--font-size-sm)}.doc-steps li:before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:11px;font-weight:700;margin-top:1px}.doc-tip{display:flex;gap:10px;background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-left:4px solid var(--color-primary);border-radius:6px;padding:10px 14px;margin-bottom:12px;font-size:var(--font-size-sm);line-height:1.55}.doc-tip--danger{background:color-mix(in srgb,var(--color-danger, #e53e3e) 10%,transparent);border-left-color:var(--color-danger, #e53e3e)}.doc-tip-icon{flex-shrink:0;font-size:1rem}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.doc-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:14px}.doc-card-title{font-weight:600;font-size:var(--font-size-sm);margin-bottom:6px}.doc-card p{margin:0;font-size:var(--font-size-xs);color:var(--color-muted);line-height:1.5}.doc-event-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.doc-event-row{display:flex;align-items:center;gap:10px;font-size:var(--font-size-sm);padding:6px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px}.doc-event-icon{font-size:1.1rem;flex-shrink:0}.doc-code{font-family:var(--font-mono, monospace);background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:1px 6px;font-size:.82em}.doc-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.doc-legend-item{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs)}.doc-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.doc-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);margin-bottom:12px}.doc-table th{text-align:left;font-weight:600;padding:6px 10px;background:var(--color-surface);border-bottom:2px solid var(--color-border)}.doc-table td{padding:6px 10px;border-bottom:1px solid var(--color-border);vertical-align:top}.doc-kbd{display:inline-flex;align-items:center;gap:4px}.doc-kbd kbd{display:inline-block;padding:2px 7px;font-family:var(--font-mono, monospace);font-size:.82em;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);box-shadow:0 1px 0 var(--color-border);white-space:nowrap}@media(max-width:640px){.doc-toc{display:none}.doc-content{padding:16px}}@media(max-width:480px){.topbar,.content-area,.panel-body,.modal,.modal-card,.section-panel,.app-layout{max-width:100vw}.topbar{padding-left:var(--space-2);padding-right:var(--space-2);gap:var(--space-2)}.brand .title{font-size:14px}.sync-badge{font-size:10px;padding:2px 6px}.input{min-width:0;width:100%;padding:10px 12px}.row{gap:var(--space-2)}.row>.input,.row>.field{min-width:0;flex:1 1 100%}.form .row2{grid-template-columns:1fr}.btn{padding:10px 12px;max-width:100%}.panel-header{flex-wrap:wrap;padding:var(--space-2) var(--space-3);gap:var(--space-2)}.panel-header>*{min-width:0}.panel-title{font-size:14px}.sidebar{height:58px}.nav-item{min-width:0;padding:6px 2px}.nav-icon{font-size:18px}.nav-label{font-size:11px}.nav-badge{right:calc(50% - 14px)}.farm-chip{display:none}.topbar-right{gap:6px}.user-info{gap:4px}.modal{padding:var(--space-2)}.modal-card{width:100%;max-height:calc(100dvh - 16px)}.modal-head{padding:var(--space-2) var(--space-3)}.modal-body,.rl-left,.rl-right,.card,.tile{padding:var(--space-3)}.tile .n{font-size:22px}.dash{grid-template-columns:1fr 1fr}.bld-lodge{width:calc((100% - 18px)/4);min-width:56px}.bld-grid{padding:8px 10px}.two-col,.grid{grid-template-columns:1fr}}@media(max-width:360px){.nav-label{font-size:10px}.nav-icon{font-size:16px}.nav-item{padding:6px 1px}.brand .title{display:none}.panel-title{font-size:13px}.modal{padding:6px}.modal-card{max-height:calc(100dvh - 12px)}.dash{grid-template-columns:1fr}}.app-version-footer{padding:6px 10px calc(6px + env(safe-area-inset-bottom));text-align:center;font-size:11px;color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:text;-webkit-user-select:text;cursor:copy;background:transparent}.app-version-footer:empty{display:none}.legal-links-footer{text-align:center;font-size:11px;color:#9ca3af;padding:0 10px 8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.legal-links-footer a{color:inherit;text-decoration:none;margin:0 4px}.legal-links-footer a:hover{text-decoration:underline}@media(max-width:480px){.legal-links-footer{font-size:10px}}.consent-banner{position:fixed;bottom:0;left:0;right:0;z-index:3000;background:#1f2937;color:#fff;padding:14px 16px calc(14px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;box-shadow:0 -4px 12px #00000040}.consent-banner.hidden{display:none}.consent-banner .consent-text{flex:1 1 280px;font-size:13px;line-height:1.4}.consent-banner .consent-text a{color:#93c5fd;text-decoration:underline}.consent-banner .consent-actions{display:flex;gap:8px;flex-wrap:wrap}.legal-page{line-height:1.55;max-width:720px}.legal-page .legal-header{margin-bottom:14px}.legal-page h1{font-size:1.45rem;margin:0 0 4px}.legal-page h2{font-size:1.05rem;margin:18px 0 6px;color:var(--color-accent, #1a7a47)}.legal-page .legal-meta{color:#6b7280;font-size:13px;margin:0}.legal-page section{margin-bottom:14px;font-size:14px}.legal-page ul{margin:4px 0 0 18px;padding:0}.legal-page .legal-footer{margin-top:24px;padding-top:12px;border-top:1px solid #e5e7eb;font-size:12px;color:#6b7280;text-align:center}.legal-page .legal-footer a{margin:0 4px;color:inherit;text-decoration:none}.legal-page .legal-footer a:hover{text-decoration:underline}.legal-warning{background:#fef3c7;border-left:4px solid #d97706;color:#78350f;padding:8px 12px;margin-bottom:12px;font-size:13px;border-radius:4px}.legal-warning code{background:#0000000f;padding:1px 4px;border-radius:3px}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3500;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:16px}.onboarding-card{position:relative;background:var(--color-surface, #fff);color:var(--color-text, #111);border-radius:14px;box-shadow:0 12px 40px #00000059;padding:28px 22px 22px;max-width:460px;width:100%;max-height:90vh;overflow-y:auto}.onboarding-close{position:absolute;top:8px;right:10px;background:transparent;border:0;font-size:1.2rem;cursor:pointer;color:inherit;opacity:.6}.onboarding-close:hover{opacity:1}.onboarding-icon{font-size:2.4rem;text-align:center;margin-bottom:6px}.onboarding-card h2{margin:0 0 10px;font-size:1.15rem;text-align:center}.onboarding-card p{margin:0 0 12px;font-size:14px;line-height:1.5}.onboarding-list{margin:0 0 16px;padding-left:18px;font-size:14px;line-height:1.7}.onboarding-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.gv-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch}.gv-tab{background:transparent;border:0;padding:8px 14px;font-size:.9rem;color:var(--color-muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s}.gv-tab:hover{color:var(--color-text)}.gv-tab--active{color:var(--color-primary, #4caf50);border-bottom-color:var(--color-primary, #4caf50);font-weight:600}.gv-body{padding:4px 0 16px}.gv-ped-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}.gv-ped-col{display:flex;flex-direction:column;gap:4px;justify-content:space-around;min-width:0}.gv-ped-cell{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.3;min-height:38px;display:flex;flex-direction:column;justify-content:center;cursor:pointer;transition:transform .12s,box-shadow .12s;background:var(--color-surface)}.gv-ped-cell:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.gv-ped-cell--f{border-left:4px solid #ec4899;background:#ec48990f}.gv-ped-cell--m{border-left:4px solid #3b82f6;background:#3b82f60f}.gv-ped-cell--empty{background:var(--color-bg-alt);color:var(--color-muted);text-align:center;font-style:italic;cursor:default}.gv-ped-cell--empty:hover{transform:none;box-shadow:none}.gv-ped-name{word-break:break-word}.gv-ped-meta{color:var(--color-muted);font-size:11px;margin-top:1px;word-break:break-all}@media(max-width:720px){.gv-ped-grid{font-size:10px;gap:3px}.gv-ped-cell{padding:4px 5px;min-height:32px;font-size:10px}.gv-ped-meta{font-size:9px}}.gv-desc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:14px}.gv-stat{background:var(--color-bg-alt);border-radius:8px;padding:10px 8px;text-align:center}.gv-stat-n{font-size:1.3rem;font-weight:700;color:var(--color-primary, #4caf50)}.gv-stat-t{font-size:11px;color:var(--color-muted);margin-top:2px}.gv-desc-tree{font-size:.9rem}.gv-desc-node{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.gv-desc-node:hover{background:var(--color-bg-alt)}.gv-desc-node--vendu{opacity:.75}.gv-desc-node--mort{opacity:.55;text-decoration:line-through}.gv-desc-name{flex-shrink:0}.gv-desc-meta{color:var(--color-muted);font-size:12px;flex:1;min-width:0}.gv-desc-children{background:var(--color-accent-light, rgba(240,181,69,.16));color:var(--color-accent, #f0b545)}.gv-desc-children-wrap{margin-left:18px;border-left:2px solid var(--color-border);padding-left:6px}.gv-kinship-card{background:var(--color-surface);border-radius:10px;padding:16px 18px;box-shadow:var(--shadow-sm)}.gv-kinship-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.gv-kinship-pct{font-size:2.2rem;font-weight:800;line-height:1;flex-shrink:0}.gv-kinship-level{font-size:1.05rem}.gv-common-card{background:var(--color-bg-alt);border-radius:6px;padding:10px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gv-help summary{cursor:pointer;padding:6px 0}.gv-help ul{margin:6px 0 0 18px;line-height:1.7}.help-hint{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:4px;border-radius:50%;background:var(--color-border, #d4d4d8);color:var(--color-text, #444);font-size:11px;font-weight:700;cursor:help;-webkit-user-select:none;user-select:none;vertical-align:middle;line-height:1}.help-hint:hover,.help-hint:focus{background:var(--color-accent, #f0b545);color:#fff;outline:none}.app-version-footer .v-sep{margin:0 6px;opacity:.5}.app-version-footer .v-stale{color:#b45309}@media(max-width:480px){.app-version-footer{font-size:10px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}}.shop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;background:linear-gradient(180deg,#f8f6ef,#fff);overflow-y:auto;font-family:var(--font-family, system-ui, sans-serif)}.shop-header{background:var(--color-primary, #1a7a47);color:#fff;padding:14px 20px;position:sticky;top:0;z-index:10;box-shadow:0 1px 6px #0000001f}.shop-header-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.shop-logo{color:#fff;font-weight:700;font-size:1.1rem;text-decoration:none}.shop-nav{display:flex;gap:16px;flex-wrap:wrap}.shop-nav a{color:#fff;text-decoration:none;opacity:.9}.shop-nav a:hover{opacity:1;text-decoration:underline}.shop-nav-back{font-size:.9rem}.shop-main{max-width:1100px;margin:0 auto;padding:20px}.shop-section{padding:20px 0}.shop-title{font-size:1.6rem;margin:0 0 6px}.shop-desc{color:#555;max-width:600px}.shop-muted{color:#888;font-size:.9rem}.shop-contacts{display:flex;gap:12px;margin:8px 0 16px;flex-wrap:wrap}.shop-contacts a{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;background:#fff;border:1px solid #e0dccf;color:#1a7a47;text-decoration:none}.shop-loading{padding:60px 0;text-align:center;color:#888}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:14px}.shop-card{background:#fff;border:1px solid #e0dccf;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;display:flex;flex-direction:column}.shop-card:hover,.shop-card:focus-visible{transform:translateY(-3px);box-shadow:0 6px 18px #0000001a;outline:none}.shop-card-img{aspect-ratio:1;background:#f5f3eb;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#c4baa3}.shop-card-img img{width:100%;height:100%;object-fit:cover;display:block}.shop-card-body{padding:10px 12px 14px;flex:1;display:flex;flex-direction:column;gap:4px}.shop-card-name{margin:0;font-size:1.05rem}.shop-card-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.8rem;color:#666}.shop-card-meta span{background:#f5f3eb;padding:2px 6px;border-radius:4px}.shop-card-farm{font-size:.8rem;color:#888;margin-top:2px}.shop-card-price{font-weight:700;color:#1a7a47;margin-top:6px}.shop-card-price-tba{color:#888;font-weight:500;font-size:.9rem}.shop-footer{text-align:center;padding:24px 12px;color:#888;font-size:.85rem}.shop-modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px}.shop-modal{background:#fff;border-radius:14px;max-width:680px;width:100%;max-height:92vh;overflow-y:auto;padding:24px;position:relative}.shop-modal-close{position:absolute;top:12px;right:12px;background:none;border:0;font-size:1.4rem;cursor:pointer;line-height:1}.shop-modal-grid{display:grid;grid-template-columns:200px 1fr;gap:18px;margin-bottom:18px}.shop-modal-img{background:#f5f3eb;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:4rem;color:#c4baa3;aspect-ratio:1}.shop-modal-img img{width:100%;height:100%;object-fit:cover;border-radius:10px}.shop-modal-info h2{margin:0 0 4px}.shop-code{font-size:.85rem;color:#888;font-weight:400}.shop-modal-desc{color:#555;min-height:20px;margin:8px 0}.shop-modal-price{font-size:1.4rem;font-weight:700;color:#1a7a47;margin-top:6px}.shop-modal-farm{font-size:.9rem;color:#666}.shop-order-form{border-top:1px solid #eee;padding-top:18px}.shop-order-form h3{margin:0 0 4px}.shop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:12px 0}.shop-form-grid label,.shop-form-full{display:flex;flex-direction:column;font-size:.85rem;color:#444;gap:4px}.shop-form-full{margin-bottom:12px}.shop-form-grid input,.shop-form-full input,.shop-form-full textarea{border:1px solid #cfc8b3;border-radius:6px;padding:8px 10px;font-size:.95rem;font-family:inherit}.shop-form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.shop-btn-primary,.shop-btn-secondary{padding:10px 16px;border-radius:8px;cursor:pointer;border:0;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.shop-btn-primary{background:#1a7a47;color:#fff}.shop-btn-primary:hover{background:#155f37}.shop-btn-primary:disabled{background:#888;cursor:not-allowed}.shop-btn-secondary{background:#f0ece0;color:#444}.shop-btn-secondary:hover{background:#e6e1d0}.shop-error{background:#fde7e1;color:#b9352e;padding:8px 10px;border-radius:6px;margin:6px 0;font-size:.9rem}.shop-track-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 24px;padding:16px;background:#f8f6ef;border-radius:12px}.shop-track-step{display:flex;flex-direction:column;align-items:center;padding:6px 10px;opacity:.35;font-size:.85rem}.shop-track-step.done{opacity:.7}.shop-track-step.active{opacity:1;color:#1a7a47;font-weight:700}.shop-track-icon{font-size:1.6rem}.shop-track-sep{color:#c4baa3}.shop-track-card{background:#fff;border:1px solid #e0dccf;border-radius:10px;padding:14px 16px;margin:10px 0}.shop-track-card h3{margin:0 0 6px;font-size:1rem}.shop-track-card ul{padding-left:18px;margin:6px 0}@media(max-width:600px){.shop-modal-grid,.shop-form-grid{grid-template-columns:1fr}}
