@charset "UTF-8";
:root{font-family:ui-rounded,'Avenir Next',Avenir,system-ui,-apple-system,'Segoe UI',sans-serif;color:#513b2c;background:#fff8eb;--ink:#513b2c;--muted:#876c58;--pink:#e28d7e;--berry:#c76461;--forest:#315e4f;--cream:#fff8eb;--paper:#fffcf6;--line:#e9cfb7;--gold:#e9b956;--mint:#96b99d;--shadow:0 15px 38px #865d3b1c}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 5%,#fff3df,#fff8eb 50%,#faeddd);color:var(--ink)}button{cursor:pointer;color:inherit;font:inherit;touch-action:manipulation}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #4b9688;outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.16}h1,h2{font-family:Georgia,'Times New Roman',serif}.skip{position:fixed;top:-60px;left:8px;z-index:100;padding:10px;background:#fff}.skip:focus{top:8px}[hidden]{display:none!important}.wrap{max-width:1120px;margin:auto}.topbar{height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 24px;border-bottom:1px solid #f1e2ce}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:12px}.brand strong,.brand small{display:block}.brand strong{font-size:14px}.brand small{color:var(--muted);font-size:11px}.panda-small{font-size:29px}.top-actions{display:flex;align-items:center;gap:9px}.top-link{border:1px solid #e6cbb2;background:#fffdf7;border-radius:14px;padding:9px 13px;font-size:12px;font-weight:800;min-height:43px}.top-link.info{background:#315e4f;color:white;border-color:#315e4f}.app{max-width:980px;margin:auto;padding:18px 22px 34px}.headline{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.headline h1{font-size:clamp(26px,3.2vw,40px);letter-spacing:-1.5px}.headline h1 em{font-style:normal;color:#bf685c}.eyebrow{font-size:11px;font-weight:850;letter-spacing:1.3px;color:#996f49;text-transform:uppercase;display:block;margin-bottom:5px}.progress-bubble{white-space:nowrap;display:flex;gap:5px;align-items:center;background:#fff1d5;color:#805b22;border:1px solid #ecd5ab;border-radius:45px;padding:7px 14px;font-weight:850;font-size:20px}.progress-bubble span:first-child{color:#d99d34}.progress-bubble small{font-size:10px;color:#967b59}.stage{background:linear-gradient(110deg,#fffef9,#fff7e8);border:2px solid #e4c0a3;box-shadow:var(--shadow);border-radius:24px;overflow:hidden;padding:16px 20px 13px;position:relative;isolation:isolate}.awning{height:14px;background:repeating-linear-gradient(90deg,#c86d64 0 37px,#fff2e5 37px 74px);border-radius:12px 12px 5px 5px;margin:-12px -17px 17px;box-shadow:0 2px 0 #e0b79d}.ticket{display:flex;align-items:center;gap:14px;border:1px solid #eecfb6;border-radius:18px;background:#fff4de;padding:10px 15px;min-height:76px}.customer-avatar{width:52px;height:52px;flex:0 0 52px;background:linear-gradient(140deg,#fbe5b9,#efcaab);border:2px solid #f8d5ab;border-radius:50%;display:grid;place-items:center;font-size:30px}.ticket-copy{flex:1;min-width:0;display:flex;flex-direction:column}.ticket-copy>span{font-size:10px;font-weight:850;letter-spacing:.8px;text-transform:uppercase;color:#a97854}.ticket-copy strong{font-size:clamp(15px,2.2vw,21px);line-height:1.25}.ticket-copy small{color:#806854;font-size:12px;line-height:1.4;margin-top:3px}.ticket-counter{font-size:13px;color:#785f44;font-weight:850;white-space:nowrap;border:1px solid #e2c8a5;border-radius:12px;padding:8px}.counter{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:45px;margin:15px auto;max-width:720px}.station{background:#fffdfa;border:1px solid #ead5c2;box-shadow:0 4px 12px #af876716;border-radius:19px;padding:11px 13px 8px;display:flex;flex-direction:column;min-width:0;text-align:center}.station-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:20px;font-size:12px}.station-heading strong{font-size:14px}.station-heading span{font-size:11px;color:#8d6a4d}.cake-selector{display:flex;gap:5px;justify-content:center;min-height:34px;align-items:center}.cake-selector button{min-height:29px;border:1px solid #d8b8a1;background:#fbf1e6;font-size:11px;font-weight:750;border-radius:12px;padding:4px 10px}.cake-selector button[aria-pressed=true]{background:#a94f50;color:#fff;border-color:#a94f50}.plate-name{font-size:11px;color:#a47755;min-height:34px;display:flex;align-items:center;justify-content:center}.pie-frame{display:grid;place-items:center;min-height:170px;flex:1}.pie-frame svg{display:block;width:100%;max-width:230px;max-height:230px;aspect-ratio:1;overflow:visible}.pie-frame svg [role=button]{cursor:pointer;transition:filter .12s}.pie-frame svg [role=button]:hover{filter:brightness(1.09)}.pie-frame svg [role=button]:focus{outline:none;stroke:#3d7260;stroke-width:4}.station-detail{color:#86694d;font-size:12px;min-height:32px;line-height:1.4;margin-top:3px;display:grid;place-items:center}.swap-arrow{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);width:40px;height:40px;border:2px solid #f1d2ad;border-radius:50%;background:#fff1d9;display:grid;place-items:center;color:#b36c55;font-size:26px;z-index:1}.cut-strip{max-width:720px;margin:auto;background:#f9ead6;border:1px solid #e9d1b4;border-radius:17px;display:flex;align-items:center;gap:13px;padding:10px 14px}.cut-heading{font-size:13px;font-weight:850;white-space:nowrap}.cut-buttons{display:flex;flex:1;gap:8px;justify-content:center;flex-wrap:wrap}.cut-buttons button{background:#fffdf8;border:1px solid #d3ae8d;border-radius:11px;min-width:70px;min-height:45px;font-size:14px;font-weight:850}.cut-buttons button:not(:disabled):hover{background:#ffe4c5}.cut-buttons button:disabled{opacity:.52}.cut-buttons button span{font-size:10px;font-weight:600;display:block;line-height:1.15;color:#856c58}.cut-buttons .ready-cut{background:#e4f0e4;border-color:#8aaf91;color:#365e43}.control-row{max-width:720px;margin:12px auto 7px;display:flex;gap:9px}.control{flex:1;background:#fffaf2;border:1px solid #d7bca2;padding:10px 9px;min-height:46px;border-radius:12px;font-size:12px;font-weight:850}.control.hint{background:#376e58;color:white;border-color:#376e58}.control.next-plate{background:#cb7462;color:white;border-color:#cb7462}.control:focus-visible{outline-offset:2px}.stage-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#816951;max-width:720px;margin:0 auto;min-height:31px}.stage-foot #stageStatus{flex:1}.stage-foot #servedCount{font-weight:850;color:#3d7250;white-space:nowrap}.bottom-note{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 8px;font-size:11px;color:#92745d}.bottom-note button{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;color:#526c57;font-size:11px;padding:5px}.boot-error{background:#ffefdc;padding:15px;margin:10px;border-radius:10px;font-size:12px}.capsule-layer{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:#332a2370;backdrop-filter:blur(2.7px);z-index:10}.capsule{width:min(100%,500px);max-height:100%;overflow-y:auto;border-radius:25px;background:linear-gradient(145deg,#fffdf7,#fff4e5);box-shadow:0 28px 70px #20140965;border:3px solid #f9e6c9;padding:23px 25px 25px;text-align:center;position:relative;scrollbar-width:thin}.capsule-close{position:absolute;right:14px;top:13px;background:#f5e2c9;border:0;border-radius:50%;width:37px;height:37px;font-size:24px}.capsule .capsule-eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:850;color:#ae7960;text-transform:uppercase;margin-bottom:7px}.capsule h2{font-family:Georgia,serif;font-weight:600;font-size:clamp(27px,4vw,36px);letter-spacing:-1.2px;color:#653e35;margin-bottom:11px}.capsule .capsule-story{color:#775d4c;font-size:14px;line-height:1.55;margin:0 auto 15px;max-width:380px}.capsule .capsule-icon{margin:0 auto 6px;font-size:48px;display:block;line-height:1.25}.capsule .orders-preview{text-align:left;background:#fff9f0;border:1px dashed #e8cbb0;border-radius:16px;padding:11px 14px;margin:15px auto;max-width:385px}.orders-preview strong{font-size:11px;letter-spacing:1px;color:#946b49;text-transform:uppercase}.orders-preview p{font-size:13px;border-top:1px solid #f1dfca;padding:7px 0;margin:0}.orders-preview p:first-of-type{margin-top:7px}.orders-preview p span{font-weight:850;color:#3e7453}.capsule .primary{display:block;background:#376f59;border:0;border-radius:14px;color:white;font-weight:850;padding:14px 18px;min-height:51px;width:100%;box-shadow:0 4px 0 #254d3d;font-size:15px}.capsule .primary:hover{background:#438068}.capsule .actions{display:flex;gap:9px;margin-top:14px}.capsule .actions .primary{flex:1}.capsule .outline{background:#fff7ea;border:1px solid #d9bea5;border-radius:14px;padding:11px 14px;min-height:50px;font-weight:850;font-size:13px;flex:1}.capsule .little{font-size:12px;color:#856b57;line-height:1.55;margin:10px 0}.capsule .rating{font-size:52px;line-height:1.2;color:#db9c34;letter-spacing:4px;text-shadow:0 3px 0 #f9ddaa}.capsule .summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;background:#fff7eb;border-radius:15px;padding:12px}.capsule .summary-grid b{display:block;font-size:20px;color:#6a5241}.capsule .summary-grid small{font-size:11px;color:#91725c}.capsule .hint-card{text-align:left;background:#f1f6eb;border:1px solid #c5dec4;border-radius:15px;padding:15px;margin:13px 0;font-size:14px;color:#3e6248;line-height:1.6}.capsule .hint-card strong{display:block;margin-bottom:7px}.capsule .quiet-action{background:transparent;color:#805e50;border:0;text-decoration:underline;margin-top:13px;padding:6px;font-size:12px}.capsule .chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}.capsule .chapters button{padding:10px 4px;border:1px solid #e6c8a9;background:#fff9ef;border-radius:10px;min-height:48px;font-size:11px;font-weight:850}.capsule .chapters button.current{background:#d6e8d4;border-color:#87ae92}.capsule .chapters button:disabled{background:#f6eee6;opacity:.53}.capsule .chapters button span{display:block;font-size:10px;font-weight:500;color:#94715b}.capsule .explain{background:#fff8e6;border-radius:13px;padding:12px;margin-top:9px;text-align:left;font-size:13px;color:#745845}.capsule .explain strong{color:#345c43}.capsule .footer-hint{border-top:1px solid #efdcc4;margin-top:13px;padding-top:12px}.capsule .reward-disc{width:70px;height:70px;background:radial-gradient(#fff1bd,#eabf79);border:3px solid #efd6a4;border-radius:50%;display:grid;place-items:center;font-size:40px;margin:0 auto 13px}.piece-disc{transform-origin:center}.pie-label{font-family:Georgia,serif;font-size:19px;font-weight:750;fill:#664c3b;pointer-events:none}.source-piece[aria-disabled=true]{cursor:default;opacity:.27}.source-piece[aria-disabled=false]:hover{filter:brightness(1.05)}.plate-piece{cursor:pointer}.plate-piece:hover{filter:brightness(1.1)}.unit-label{font-size:11px;fill:#917155}.empty-outline{fill:#fff9ef;stroke:#ecd4bd;stroke-width:2;stroke-dasharray:4 6}
@media(min-width:800px){.stage{padding:19px 32px 18px}.counter{margin:16px auto}.station{padding:15px}.pie-frame{min-height:210px}.stage-foot{min-height:26px}.capsule{padding:30px}}
@media(max-width:680px){html,body,.wrap{height:100%;height:100dvh;overflow:hidden}.wrap{display:flex;flex-direction:column}.topbar{height:54px;flex:0 0 54px;padding:5px 12px;background:#fff7ec}.brand strong{font-size:12px}.brand small{font-size:10px}.panda-small{font-size:23px}.top-link{font-size:11px;min-height:39px;padding:7px 11px}.top-link.info span{display:none}.top-link.info{font-size:20px;min-width:42px}.app{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;padding:7px 11px 8px}.headline{flex:0 0 auto;margin-bottom:6px}.eyebrow{font-size:9px;letter-spacing:.65px;margin-bottom:3px}.headline h1{font-size:23px;letter-spacing:-.8px}.progress-bubble{font-size:15px;padding:4px 9px}.progress-bubble small{font-size:9px}.stage{flex:1;min-height:0;border-radius:20px;padding:9px;display:flex;flex-direction:column;gap:7px}.awning{height:7px;flex:0 0 7px;margin:-8px -8px 0;background:repeating-linear-gradient(90deg,#c86d64 0 25px,#fff2e5 25px 50px)}.ticket{flex:0 0 auto;min-height:61px;padding:7px 9px;gap:8px;border-radius:14px}.customer-avatar{width:40px;height:40px;flex-basis:40px;font-size:25px}.ticket-copy>span{font-size:9px}.ticket-copy strong{font-size:16px}.ticket-copy small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-counter{font-size:10px;padding:5px}.counter{flex:1;min-height:0;max-height:420px;width:100%;gap:20px;margin:0 auto;align-items:stretch}.station{min-height:0;padding:7px 5px 4px;border-radius:15px}.station-heading{font-size:11px;padding:0 4px;min-height:18px}.station-heading strong{font-size:12px}.station-heading span{font-size:10px}.cake-selector{min-height:31px;gap:3px}.cake-selector button{min-height:28px;font-size:10px;padding:4px 7px}.plate-name{min-height:31px;font-size:10px}.pie-frame{min-height:0;flex:1;max-height:none}.pie-frame svg{width:min(100%,170px);max-height:100%;height:100%;object-fit:contain;min-height:0}.station-detail{font-size:10px;min-height:27px;line-height:1.25;margin:0}.swap-arrow{width:28px;height:28px;font-size:18px;top:50%}.cut-strip{width:100%;flex:0 0 auto;margin:0;gap:7px;padding:8px 7px;border-radius:14px}.cut-heading{font-size:11px}.cut-buttons{flex-wrap:nowrap;gap:4px;justify-content:space-around}.cut-buttons button{min-width:0;flex:1;min-height:42px;padding:5px 1px;font-size:13px;border-radius:9px}.cut-buttons button span{font-size:9px}.control-row{width:100%;margin:0;gap:5px;flex:0 0 auto}.control{min-height:44px;font-size:11px;padding:6px 5px;border-radius:10px}.stage-foot{width:100%;padding:0 2px;min-height:24px;font-size:10px}.bottom-note{flex:0 0 auto;padding:5px 1px;font-size:10px;gap:5px}.bottom-note span:last-child{display:none}.capsule-layer{position:fixed;inset:0;padding:14px 15px max(14px,env(safe-area-inset-bottom));z-index:100;backdrop-filter:blur(2px)}.capsule{max-height:min(94dvh,800px);width:100%;max-width:400px;padding:24px 18px;border-radius:24px}.capsule h2{font-size:28px}.capsule .capsule-story{font-size:13px}.capsule .orders-preview{margin:10px auto;padding:10px}.capsule .orders-preview p{padding:5px 0;font-size:12px}.capsule .rating{font-size:43px}.capsule .actions{gap:7px}.capsule .primary{min-height:49px}.boot-error{display:none}}
@media(max-width:370px){.topbar{padding:4px 9px}.headline h1{font-size:21px}.app{padding:6px 7px}.station-heading strong{font-size:11px}.counter{gap:16px}.ticket-copy strong{font-size:14px}.control{font-size:10px}.stage-foot{font-size:9px}.cake-selector button{padding:3px 5px;font-size:9px}}
@media(max-height:650px) and (max-width:680px){.topbar{height:46px;flex-basis:46px}.headline h1{font-size:20px}.headline .eyebrow{display:none}.stage{gap:4px}.awning{height:5px;flex-basis:5px}.ticket{min-height:50px;padding:4px 7px}.customer-avatar{width:34px;height:34px;flex-basis:34px;font-size:20px}.ticket-copy small{display:none}.cake-selector,.plate-name{min-height:26px}.station-detail{min-height:19px;font-size:9px}.cut-strip{padding:5px}.cut-buttons button{min-height:36px}.control{min-height:39px}.stage-foot{min-height:17px}.bottom-note{padding:3px 1px;font-size:9px}}
@media(max-width:680px) and (orientation:landscape){.headline{display:none}.counter{max-height:none}.station{padding:3px}.station-heading{min-height:15px}.cake-selector,.plate-name{min-height:22px}.station-detail{min-height:13px}.cut-strip{padding:3px}.cut-buttons button{min-height:31px}.control{min-height:35px}.topbar{height:38px;flex-basis:38px}.top-link{min-height:32px}.ticket{min-height:42px}.customer-avatar{width:31px;height:31px;flex-basis:31px;font-size:19px}.stage{padding:5px}.bottom-note{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.topbar,.cut-strip,.control-row,.stage-foot,.bottom-note,.capsule-layer{display:none!important}}

.storage-status{margin:0;text-align:center;color:#836c54;font-size:10px;min-height:12px}@media(max-width:680px){.storage-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
/* Capsules : les boutons restent à portée sur les petits écrans. */
.capsule .actions{position:sticky;bottom:-15px;background:linear-gradient(transparent,#fff8eb 12px,#fff8eb);padding:12px 0 8px;z-index:2}
.capsule #capsuleBody>.primary{position:sticky;bottom:-16px;z-index:2}
@media(max-width:370px) and (max-height:540px){.capsule{padding:14px 13px}.capsule .capsule-icon{font-size:34px}.capsule h2{font-size:24px;margin-bottom:6px}.capsule .capsule-story{font-size:12px;line-height:1.35;margin-bottom:6px}.capsule .rating{font-size:31px}.capsule .reward-disc{width:45px;height:45px;font-size:26px;margin-bottom:5px}.capsule .summary-grid{margin:8px 0;padding:6px}.capsule .orders-preview{margin:7px 0;padding:7px 9px}.capsule .little{margin:6px 0;font-size:11px}.capsule .actions{margin-top:6px}}
/* Sur iPhone tourné horizontalement, garder le comptoir et les commandes visibles. */
@media (orientation:landscape) and (max-height:540px) and (max-width:1024px){
html,body,.wrap{height:100%;height:100dvh;overflow:hidden}
.wrap{display:flex;flex-direction:column;width:100%}
.topbar{height:38px;flex:0 0 38px;padding:3px 15px}
.panda-small{font-size:20px}.brand strong{font-size:11px}.brand small{display:none}
.top-link{min-height:32px;font-size:11px;padding:3px 12px}
.app{height:auto;flex:1;min-height:0;max-width:100%;width:100%;display:flex;flex-direction:column;padding:3px 10px 2px}
.headline{display:none}.stage{flex:1;min-height:0;display:grid;grid-template-columns:minmax(230px,.85fr) minmax(0,1.35fr);grid-template-rows:7px 1fr auto auto;gap:4px 9px;padding:5px 9px}
.awning{grid-area:1/1/2/3;height:5px;margin:-4px -6px 1px}
.ticket{grid-area:2/1/3/2;align-self:start;min-height:55px;max-width:100%;padding:5px 7px;gap:7px}
.customer-avatar{width:35px;height:35px;flex-basis:35px;font-size:19px}.ticket-copy>span{font-size:8px}.ticket-copy strong{font-size:14px}.ticket-copy small{display:none}.ticket-counter{font-size:10px;padding:5px}
.counter{grid-area:2/2/5/3;align-self:stretch;margin:0;max-height:none;width:100%;grid-template-columns:1fr 1fr;gap:15px}
.station{min-height:0;padding:4px 6px;border-radius:12px}.station-heading{min-height:15px}.station-heading strong{font-size:11px}.station-heading span{font-size:9px}.cake-selector,.plate-name{min-height:20px}.cake-selector button{min-height:23px;font-size:9px}.station-detail{min-height:15px;font-size:9px}.pie-frame{min-height:0;flex:1}.pie-frame svg{height:100%;width:min(100%,150px);max-height:100%;min-height:0}.swap-arrow{width:22px;height:22px;font-size:15px}
.cut-strip{grid-area:3/1/4/2;width:100%;margin:0;padding:5px;display:grid;grid-template-columns:1fr;gap:3px}.cut-heading{font-size:10px;text-align:center}.cut-buttons{gap:4px}.cut-buttons button{min-height:30px;font-size:11px;padding:3px}.cut-buttons button span{font-size:7px}
.control-row{grid-area:4/1/5/2;margin:0;width:100%;gap:4px}.control{min-height:33px;font-size:10px;padding:4px 3px}
.stage-foot,.bottom-note,.storage-status{display:none}
.capsule-layer{position:fixed;inset:0;padding:5px 10px;display:grid;place-items:center;z-index:100}.capsule{max-height:calc(100dvh - 10px);width:min(90vw,540px);padding:10px 16px;border-radius:17px}.capsule h2{font-size:22px;margin-bottom:5px}.capsule .capsule-icon{font-size:27px;margin:0}.capsule .capsule-eyebrow{font-size:9px;margin-bottom:3px}.capsule .capsule-story{font-size:12px;line-height:1.4;margin-bottom:6px}.capsule .orders-preview{margin:5px auto;padding:6px 11px}.capsule .orders-preview p{padding:3px 0}.capsule .little{font-size:10px;margin:3px}.capsule .summary-grid{margin:5px 0;padding:6px}.capsule .rating{font-size:27px}.capsule .reward-disc{width:43px;height:43px;font-size:24px;margin-bottom:4px}.capsule .actions{margin-top:5px;padding:5px}.capsule .actions button,.capsule #capsuleBody>.primary{min-height:36px;font-size:12px;padding:6px}.capsule .footer-hint{margin-top:5px;padding-top:5px}
}
