.parcelles{background:#eef0df;color:#354332;font-family:Nunito,sans-serif;display:flex;flex-direction:column;isolation:isolate}
.parcelles *{box-sizing:border-box}.parcelles button{font:800 12px Nunito,sans-serif;cursor:pointer;touch-action:manipulation;color:#405239;border:1px solid #c8cfb8;background:#f8f8ee;border-radius:9px;padding:0 8px;height:38px;flex:none}.parcelles button:disabled{opacity:.38}.parcelles button:focus-visible{outline:2px solid #ba843e;outline-offset:1px}.parcelles button.selected{background:#536b48;color:#fff8df;border-color:#536b48}
.parcelles-header{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #d9ddc8;background:#e7ebd7}.parcelles-header>div{display:flex;align-items:center;gap:8px}.parcelles-header strong{font-family:Georgia,serif;font-size:25px;font-weight:normal;letter-spacing:-.7px}.parcelles-header button{width:30px;height:30px;padding:0;border:0;background:transparent;font-size:21px}.brand-mark{font-size:27px;color:#7c8d55;transform:rotate(-12deg)}
.parcelles-body{width:360px;flex:1;min-height:0;padding:10px 18px 8px;display:flex;flex-direction:column;gap:0;overflow:hidden}.parcelles-title{height:56px;flex:none;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;font-weight:900;letter-spacing:1.3px;color:#7c8767}.parcelles h1{font:normal 21px Georgia,serif;letter-spacing:-.5px;margin:6px 0 0}.level-badge{border-radius:12px;background:#536b48;color:#fff7de;width:57px;height:51px;text-align:center;padding:5px 0}.level-badge small{display:block;font-size:8px;font-weight:900;letter-spacing:1px}.level-badge strong{font-size:26px;line-height:29px}
.parcelles-caption{height:24px;flex:none;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#778267;white-space:nowrap}.parcelles-caption b{font-size:10px;color:#53674b}.parcelles-board{flex:none;margin:2px 0 0;box-shadow:0 3px 10px #4f61321a}.parcelles .rect-cell{border:0;border-radius:0;padding:0;height:auto;font-size:16px;font-weight:900;touch-action:none;line-height:1;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.parcelles-progress{height:23px;flex:none;margin:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#637454;white-space:nowrap}.parcelles-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;height:38px;flex:none}.parcelles-actions button{width:100%;padding:0 3px;font-size:11px}.crop-legend{display:flex;align-items:center;justify-content:center;gap:14px;height:23px;flex:none;font-size:9px;color:#6c765e}.crop-legend span{display:flex;align-items:center;gap:4px}.crop-legend i{width:7px;height:7px;border-radius:2px}.wheat{background:#cfb266}.corn{background:#a5b973}.grass{background:#8fae8b}.lavender{background:#ac97bc}
.parcelles-footer{flex:none;display:flex;align-items:center;justify-content:space-between;height:17px;font-size:8px;color:#7d866c;gap:4px;white-space:nowrap}.parcelles-footer button{border:0;background:none;color:#637454;font-size:8px;height:17px;padding:0}.parcelles-dialog{position:absolute;left:0;top:0;width:100%;height:100%;z-index:9999;display:flex;align-items:center;justify-content:center;background:#28352299;padding:24px}.parcelles-dialog>div{background:#f7f6e8;border:1px solid #d5dac4;border-radius:18px;padding:22px;width:312px;box-shadow:0 10px 30px #22351b33}.parcelles-dialog h2{font:25px Georgia,serif;margin:0 0 16px}.parcelles-dialog p{font-size:14px;line-height:1.6;margin:0 0 20px}.parcelles-dialog button{display:block;width:100%;margin-top:8px}
/* 711 / 720 unités jeu, marge comprise : aucun contenu masqué pour tenir. */
.parcelles-header{height:44px}.parcelles-body{padding:8px 18px 4px}.parcelles-title{height:46px}.parcelles-caption{height:20px}.level-badge{height:43px;padding:3px 0}.level-badge strong{font-size:24px;line-height:25px}
/* Campaign and live drawing controls. Game screens remain within 360×720. */
.field-badges{display:flex;gap:6px;flex:none;align-items:center}.size-badge{width:68px;height:43px;border:1px solid #aebc9b;border-radius:10px;text-align:center;padding:3px 0;background:#f7f6e8}.size-badge small{display:block;font-size:8px;font-weight:900;letter-spacing:1px;color:#7c8767}.size-badge strong{display:block;font-size:17px;line-height:25px;font-variant-numeric:tabular-nums;white-space:nowrap}.parcelles h1{font-size:18px}.parcelles-title{gap:6px}.parcelles-title>.field-badges{margin-left:auto}.parcelles-title .eyebrow{font-size:8px;letter-spacing:.6px}.game-extras{height:28px;display:flex;gap:6px;align-items:center;justify-content:space-between;flex:none}.game-extras button{height:24px;padding:0 10px;font-size:10px}.clock{font-variant-numeric:tabular-nums;color:#53674b;font-weight:800}
.campaign-page{padding:20px;overflow-y:auto;gap:12px}.campaign-page h1{font:42px Georgia,serif;margin:0}.campaign-page h2{font:27px Georgia,serif;margin:6px 0}.campaign-page h3{font:19px Georgia,serif;margin:6px 0}.campaign-page p{margin:4px 0;line-height:1.5;font-size:14px}.campaign-page .small{font-size:11px;color:#68765d}.campaign-page>button{width:100%;flex:none;min-height:40px}.campaign-hero{text-align:center;padding:16px 0 22px}.campaign-hero img{display:block;width:132px;height:132px;margin:0 auto 22px;filter:drop-shadow(0 8px 12px #35433222)}.campaign-hero .eyebrow{margin:0 0 12px}.campaign-hero p{font:15px Georgia,serif;margin-top:12px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:none}.menu-grid button{width:100%;height:42px}.campaign-page .campaign-count{text-align:center;font-weight:900;margin-top:20px}.campaign-map{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}.campaign-map button{height:44px;padding:0}.score-table{display:flex;flex-direction:column;gap:4px}.score-row{min-height:27px;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:4px 8px;font-size:12px;border-radius:7px}.score-row b{overflow-wrap:anywhere}.score-row span{white-space:nowrap}.score-row.mine{background:#d6dfc2;font-weight:900}.campaign-page .level-best{font-size:11px;min-height:30px;height:auto;padding:5px;white-space:normal;text-align:left}.tutorial-demo{display:grid;grid-template-columns:repeat(4,1fr);width:240px;height:180px;margin:14px auto;border:2px solid #53674b;flex:none}.tutorial-demo div{border:1px solid #b8c29f;display:grid;place-items:center;font-weight:900;font-size:27px;background:#f5f1dc}.tutorial-demo .demo-field{background:#e7cd83}.tutorial-demo .demo-second{background:#b3cbb0}.tutorial-demo .demo-third{background:#c9b9d8}.tutorial-copy{min-height:150px}

/* Victory keeps the solved board in place, without adding layout height. */
.parcelles-victory-label{display:none}.is-solved .parcelles-actions{display:flex;align-items:center;justify-content:center;border-radius:9px;background:#d6dfc2}.is-solved .parcelles-actions button{display:none}.is-solved .parcelles-victory-label{display:block;font: bold 21px Georgia,serif;color:#405c32}.is-solved .rect-cell:disabled{opacity:1;cursor:default}.is-solved .game-extras button:last-child{background:#536b48;color:#fff8df;border-color:#536b48}.is-solved .parcelles-footer>span{font-size:0}.is-solved .parcelles-footer>span::after{content:'Champ cultivé · consulte tes scores';font-size:8px}
.parcelles-board.celebrating{animation:parcelles-glow 1.6s ease-out}.parcelles-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;animation:parcelles-burst 2s linear}.parcelles-confetti i{position:absolute;left:var(--x);top:-14px;width:7px;height:12px;border-radius:2px;background:#ba843e;animation:parcelles-leaf 1.5s var(--delay) ease-in both}.parcelles-confetti i:nth-child(3n){background:#718d54}.parcelles-confetti i:nth-child(3n+1){background:#b395bc}
@keyframes parcelles-glow{0%,45%{box-shadow:0 0 0 5px #8ca15b,0 0 22px #c7a54499}100%{box-shadow:0 3px 10px #4f61321a}}@keyframes parcelles-burst{to{opacity:1}}@keyframes parcelles-leaf{0%{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}100%{transform:translateY(460px) rotate(var(--turn));opacity:0}}
@media(prefers-reduced-motion:reduce){.parcelles-board.celebrating,.parcelles-confetti,.parcelles-confetti i{animation-duration:1ms;animation-delay:0s}}
