:root { color-scheme: dark; --bg:#14161c; --panel:rgba(20,22,28,.88); --panel2:#22252e; --line:#3a3f4d; --text:#fff; --muted:#c9cdd8; --accent:#ffcf4d; --green:#06c755; --red:#ff6b6b; --blue:#5aa9ff; }
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { margin:0; height:100%; overflow:hidden; background:var(--bg); color:var(--text); font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo","Noto Sans JP",system-ui,sans-serif; font-size:17px; touch-action:none; overscroll-behavior:none; }
button, input, label { font:inherit; }
button { cursor:pointer; color:var(--text); background:var(--panel2); border:1px solid var(--line); border-radius:12px; padding:10px 14px; font-size:17px; }
button:active { transform:scale(.97); filter:brightness(1.15); }
button.primary { background:var(--accent); color:#1a1a1a; font-weight:800; border-color:transparent; }
button.danger { color:var(--red); }
.hidden { display:none !important; }
#view, #gl { position:fixed; inset:0; width:100%; height:100%; display:block; }
#gl { touch-action:none; }
#crosshair { position:fixed; left:50%; top:50%; width:28px; height:28px; margin:-14px 0 0 -14px; pointer-events:none; z-index:5; }
#crosshair div { width:100%; height:100%; border:2px solid rgba(255,255,255,.9); border-radius:50%; box-shadow:0 0 0 1px rgba(0,0,0,.5), inset 0 0 0 1px rgba(0,0,0,.5); }
#crosshair.hit div { border-color:var(--accent); }
#top { position:fixed; top:0; left:0; right:0; z-index:20; display:flex; align-items:center; gap:6px; padding:calc(env(safe-area-inset-top) + 8px) 10px 8px; background:linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,0)); pointer-events:none; }
#top > * { pointer-events:auto; }
#modes { display:flex; gap:4px; margin:0 auto; background:var(--panel); border-radius:14px; padding:4px; backdrop-filter:blur(8px); }
#modes .mode { border:none; background:transparent; padding:8px 9px; border-radius:10px; font-size:14px; font-weight:700; color:var(--muted); white-space:nowrap; }
#modes .mode.on { background:var(--accent); color:#1a1a1a; }
.ib { width:44px; height:44px; flex:none; padding:0; border-radius:14px; background:var(--panel); backdrop-filter:blur(8px); font-size:22px; display:inline-flex; align-items:center; justify-content:center; }
.ib.big { width:52px; height:52px; font-size:24px; }
#tools { position:fixed; right:10px; top:calc(env(safe-area-inset-top) + 70px); z-index:20; display:flex; flex-direction:column; gap:8px; }
.tb { width:58px; height:58px; padding:0; border-radius:16px; background:var(--panel); backdrop-filter:blur(8px); font-size:22px; line-height:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
.tb small { font-size:11px; color:var(--muted); }
#walkpad { position:fixed; left:0; right:0; bottom:calc(env(safe-area-inset-bottom) + 78px); z-index:10; pointer-events:none; }
#joy { position:absolute; left:22px; bottom:0; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.10); border:2px solid rgba(255,255,255,.35); pointer-events:none; }
#joyKnob { position:absolute; left:50%; top:50%; width:52px; height:52px; margin:-26px 0 0 -26px; border-radius:50%; background:rgba(255,255,255,.55); }
#walkHint { position:absolute; right:12px; bottom:10px; font-size:13px; color:rgba(255,255,255,.75); text-shadow:0 1px 2px #000; }
#cmdbar { position:fixed; left:0; right:0; bottom:0; z-index:25; display:flex; gap:8px; align-items:center; padding:8px 10px calc(env(safe-area-inset-bottom) + 10px); background:linear-gradient(rgba(0,0,0,0), rgba(0,0,0,.6)); }
#cmd { flex:1; min-width:0; height:52px; border-radius:16px; border:1px solid var(--line); background:var(--panel); color:#fff; padding:0 16px; font-size:17px; backdrop-filter:blur(8px); }
#cmd::placeholder { color:#9aa0ae; }
#btnMic.on { background:var(--red); animation:pulse 1s infinite; }
@keyframes pulse { 50% { filter:brightness(1.4); } }
#toast { position:fixed; left:50%; bottom:calc(env(safe-area-inset-bottom) + 84px); transform:translateX(-50%); z-index:60; max-width:92vw; background:rgba(0,0,0,.85); color:#fff; padding:12px 18px; border-radius:14px; font-size:16px; line-height:1.5; box-shadow:0 6px 20px rgba(0,0,0,.4); }
.sheet { position:fixed; left:0; right:0; bottom:0; z-index:40; max-height:72vh; overflow:auto; background:var(--panel); backdrop-filter:blur(12px); border-radius:22px 22px 0 0; padding:12px 14px calc(env(safe-area-inset-bottom) + 16px); box-shadow:0 -8px 30px rgba(0,0,0,.5); touch-action:pan-y; }
.sheet-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; font-size:18px; }
.sheet .close { width:40px; height:40px; font-size:18px; }
.row { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; align-items:center; }
.row label { display:flex; flex-direction:column; gap:4px; font-size:14px; color:var(--muted); flex:1; }
.row input[type=text], .row input[type=number] { width:100%; height:44px; border-radius:10px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 10px; font-size:17px; }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.chips { gap:6px; }
.chip { width:38px; height:38px; border-radius:50%; border:2px solid rgba(255,255,255,.25); padding:0; }
.chip.on { outline:3px solid var(--accent); outline-offset:2px; }
.chip.text { width:auto; border-radius:20px; padding:0 14px; font-size:15px; }
.tabs { display:flex; gap:6px; overflow-x:auto; padding-bottom:6px; }
.tabs button { white-space:nowrap; padding:8px 14px; border-radius:20px; font-size:15px; }
.tabs button.on { background:var(--accent); color:#1a1a1a; font-weight:700; border-color:transparent; }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(96px,1fr)); gap:8px; }
.card { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:10px 6px; border-radius:16px; min-height:88px; font-size:30px; line-height:1; }
.card b { font-size:13px; font-weight:700; }
.card small { font-size:11px; color:var(--muted); }
.card.sw { padding:0; overflow:hidden; min-height:80px; position:relative; }
.card.sw img, .card.sw canvas { width:100%; height:58px; object-fit:cover; display:block; }
#catCards .card.sw { min-height:96px; } #catCards .card.sw img { height:72px; object-fit:contain; background:linear-gradient(#2b2f3a,#1d2027); }
.card.sw b { position:absolute; left:0; right:0; bottom:0; padding:5px 4px; background:rgba(0,0,0,.6); font-size:12px; }
.card.on { outline:3px solid var(--accent); }
.filebtn { display:inline-block; padding:10px 14px; border:1px solid var(--line); border-radius:12px; background:var(--panel2); cursor:pointer; }
.filebtn input { display:none; }
.hint { color:var(--muted); font-size:14px; margin:8px 0 0; line-height:1.5; }
.dpad { display:grid; grid-template-columns:repeat(3,52px); grid-template-rows:repeat(2,52px); gap:4px; justify-items:center; }
.dpad button { width:52px; height:52px; padding:0; font-size:20px; }
.dpad button:first-child { grid-column:2; }
.pad { align-items:flex-start; justify-content:space-between; }
.col { display:flex; flex-direction:column; gap:4px; }
.col button { padding:8px 10px; font-size:15px; }
#editParams label { font-size:13px; }
#editParams input[type=range] { width:100%; }
.menu-list { display:flex; flex-direction:column; gap:8px; }
.menu-list button, .menu-list .filebtn { text-align:left; padding:14px; font-size:17px; }
.full { position:fixed; inset:0; z-index:50; background:var(--bg); overflow:auto; }
.start-inner { max-width:560px; margin:0 auto; padding:calc(env(safe-area-inset-top) + 40px) 20px 40px; }
.start-inner h1 { font-size:40px; margin:0 0 6px; font-weight:900; }
.lead { color:var(--muted); font-size:17px; line-height:1.6; margin:0 0 20px; }
.start-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.card.big { min-height:130px; font-size:40px; border-radius:20px; gap:6px; }
.card.big b { font-size:16px; }
.card.big small { font-size:12px; }
.plan-top { position:absolute; top:0; left:0; right:0; z-index:2; display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:calc(env(safe-area-inset-top) + 64px) 12px 8px; background:linear-gradient(rgba(0,0,0,.7), rgba(0,0,0,0)); }
.plan-top button { padding:7px 10px; font-size:14px; }
.plan-top button.on { background:var(--accent); color:#1a1a1a; }
#planCanvas { position:absolute; inset:0; width:100%; height:100%; touch-action:none; }
.plan-info { position:absolute; left:12px; right:12px; bottom:calc(env(safe-area-inset-bottom) + 84px); background:var(--panel); border-radius:14px; padding:10px 12px; font-size:15px; line-height:1.5; }
#dialog { position:fixed; inset:0; z-index:80; background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; padding:20px; }
.dialog-box { background:#1d2027; border-radius:18px; padding:18px; max-width:420px; width:100%; max-height:80vh; overflow:auto; }
.dialog-box p { margin:0 0 12px; line-height:1.6; }
.dialog-btns { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.dialog-box input[type=text], .dialog-box input[type=password], .dialog-box textarea { width:100%; height:44px; border-radius:10px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 10px; font-size:16px; margin:6px 0; }
.dialog-box textarea { height:120px; padding:10px; }
#photoSteps img, #photoSteps canvas, #photoSteps video { max-width:100%; display:block; border-radius:10px; }
.corner-wrap { position:relative; display:inline-block; max-width:100%; touch-action:none; }
.corner-wrap .dot { position:absolute; width:28px; height:28px; margin:-14px 0 0 -14px; border-radius:50%; background:var(--accent); border:3px solid #000; font-size:12px; font-weight:800; color:#000; display:flex; align-items:center; justify-content:center; touch-action:none; }
.corner-wrap svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.steps { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
.steps span { padding:4px 10px; border-radius:12px; background:#2b2f3a; font-size:13px; color:var(--muted); }
.steps span.on { background:var(--accent); color:#1a1a1a; font-weight:700; }
.sel-list { display:flex; flex-direction:column; gap:6px; }
.sel-list button { text-align:left; display:flex; justify-content:space-between; }
body.plan-mode #tools, body.plan-mode #walkpad, body.plan-mode #crosshair { display:none; }
body.orbit-mode #walkpad, body.orbit-mode #crosshair { display:none; }
@media (min-width:700px) { .cards { grid-template-columns:repeat(auto-fill, minmax(120px,1fr)); } .sheet { left:auto; right:0; width:420px; max-height:85vh; border-radius:22px 0 0 0; } }

#edit.sheet { max-height:none; padding-top:4px; transition:height .2s ease; display:flex; flex-direction:column; }
#edit.sheet.low { height:38vh; } #edit.sheet.high { height:70vh; }
#edit .epane { overflow:auto; flex:1; min-height:0; }
#edit .efoot { margin:6px 0 0; justify-content:flex-end; } #edit .efoot button { padding:8px 12px; font-size:15px; }
#edit .sheet-head { margin-bottom:4px; } #edit .sheet-head b { margin-right:auto; } #edit .peek { width:40px; height:40px; font-size:18px; margin-right:6px; }
.grab { display:flex; justify-content:center; padding:4px 0 6px; cursor:ns-resize; touch-action:none; } .grab span { width:44px; height:5px; border-radius:3px; background:rgba(255,255,255,.35); }
.etabs { margin-bottom:4px; } .etabs button { padding:6px 14px; }
body.peeking .sheet { opacity:0; pointer-events:none; } body.peeking .sheet .peek { pointer-events:auto; opacity:1; }
#editStep { gap:6px; } #editStep .chip.text { min-height:32px; padding:4px 10px; font-size:13px; }
@media (min-width:700px) { #edit.sheet.low, #edit.sheet.high { height:auto; max-height:85vh; } }
#edit .chips { max-height:none; }
button:disabled { opacity:.4; }
body:not(.ready) .start-grid { opacity:.45; pointer-events:none; }
body.ready #loadingNote { display:none; }
.tb.on { background:var(--accent); color:#1a1a1a; } .tb.on small { color:#1a1a1a; }
@media (max-height:700px) { .tb { width:50px; height:50px; font-size:19px; } #tools { gap:6px; } }
@media (max-width:380px) { #top { gap:4px; padding-left:6px; padding-right:6px; } #modes { padding:3px; gap:2px; } #modes .mode { font-size:13px; padding:7px 6px; } .ib { width:40px; height:40px; font-size:19px; } }
#hist { display:flex; gap:2px; background:var(--panel); border-radius:14px; padding:3px; backdrop-filter:blur(8px); flex:none; }
#hist button { width:36px; height:38px; padding:0; border:none; background:transparent; font-size:20px; border-radius:10px; }
#hist button:disabled { opacity:.35; }
.plan-hist { display:inline-flex; gap:4px; }
.plan-hist button { padding:7px 10px; font-size:16px; }
.plan-module { font-size:12px; color:var(--muted); margin-left:auto; }
.chip.text small { display:block; font-size:11px; color:var(--muted); line-height:1.1; }
.chip.text { height:auto; min-height:38px; padding:5px 12px; line-height:1.2; }
.dims { display:grid; grid-template-columns:repeat(auto-fill, minmax(110px,1fr)); gap:6px; margin:6px 0; }
.dims label { display:flex; flex-direction:column; font-size:12px; color:var(--muted); gap:2px; }
.dims input { width:100%; height:38px; border-radius:8px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 8px; font-size:16px; }
.plan-info { max-height:46vh; overflow:auto; }
@media (max-width:380px) { #hist button { width:30px; height:34px; font-size:17px; } }
@media (max-width:430px) { #modes .mode span { display:none; } #modes .mode { font-size:18px; padding:6px 10px; } }
#zoomPad { position:absolute; right:12px; bottom:34px; display:flex; gap:4px; pointer-events:auto; background:var(--panel); border-radius:14px; padding:4px; backdrop-filter:blur(8px); }
#zoomPad button { height:40px; min-width:40px; padding:0 8px; border:none; background:transparent; font-size:20px; border-radius:10px; }
#zoomPad #zoomReset { font-size:12px; color:var(--muted); min-width:56px; }
#zoomPad #zoomReset.on { color:var(--accent); font-weight:700; }
#walkHint { bottom:84px; }
.trim-list { display:flex; flex-direction:column; gap:10px; }
.trim-sec { background:rgba(255,255,255,.04); border-radius:12px; padding:8px 10px; }
.trim-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.trim-head b { font-size:15px; margin-right:auto; }
.mmlab { display:inline-flex; align-items:center; gap:4px; font-size:13px; color:var(--muted); }
.mmlab input { width:72px; height:36px; border-radius:8px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 6px; font-size:16px; text-align:right; }
.trim-sec .chips { margin:6px 0 0; } .trim-sec .chip:not(.text) { width:32px; height:32px; } .trim-head .chip.text { min-height:34px; padding:4px 12px; }
#editParams .sizef { grid-column:span 1; } #editParams .sizef span { display:block; }
#editParams .mmin { width:100%; height:34px; border-radius:8px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 6px; font-size:15px; margin:2px 0; }
@media (max-height:760px) { .tb { width:50px; height:50px; font-size:19px; } #tools { gap:5px; } }
.trim-sec.flash { outline:3px solid var(--accent); }
#editParams .stepsel { grid-column:1 / -1; } #editParams .stepsel .chips { margin:4px 0 0; } #editParams .stepsel .chip.text { min-height:32px; padding:4px 10px; font-size:13px; }
.door-set { display:flex; flex-direction:column; gap:6px; margin:6px 0; } .door-set > div { display:flex; flex-wrap:wrap; align-items:center; gap:6px; } .door-set span { font-size:13px; color:var(--muted); width:74px; } .door-set small { font-size:11px; color:var(--muted); width:100%; padding-left:80px; } .door-set .chip.text { min-height:34px; padding:4px 12px; font-size:14px; }

.posgrid { display:flex; gap:14px; align-items:center; margin:2px 0 4px; }
.cross { display:grid; grid-template-columns:repeat(3,58px); grid-template-rows:repeat(3,46px); gap:4px; flex:none; }
.cross button { width:58px; height:46px; padding:0; font-size:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.05; }
.cross button small { font-size:11px; color:var(--muted); }
#mvU { grid-column:2; grid-row:1; } #mvL { grid-column:1; grid-row:2; } #mvMode { grid-column:2; grid-row:2; display:flex; align-items:center; justify-content:center; text-align:center; font-size:11px; color:var(--muted); } #mvR { grid-column:3; grid-row:2; } #mvD { grid-column:2; grid-row:3; }
#posNums { margin-top:4px; }
.posside { display:flex; flex-direction:column; gap:6px; min-width:0; }
.stepgrid { display:grid; grid-template-columns:repeat(2, auto); gap:4px; justify-content:start; }
.stepgrid .chip.text { min-height:32px; padding:4px 10px; font-size:13px; }
.rotrow { display:flex; gap:4px; align-items:center; } .rotrow button { width:46px; height:40px; padding:0; font-size:20px; }
#edit.sheet.low { height:42vh; }
#walkHint { max-width:62vw; text-align:right; line-height:1.4; }
.shape-grid { display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; margin:4px 0; }
.shape-chip { display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 2px 5px; border-radius:12px; color:var(--muted); font-size:12px; line-height:1.1; }
.shape-chip svg { display:block; }
.shape-chip.on { background:var(--accent); color:#1a1a1a; border-color:transparent; font-weight:700; }
#roomModules .chip.text small { display:block; font-size:11px; color:var(--muted); }
#roomModules .chip.text.on small { color:var(--accent); }
@media (max-width:360px) { .shape-grid { grid-template-columns:repeat(4, 1fr); } }
/* 起動に失敗したときの「直す」ボタン・新しい版のお知らせ */
#bootFix { position:fixed; left:16px; right:16px; bottom:24px; z-index:9999; background:#2a2d36; color:#fff; border-radius:16px; padding:16px; font-size:16px; line-height:1.6; box-shadow:0 8px 30px rgba(0,0,0,.5); text-align:center; }
#bootFix button { margin-top:10px; width:100%; padding:14px; font-size:17px; font-weight:bold; border:0; border-radius:12px; background:#ffb84d; color:#222; }
#updBar { position:fixed; left:50%; transform:translateX(-50%); top:calc(env(safe-area-inset-top) + 64px); z-index:9000; padding:12px 18px; font-size:16px; font-weight:bold; border:0; border-radius:999px; background:#ffb84d; color:#222; box-shadow:0 6px 20px rgba(0,0,0,.4); white-space:nowrap; }
/* 1階・2階の切りかえ */
#levelBar { position:fixed; left:10px; top:calc(env(safe-area-inset-top) + 76px); z-index:30; display:flex; flex-direction:column; gap:4px; background:var(--panel); border-radius:14px; padding:4px; backdrop-filter:blur(8px); }
#levelBar button { min-width:52px; height:44px; border:none; border-radius:10px; background:transparent; color:var(--text, #fff); font-size:15px; font-weight:700; }
#levelBar button.on { background:var(--accent); color:#222; }
#levelBar .orbit-only { display:none; }
body.orbit-mode #levelBar .orbit-only { display:block; }
body.plan-mode #levelBar, body.sheet-open #levelBar { display:none; }
.plan-levels { display:inline-flex; gap:2px; background:#11131a; border-radius:10px; padding:2px; }
.plan-levels button { min-width:46px; }
.plan-levels button.on { background:var(--accent); color:#222; }
.stair-info { margin-top:8px; border-top:1px solid var(--line); padding-top:8px; }
.stair-info .lbl { font-size:13px; color:var(--muted); margin:6px 0 4px; }
.stair-info .chips { display:flex; flex-wrap:wrap; gap:6px; }
.stair-info .note { font-size:13px; color:var(--muted); margin:6px 0; line-height:1.5; }
.stair-info .warn { font-size:13px; color:#ffb4a8; margin:6px 0; line-height:1.6; }
.stair-info .warn button { margin-top:4px; }
.sheet-head .peek { width:40px; height:40px; font-size:18px; margin-right:6px; }
/* 戻るボタン:どの画面でも左上の同じ場所。間取り・全体・欄を開いているときに出る */
#btnBack { position:fixed; left:10px; top:calc(env(safe-area-inset-top) + 8px); z-index:100; width:44px; height:44px; padding:0; border:none; border-radius:14px; background:var(--accent); color:#1a1a1a; font-size:20px; font-weight:900; line-height:1; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.45); }
#btnBack small { font-size:11px; font-weight:800; margin-top:1px; }
#btnBack.hidden { display:none; }
body.show-back #btnHome { visibility:hidden; }
#aihouse textarea { width:100%; box-sizing:border-box; font-size:16px; padding:10px; border-radius:12px; border:1px solid var(--line); background:var(--panel2); color:var(--text); margin:6px 0; }
#ahStatus { min-height:1.4em; font-weight:700; color:var(--accent); }

/* 形をえらぶ(横にすべる)・部分ごとの色・色見本 */
.hscroll { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:2px; }
.hscroll:empty, #editParts:empty { display:none; }
.hscroll .card.sw { flex:0 0 96px; min-height:84px; }
.hscroll .card.sw img { height:62px; object-fit:contain; background:linear-gradient(#2b2f3a,#1d2027); }
#editParts .chip.text.on { background:var(--accent); color:#111; outline:none; }
.fins { display:grid; grid-template-columns:repeat(auto-fill, minmax(70px,1fr)); gap:6px; width:100%; }
.fin { padding:0; border-radius:10px; overflow:hidden; border:2px solid rgba(255,255,255,.18); background:#1b1e25; display:flex; flex-direction:column; }
.fin canvas { width:100%; height:34px; display:block; }
.fin span { font-size:11px; line-height:1.2; padding:3px 2px; color:#e8e8ea; min-height:28px; display:flex; align-items:center; justify-content:center; text-align:center; }
.fin.on { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.card .many { position:absolute; top:4px; right:4px; background:var(--accent); color:#111; font-size:11px; font-weight:800; border-radius:10px; padding:2px 7px; }

/* アングルの一覧 */
.angrow { display:flex; gap:6px; align-items:center; margin:6px 0; }
.angrow input { flex:1; min-width:0; height:42px; border-radius:10px; border:1px solid var(--line); background:#111318; color:#fff; padding:0 10px; font-size:16px; }
.angrow button { width:44px; height:42px; padding:0; font-size:18px; }
/* 和と洋:部屋に合わない物は「ほかも見る」にまとめる(wayo.js) */
.cards .more-row { grid-column:1 / -1; min-height:44px; border-radius:14px; font-size:15px; font-weight:700; background:rgba(255,255,255,.08); border:1px dashed rgba(255,255,255,.3); }
.tabs .tab-more { opacity:.75; border-style:dashed; }
.tabs .tab-more.on { opacity:1; }

/* 和室の天井の色・木目 */
.ceil-opts { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; margin: 2px 0 8px; }
.ceil-opts .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ceil-opts .lbl { width: 100%; font-size: 13px; opacity: .8; }

/* 種類をえらぶ(レースの種類など) */
.pchoice { width:100%; font-size:14px; } .choices { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; } .choices .chip.text { min-height:34px; padding:4px 10px; font-size:13px; height:auto; }
