/* Style pastel estimé à partir de la référence. */
:root{--paper:#fff8ed;--ink:#202725;--muted:#73756f;--line:#e8e3d8;--green:#202725;--cream:#fffef2;--pink:#f489a7;--sage:#41917d;--lavender:#aaa0e6;--orange:#ffc27e}
*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}aside{background:var(--cream);border:0;width:230px;padding:28px 20px}.brand{font:800 29px Arial;display:flex;align-items:center;gap:12px;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:var(--sage);color:white}.brand-mark svg{width:27px}.brand .sub{font-size:9px;letter-spacing:1.5px;display:block;margin-top:6px}.school{background:#f4f0e7;border:0;border-radius:24px;padding:20px;margin:30px 0}.school span{display:block;margin-top:6px}nav{display:grid;gap:8px}nav button{display:flex;align-items:center;gap:12px;border:0;border-radius:999px;background:transparent;padding:15px 17px;width:100%;color:var(--ink);text-align:left}nav svg{width:19px;height:19px;flex-shrink:0}nav small{margin-left:auto}nav button.active{background:var(--ink);color:var(--cream)}.nav-long{display:none}.aside-bottom button{width:100%;margin-top:18px}main{margin-left:230px;padding:32px 36px;max-width:1600px}h1,h2,h3,.dialog-top{font-family:Arial,Helvetica,sans-serif;letter-spacing:-.7px;font-weight:800}h1{font-size:38px}h1>span{display:none}header{margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--muted)}button,.primary,.import{border-radius:999px;box-shadow:none;min-height:44px;font-family:inherit;font-weight:700;border:1px solid var(--line);background:var(--cream);color:var(--ink);padding:12px 18px;cursor:pointer;transition:background .15s,transform .15s}button:hover{background:#eee9dd;transform:translateY(-1px)}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7567ba;outline-offset:3px}.primary{background:var(--ink);color:var(--cream);border-color:var(--ink)}.primary:hover{background:#3b4540}#scan{display:flex;align-items:center;gap:10px}#scan svg{width:20px;height:20px}.stats{gap:16px;margin-bottom:25px}.stat{border:0;border-radius:32px;padding:24px;background:var(--cream)}.stat:nth-child(1){background:var(--pink)}.stat:nth-child(2){background:var(--sage);color:white}.stat:nth-child(3){background:var(--orange)}.stat:nth-child(4){background:var(--lavender)}.stat>span{color:inherit;font-weight:700;font-size:12px}.stat strong{display:block;font-family:Arial;font-weight:800;font-size:40px;margin-top:15px}.stat em{color:inherit;font:11px Arial;opacity:.85;display:block;margin-top:6px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{border:0;border-radius:32px;background:var(--cream);box-shadow:0 8px 28px #3a2e1c0b}.art{background:#f4ecd9;height:180px}.card:nth-child(4n+2) .art{background:#ede8fb}.card:nth-child(4n+3) .art{background:#fae1e8}.card:nth-child(4n) .art{background:#e2eee6}.art svg{filter:none}.instrument-visual{display:grid;place-items:center;width:100%;height:100%}.card h3{font-size:19px;line-height:1.25}.card-info{padding:20px}.card-bottom{gap:8px;flex-wrap:wrap}.card-bottom button{font-size:11px}.serial-caption{font-size:11px;color:var(--muted)}.tag{font-weight:700;padding:8px 12px;font-size:11px;border-radius:999px}.available{background:#d3eadf;color:#275448}.repair{background:#ffe0b7;color:#734719}.route{background:#e3ddfa;color:#514484}.loan{background:#fbd4df;color:#89314f}.list-row{border:0;border-radius:26px;background:var(--cream);padding:22px}.list-row h3{font-size:17px}.list-row p{line-height:1.6}.toolbar{flex-wrap:wrap}input,select,textarea{border-radius:18px;border:1px solid var(--line);background:var(--cream);min-height:46px;font-family:inherit}dialog{border:0;border-radius:32px;background:var(--cream);box-shadow:0 30px 100px #20272533}.dialog-top{font-size:22px}.dialog-top button{background:#eee9dd;border-radius:50%;width:44px;padding:10px}dialog::backdrop{background:#20272566;backdrop-filter:blur(3px)}.student{background:#e2eee6;border-radius:22px}.repair-summary{padding:18px;background:#ffe0b7;border-radius:20px;line-height:1.7}.serial-detail{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}.serial-detail>span{font-size:12px;color:var(--muted)}.timeline{border-color:#e8e3d8}.scene{display:none}.family-summary{background:var(--cream);border-radius:32px;padding:24px;margin-bottom:22px}.family-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.family-summary h2{font-size:23px;margin:0 0 8px}.family-summary p{font-size:12px;color:var(--muted);margin:0 0 18px}.family-table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:530px}th,td{text-align:center;padding:8px;font-size:12px;border-bottom:1px solid var(--line)}th:first-child{text-align:left}thead th{color:var(--muted);font-weight:600}tfoot{font-weight:800}.family-count{border:0;min-width:44px;min-height:40px;padding:8px 12px}.family-count.total{background:#f0ebdc}.family-count:disabled{background:transparent;color:#a09c93;cursor:default}.family-count[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.presentation-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;border-radius:24px;background:#f4ecd9;padding:12px 18px;margin-bottom:26px;font-size:12px}.presentation-banner>div{display:flex;align-items:center;gap:12px}.presentation-banner a{color:var(--ink)}.presentation-banner .dot{display:inline-block;margin-right:8px}.presentation-banner button{font-size:11px}.location-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.location-column{padding:24px;border-radius:32px;color:var(--ink)}.location-column h2{display:flex;justify-content:space-between;font-size:22px;margin:0}.location-column h2 span{background:#fff8;padding:3px 12px;border-radius:999px}.location-column>p{font-size:12px;margin:10px 0 18px}.location-item{display:flex;flex-direction:column;text-align:left;gap:8px;width:100%;border:0;border-radius:22px;background:var(--cream);margin-top:10px;padding:18px}.location-item span,.location-item small{font-size:12px;color:var(--muted);font-weight:400;line-height:1.4}.location-empty{font-size:13px;padding:18px;background:#fff6;border-radius:20px}.repair-queue h2{font-size:24px}.section-title h2{font-size:24px}footer{letter-spacing:0}#toast{background:var(--ink);border-radius:999px}.scan-extra{display:inline}.import{display:block;background:transparent;font-size:11px;border:0}.dot{background:var(--sage)}
@media(max-width:1100px){main{padding:26px;margin-left:210px}aside{width:210px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){aside{position:static;width:100%;padding:18px 20px}.brand{font-size:25px}.school,.aside-bottom{display:none}nav{display:flex;overflow-x:auto;margin-top:18px;gap:6px}nav button{width:auto;flex:0 0 auto;padding:12px;font-size:11px}nav small,nav svg{display:none}main{margin:0;padding:20px}h1{font-size:30px}header{gap:14px;flex-wrap:wrap}.stats{gap:10px}.stat{padding:20px;border-radius:26px}.stat strong{font-size:34px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-info{padding:15px}.card h3{font-size:16px}.art{height:145px}.art svg{width:150px}.location-board{grid-template-columns:1fr}.family-summary{padding:18px}.presentation-banner{align-items:flex-start;flex-direction:column}.toolbar select{flex:1}.list-row{gap:12px}.form-row{grid-template-columns:1fr}.section-title{gap:12px;flex-wrap:wrap}}
@media(max-width:430px){.grid{grid-template-columns:1fr}.art{height:165px}.card h3{font-size:20px}}

.stats{border:0;background:transparent;padding:0}.stat em{float:none;margin-top:8px}.brand .sub{font-size:9px;line-height:1.4}

/* Icônes, typographie et graphiques inspirés de la référence. */
body,button,input,select,textarea{font-family:'Trebuchet MS','Segoe UI',sans-serif}h1,h2,h3,.brand,.dialog-top,.stat strong{font-family:'Trebuchet MS','Segoe UI',sans-serif;letter-spacing:-1px}h1{font-weight:900;line-height:1.08}.stat-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700}.stat-icon{display:grid;place-items:center;background:#ffffff35;border:1px solid #ffffff35;width:34px;height:34px;border-radius:50%}.stat-icon svg{width:19px;height:19px}.stat strong{margin-top:10px}.stat em{font-family:'Trebuchet MS','Segoe UI',sans-serif;font-size:11px}.stock-graphics{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}.graphic-card{background:var(--cream);border-radius:32px;padding:24px}.availability-chart{background:#f0f4e2}.distribution-chart{background:#fce8db}.graphic-title{display:flex;align-items:center;gap:10px}.graphic-title h2{font-size:19px;letter-spacing:-.7px;margin:0}.icon-bubble{display:grid;place-items:center;background:#fff9;width:34px;height:34px;border-radius:50%;flex-shrink:0}.icon-bubble svg{width:19px}.graphic-pill{margin-left:auto;border-radius:999px;padding:6px 9px;background:#fff9;font-size:10px;white-space:nowrap}.availability-body{display:flex;align-items:center;gap:22px;padding-top:16px}.ring-chart{position:relative;width:118px;height:118px;flex-shrink:0}.ring-chart svg{width:100%;height:100%}.ring-chart>strong{position:absolute;inset:0;display:grid;place-content:center;grid-auto-flow:column;align-items:baseline;font-size:34px;letter-spacing:-1.5px}.ring-chart small{font-size:15px}.graphic-number{font-size:32px;letter-spacing:-1px}.graphic-number small{font-size:16px;color:var(--muted)}.availability-body p{font-size:12px;margin:4px 0 13px;color:var(--muted)}.availability-body button{background:var(--ink);color:var(--cream);border:0;font-size:11px;min-height:36px;padding:10px 14px}.pill-chart{display:flex;justify-content:space-around;align-items:end;gap:12px;height:152px;margin-top:16px}.bar-column{background:transparent;border:0;display:flex;flex-direction:column;align-items:center;gap:9px;padding:0;border-radius:16px;flex:1;font-size:10px;font-weight:600}.bar-column:hover{background:#fff6;transform:none}.bar-track{display:flex;align-items:end;width:40px;height:111px;background:#fff9;border-radius:999px;overflow:hidden}.bar-fill{width:100%;border-radius:999px;display:flex;justify-content:center;align-items:start;padding-top:9px;min-height:28px}.bar-fill strong{font-size:13px}.bar-fill.available{background:var(--sage);color:white}.bar-fill.loan{background:var(--pink);color:var(--ink)}.bar-fill.repair{background:var(--orange);color:var(--ink)}.bar-fill.route{background:var(--lavender);color:var(--ink)}.bar-column:disabled{opacity:.55;cursor:default}nav svg{stroke-width:2.3}nav button.active svg{background:#fff2;border-radius:50%;box-sizing:content-box;padding:5px;margin:-5px 0}
@media(min-width:960px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:20px}.stat strong{font-size:36px}}
@media(max-width:1100px){.graphic-card{padding:20px}.graphic-title{flex-wrap:wrap}.graphic-pill{margin-left:0}.availability-body{gap:14px}.ring-chart{width:96px;height:96px}}
@media(max-width:760px){.stock-graphics{grid-template-columns:1fr}.graphic-title{flex-wrap:nowrap}.graphic-pill{margin-left:auto}.graphic-card{padding:22px}.availability-body{justify-content:center;gap:25px}.ring-chart{width:118px;height:118px}.stat-icon{width:30px;height:30px}.bar-track{width:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.stat-heading>span{color:inherit}.stat-icon{color:inherit}.bar-fill{min-height:0}.bar-fill[style="height:0%"]{padding-top:0}.bar-fill[style="height:0%"] strong{display:none}
/* JSON TOKENS */
:root{--background:#fff8ed;--ink:#202725;--muted:#73756f;--cream:#fffef2;--pink:#f489a7;--green:#41917d;--lavender:#aaa0e6;--orange:#ffc27e;--yellow:#f7d36f;--line:#e8e3d8;}
button,.primary{border-radius:999px} .card{border-radius:32px} input,select,textarea{border-radius:18px}
body,button,input,select,textarea{font-family:Trebuchet MS, Segoe UI, sans-serif} h1,h2,h3,.brand,.dialog-top,.stat strong{font-family:Trebuchet MS, Segoe UI, sans-serif;font-weight:800} nav svg,.stat-icon svg,.icon-bubble svg{stroke-width:2.3}
