@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff) format("woff")}:root{--bg: #E4E6E2;--card: #EFF1ED;--stage: #EDF0EC;--paper-hi: #F8FAF7;--ink: #1E3A4C;--ink-deep: #16303F;--mut: #526573;--accent-soft: #DCE3E3;--line: rgba(30,58,76,.58);--rule: rgba(30,58,76,.26);--grid: linear-gradient(rgba(30,58,76,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(30,58,76,.09) 1px, transparent 1px);--grid-size: 14px;--on-ink-line: rgba(228,230,226,.45);--on-ink-field: rgba(228,230,226,.35);--ok: #2C6E63;--ok-soft: #DBE8E4;--tight: #975224;--st-ghost: rgba(30,58,76,.62);--fn: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-0: 10px;--fs-1: 11.5px;--fs-2: 12.5px;--fs-3: 13px;--fs-4: 14.5px;--fs-5: 16px;--fs-6: 19px;--lbl: .16em;--lbl-sm: .06em;--sp-0: 2px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--focus-w: 2px}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--ink);font:var(--fs-4)/1.55 var(--fn)}#app{max-width:720px;margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-6);min-height:100vh}h1{font-size:var(--fs-6);font-weight:600;text-transform:uppercase;letter-spacing:.03em}h2{font-size:var(--fs-5);font-weight:600;text-transform:uppercase;letter-spacing:.03em}p.sub{color:var(--mut);font-size:var(--fs-2);margin-top:var(--sp-1)}button{font:inherit;font-size:var(--fs-3);cursor:pointer;border-radius:0;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:var(--sp-2) var(--sp-3);white-space:nowrap}button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}button.ghost{border:none;background:none;color:var(--mut);text-decoration:none;padding:var(--sp-2) 0}input,select{font:inherit;font-size:var(--fs-4);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:var(--card);color:var(--ink)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-w) solid var(--ink);outline-offset:2px}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}button:disabled,.filebtn[aria-disabled=true]{cursor:not-allowed;color:var(--mut);background:var(--card);border-color:var(--rule)}button.primary:disabled{background:var(--card);color:var(--mut);border-color:var(--rule);font-weight:400}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.wordmark{font-size:var(--fs-5);font-weight:700;letter-spacing:var(--lbl-sm);text-transform:none}.hero{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);text-align:center;padding:9vh 0 0}.fig3d{width:236px;height:286px;background:var(--stage);border:1px solid var(--line);background-image:var(--grid);background-size:var(--grid-size) var(--grid-size);position:relative}.fig3d canvas{width:100%;height:100%;display:block;cursor:pointer}.fig3d svg{width:100%;height:100%;display:block}.herostill{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.fig3d.still{padding:var(--sp-3)}.howto{list-style:none;padding:0;margin:var(--sp-0) 0;text-align:left;max-width:380px;border-top:1px solid var(--rule)}.howto li{display:flex;gap:var(--sp-3);align-items:baseline;font-size:var(--fs-2);color:var(--mut);padding:var(--sp-2) var(--sp-0);border-bottom:1px solid var(--rule)}.howto .n{color:var(--ink);font-weight:600;font-size:var(--fs-0);letter-spacing:var(--lbl);flex:0 0 auto}.lockwrap{position:relative;display:flex;flex-direction:column;align-items:center}button.locked{color:var(--mut);border-style:dashed;background:transparent;cursor:help}button.locked:before{content:"⃠";margin-right:var(--sp-1)}button.locked:hover{border-color:var(--ink);color:var(--ink)}.lockwrap .tip{position:absolute;top:calc(100% + var(--sp-2));left:50%;transform:translate(-50%);width:max-content;max-width:min(300px,86vw);background:var(--ink);color:var(--bg);font-size:var(--fs-1);line-height:1.4;padding:var(--sp-2) var(--sp-3);text-align:center;opacity:0;visibility:hidden;transition:opacity .14s ease;pointer-events:none;z-index:5}.lockwrap .tip:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:var(--ink)}.lockwrap:hover .tip,.lockwrap.show .tip,.lockwrap:focus-within .tip{opacity:1;visibility:visible}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}.tile{border:1px solid var(--line);border-radius:0;background:var(--card);padding:var(--sp-4) var(--sp-3) var(--sp-3);text-align:center;cursor:pointer;font:inherit;font-size:var(--fs-2);color:var(--ink);width:100%;display:block;white-space:normal}.tile:hover{border-color:var(--ink);background:var(--accent-soft)}.tile svg{width:100%;height:84px}.tile .tlabel{display:block;font-size:var(--fs-1);margin-top:var(--sp-2);text-transform:uppercase;letter-spacing:var(--lbl);color:var(--mut)}.tile:hover .tlabel{color:var(--ink)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--rule)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:0;overflow:hidden}.seg button{border:none;border-radius:0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-1);color:var(--mut)}.seg button[aria-checked=true],.seg button.on{background:var(--ink);color:var(--bg)}.seg button:focus-visible{outline-offset:-3px}.stage{background:var(--stage);border:1px solid var(--line);border-radius:0;padding:var(--sp-4) var(--sp-3) var(--sp-5);position:relative;background-image:var(--grid);background-size:var(--grid-size) var(--grid-size)}.stage:before,.stage:after{content:"";position:absolute;width:11px;height:11px;border:1px solid var(--line)}.stage:before{top:var(--sp-2);left:var(--sp-2);border-right:0;border-bottom:0}.stage:after{bottom:var(--sp-2);right:var(--sp-2);border-left:0;border-top:0}.stage svg{width:100%;height:auto;max-height:52vh;display:block;margin:0 auto;-webkit-user-select:none;user-select:none;position:relative}.guide{cursor:pointer}.stage svg path[fill="var(--bg)"],.tile svg path[fill="var(--bg)"],.gcard svg path[fill="var(--bg)"]{fill:var(--paper-hi)}input[type=range]{accent-color:var(--ink);padding:0;border:none;background:none}.mpanel{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap}.mpanel .hint{flex:1 1 100%;font-size:var(--fs-2);color:var(--mut)}.mpanel .hint strong{color:var(--ink);text-transform:uppercase;letter-spacing:var(--lbl-sm);font-size:var(--fs-1)}.guidepick{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin-top:var(--sp-3)}.guidepick button{font-size:var(--fs-1);padding:var(--sp-1) var(--sp-2);color:var(--mut);text-transform:uppercase;letter-spacing:var(--lbl-sm)}.guidepick button[aria-checked=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.guidepick button .gdone{color:var(--ok);margin-left:var(--sp-1)}.guidepick button[aria-checked=true] .gdone{color:var(--bg)}.chips{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}.chip{padding:var(--sp-2) var(--sp-3);border-radius:0;border:1px solid var(--line);background:var(--card);font-size:var(--fs-2);cursor:pointer;color:var(--ink);font-family:var(--fn)}.chip[aria-checked=true],.chip[aria-pressed=true],.chip.on{border-color:var(--ink);border-width:1.5px;background:var(--accent-soft);font-weight:600}.chip .csub{color:var(--mut)}.chip[aria-checked=true] .csub{color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}.gcard{border:1px solid var(--line);border-radius:0;background:var(--card);padding:var(--sp-3)}.gcard svg{width:100%;height:110px}.gcard .nm{font-size:var(--fs-2);font-weight:600;margin-top:var(--sp-2)}.gcard .meta{font-size:var(--fs-0);margin-top:var(--sp-1);color:var(--mut);text-transform:uppercase;letter-spacing:var(--lbl)}.row{display:flex;gap:var(--sp-3);align-items:center;margin-top:var(--sp-4);flex-wrap:wrap}.spacer{flex:1}.photobox{border:1px dashed var(--line);border-radius:0;padding:var(--sp-4);text-align:center;color:var(--mut);font-size:var(--fs-2)}.photobox img{max-width:100%;max-height:240px}.done-flash{color:var(--ok);font-size:var(--fs-2)}.srlive{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.boot{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:9vh 0 0;text-align:center}.boot .bootnote{color:var(--mut);font-size:var(--fs-2)}.empty{border:1px dashed var(--line);padding:var(--sp-5) var(--sp-4);text-align:center;margin-top:var(--sp-4)}.empty p{color:var(--mut);font-size:var(--fs-2);margin-top:var(--sp-2);max-width:42ch;margin-left:auto;margin-right:auto}.empty .row{justify-content:center}h3{font-size:var(--fs-3);font-weight:600;margin-top:var(--sp-5);text-transform:uppercase;letter-spacing:var(--lbl)}.banner{display:flex;gap:var(--sp-3);align-items:center;background:transparent;border:1px solid var(--line);border-left-width:3px;border-radius:0;padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-4);flex-wrap:wrap}.banner .txt{flex:1;min-width:180px;font-size:var(--fs-3)}.refpanel{border:1px dashed var(--line);border-radius:0;padding:var(--sp-4);margin-top:var(--sp-4);color:var(--mut);font-size:var(--fs-2);text-align:center}.refpanel img{max-width:100%;max-height:220px}.refpanel.dragover{border-color:var(--ink);background:var(--accent-soft)}.refpanel .refnote{font-size:var(--fs-1);margin-top:var(--sp-2)}.fieldgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}.field label{display:block;font-size:var(--fs-0);color:var(--mut);margin-bottom:var(--sp-1);text-transform:uppercase;letter-spacing:var(--lbl)}.field .fhint{font-size:var(--fs-0);letter-spacing:var(--lbl-sm)}.field .unitwrap{display:flex;align-items:center;gap:var(--sp-2)}.field input{width:100%}.field .usuffix{color:var(--mut);font-size:var(--fs-2)}.refpanel.dropbig{padding:var(--sp-6) var(--sp-4) var(--sp-5);background:var(--ink);color:var(--accent-soft);border:1px dashed var(--on-ink-line)}.refpanel.dropbig.dragover{background:var(--ink-deep);border-color:var(--bg)}.dropbig .dropicon{width:40px;height:auto;display:block;margin:0 auto}.dropbig .dropmain{font-size:var(--fs-4);color:var(--bg);margin-top:var(--sp-2);letter-spacing:.01em}.dropbig .dropalt{font-size:var(--fs-2);margin-top:var(--sp-2)}.dropbig .filelink{text-decoration:underline;cursor:pointer}.dropbig .filelink:hover{color:var(--paper-hi)}.dropbig .droplink input{border-color:var(--on-ink-field);background:var(--ink-deep);color:var(--bg)}.dropbig .droplink input::placeholder{color:var(--accent-soft)}.dropbig .droplink button{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--ink);font-weight:600}.dropbig .droplink{display:flex;gap:var(--sp-2);justify-content:center;margin-top:var(--sp-4);flex-wrap:wrap}.dropbig .droplink input{flex:1 1 240px;max-width:340px;text-align:left}.dropbig img{display:block;margin:0 auto var(--sp-2)}.dropbig :focus-visible{outline-color:var(--bg)}.orrow{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-1);text-transform:uppercase;letter-spacing:var(--lbl);color:var(--mut)}.orrow span{flex:1;height:1px;background:var(--rule)}.refstrip{display:flex;gap:var(--sp-3);align-items:flex-start;border:1px solid var(--line);background:var(--card);padding:var(--sp-3);margin-top:var(--sp-3)}.refstrip img{max-width:46%;max-height:150px;border:1px solid var(--rule)}.refstrip .refmeta{flex:1;min-width:0;font-size:var(--fs-1);color:var(--mut)}.refstrip .refnote{margin-bottom:var(--sp-2)}.chartbar{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin-top:var(--sp-4)}.chartwrap{display:flex;gap:var(--sp-4);margin-top:var(--sp-3);align-items:flex-start}.gridscroll{flex:1 1 auto;min-width:0;overflow-x:auto;border:1px solid var(--line);background:var(--card)}.chartgrid{border-collapse:collapse;width:100%;font-size:var(--fs-2)}.chartgrid th,.chartgrid td{border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);padding:0}.chartgrid tr:last-child th,.chartgrid tr:last-child td{border-bottom:none}.chartgrid .dimcol{position:sticky;left:0;z-index:2;background:var(--card);text-align:left;padding:var(--sp-2) var(--sp-3);min-width:128px;font-weight:400;box-shadow:1px 0 0 var(--rule)}.chartgrid thead .dimcol{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.chartgrid .dimpick{display:block;width:100%;border:none;background:none;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;color:inherit;white-space:normal}.chartgrid .dname{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:var(--lbl);color:var(--mut)}.chartgrid .unitnote{font-size:var(--fs-0);color:var(--mut)}.chartgrid .req{display:block;font-size:var(--fs-0);text-transform:uppercase;letter-spacing:var(--lbl);color:var(--tight);margin-top:var(--sp-0)}.chartgrid .caprow th{border-bottom:1px solid var(--rule)}.chartgrid .sizescap{padding:var(--sp-1) var(--sp-2);text-align:center;font-size:var(--fs-0);font-weight:600;text-transform:uppercase;letter-spacing:var(--lbl);color:var(--mut);background:var(--card)}.chartgrid .dimcol.cap{padding:var(--sp-1) var(--sp-3);border-right-color:transparent;border-bottom-color:transparent;box-shadow:none}.chartgrid .sizecol{position:relative;background:var(--card);padding:var(--sp-2) var(--sp-1);min-width:104px;vertical-align:top}.chartgrid .sizelab{width:100%;border:1px solid var(--line);background:var(--paper-hi);padding:var(--sp-1) var(--sp-4) var(--sp-1) var(--sp-2);font-size:var(--fs-3);font-weight:600;text-align:center;text-transform:uppercase;letter-spacing:var(--lbl-sm)}.chartgrid .sizelab::placeholder{color:var(--mut);font-weight:400}.chartgrid .colok{display:block;text-align:center;font-size:var(--fs-0);line-height:1.1;color:var(--ok);margin-top:var(--sp-1);pointer-events:none}.chartgrid .colx{position:absolute;top:var(--sp-1);right:var(--sp-1);border:none;background:none;color:var(--mut);font-size:var(--fs-3);line-height:1;padding:var(--sp-0) var(--sp-1)}.chartgrid .colx:hover{color:var(--tight)}.chartgrid input.cell{width:100%;min-width:96px;border:none;background:transparent;padding:var(--sp-2) var(--sp-3);text-align:right;font-family:var(--fn);font-size:var(--fs-3);font-variant-numeric:tabular-nums;color:var(--ink)}.chartgrid input.cell:focus-visible{outline-offset:-3px;background:var(--paper-hi)}.chartgrid input.cell::placeholder{color:var(--mut)}.chartgrid input.cell.hasghost{cursor:help}.chartgrid input.cell.hasghost::placeholder{font-style:italic}.chartgrid .colon{background:var(--accent-soft)}.chartgrid thead .colon{box-shadow:inset 0 2px 0 var(--ink)}.chartgrid .dimrow{cursor:pointer}.chartgrid .dimrow:hover .dimcol,.chartgrid .dimrow:hover .dname{color:var(--ink)}.chartgrid .dimrow.on .dimcol{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--ink),1px 0 0 var(--rule)}.chartgrid .dimrow.on .dname{color:var(--ink);font-weight:600}.chartgrid .addcol{width:100%;border-right:none;padding:var(--sp-2);background:var(--card);vertical-align:top}.chartgrid .addcol button{font-size:var(--fs-1);padding:var(--sp-2) var(--sp-3);white-space:nowrap}.chartgrid .addcol button:hover{border-color:var(--ink);background:var(--accent-soft)}.dimpreview{flex:0 0 190px;border:1px solid var(--line);background:var(--card);padding:var(--sp-3)}.dimpreview .stage.pv{padding:var(--sp-2)}.dimpreview .stage.pv svg{max-height:190px}.dimpreview .pvcopy{margin-top:var(--sp-2)}.dimpreview .pvname{font-size:var(--fs-1);font-weight:600;text-transform:uppercase;letter-spacing:var(--lbl)}.dimpreview p{font-size:var(--fs-1);line-height:1.45;color:var(--mut);margin-top:var(--sp-1)}.dimpreview .pvalias{font-size:var(--fs-0)}.dimpreview .pvnote{color:var(--tight)}.dimpreview .pvfill{border-top:1px solid var(--rule);margin-top:var(--sp-2);padding-top:var(--sp-2)}.dimpreview .pvfillhead{font-size:var(--fs-0);font-weight:600;text-transform:uppercase;letter-spacing:var(--lbl);color:var(--mut)}.dimpreview .pvfill strong{color:var(--ink)}.dimpreview .pvsize{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:var(--lbl);border-top:1px solid var(--rule);padding-top:var(--sp-2);margin-top:var(--sp-2)}@media (max-width: 620px){.chartwrap{flex-direction:column}.dimpreview{order:-1;flex:none;width:100%;display:flex;gap:var(--sp-3);align-items:flex-start}.dimpreview .stage.pv{flex:0 0 128px}.dimpreview .stage.pv svg{max-height:140px}.dimpreview .pvcopy{margin-top:0;flex:1}}.verdict{background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-4);margin-top:var(--sp-4)}.verdict .head{font-weight:600;font-size:var(--fs-5);line-height:1.35}.verdict p{font-size:var(--fs-2);margin-top:var(--sp-2)}.verdict .caveat{color:var(--mut);font-size:var(--fs-1)}.gradeline{font-size:var(--fs-0);font-weight:600;margin-bottom:var(--sp-2);text-transform:uppercase;letter-spacing:var(--lbl)}.gradeline.grade-strong{color:var(--ok)}.gradeline.grade-decent{color:var(--ink)}.gradeline.grade-thin{color:var(--tight)}.legend{display:flex;gap:var(--sp-4);align-items:center;flex-wrap:wrap;font-size:var(--fs-1);color:var(--mut);margin-top:var(--sp-2)}.legend .sw{display:inline-block;width:22px;height:0;border-top:3px solid var(--ink);margin-right:var(--sp-2);vertical-align:middle}.legend .sw.dash{border-top:2px dashed var(--mut)}.legend .sw.dot{border-top:2px dotted var(--st-ghost)}.badge{display:inline-block;background:transparent;color:var(--ink);font-size:var(--fs-0);border:1px solid var(--ink);border-radius:0;padding:var(--sp-1) var(--sp-2);white-space:nowrap;text-transform:uppercase;letter-spacing:var(--lbl);font-weight:600}.cmp-table{width:100%;border-collapse:collapse;margin-top:var(--sp-4);font-size:var(--fs-2)}.cmp-table td,.cmp-table th{padding:var(--sp-2);border-bottom:1px solid var(--rule);text-align:left}.cmp-table th{color:var(--mut);font-weight:600;font-size:var(--fs-0);text-transform:uppercase;letter-spacing:var(--lbl);border-bottom:1px solid var(--ink)}.cmp-table td{font-variant-numeric:tabular-nums}.d-more{color:var(--ok);font-weight:600}.d-less{color:var(--tight);font-weight:600}.d-same{color:var(--mut)}.cardopen{display:block;width:100%;border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;white-space:normal}.cardopen .nm,.cardopen .meta{display:block}.gcard.clickable:hover{border-color:var(--ink);background:var(--accent-soft)}.gcard{position:relative}.gcard .cardx{position:absolute;top:var(--sp-0);right:var(--sp-0);z-index:1;border:none;background:none;color:var(--mut);font-size:var(--fs-5);line-height:1;padding:var(--sp-1);opacity:0;transition:opacity .12s ease}.gcard:hover .cardx,.gcard .cardx:focus-visible{opacity:1}.gcard .cardx:hover{color:var(--tight)}@media (hover: none){.gcard .cardx{opacity:.55}}.gcard.confirming{border-color:var(--tight);display:flex;flex-direction:column;justify-content:center;min-height:152px}.gcard .cfmq{font-size:var(--fs-2)}.gcard .cfmsub{font-size:var(--fs-1);color:var(--mut);margin-top:var(--sp-1)}.gcard .cfmrow{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap}.gcard .cfmrow button{font-size:var(--fs-2);padding:var(--sp-2) var(--sp-3)}button.quiet{font-size:var(--fs-2);padding:var(--sp-2) var(--sp-3);color:var(--mut);background:var(--card)}button.quiet:hover,button.quiet:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--bg)}button.danger,.gcard .cfmyes{background:var(--tight);border-color:var(--tight);color:var(--bg);font-weight:600}button.danger:hover,.gcard .cfmyes:hover{filter:brightness(.92)}.hint.warn{color:var(--tight);font-size:var(--fs-2)}.datarow{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-top:var(--sp-5);padding-top:var(--sp-3);border-top:1px solid var(--rule)}.datarow .hint{flex:1 1 240px;font-size:var(--fs-1);color:var(--mut)}.datarow .filebtn{font-size:var(--fs-2);padding:var(--sp-2) var(--sp-3);color:var(--mut)}.datarow .filebtn:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.gcard .gphoto{display:block;width:100%;height:110px;object-fit:cover;border:1px solid var(--rule)}.piece{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-4);margin-top:var(--sp-4);align-items:start}.stage.photo{padding:var(--sp-3);background-image:none}.stage.dragover{border-color:var(--ink);background-color:var(--accent-soft)}.pphoto{display:block;width:100%;max-height:52vh;object-fit:contain}.pactions{margin-top:var(--sp-3)}.filebtn{border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:var(--fs-3);padding:var(--sp-2) var(--sp-3);cursor:pointer;white-space:nowrap;display:inline-block;position:relative}.filebtn:hover{border-color:var(--ink);background:var(--accent-soft)}.filebtn:focus-within{outline:var(--focus-w) solid var(--ink);outline-offset:2px}.warn{color:var(--tight);font-size:var(--fs-2);margin-top:var(--sp-2)}.busy{color:var(--mut);font-size:var(--fs-2);margin-top:var(--sp-2)}
