.cct-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,var(--can-blue) 0%,var(--can-blue-dark) 100%);color:#fff;padding:16px 22px;border-radius:18px;border:3px solid var(--can-yellow);box-shadow:0 10px 24px #0e274d38;margin-bottom:18px}.brand-group{display:flex;align-items:center;gap:14px}.can-badge{background:var(--can-yellow);color:var(--can-blue-dark);font-weight:900;padding:8px 12px;border-radius:12px;text-align:center;line-height:1.05;box-shadow:inset 0 -3px #0000002e;border:2px solid #fff}.can-badge .sub{display:block;font-size:10px;letter-spacing:.08em;color:var(--can-red);margin-top:2px}.title-block h1{margin:0;font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:900;letter-spacing:.02em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.title-pill{font-size:.78rem;background:var(--can-red);color:#fff;padding:3px 10px;border-radius:999px;font-weight:800}.title-block p{margin:4px 0 0;font-size:.9rem;color:#ffffffdb}.header-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stat-chip{background:#ffffff1f;border:1px solid rgba(255,210,63,.45);border-radius:12px;padding:7px 13px;text-align:center}.stat-chip .label{font-size:.72rem;opacity:.82;display:block}.stat-chip .value{font-size:1.05rem;font-weight:900;color:var(--can-yellow)}.icon-btn{background:#ffffff24;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:9px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:700;transition:transform .12s,background .15s}.icon-btn:hover{background:#ffffff3d;transform:translateY(-1px)}.control-deck{display:grid;grid-template-columns:1.15fr 1.25fr 1.1fr;gap:14px;margin-bottom:18px}.mode-shape-stack{display:flex;flex-direction:column;justify-content:space-between;gap:12px}.mode-shape-stack.solo{justify-content:flex-end}@media(max-width:920px){.control-deck{grid-template-columns:1fr}}.weight-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.weight-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;border:2px solid #d9d3c1;background:#faf8f2;cursor:pointer;text-align:left;transition:all .16s ease}.weight-btn:hover{border-color:var(--can-blue);transform:translateY(-1px)}.weight-btn.active{background:linear-gradient(180deg,#eef4ff,#dce9ff);border-color:var(--can-blue);box-shadow:0 4px 12px #163b7329}.mini-can{width:38px;height:42px;border-radius:7px;background:linear-gradient(180deg,#d7dce5,#aeb7c4 14%,#163b73 14%,#102b54 88%,#c7cdd6 88%);position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #0e274d;box-shadow:inset 0 0 0 1px #fff3}.mini-can.large{width:46px;height:44px}.mini-can-title{color:var(--can-yellow);font-size:8px;font-weight:900;letter-spacing:.04em;line-height:1}.mini-can-meat{width:68%;height:11px;background:#f08a84;border-radius:3px;margin-top:3px;border:1px solid #ffd23f}.weight-info .grams{font-size:1.15rem;font-weight:900;color:var(--can-blue-dark);display:block}.weight-info .desc{font-size:.75rem;color:#5f665f;font-weight:600}.fraction-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.fraction-btn{padding:10px 8px;border-radius:13px;border:2px solid #d9d3c1;background:#faf8f2;cursor:pointer;text-align:center;transition:all .16s ease}.fraction-btn:hover{border-color:var(--can-red);transform:translateY(-1px)}.fraction-btn.active{background:linear-gradient(180deg,#fff1ef,#ffe0dc);border-color:var(--can-red);box-shadow:0 4px 12px #e03a2f2e}.fraction-btn .frac-main{font-size:1.38rem;font-weight:900;color:var(--can-red);display:block;line-height:1.1}.fraction-btn .frac-grams{font-size:.78rem;font-weight:800;color:#2c3531;display:block;margin-top:3px}.fraction-btn .frac-pct{font-size:.69rem;color:#6a716b;display:block}.segmented-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f2eee3;padding:4px;border-radius:10px}.seg-btn{border:none;background:transparent;padding:7px 8px;border-radius:8px;font-size:.78rem;font-weight:800;color:#545d56;cursor:pointer;transition:all .15s;line-height:1.25}.seg-btn.active{background:var(--cct-green);color:#fff;box-shadow:0 2px 6px #1e5e4640}.shape-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.shape-pill{border:1.5px solid #d8d2c1;background:#faf8f2;padding:5px 6px;border-radius:8px;font-size:.74rem;font-weight:700;color:#464f48;cursor:pointer}.shape-pill.active{border-color:var(--can-blue);background:#ebf2ff;color:var(--can-blue-dark)}.board-card{background:#fff;border-radius:20px;border:3px solid #dfd7c2;box-shadow:0 12px 28px #00000014;overflow:hidden;position:relative}.board-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 18px;background:linear-gradient(90deg,#fdfbf5,#f5efe0);border-bottom:2px solid #e6dec8}.mission-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mission-tag{background:var(--can-blue);color:var(--can-yellow);font-weight:900;font-size:.82rem;padding:4px 10px;border-radius:8px}.mission-text{font-size:.95rem;font-weight:800;color:#222}.mission-text strong{color:var(--can-red);font-size:1.05rem}.hint-badge{font-size:.78rem;font-weight:700;color:var(--cct-green);background:#e6f4ee;padding:5px 10px;border-radius:999px}.canvas-wrapper{position:relative;width:100%;background:radial-gradient(circle at center,#fbf4e4,#eddcb9);cursor:crosshair;touch-action:none}.cutting-canvas{display:block;width:100%;height:auto}.board-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 18px;background:#faf7ef;border-top:2px solid #e6dec8}.instruction-tips{font-size:.82rem;color:#545c55;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.action-buttons{display:flex;align-items:center;gap:10px}.scale-card{background:linear-gradient(180deg,#2b3236,#1c2124);color:#fff;border-radius:20px;padding:18px;border:3px solid #525d63;box-shadow:0 10px 24px #00000029}.scale-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.scale-title{font-size:.82rem;font-weight:800;letter-spacing:.06em;color:#9fb1bd;text-transform:uppercase}.lcd-screen{background:#c7dfbe;color:#162615;border-radius:12px;padding:14px 16px;border:3px inset #8aa680;font-family:Courier New,ui-monospace,monospace;box-shadow:inset 0 3px 8px #00000029;margin-bottom:14px}.lcd-top{display:flex;justify-content:space-between;font-size:.76rem;font-weight:800;opacity:.8;margin-bottom:4px}.lcd-main{display:flex;align-items:baseline;justify-content:space-between}.lcd-reading{font-size:1.95rem;font-weight:900;letter-spacing:-.02em}.lcd-target{font-size:.85rem;font-weight:800}.rank-banner{background:#ffffff14;border-radius:13px;padding:12px 14px;margin-bottom:14px;border-left:4px solid var(--can-yellow)}.rank-grade{font-size:1.25rem;font-weight:900;color:var(--can-yellow);display:flex;align-items:center;justify-content:space-between}.rank-comment{font-size:.84rem;color:#e2e8ec;margin-top:4px;line-height:1.35}.slice-breakdown{display:flex;flex-direction:column;gap:8px}.slice-item{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.slice-item.highlight{background:#ffd23f26;border-color:var(--can-yellow)}.slice-tag{display:inline-flex;align-items:center;gap:6px;font-weight:800}.slice-dot{width:10px;height:10px;border-radius:50%;background:var(--meat-pink);display:inline-block}.slice-metrics{text-align:right}.slice-metrics .g{font-weight:900;color:#fff;font-size:.95rem}.slice-metrics .pct{font-size:.75rem;color:#b5c3cc;margin-left:6px}.records-card{background:#fff;border-radius:18px;padding:15px 16px;border:2px solid #e1dbc8}.records-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.record-cell{background:#faf8f2;border:1.5px solid #e4decb;border-radius:10px;padding:8px 6px;text-align:center}.record-cell.current{border-color:var(--can-blue);background:#eef4ff}.record-cell .r-frac{font-size:.78rem;font-weight:900;color:var(--can-red)}.record-cell .r-best{font-size:.92rem;font-weight:900;color:var(--can-blue-dark);margin-top:2px}.record-cell .r-err{font-size:.68rem;color:#6b726c}:root{--can-blue: #163b73;--can-blue-dark: #0e274d;--can-yellow: #ffd23f;--can-red: #e03a2f;--meat-pink: #ef8a84;--meat-deep: #d46560;--board-wood: #f3dfb9;--tile-bg: #f6f4ea;--tile-border: #d7e2d0;--cct-green: #1e5e46;--text-dark: #1f2421}*{box-sizing:border-box;user-select:none;-webkit-user-select:none}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang HK,Microsoft JhengHei,Noto Sans TC,sans-serif;color:var(--text-dark);background-color:#f3efe2;background-image:linear-gradient(90deg,rgba(30,94,70,.06) 1px,transparent 1px),linear-gradient(rgba(30,94,70,.06) 1px,transparent 1px);background-size:32px 32px;min-height:100vh}.app-shell{max-width:1120px;margin:0 auto;padding:18px 16px 40px}.panel-card{background:#fff;border-radius:16px;padding:14px 16px;border:2px solid #e1dbc8;box-shadow:0 5px 14px #0000000d;display:flex;flex-direction:column;justify-content:space-between}.panel-label{font-size:.8rem;font-weight:800;color:#5b645d;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.stage-grid{display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start}@media(max-width:960px){.stage-grid{grid-template-columns:1fr}}.scale-sidebar{display:flex;flex-direction:column;gap:14px}.btn-primary{background:linear-gradient(180deg,var(--can-red) 0%,#bd281e 100%);color:#fff;border:none;padding:10px 18px;border-radius:12px;font-weight:900;font-size:.92rem;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 4px 12px #e03a2f4d;transition:transform .12s}.btn-primary:hover{transform:translateY(-1px)}.btn-secondary{background:#fff;color:var(--can-blue-dark);border:2px solid #cbd3df;padding:8px 14px;border-radius:12px;font-weight:800;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn-secondary:hover{border-color:var(--can-blue);background:#f4f8ff}
