:root{--bg:#f2efe6;--surface:#fff;--surface-alt:#faf8f3;--primary:#2563a8;--primary-dark:#1b4a80;--primary-soft:#e3eef8;--ink:#23282f;--ink-muted:#6b7280;--hand:#c0392b;--border:#d9d3c5;--border-strong:#b9b1a0;--caution-bg:#fff8d6;--caution-line:#e0cc6a;--tip-bg:#ddeef9;--tip-line:#9cc9e8;--ok:#1f8a5b;--danger:#c0392b;--tap:48px;--radius:10px;--shadow:0 1px 3px #00000014}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Yu Gothic UI,Meiryo,sans-serif;font-size:16px;line-height:1.6}button{font:inherit;color:inherit;cursor:pointer}.page{flex-direction:column;height:100%;display:flex}.page-body{padding:16px 16px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.app-bar{padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--primary);color:#fff;box-shadow:var(--shadow);z-index:20;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-title{flex:1;margin:0;font-size:18px;font-weight:700}.app-bar-edit .app-bar-center{flex:1;min-width:0}.app-bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.app-bar-sub{opacity:.85;font-size:12px}.btn-back{color:#fff;background:#ffffff29;border:0;border-radius:8px;min-width:44px;min-height:40px;padding:0 10px}.save-state{text-align:right;opacity:0;min-width:56px;font-size:12px;transition:opacity .2s}.save-saving,.save-saved{opacity:.95}.save-error{opacity:1;color:#8a2b00;background:#fde8c8;border-radius:6px;padding:2px 6px;font-weight:700}.offline-bar{color:#fff;text-align:center;background:#8a5a00;padding:6px 12px;font-size:13px}.bottom-bar{padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);gap:12px;display:flex}.bottom-bar>*{flex:1}.btn-primary,.btn-ghost{min-height:var(--tap);border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:active{background:var(--primary-dark)}.btn-primary:disabled{background:#b9c4d0}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}.btn-ghost:disabled{color:#b5b5b5;border-color:var(--border)}.btn-sm{min-height:38px;padding:0 12px;font-size:14px}.survey-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.survey-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;overflow:hidden}.survey-card-main{color:inherit;flex:1;min-width:0;padding:12px 14px;text-decoration:none}.survey-card-top{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.survey-card-title{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.survey-card-meta{color:var(--ink-muted);font-size:12px}.survey-card-delete{border:0;border-left:1px solid var(--border);background:var(--surface-alt);width:52px;font-size:18px}.type-badge{background:var(--primary-soft);color:var(--primary-dark);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.status-badge{border:1px solid var(--border-strong);color:var(--ink-muted);border-radius:999px;padding:2px 8px;font-size:11px}.status-submitted{border-color:var(--ok);color:var(--ok)}.sync-badge{color:#8a5a00;background:#fde8c8;border-radius:999px;padding:2px 8px;font-size:11px}.progress{background:#e7e3d8;border-radius:999px;height:5px;margin:8px 0 4px;overflow:hidden}.progress-bar{background:var(--primary);height:100%}.empty{text-align:center;color:var(--ink-muted);padding:48px 16px}.empty .btn-primary{margin-top:12px}.storage-hint{text-align:center;margin-top:24px}.type-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.type-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;min-height:84px;padding:14px;display:flex}.type-card-name{font-size:18px;font-weight:700}.type-card-meta{color:var(--ink-muted);font-size:12px}.planned-group{margin-bottom:14px}.planned-group-title{color:var(--ink-muted);margin-bottom:6px;font-size:13px;font-weight:700}.section-tabs{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;gap:8px;padding:10px 16px;display:flex;overflow-x:auto}.section-tabs::-webkit-scrollbar{display:none}.section-tab{background:var(--surface-alt);border:1px solid var(--border);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:40px;padding:6px 14px;font-size:13px;display:flex}.section-tab.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.section-tab.is-done:not(.is-active){border-color:var(--ok)}.section-tab-no{font-weight:700}.section-tab-count{opacity:.75;font-size:11px}.section-heading{border-bottom:2px solid var(--primary);align-items:center;gap:8px;margin:4px 0 16px;padding-bottom:8px;font-size:18px;display:flex}.section-heading-no{background:var(--primary);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:inline-flex}.field{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:12px 14px}.field-note{box-shadow:none;background:0 0;border:0;padding:0}.field-label{align-items:baseline;gap:6px;margin-bottom:8px;font-weight:700;display:flex}.field-no{color:var(--primary)}.field-label-text{flex:1}.badge-required{color:#fff;background:var(--danger);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.input{width:100%;min-height:var(--tap);border:1px solid var(--border-strong);background:var(--surface-alt);color:var(--hand);border-radius:8px;padding:8px 12px;font-size:17px;font-weight:600}.input:focus{outline:2px solid var(--primary);outline-offset:-1px;background:#fff}.textarea{resize:vertical;min-height:84px;line-height:1.6}.input-sub{margin-top:8px}.input-with-unit{align-items:center;gap:8px;display:flex}.unit{color:var(--ink-muted);font-size:14px}.row{align-items:center;gap:8px;display:flex}.row-sep{color:var(--ink-muted)}.option-list{flex-direction:column;gap:8px;display:flex}.option,.check-single{border:1px solid var(--border-strong);background:var(--surface-alt);text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 12px;font-size:16px;display:flex}.option.is-on,.check-single.is-on{border-color:var(--primary);background:var(--primary-soft);font-weight:700}.check-single-label{flex:1;align-items:baseline;gap:6px;font-weight:700;display:flex}.check-box{border:2px solid var(--border-strong);width:26px;height:26px;color:var(--hand);background:#fff;border-radius:5px;flex:0 0 26px;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:inline-flex}.option.is-on .check-box,.check-single.is-on .check-box{border-color:var(--primary)}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface-alt);border-radius:999px;justify-content:center;align-items:center;min-width:48px;min-height:44px;padding:0 14px;display:inline-flex}.chip.is-on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.chip.is-disabled{color:var(--ink-muted);background:0 0;border-style:dashed;min-height:34px;font-size:13px}.callout{border-radius:8px;gap:8px;margin-top:10px;padding:8px 10px;font-size:13px;line-height:1.55;display:flex}.callout-caution{background:var(--caution-bg);border:1px solid var(--caution-line)}.callout-tip{background:var(--tip-bg);border:1px solid var(--tip-line)}.callout-tag{background:#00000014;border-radius:4px;flex:none;height:fit-content;padding:1px 6px;font-size:11px;font-weight:700}.note-block{background:var(--surface-alt);border-left:4px solid var(--primary);border-radius:6px;padding:10px 12px}.note-title{margin-bottom:4px;font-weight:700}.note-text{color:var(--ink-muted);margin:0;font-size:14px}.hint{color:var(--ink-muted);font-size:13px}.hint-warn{color:var(--danger);font-size:13px;font-weight:600}.dimset-head{justify-content:space-between;align-items:center;gap:8px;margin:10px 0 8px;display:flex}.dimset-count{color:var(--ink-muted);font-size:13px}.dimset-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.dim-cell{border:1px solid var(--border-strong);background:var(--surface-alt);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:62px;padding:6px 4px;display:flex}.dim-cell.is-filled{border-color:var(--primary);background:#fff}.dim-cell.is-missing{border-color:var(--danger);border-style:dashed}.dim-code{color:var(--primary-dark);font-size:12px;font-weight:700}.dim-value{color:var(--hand);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.dim-label{color:var(--ink-muted);text-align:center;font-size:10px;line-height:1.2}.diagram{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:10px;padding:8px}.diagram svg{width:100%;height:auto;display:block}.diagram .hotspot{cursor:pointer}.diagram .hotspot rect,.diagram .hotspot circle{fill:#fff;stroke:var(--border-strong);stroke-width:1px}.diagram .hotspot.is-filled rect,.diagram .hotspot.is-filled circle{stroke:var(--primary);fill:var(--primary-soft)}.diagram .hotspot.is-active rect,.diagram .hotspot.is-active circle{stroke:var(--hand);stroke-width:2.5px;fill:#fdeceb}.diagram-placeholder{color:var(--ink-muted);padding:12px 0;font-size:13px}.sheet-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;padding:12px 12px calc(12px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:92vh;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.sheet-title{font-weight:700}.sheet-close{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;min-height:38px;padding:0 12px;font-size:14px}.code-strip{scrollbar-width:none;gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.code-strip::-webkit-scrollbar{display:none}.code-chip{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;min-width:58px;min-height:48px;line-height:1.2;display:flex}.code-chip.is-filled{border-color:var(--primary)}.code-chip.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.code-chip-code{font-size:12px;font-weight:700}.code-chip-value{font-variant-numeric:tabular-nums;font-size:13px}.code-chip.is-active .code-chip-value{color:#fff}.numpad-display{background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 14px;display:flex}.numpad-code{flex-direction:column;display:flex}.numpad-code-mark{color:var(--primary-dark);font-size:30px;font-weight:700;line-height:1.1}.numpad-code-label{color:var(--ink-muted);font-size:12px}.numpad-value{align-items:baseline;gap:6px;display:flex}.numpad-number{color:var(--hand);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700}.numpad-unit{color:var(--ink-muted);font-size:14px}.numpad-keys{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.numpad-key{border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;min-height:60px;font-size:26px;font-weight:700}.numpad-key:active{background:var(--primary-soft)}.numpad-key.is-back{background:var(--surface-alt);font-size:22px}.numpad-nav{gap:8px;margin-top:10px;display:flex}.numpad-nav>*{flex:1}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.photo-item{aspect-ratio:4/3;position:relative}.photo-thumb{border:1px solid var(--border-strong);background:#000;border-radius:8px;width:100%;height:100%;padding:0;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-remove{background:var(--danger);color:#fff;width:28px;height:28px;box-shadow:var(--shadow);border:0;border-radius:50%;font-size:18px;line-height:1;position:absolute;top:-6px;right:-6px}.photo-size{color:#fff;background:#0000008c;border-radius:3px;padding:0 4px;font-size:10px;position:absolute;bottom:4px;left:4px}.photo-add{aspect-ratio:4/3;border:2px dashed var(--border-strong);background:var(--surface-alt);color:var(--primary-dark);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.photo-add-icon{font-size:26px;line-height:1}.photo-add-text{font-size:12px;font-weight:700}.photo-add.is-busy{opacity:.6}.photo-viewer{border-radius:8px;max-width:96vw;max-height:88vh;margin:auto}.sketch-canvas{border:1px solid var(--border-strong);touch-action:none;background:#fff;border-radius:8px;width:100%;display:block}.sketch-tools{align-items:center;gap:8px;margin-top:8px;display:flex}.sketch-tools .btn-ghost{flex:1;min-height:42px;font-size:14px}.pen-widths{gap:4px;display:flex}.pen-width{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.pen-width.is-active{border-color:var(--primary);background:var(--primary-soft)}.pen-width span{background:var(--hand);border-radius:50%;display:block}.check-body{padding-bottom:8px}.check-summary{margin:0 0 8px;font-weight:700}.check-ok{color:var(--ok);font-weight:700}.check-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.check-link{text-align:left;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;width:100%;min-height:46px;padding:8px 12px;font-size:14px}@media (width>=720px){.page-body,.section-tabs,.app-bar,.bottom-bar{width:100%;max-width:720px;margin-left:auto;margin-right:auto}}
