
:root{
  --green:#006a5b;
  --green-dark:#005348;
  --green-soft:#e8f4f1;
  --red:#ef3f32;
  --red-dark:#b42318;
  --red-soft:#fff0ee;
  --ink:#18312d;
  --muted:#687a76;
  --line:#d9e2df;
  --bg:#f5f7f6;
  --card:#ffffff;
  --amber:#9a6700;
  --amber-soft:#fff7e6;
  --blue-soft:#eef5ff;
  --radius:18px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1{font-size:1.2rem;margin-bottom:3px}
h2{font-size:1.08rem;margin-bottom:8px}
h3{font-size:.98rem;margin:0 0 10px}
p{line-height:1.45}
label>span,.label-title{display:block;font-size:.83rem;font-weight:700;margin-bottom:6px}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:white;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,106,91,.10)}
input[type="checkbox"],input[type="radio"]{width:auto;padding:0;box-shadow:none}
textarea{resize:vertical}
fieldset{border:1px solid var(--line);border-radius:14px;padding:12px}
legend{padding:0 5px;font-weight:700;font-size:.86rem}

.app-shell{max-width:860px;margin:0 auto;padding:18px 14px 48px}
.brand-header{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:16px 16px 14px;margin-bottom:12px}
.brand-logo{display:block;width:138px;max-width:42vw;margin:0 auto 12px}
.header-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kicker{font-size:.69rem;letter-spacing:.08em;font-weight:800;color:var(--green);text-transform:uppercase}
.muted,.helper{color:var(--muted);font-size:.82rem}
.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;flex:0 0 auto}
.notice{background:var(--green-soft);border:1px solid #bedfd7;border-radius:16px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.notice.soft{display:block;background:#fbfcfc;border-color:var(--line)}
.hidden{display:none!important}

.metrics-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}
.metric-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px}
.metric-card span{font-size:.76rem;color:var(--muted);display:block}
.metric-card strong{font-size:1.55rem;display:block;margin-top:2px}

.page{display:none}
.page.active{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:10px 0}
.highlight-card{border-color:#c6e5de;background:linear-gradient(180deg,#fff 0%,#fbfefd 100%)}
.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:18px 0 8px}
.page-heading p{font-size:.86rem;color:var(--muted);margin-bottom:0;max-width:620px}
.spacer-top{margin-top:18px}
.stack{display:grid}
.gap8{gap:8px}
.gap10{gap:10px}
.gap12{gap:12px}
.button-row{display:flex;flex-wrap:wrap;gap:8px}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}
.quick-action{border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px;text-align:left;display:grid;gap:3px}
.quick-action>span{font-size:1.2rem}
.quick-action b{font-size:.86rem}
.quick-action small{font-size:.72rem;color:var(--muted)}
.quick-action:active{transform:scale(.99)}

.module-tabs{display:flex;gap:7px;overflow-x:auto;padding:6px 0 10px;position:sticky;top:0;background:rgba(245,247,246,.94);backdrop-filter:blur(12px);z-index:20;border-bottom:1px solid rgba(217,226,223,.7)}
.module-tab{white-space:nowrap;border:1px solid var(--line);background:white;border-radius:999px;padding:9px 12px;font-size:.78rem;font-weight:700}
.module-tab.active{background:var(--green);border-color:var(--green);color:white}

.btn{border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 14px;font-weight:800}
.btn.primary{background:var(--green);color:white;border-color:var(--green)}
.btn.primary:hover{background:var(--green-dark)}
.btn.danger{color:var(--red-dark);border-color:#f5c5c0;background:var(--red-soft)}
.btn.small{padding:8px 10px;font-size:.78rem}
.btn.full{width:100%}
.link-btn{border:0;background:transparent;color:var(--green);font-weight:800;padding:6px 0;font-size:.78rem}
.badge,.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:.71rem;font-weight:800;background:#eef2f1;color:#445651}
.status.ok{background:#ecfdf3;color:#067647}
.status.warn{background:var(--amber-soft);color:var(--amber)}
.status.danger{background:var(--red-soft);color:var(--red-dark)}
.status.info{background:var(--blue-soft);color:#255fa8}

.task-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;background:white;text-align:left}
.task-row .task-copy{display:flex;gap:9px;align-items:flex-start}
.task-row strong{font-size:.84rem}
.task-row small{display:block;color:var(--muted);margin-top:2px}

.form-card{display:grid;gap:14px}
.form-grid{display:grid;gap:10px}
.form-grid.two{grid-template-columns:1fr 1fr}
.check-section{border-top:1px solid var(--line);padding-top:14px}
.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.choice{border:1px solid var(--line);border-radius:13px;padding:10px 11px;display:flex;align-items:center;gap:8px;background:white;font-size:.83rem;font-weight:700}
.choice:has(input:checked){border-color:var(--green);background:var(--green-soft)}
.progress-line{display:flex;justify-content:space-between;font-size:.78rem}
.progress-track{height:9px;background:#e8eeec;border-radius:999px;overflow:hidden}
.progress-fill{height:100%;width:0;background:var(--green);transition:width .2s ease}
.validation{border:1px solid #f2b8b2;background:var(--red-soft);color:#8f241b;border-radius:13px;padding:11px 12px;font-size:.8rem}
.summary-line{padding:10px 12px;border-radius:12px;background:var(--green-soft);font-size:.82rem;font-weight:800;color:var(--green-dark)}

.state-row{border:1px solid var(--line);border-radius:13px;padding:10px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.state-row .state-label{font-size:.83rem;font-weight:700}
.segmented{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.segmented button{border:0;background:#fff;padding:7px 10px;font-size:.72rem;font-weight:800}
.segmented button.active.no{background:var(--green-soft);color:var(--green)}
.segmented button.active.yes{background:var(--red-soft);color:var(--red-dark)}

.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.signature-pad{width:100%;height:150px;border:1px dashed #8ca49e;border-radius:13px;background:#fff;touch-action:none;display:block;margin-top:8px}

.history-card,.animal-card,.report-card{background:white;border:1px solid var(--line);border-radius:16px;padding:14px}
.meta-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.meta-row .title{font-weight:800;font-size:.9rem}
.meta-row .sub{font-size:.76rem;color:var(--muted);margin-top:2px}
.card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.filter-row{display:flex;justify-content:flex-end;margin:8px 0}
.filter-row select{width:auto;min-width:180px}
.auto-box{background:#f8fbfa;border:1px solid var(--line);border-radius:15px;padding:13px}
.auto-data{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:.82rem;margin-top:9px}
.handover-box{border:1px solid #f1d4a0;background:var(--amber-soft);border-radius:15px;padding:13px}
.handover-box p{font-size:.82rem;color:#705116;margin:5px 0 0}
.client-declarations{display:grid;gap:8px}
.declaration{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;gap:10px;align-items:flex-start;font-size:.85rem}
.declaration input{margin-top:2px;width:20px;height:20px}
.declaration:has(input:checked){border-color:var(--green);background:var(--green-soft)}
.animal-types-fieldset{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:.82rem}
.animal-types-fieldset label{display:flex;align-items:center;gap:6px}
.vet-checklist{display:grid;gap:10px}
.vet-section{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}
.vet-section>summary{cursor:pointer;list-style:none;padding:13px 14px;font-weight:800;font-size:.86rem;display:flex;justify-content:space-between;gap:10px}
.vet-section>summary::-webkit-details-marker{display:none}
.vet-section[open]>summary{background:#f8fbfa;border-bottom:1px solid var(--line)}
.vet-section-body{padding:12px}
.vet-subhead{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--green);font-weight:800;margin:12px 0 7px}
.vet-item{border-top:1px solid #edf1f0;padding:10px 0}
.vet-item:first-child{border-top:0}
.vet-item-label{font-size:.82rem;line-height:1.35;margin-bottom:7px}
.vet-statuses{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.vet-status{border:1px solid var(--line);border-radius:10px;background:white;padding:7px 6px;font-size:.7rem;font-weight:800}
.vet-status.active{background:var(--green-soft);border-color:#a9d7ce;color:var(--green-dark)}
.vet-status.active.nok{background:var(--red-soft);border-color:#f3bcb6;color:var(--red-dark)}
.vet-status.active.other{background:var(--amber-soft);border-color:#ead3a1;color:var(--amber)}
.vet-item-note{margin-top:7px;display:none}
.vet-item.has-note .vet-item-note{display:block}

.prototype-footer{text-align:center;color:var(--muted);font-size:.72rem;margin-top:24px;padding:16px 8px}

.modal{position:fixed;inset:0;background:rgba(17,34,31,.48);z-index:80;padding:16px;overflow-y:auto;display:flex;align-items:flex-end;justify-content:center}
.modal-sheet{background:#fff;border-radius:22px 22px 16px 16px;padding:16px;width:min(640px,100%);max-height:92vh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.18)}
.modal-sheet.wide{width:min(900px,100%)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#15352f;color:#fff;border-radius:999px;padding:10px 14px;z-index:120;font-size:.78rem;max-width:90%;text-align:center}

/* Certificate preview */
.certificate-page{background:white;color:#18312d;border:1px solid #d8dfdd;border-radius:4px;padding:28px;min-height:1050px;margin:8px auto 18px;max-width:760px}
.cert-header{display:grid;grid-template-columns:180px 1fr 180px;gap:18px;align-items:start;padding-bottom:20px;border-bottom:2px dotted #7f8d8a}
.cert-logo{width:120px}
.cert-title{font-size:2rem;font-weight:900;letter-spacing:.02em}
.cert-stamp{font-weight:700;font-size:.82rem;text-align:center}
.cert-grid{display:grid;grid-template-columns:1fr 1fr}
.cert-cell{padding:18px 14px;border-bottom:2px dotted #7f8d8a}
.cert-cell:nth-child(odd){border-right:2px dotted #7f8d8a}
.cert-cell h3{font-size:.82rem;text-transform:uppercase;color:#1f3a35}
.cert-lines{display:grid;gap:8px;font-size:.8rem}
.cert-declarations{display:grid;gap:9px;font-size:.78rem}
.cert-check{display:flex;gap:8px}
.cert-check::before{content:"☑";font-size:1rem}
.cert-bottom{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:28px 0 0;font-size:.78rem}
.cert-signature-img{max-width:190px;max-height:70px;object-fit:contain;border-bottom:1px solid #b8c4c1}
.cert-notes{display:flex;justify-content:space-between;gap:20px;font-size:.68rem;margin-top:80px}
.cert-info-page h2{font-size:1.15rem;text-transform:uppercase}
.cert-info-page p,.cert-info-page li{font-size:.78rem;line-height:1.45}
.cert-info-page ul{padding-left:18px}

@media(max-width:720px){
  .app-shell{padding:12px 10px 40px}
  .metrics-grid{grid-template-columns:repeat(2,1fr)}
  .quick-grid{grid-template-columns:repeat(2,1fr)}
  .form-grid.two,.signature-grid,.auto-data{grid-template-columns:1fr}
  .choice-grid{grid-template-columns:1fr}
  .page-heading{display:block}
  .page-heading>.btn,.page-heading>.button-row{margin-top:10px}
  .state-row{grid-template-columns:1fr}
  .vet-statuses{grid-template-columns:repeat(3,1fr)}
  .certificate-page{padding:18px;min-height:0}
  .cert-header{grid-template-columns:110px 1fr}
  .cert-stamp{grid-column:1/-1;text-align:left}
  .cert-grid{grid-template-columns:1fr}
  .cert-cell:nth-child(odd){border-right:0}
  .cert-bottom{grid-template-columns:1fr}
}
@media print{
  body *{visibility:hidden!important}
  #certificatePreview,#certificatePreview *{visibility:visible!important}
  #certificatePreview{position:absolute;left:0;top:0;width:100%}
  .certificate-page{border:0;box-shadow:none;margin:0;max-width:none;page-break-after:always}
  .certificate-page:last-child{page-break-after:auto}
  .no-print{display:none!important}
}

/* V0.5 — Budget & dépenses */
.budget-metrics{grid-template-columns:repeat(4,1fr);margin:12px 0 16px}
.compact-field{min-width:170px;margin:0}
.compact-field span{font-size:.72rem}
.budget-target-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:10px}
.form-grid.three{grid-template-columns:repeat(3,1fr)}
.progress-fill.over-budget{background:#b93a32}
.expense-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:720px){.budget-metrics{grid-template-columns:repeat(2,1fr)}.budget-target-row,.form-grid.three,.expense-filters{grid-template-columns:1fr}.compact-field{min-width:0;width:100%}}

/* Navigation hamburger V0.6 */
.floating-menu-btn{position:fixed;top:calc(12px + env(safe-area-inset-top));left:max(12px,calc((100vw - 860px)/2 + 12px));z-index:70;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(24,49,45,.14);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;backdrop-filter:blur(12px)}
.floating-menu-btn span{display:block;width:20px;height:2px;border-radius:99px;background:var(--green-dark)}
.nav-backdrop{position:fixed;inset:0;z-index:80;background:rgba(12,34,30,.38);backdrop-filter:blur(2px)}
.nav-drawer{position:fixed;top:0;bottom:0;left:0;z-index:90;width:min(86vw,340px);padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));background:#fff;box-shadow:14px 0 40px rgba(24,49,45,.2);transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto}
.nav-drawer.open{transform:translateX(0)}
.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 4px 16px;border-bottom:1px solid var(--line);margin-bottom:10px}
.nav-drawer-head strong{display:block;font-size:1.15rem;margin-top:2px}
.nav-drawer-list{display:grid;gap:5px}
.drawer-link{width:100%;border:0;background:transparent;border-radius:13px;padding:12px 10px;display:flex;align-items:center;gap:11px;text-align:left;font-weight:800;font-size:.92rem}
.drawer-link:hover,.drawer-link.active{background:var(--green-soft);color:var(--green-dark)}
.drawer-link>span:first-child{width:24px;text-align:center}
body.menu-open{overflow:hidden}
@media(max-width:700px){
  .module-tabs{display:none}
  .app-shell{padding-top:18px}
  .brand-header{padding-top:18px}
  .brand-logo{max-width:38vw}
}

/* V0.8 — Animal action buttons: neutral white style */
.animal-quarantine,
.animal-death,
.animal-cession{
  background:#fff !important;
  color:var(--text) !important;
  border-color:var(--line) !important;
}
.animal-quarantine:hover,
.animal-death:hover,
.animal-cession:hover{
  background:#f7f7f4 !important;
}
