:root{--bg:#f6f3ee;--bg1:#5592f24d;--bg2:#80c1594d;--bg3:#fea8324d;--text:#151c23;--muted:#5b6477;--cube:#ffffff;--border:#d0d5dd;--selected:#3b82f6;--warning:#f27e16;--error:#ef4444;--success:#16a34a}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;font-family:"Roboto",sans-serif;background:radial-gradient(circle at top,#fffaf1,var(--bg));color:var(--text)}main{width:min(786px,calc(100vw - 32px));padding:32px;border-radius:24px;background:rgba(255,255,255,.72);box-shadow:rgba(50,50,93,.25) 0 13px 27px -5px,rgba(0,0,0,.3) 0 8px 16px -8px;backdrop-filter:blur(8px)}a:link,a:visited,a:active{color:#999;text-decoration:none}a:hover{color:#ef7777}h1{margin:0 0 8px;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.1;text-align:center}button,input{font-family:inherit}.rule{margin:0 0 28px;color:var(--muted);font-size:1.05rem;text-align:center}.input-litre{display:flex;align-items:center;justify-content:center;gap:6px}.input-litre span{font-size:1.2rem;color:#bbb}.bottles{display:flex;justify-content:center;gap:clamp(18px,5vw,32px);flex-wrap:wrap}.bottle-card{display:grid;gap:12px;justify-items:center}.input-row{display:flex;align-items:center;justify-content:center;gap:6px}input{width:120px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;font:inherit;text-align:center;background:white;color:var(--text)}input:focus{outline:3px solid rgba(59,130,246,.18);border-color:var(--selected)}.input-unit{font-size:1rem;font-weight:600;color:var(--muted)}.cube{position:relative;width:150px;height:150px;display:grid;place-items:center;border:3px solid var(--border);border-radius:22px;box-shadow:inset -10px -10px 24px rgba(31,41,51,.05),inset 10px 10px 24px rgba(255,255,255,.9),0 14px 32px rgba(31,41,51,.12);cursor:pointer;user-select:none;transition:transform 160ms ease,border-color 160ms ease,box-shadow 160ms ease}.cube:hover{transform:translateY(-3px)}.cube.selected{border-color:var(--selected);box-shadow:0 0 0 7px rgba(59,130,246,.16),0 14px 32px rgba(31,41,51,.12)}.cube.error{border-color:var(--error);animation:shake 260ms ease}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}.cube.success{border-color:var(--success);transform:scale(1.03)}.cb1{background-color:#5592f233}.cb2{background-color:#81c05833}.cb3{background-color:#fea83233}.cube.hint-receiver{background-color:#66ff6666}.cube.hint-donor{background-color:#cc66ff66}.bottle-number{position:absolute;top:12px;left:14px;font-size:.95rem;font-weight:700;color:var(--muted);line-height:1}.value{font-weight:700;font-size:2.7rem;letter-spacing:-.04em;color:#1c2126}.message.info{color:var(--muted)}.message.success{color:var(--success);font-weight:500;letter-spacing:.2px}.message.error{color:var(--error);font-weight:500;letter-spacing:.2px}.message.warning{color:var(--warning);font-weight:500}.message{min-height:28px;margin-top:26px;text-align:center;color:var(--muted);font-size:1rem}.message strong{color:var(--text)}.preview{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:1.1rem;font-weight:500;color:#666;pointer-events:none}.history-panel{height:146px;margin:0 15px;overflow-y:auto;background:transparent}.history-list{white-space:pre}.history-panel::-webkit-scrollbar{width:6px}.history-panel::-webkit-scrollbar-thumb{background:#9996;border-radius:3px}.history-panel::-webkit-scrollbar-track{background:transparent}.history-panel{scrollbar-width:thin;scrollbar-color:#9996 transparent}.history-header{display:flex;align-items:center;justify-content:space-between;margin:0 15px 6px}.history-title{font-weight:700}.history-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.history-button{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:#f0f5f0;color:var(--text);font:inherit;font-size:.9rem;cursor:pointer}.history-button:hover{border-color:var(--selected)}.history-button:disabled{opacity:.4;cursor:not-allowed}.history-button.waiting{position:relative;animation:pulsePaste 900ms ease-in-out infinite}@keyframes pulsePaste{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.35)}50%{box-shadow:0 0 0 5px rgba(220,38,38,.12)}}.history-entry{margin:0 0 2px;font-family:"Roboto Flex",monospace}.history-entry.duplicate{color:#d32f2f}.history-entry.permutation{color:var(--warning)}.history-entry.zero{color:var(--success);font-weight:700}.history-list::selection{background:rgba(59,130,246,.22);color:var(--text)}.diceDiv{text-align:center}.dice-button{width:30px!important;cursor:pointer}.dice-button:hover{transform:scale(1.1)}.toolbar{display:flex;align-items:center;justify-content:center;gap:30px;margin-bottom:1rem}.mode-switch{display:flex;align-items:center;justify-content:center;gap:16px;margin-left:18px}.mode-label{font-size:1rem;color:var(--text);white-space:nowrap}#checkboxInput{display:none}.toggleSwitch{display:flex;align-items:center;justify-content:center;position:relative;width:70px;height:20px;background-color:rgb(206,206,206);border-radius:40px;cursor:pointer;transition-duration:.3s}.toggleSwitch::after{content:"";position:absolute;height:30px;width:50%;left:0;background:#f8f5ef;border-radius:40px;transition-duration:.3s;box-shadow:2px 2px 10px rgba(0,0,0,.3)}#checkboxInput:checked + .toggleSwitch::after{transform:translateX(100%);transition-duration:.3s}.toggleSwitch{background-color:rgb(193,254,191);transition-duration:.3s}#checkboxInput:checked + .toggleSwitch{background-color:rgb(220,220,230);transition-duration:.3s}#page{display:flex;gap:0;align-items:stretch;width:min(900px,calc(100vw - 32px))}#page.mode-assistance .analysis-panel{width:0;margin-left:0;padding-left:0;border-left:none;opacity:0}#page.mode-exploration .analysis-panel{margin-left:28px;padding-left:24px;border-left:1px solid var(--border);opacity:1}.app-panel{flex:1;min-width:0}.analysis-panel{font-family:"Roboto Mono",sans-serif;margin-left:28px;padding-left:24px;border-left:1px solid var(--border);overflow:hidden;opacity:0;transition:opacity 220ms ease}.mode-exploration .analysis-panel{width:auto;opacity:1}.mode-assistance .analysis-panel{width:0;opacity:0}#page.mode-assistance .analysis-panel{width:0;margin-left:0;padding-left:0;border-left:none;opacity:0}.analysis-block{margin-bottom:18px}.analysis-block h3{margin:0 0 4px;font-size:1rem}.analysis-block p{margin:2px 0}.analysis-move{margin:2px 0;padding-left:.6rem}.mode-exploration #indiceDonneur{display:none}