:root{--cream:#f4efe2;--paper:#fffdf3;--ink:#374d4b;--teal:#268982;--copper:#985c37;--line:#d2c8ab;--muted:#5d6b60;font-family:"Be Vietnam Pro",sans-serif;color:var(--ink);background:var(--cream);font-size:14px}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}button{min-height:44px;border:1px solid var(--line);border-radius:11px;background:var(--paper);padding:9px 12px;font-weight:700;cursor:pointer;touch-action:manipulation}button:hover{background:#e5f0e7}button:focus-visible,select:focus-visible{outline:3px solid var(--teal);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{background:#d6eae0;border-color:var(--teal)}main{width:min(880px,100%);margin:auto;padding:12px 16px 22px}header{display:flex;justify-content:space-between;align-items:center;gap:8px}.brand{display:flex;align-items:center;gap:7px}.brand img{width:52px;height:52px;object-fit:contain}.brand strong{font-size:16px;line-height:1.08;letter-spacing:1px}nav{display:flex;gap:6px}#pause{min-width:44px}#tabs,#menuTabs{display:flex;gap:6px;margin:8px 0}#tabs button,#menuTabs button{flex:1;min-width:0;padding:8px 5px;font-size:12px}#hud{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:7px 0}#levelName{color:var(--copper)}#efficiency{font-size:12px}#workspace{display:grid;grid-template-columns:minmax(304px,396px) 1fr;gap:18px;align-items:start;margin-top:5px}#book{position:relative;aspect-ratio:1;min-width:304px;width:100%;max-width:396px}canvas{display:block;width:100%;height:100%;border-radius:20px;background:var(--paper) url(assets/paper.webp) center/cover}#cells{position:absolute;inset:0}.cell{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;border-radius:8px;min-height:0;padding:0;touch-action:none}.cell:hover{background:#ffffff15}.cell:focus-visible,.cell.candidate{outline:2px solid var(--teal);outline-offset:-2px}.cell:disabled{opacity:1}.cell .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.instruction{background:var(--paper);border-left:4px solid var(--copper);padding:12px 14px;border-radius:4px 12px 12px 4px}.instruction strong{color:var(--copper);font-size:15px}.instruction p{font-size:12px;line-height:1.6;margin:8px 0 0}#detail{font-size:12px;line-height:1.6;min-height:37px;margin:10px 0;color:var(--muted)}#pipeTools{display:grid;grid-template-columns:1fr 1fr;gap:7px}#test{grid-column:span 2;background:#a4d4c5;border-color:#5c9b86}#lineTools button{width:100%;margin-bottom:8px}#tools{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}#tools button{flex:1;padding:9px 6px;font-size:12px}#phase{color:var(--teal);font-weight:700;font-size:12px;line-height:1.55;min-height:18px}#advice{background:#eaf1de;color:#355e51;border-radius:9px;padding:10px;font-size:12px;line-height:1.6}#advice:empty{display:none}.short,#notice{font-size:11px;line-height:1.6;color:var(--muted)}dialog{width:min(530px,calc(100% - 24px));max-height:calc(100dvh - 28px);border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#263d3ac7;backdrop-filter:blur(3px)}dialog h2{font-size:20px}dialog p{font-size:13px;line-height:1.7}dialog>button{margin:4px 2px}.hero img{display:block;width:100%;border-radius:14px}.hero h1{font-size:28px;line-height:1.2;margin:13px 0 0}#levels{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0}#levels button{padding:8px 3px}#levels small{display:block;color:var(--copper);font-size:11px}details{margin:14px 0}summary{min-height:44px;padding:11px 0;cursor:pointer;font-weight:700}.settings{display:grid;gap:6px}.settings label{display:flex;gap:10px;align-items:center;min-height:44px}.settings input{width:20px;height:20px}.settings select{min-height:44px;max-width:70%}#result{text-align:center}#result>img{width:112px;height:112px;object-fit:contain;display:block;margin:auto}[hidden]{display:none!important}
@media(max-width:640px){main{padding:8px}.brand img{width:44px;height:44px}.brand strong{font-size:14px}#tabs button,#menuTabs button{font-size:10px;line-height:1.35}#hud{gap:8px;padding:5px 0}#efficiency{font-size:11px}#workspace{grid-template-columns:1fr;gap:10px}#book{margin:auto}#detail{min-height:0;margin:7px 0}.instruction{padding:9px 11px}.instruction p{margin-top:5px}dialog{padding:14px}}
@media(max-height:500px) and (min-width:641px){main{padding:6px 10px}header{height:40px}.brand img{width:36px;height:36px}.brand strong{font-size:12px}#tabs{margin:5px 0}#hud{padding:3px 0}#workspace{grid-template-columns:304px 1fr;gap:10px;margin-top:3px}.instruction{padding:8px 10px}.instruction p{margin-top:5px}#detail{margin:5px 0;min-height:0}#tools{margin-top:5px}#phase{margin:6px 0}.short{margin:5px 0}}
