/* Compact RAM workspace. All controls scoped to the new module. */
body:has(#ram:not(.hidden) .ram51Screen){overflow:hidden}
body:has(#ram:not(.hidden) .ram51Screen)>header,body:has(#ram:not(.hidden) .ram51Screen)>#saveState,#ram:has(.ram51Screen)>h1{display:none}
body:has(#ram:not(.hidden) .ram51Screen)>main{padding:0;max-width:700px;height:100dvh}
#ram:has(.ram51Screen){height:100%}
.ram51Screen{height:100dvh;display:flex;flex-direction:column;gap:4px;padding:5px 6px max(5px,env(safe-area-inset-bottom));overflow:hidden;max-width:700px;margin:auto;background:#f5f8fa}
.ram51Screen button{touch-action:manipulation;user-select:none;-webkit-user-select:none}
.ram51Screen button:active{background:#c5e6ed;outline:3px solid #0b637b;outline-offset:-3px;transform:scale(.97)}
.ram51Screen button.primary:active{background:#074658;color:#fff}
.ram51Screen button:focus-visible{outline:3px solid #dd8f00;outline-offset:-3px}
.ram51Screen button:disabled{opacity:.45;cursor:default}
.ram51Top{display:flex;gap:5px;align-items:center;flex:0 0 auto;font-size:12px}
.ram51Top>b{white-space:nowrap}.ram51Top>button{margin-left:auto;min-height:44px;padding:4px 9px}
.ram51Save{display:flex;align-items:center;gap:5px;color:#205c32;font-size:12px;min-height:20px;line-height:1.3}
.ram51Save button{padding:3px 6px;min-height:44px}
.ram51Save[data-state=saving]{color:#725100}.ram51Save[data-state=error]{color:#a02116;background:#ffe0dc;border:1px solid #a02116}
.ram51Points{flex:0 0 auto;display:flex;gap:5px;overflow-x:auto;min-height:48px}
.ram51Points>button{flex:0 0 auto;min-height:48px;min-width:80px;padding:3px 8px;border:2px solid #96aeb8;border-radius:6px;background:#edf3f6;line-height:1.15}
.ram51Points b,.ram51Points span{display:block}.ram51Points span{font-size:11px;white-space:nowrap;margin-top:3px}
.ram51Points>button.selected{border:3px solid #0b637b;background:#d9f0f4}
.ram51Points>button:last-child{min-width:44px}
.ram51History{flex:1 1 auto;min-height:48px;overflow:auto;background:#fff;border:1px solid #81959e;overscroll-behavior:contain}
.ram51Head,.ram51Row{display:grid;grid-template-columns:1.05fr .8fr .9fr .9fr;text-align:center;align-items:stretch;font-variant-numeric:tabular-nums}
.ram51Head{position:sticky;top:0;z-index:2;background:#dfe8ec;font-size:13px;min-height:27px}
.ram51Head>b{padding:5px 2px;border-right:1px solid #aab9bf}
.ram51Row{border-top:1px solid #aab9bf;min-height:44px;font-size:17px}
.ram51Row>*{display:flex;align-items:center;justify-content:center;padding:3px;border-left:1px solid #aab9bf}
.ram51Row>button{min-height:44px;border:0;border-radius:0;background:transparent;padding:2px;font-size:15px;gap:3px}
.ram51Row small{font-size:10px;font-weight:400}.ram51Row.latest{background:#e2f2f5}.ram51Row.editing{background:#fff0be;outline:3px solid #a76a00;outline-offset:-3px}
.ram51Row .missing{background:#fff0be;font-size:13px;font-weight:800}
.ram51HistoryFooter{display:flex;gap:5px;justify-content:space-between;flex:0 0 auto}
.ram51HistoryFooter button{min-height:44px;padding:3px 12px;font-size:13px}
.ram51Dock{flex:0 0 auto;background:#edf3f6;border-top:2px solid #0b637b;padding-top:4px}
.ram51Entry{display:flex;align-items:center;gap:5px;min-height:48px;white-space:nowrap}
.ram51Entry>b{font-size:14px;flex:0 0 auto}.ram51Entry>label{font-size:14px;margin:0}
.ram51Entry input{margin:0;min-width:0;flex:1;width:40px;height:48px;min-height:48px;font-size:27px;font-weight:900;text-align:center;padding:3px;border:2px solid #7c9da9;background:#fff;caret-color:transparent}
.ram51TorqueButton{min-height:48px;padding:3px 5px;background:#fff0be!important;font-size:11px;line-height:1.3}
.ram51Entry.edit{display:block;white-space:normal}.ram51Entry.edit>b{display:block;font-size:13px;margin-bottom:3px}
.ram51EditValues{display:flex;gap:5px}.ram51Value{flex:1;min-width:0;padding:3px;min-height:48px}.ram51Value>small,.ram51Value>b{display:block}.ram51Value.active{border:3px solid #0b637b;background:#d9f0f4}.ram51Value>small{font-size:11px}.ram51Value>b{font-size:19px}
.ram51Keys{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,48px);gap:4px;margin-top:4px}
.ram51Keys button{font-size:27px;font-weight:800;min-height:48px;padding:0;border-radius:6px;background:#dfe7ec;border:1px solid #afc0c9}
.ram51Keys button[data-key="消去"]{font-size:18px}
.ram51Decimal{width:100%;min-height:44px;margin-top:4px;padding:0;font-size:15px;background:#dfe7ec}
.ram51Actions{display:grid;grid-template-columns:1fr 1.5fr;gap:6px;margin-top:4px}
.ram51Actions button{min-height:48px;padding:4px 3px;font-size:16px;white-space:nowrap}
.ram51Dock #ramMessage{font-size:12px;font-weight:700;color:#984000;background:#fff0be;padding:4px;margin:3px 0;height:26px;overflow:auto}.ram51Dock #ramMessage:empty{background:transparent}
.ram51TorqueTop{position:sticky;top:0;background:#fff;z-index:3;padding:4px;border-bottom:1px solid #aab9bf}
.ram51TorqueTop>b{font-size:13px}.ram51TorqueTop>div{display:flex;gap:4px;align-items:center}.ram51TorqueTop button{min-height:44px;padding:3px 10px}.ram51TorqueTop strong{font-size:13px;margin-left:auto}
.ram51TorqueRow{display:grid;grid-template-columns:44px 1fr 1fr 1fr;margin:0;min-height:48px;border-bottom:1px solid #aab9bf;align-items:center;font-size:13px;text-align:center;font-weight:500}
.ram51TorqueRow>input{width:22px;height:22px;min-height:22px;margin:auto}.ram51TorqueRow.selected{background:#d9f0f4;box-shadow:inset 3px 0 #0b637b}
.ram51Rod{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:3px 6px;background:#fff5d3;font-size:12px}.ram51Rod button{min-height:44px;padding:3px 7px}
.ram51Menu{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;flex:0 0 auto}.ram51Menu button{font-size:13px;min-height:44px;padding:3px}
.ram51Confirm{flex:0 0 auto;padding:5px;background:#fff0be;border:2px solid #a76a00;font-size:13px}.ram51Confirm p{margin:4px 0}.ram51Confirm button{min-height:44px;padding:4px 10px}
.ram51Undo{padding:5px;background:#e4f5e7;font-size:13px}.ram51Undo button{min-height:44px;padding:3px 8px}
.ram51Elevation{display:grid;grid-template-columns:1fr auto;gap:5px;border:1px solid #97adb7;padding:10px;background:#fff;margin:8px 0}.ram51Elevation>span{font-size:13px}.ram51Elevation label,.ram51Elevation>button{grid-column:1/-1;margin:0}.ram51LevelToggle{margin:14px 0;padding:10px;background:#dfeaf0;min-height:44px}
#ramRoot .fieldFlow>p#ramMessage{color:#984000;font-weight:700}
@media(min-height:720px){.ram51Keys{grid-template-rows:repeat(4,54px)}.ram51Actions button{min-height:54px}}
@media(max-height:560px){.ram51Keys{grid-template-rows:repeat(4,44px)}.ram51Keys button{min-height:44px}.ram51Top>button{min-height:44px}.ram51Actions button{min-height:44px}.ram51HistoryFooter{display:none}}
@media(max-height:560px){.ram51HistoryFooter:has([data-ram="requestDeleteRow"]){display:flex}.ram51HistoryFooter:has([data-ram="requestDeleteRow"]) [data-ram="latest"]{display:none}}

.ram51Entry .ram51Decimal{width:44px;min-width:44px;min-height:48px;margin:0;flex:0 0 44px;font-size:22px}
