:root{--accent:#167953;--accent-strong:#0f6848;--focus:#99f6e4;--grid-line:#cbd5e1;--grid-line-soft:#dbe3ec;--header-bg:#eef2f7;--panel:#fff;--page-bg:#f5f7fa;--sheet-bg:#fbfdf9;--text-muted:#64748b;--text-strong:#0f172a;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--text-strong);background:var(--page-bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{background:var(--page-bg);width:100%;min-height:100vh;overflow:auto}.spreadsheet-app{background:var(--sheet-bg);min-height:100vh;color:var(--text-strong);grid-template-rows:auto minmax(0,1fr) auto;display:grid}.spreadsheet-chrome{z-index:20;background:#fff;position:sticky;top:0;box-shadow:0 2px 8px #0f172a14}.titlebar,.menubar,.toolbar,.formula-bar,.sheet-tabs{border-bottom:1px solid var(--grid-line)}.titlebar{color:#fff;background:#0f6b3d;justify-content:space-between;align-items:center;gap:10px;min-height:32px;padding:3px 10px 3px 8px;display:flex}.titlebar__identity{align-items:center;gap:8px;min-width:0;display:flex}.brand-mark{color:#fff;background:#ffffff29;border-radius:3px;place-items:center;width:22px;height:22px;font-size:14px;font-weight:800;display:grid}h1,h2,p{margin:0}h1{font-size:clamp(.86rem,1.5vw,1rem);line-height:1.2}.titlebar p{color:#ffffffc7;font-size:.68rem}.titlebar__actions{color:#ffffffd1;white-space:nowrap;align-items:center;gap:8px;font-size:.72rem;display:flex}.titlebar__actions button,.menubar button,.toolbar button,.sheet-tabs button,.start-screen button,.result-panel button,.modal-card button{color:inherit;background:0 0;border:1px solid #0000;border-radius:8px}.titlebar__actions button{color:#fff;background:#ffffff24;border-color:#ffffff52;min-height:22px;padding:2px 9px;font-weight:700}.window-controls{letter-spacing:.25em}.menubar{background:#f8f8f8;align-items:center;gap:1px;min-height:30px;padding:0 8px;display:flex;overflow-x:auto}.menubar button{color:#323130;white-space:nowrap;border-radius:0;min-height:30px;padding:0 10px;font-size:.8rem}.menubar button:first-child{color:#fff;background:#107c41}.menubar button:nth-child(2){color:#107c41;background:#fff;font-weight:800;box-shadow:inset 0 -2px #107c41}.menubar button:hover,.toolbar button:hover,.sheet-tabs button:hover{background:#e6f4ea;border-color:#9fd5b6}.toolbar{overscroll-behavior-x:contain;background:#fff;align-items:stretch;gap:0;min-height:112px;padding:5px 8px 4px;display:flex;overflow-x:auto}.toolbar button{color:#323130;white-space:nowrap;background:#fff;border-color:#0000000a;border-radius:2px;min-width:42px;min-height:30px;padding:3px 5px;font-size:.68rem;font-weight:650}.ribbon-group{border-right:1px solid #edebe9;grid-template-rows:1fr auto;align-items:stretch;min-width:max-content;padding:0 8px;display:grid}.ribbon-group__tools{grid-template-rows:repeat(3,minmax(28px,auto));grid-auto-flow:column;place-content:center;gap:3px;display:grid}.ribbon-group:first-child .ribbon-group__tools{grid-template-columns:max-content}.ribbon-group:first-child .ribbon-group__tools button:first-child{background:#f3f2f1;grid-row:span 3;min-height:82px;padding:6px 12px;font-weight:800}.ribbon-tool{grid-template-columns:18px max-content;justify-content:start;align-items:center;column-gap:5px;display:grid}.ribbon-tool__icon{object-fit:contain;image-rendering:auto;width:18px;height:18px}.ribbon-tool__label{line-height:1.1}.ribbon-tool--large{grid-template-columns:1fr;align-content:center;justify-items:center;row-gap:5px}.ribbon-tool--large .ribbon-tool__icon{width:30px;height:30px}.ribbon-group__label{color:#605e5c;text-align:center;padding-top:3px;font-size:.66rem;font-weight:700;display:block}.formula-bar{background:#f3f2f1;grid-template-columns:78px 32px minmax(220px,1fr) auto;align-items:center;gap:5px;min-height:32px;padding:3px 8px;display:grid}.name-box-wrap{min-width:0;position:relative}.name-box,.fx-label,.formula-input,.formula-state{border:1px solid var(--grid-line);color:#334155;background:#fff;align-items:center;min-height:24px;font-size:.8rem;display:flex}.name-box{width:100%;font-family:var(--font-mono);border-radius:4px;justify-content:center;padding:0;font-weight:700}.name-box:disabled{cursor:default;opacity:1}.name-box--home{color:#047857;cursor:pointer;background:#ecfdf5;border-color:#1679539e;box-shadow:inset 0 -1px #16795380}.name-box-callout{z-index:40;color:#047857;cursor:pointer;background:#ecfdf5;border:1px solid #16795373;border-radius:999px;min-width:98px;min-height:26px;padding:0 10px;font-size:.76rem;font-weight:800;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 8px 18px #0f172a24}.name-box-callout:before{content:"";background:#ecfdf5;border-top:1px solid #16795373;border-left:1px solid #16795373;width:8px;height:8px;position:absolute;top:-5px;left:18px;transform:rotate(45deg)}.fx-label{color:var(--accent);border-color:#0000;justify-content:center;font-family:Georgia,serif;font-style:italic;font-weight:700}.formula-input{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:0 10px;overflow:hidden}.formula-state{color:#047857;white-space:nowrap;background:#ecfdf5;border-radius:999px;justify-content:center;padding:0 10px;font-weight:700}.sheet-area{--sheet-cell-width:67px;--sheet-row-height:24px;--sheet-play-columns:10;--sheet-play-rows:14;--sheet-visible-rows:25;--sheet-play-width:calc(var(--sheet-cell-width) * var(--sheet-play-columns));--sheet-play-height:calc(var(--sheet-row-height) * var(--sheet-play-rows));grid-template-columns:42px minmax(var(--sheet-play-width), 1fr);grid-template-rows:var(--sheet-row-height) minmax(0, 1fr);background:linear-gradient(var(--grid-line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line-soft) 1px, transparent 1px), var(--sheet-bg);background-size:var(--sheet-cell-width) var(--sheet-row-height);min-height:0;display:grid;overflow:auto}.sheet-corner{z-index:3;background:var(--header-bg);border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);position:sticky;top:0;left:0}.column-headers{z-index:2;grid-template-columns:repeat(var(--sheet-play-columns), var(--sheet-cell-width));background:var(--header-bg);border-bottom:1px solid var(--grid-line);display:grid;position:sticky;top:0}.column-headers span,.row-headers span{color:#64748b;font-family:var(--font-mono);place-items:center;font-size:.68rem;font-weight:650;display:grid}.column-headers span{border-right:1px solid var(--grid-line)}.row-headers{z-index:2;grid-template-rows:repeat(var(--sheet-visible-rows), var(--sheet-row-height));background:var(--header-bg);border-right:1px solid var(--grid-line);display:grid;position:sticky;left:0}.row-headers span{border-bottom:1px solid var(--grid-line)}.sheet-cells{min-width:var(--sheet-play-width);min-height:calc(var(--sheet-row-height) * var(--sheet-visible-rows));background:linear-gradient(var(--grid-line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line-soft) 1px, transparent 1px), white;background-size:var(--sheet-cell-width) var(--sheet-row-height);place-items:start;padding:0;display:grid;position:relative}.start-screen{width:var(--sheet-play-width);grid-template-columns:repeat(var(--sheet-play-columns), var(--sheet-cell-width));grid-auto-rows:var(--sheet-row-height);color:#334155;font-family:var(--font-mono);align-items:stretch;margin:0;display:grid}.start-cell{min-width:0;min-height:var(--sheet-row-height);border-right:1px solid var(--grid-line-soft);border-bottom:1px solid var(--grid-line-soft);color:#334155;text-overflow:ellipsis;white-space:nowrap;background:#ffffffe0;align-items:center;gap:6px;padding:0 8px;font-size:.76rem;line-height:1.2;display:flex;overflow:hidden}.start-cell--muted{color:#94a3b8;background:#f8fafce6;grid-column:span 2}.start-cell--wide{grid-column:span 5;font-weight:750}.start-cell--status{color:#047857;grid-column:span 3;font-weight:750}.start-cell--title{color:#0f172a;letter-spacing:-.03em;grid-column:span 4;margin:0;font-size:1rem;font-weight:850}.start-cell--memo{grid-column:span 6}.start-cell--label{color:#475569;background:#f8fafce6;grid-column:span 2;font-weight:750}.start-cell--controls{grid-column:span 8}.start-cell--note{color:#047857;grid-column:span 2}.start-screen__difficulty,.start-screen__actions{flex-wrap:wrap}.start-screen__difficulty button,.start-screen__primary,.start-screen__secondary{border-color:var(--grid-line);color:#334155;background:#ffffffeb;border-radius:2px;min-height:20px;padding:0 8px;font-size:.72rem;font-weight:750;line-height:1}.start-screen__difficulty button.is-selected,.start-screen__primary{color:#047857;background:#ecfdf5e6;border-color:#1679538c;box-shadow:inset 0 -1px #1679538c}.start-screen__secondary{color:#475569}.result-panel,.modal-card{border:1px solid var(--grid-line);box-shadow:none;background:#fffffff5;border-radius:0}.game-screen{width:var(--sheet-play-width);min-height:calc(var(--sheet-row-height) + var(--sheet-play-height));grid-template-rows:var(--sheet-row-height) var(--sheet-play-height);outline-offset:-1px;background:#fff;outline:1px solid #16795361;align-items:start;display:grid;position:relative}.game-hud{grid-template-columns:repeat(4, calc(var(--sheet-cell-width) * 2)) 1fr;min-height:var(--sheet-row-height);background:#fffffff5;margin:0;display:grid}.hud-cell{min-width:0;min-height:var(--sheet-row-height);border-right:1px solid var(--grid-line-soft);border-bottom:1px solid var(--grid-line-soft);font-family:var(--font-mono);background:#fffffff0;align-items:center;gap:6px;padding:0 7px;display:flex}.hud-cell span{color:#64748b;white-space:nowrap;font-size:.62rem;font-weight:650;line-height:1;display:block}.hud-cell strong{color:#334155;white-space:nowrap;font-size:.72rem;line-height:1;display:block}.game-canvas-frame{width:var(--sheet-play-width);height:var(--sheet-play-height);background:0 0;border:0;padding:0;position:relative}.game-canvas-frame:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#0f172a12 1px,#0000 1px),linear-gradient(90deg,#0f172a0e 1px,#0000 1px);background-size:var(--sheet-cell-width) var(--sheet-row-height);border:1px solid #16795361;position:absolute;inset:0}.game-canvas-host{width:var(--sheet-play-width);height:var(--sheet-play-height);background:#fff;border:0;margin:0;overflow:hidden}.game-canvas-host canvas{width:100%;height:100%;display:block}.result-panel{padding:14px}.result-panel h2{margin-bottom:8px;font-size:1.25rem}.result-panel p{color:#475569}.result-panel dl{grid-template-columns:1fr auto;gap:8px 14px;margin:18px 0;display:grid}.result-panel dt{color:var(--text-muted);font-size:.82rem}.result-panel dd{margin:0;font-weight:800}.result-panel__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.result-panel__actions button{width:100%}.result-overlay{top:58px;left:calc(var(--sheet-cell-width) * 2);z-index:6;border:1px solid var(--grid-line);background:#fffffff5;width:360px;position:absolute;box-shadow:0 12px 24px #0f172a1f}.sheet-tabs{min-height:36px;color:var(--text-muted);background:#f8fafc;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;display:flex}.sheet-tabs__tab,.sheet-tabs__add{min-height:26px;padding:0 12px}.sheet-tabs__tab--active{color:var(--accent);border-color:var(--accent);background:#fff;font-weight:800}.sheet-tabs__add{border-color:var(--grid-line);background:#fff;min-width:28px;padding:0;font-weight:900}.modal-backdrop{z-index:10;background:#0f172a5c;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{width:min(100%,420px);padding:18px}.modal-card__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-card__header button{min-width:32px;min-height:32px;padding:0}.modal-card ol{color:#475569;padding-left:20px}.modal-card li+li{margin-top:8px}button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (width<=820px){.titlebar{gap:8px;min-height:30px}.menubar{min-height:28px}.menubar button{min-height:28px;padding:0 9px}.toolbar{min-height:74px;padding:4px 8px}.ribbon-group{padding:0 7px}.ribbon-group__tools{grid-template-rows:repeat(2,minmax(28px,auto));grid-auto-flow:column;gap:2px;display:grid}.ribbon-group__tools button:nth-child(n+5),.ribbon-group:nth-of-type(n+7){display:none}.ribbon-group:first-child .ribbon-group__tools button:first-child{grid-row:span 2;min-height:46px;padding:3px 8px}.ribbon-group__label{padding-top:2px}.formula-bar{grid-template-columns:78px 28px minmax(180px,1fr)}.formula-state{display:none}.sheet-area{grid-template-columns:38px minmax(var(--sheet-play-width), 1fr)}.sheet-cells{min-width:var(--sheet-play-width);padding:0}.game-hud{grid-template-columns:repeat(4, calc(var(--sheet-cell-width) * 2)) 1fr}.result-panel{max-width:100%}}@media (width<=420px){.titlebar{padding:3px 8px}.titlebar p{display:none}.titlebar__actions{gap:5px}.titlebar__actions span:not(.window-controls),.titlebar__actions button{display:none}.toolbar{min-height:56px}.toolbar button{min-width:34px;min-height:24px;padding:2px 5px}.ribbon-tool{grid-template-columns:1fr;justify-items:center}.ribbon-tool__icon{width:17px;height:17px}.ribbon-tool__label,.ribbon-group:nth-of-type(n+5){display:none}.ribbon-group__label{font-size:.68rem}.sheet-cells{padding:0}}
