:root{--page:#faf7f0;--text:#2b2c2b;--text-secondary:#3a3b3a;--control-edge:#7f7155;--focus:#3d4f37;--header:#3d4f37;--header-text:#fff;--tab-bar:#fff;--tab-bar-edge:#7f7155;--tab-active:#3d4f37;--tab-active-text:#fff;--tab-inactive-text:#2b2c2b;--mark-bob:#3d4f37;--mark-cap:#7f7155;--tile:#fff;--disc-blue:#dff2fe;--disc-sand:#e6d3b3;--disc-rose:#ecd3d1;--disc-cream:#efe6d6;--field:#fff;--field-edge:#7f7155;--entry-card:#efe6d6;--length-disc:#dff2fe;--switch-on:#3d4f37;--switch-on-text:#fff;--button-main:#3d4f37;--button-main-text:#fff;--button-plain:#fff;--button-plain-text:#2b2c2b;--dialog:#fff;--dialog-overlay:#141a1299;--warning:#f4c2bd;--warning-text:#2b2c2b;--warning-edge:#2b2c2b;--delete:#a31515;--delete-text:#fff;--delete-edge:#773331;--status-good:#cbdec5;--status-tight:#f3d27a;--status-short:#f4c2bd}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--page);color:var(--text);margin:0;font-family:-apple-system,system-ui,sans-serif;font-size:16px;line-height:1.4}button{font:inherit;color:inherit;background:0 0;border:0;margin:0}h1,h2{font-size:22px;font-weight:600;line-height:1.25}button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.header button:focus-visible{outline-color:var(--header-text)}.shell{flex-direction:column;min-height:100dvh;display:flex}header.header{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));background:var(--header);color:var(--header-text);align-items:center;gap:10px;display:flex;position:sticky;top:0}svg.mark{height:32px}.header svg.mark{width:40px;height:40px}.header .mark-disc{fill:var(--page)}.header .mark-bob{fill:var(--mark-bob)}.header .mark-cap{fill:var(--mark-cap)}span.header-name{font-size:20px;font-weight:600}button.header-settings{border:1px solid var(--header-text);border-radius:8px;min-width:44px;height:44px;margin-left:auto;padding:0 12px;font-size:17px}main.tab-panel{padding:18px max(18px, env(safe-area-inset-right)) 18px max(18px, env(safe-area-inset-left));flex:1}section.warning{background:var(--warning);border:1px solid var(--warning-edge);color:var(--warning-text);border-radius:12px;margin:0 0 18px;padding:16px}h2.warning-heading{margin:0 0 8px;font-size:17px;font-weight:700;line-height:1.3}p.warning-text{margin:0}p.warning-text+p.warning-text{margin-top:8px}nav.tab-bar{padding:6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--tab-bar-edge);background:var(--tab-bar);height:calc(61px + env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:8px;display:grid;position:sticky;bottom:0}button.tab{min-width:44px;height:48px;color:var(--tab-inactive-text);border-radius:8px;font-size:17px;font-weight:600}.tab.tab-active{background:var(--tab-active);color:var(--tab-active-text)}.screen{padding:24px max(18px, env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}main.screen.install,main.screen.cannot-run{padding-top:calc(24px + env(safe-area-inset-top))}svg.mark.install-mark{height:64px;margin:0 auto 16px;display:block}.install-mark .mark-bob{fill:var(--mark-bob)}.install-mark .mark-cap{fill:var(--mark-cap)}h1.install-heading{text-align:center;margin:0 0 8px}p.install-intro{text-align:center;color:var(--text-secondary);margin:0 0 24px}h2.install-platform{margin:0 0 8px}ol.install-steps{margin:0;padding-left:24px}ol.install-steps li{margin:0 0 8px}ol.install-steps li:last-child{margin:0}hr.install-rule{border:0;border-top:1px solid var(--control-edge);margin:24px 0}h1.cannot-run-heading{color:var(--text);margin:0 0 8px}p.cannot-run-body{color:var(--text-secondary);margin:0}.settings,div.job-page{flex-direction:column;min-height:100dvh;display:flex}.settings .header,div.job-page .header{gap:12px}button.header-back{border:1px solid var(--header-text);border-radius:8px;min-width:44px;height:44px;padding:0 12px;font-size:17px}h1.header-title{margin:0}p.version-line{color:var(--text-secondary);margin:0}div.length-entry{background:var(--entry-card);border:1px solid var(--control-edge);border-radius:12px;padding:16px}div.length-switch{background:var(--field);height:44px;box-shadow:inset 0 0 0 1px var(--control-edge);border-radius:22px;grid-template-columns:auto auto;margin:0 0 16px;display:grid}button.length-half{white-space:nowrap;min-width:44px;height:44px;color:var(--text);background-clip:padding-box;border:3px solid #0000;border-radius:22px;padding:0 12px;font-size:17px}button.length-half.length-half-on{background:var(--switch-on);color:var(--switch-on-text);background-clip:padding-box;font-weight:700}div.length-boxes{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}div.length-boxes.length-boxes-decimal{grid-template-columns:1fr}label.length-field{display:block}span.length-label{margin:0 0 6px;font-size:16px;font-weight:700;display:block}input.length-box,select.length-box{background:var(--field);border:1px solid var(--field-edge);width:100%;min-width:44px;height:52px;font:inherit;color:var(--text);appearance:none;border-radius:8px;margin:0;padding:0 12px;font-size:20px;font-weight:700}select.length-box{padding-right:40px}span.length-select{display:block;position:relative}svg.length-chevron{pointer-events:none;fill:none;width:18px;height:18px;stroke:var(--text-secondary);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;position:absolute;top:17px;right:12px}input.length-box:focus-visible,select.length-box:focus-visible{outline:2px solid var(--focus);outline-offset:2px}div.length-display{background:var(--tile);border:1px solid var(--control-edge);border-radius:12px;align-items:center;gap:12px;padding:16px;display:flex}span.length-disc{background:var(--length-disc);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}svg.length-icon{fill:none;width:24px;height:24px;stroke:var(--text);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}p.length-result{margin:0;font-size:28px;font-weight:700;line-height:1.2}p.length-decimal{color:var(--text-secondary);margin:2px 0 0;font-size:17px}div.jobs{flex-direction:column;gap:12px;display:flex}button.job-add,button.job-save{background:var(--button-main);width:100%;min-width:44px;height:48px;color:var(--button-main-text);border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}button.job-save{margin-top:12px}svg.job-plus{fill:none;width:14px;height:14px;stroke:var(--button-main-text);stroke-width:2px;stroke-linecap:round;flex:none}button.job-archived-open,button.job-edit,button.job-archive,button.job-restore,button.job-clear-date{background:var(--button-plain);border:1px solid var(--control-edge);min-width:44px;height:48px;color:var(--button-plain-text);border-radius:8px;padding:0 12px;font-size:17px;font-weight:700}button.job-archived-open,button.job-restore{width:100%}button.job-restore{margin-top:12px}button.job-clear-date{flex:none;height:52px;font-size:16px}button.job-card{background:var(--tile);border:1px solid var(--control-edge);text-align:left;width:100%;min-width:44px;min-height:44px;color:var(--text);border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}span.job-disc{background:var(--disc-blue);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}svg.job-icon{fill:none;width:24px;height:24px;stroke:var(--text);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}span.job-text{min-width:0;display:block}span.job-name{overflow-wrap:anywhere;font-size:18px;font-weight:700;line-height:1.3;display:block}span.job-line{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:2px;font-size:15px;display:block}div.jobs-empty{background:var(--tile);border:1px solid var(--control-edge);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;display:flex}span.jobs-empty-disc{background:var(--disc-blue);border-radius:50%;place-items:center;width:56px;height:56px;display:grid}span.jobs-empty-disc svg.job-icon{width:28px;height:28px}h2.jobs-empty-heading{margin:0;font-size:22px;font-weight:700}p.jobs-empty-line{color:var(--text-secondary);margin:0;font-size:16px}div.job-form{background:var(--entry-card);border:1px solid var(--control-edge);border-radius:12px;padding:16px}div.job-field+div.job-field{margin-top:16px}label.job-label{margin:0 0 8px;font-size:16px;font-weight:700;display:block}input.job-box,textarea.job-box{background:var(--field);border:1px solid var(--field-edge);width:100%;min-width:44px;height:52px;font:inherit;color:var(--text);appearance:none;border-radius:8px;margin:0;padding:0 12px;font-size:17px;display:block}textarea.job-box{resize:vertical;height:120px;min-height:120px;padding:12px}input.job-box:focus-visible,textarea.job-box:focus-visible{outline:2px solid var(--focus);outline-offset:2px}div.job-date-row{gap:8px;display:flex}input.job-date{flex:1;min-width:0}input.job-date::-webkit-date-and-time-value{text-align:left}p.job-name-message{color:var(--text);margin:8px 0 0;font-size:16px;font-weight:700}div.job-view{background:var(--tile);border:1px solid var(--control-edge);border-radius:12px;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;display:flex}div.job-view-head{align-self:stretch;align-items:center;gap:12px;display:flex}h2.job-view-name{overflow-wrap:anywhere;min-width:0;margin:0;font-size:22px;font-weight:700}p.job-view-address{overflow-wrap:anywhere;margin:0;font-size:16px}p.job-view-notes{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:16px}div.job-dates{align-self:stretch}div.job-date-line{border-top:1px solid var(--control-edge);justify-content:space-between;gap:12px;padding:10px 0;font-size:16px;display:flex}span.job-date-value{font-weight:700}div.job-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}p.job-archived-note{color:var(--text);margin:0 0 12px;font-size:16px}div.calc-list{margin-top:24px}h2.calc-list-heading{margin:0;font-size:18px;font-weight:700;line-height:1.3}div.calc-cards{flex-direction:column;gap:12px;margin-top:12px;display:flex}button.calc-card{background:var(--tile);border:1px solid var(--control-edge);text-align:left;width:100%;min-width:44px;min-height:44px;color:var(--text);border-radius:12px;align-items:center;gap:14px;padding:14px;display:flex}span.calc-disc{border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}span.calc-disc-sand{background:var(--disc-sand)}svg.calc-icon{fill:none;width:26px;height:26px;stroke:var(--text);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}span.calc-text{min-width:0;display:block}span.calc-card-label{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:1.3;display:block}span.calc-card-result{overflow-wrap:anywhere;margin-top:2px;font-size:22px;font-weight:700;line-height:1.2;display:block}span.calc-card-date{color:var(--text-secondary);margin-top:2px;font-size:15px;display:block}h2.calc-choose{margin:24px 0 0;font-size:18px;font-weight:700;line-height:1.3}div.calc-jobs{flex-direction:column;gap:12px;margin-top:12px;display:flex}button.job-card.job-card-chosen{border:3px solid var(--switch-on);padding:12px}span.calc-chosen-disc{background:var(--switch-on);border-radius:50%;flex:none;place-items:center;width:32px;height:32px;margin-left:auto;display:grid}svg.calc-tick{fill:none;width:16px;height:16px;stroke:var(--switch-on-text);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}button.calc-newjob{background:var(--button-plain);border:1px solid var(--control-edge);width:100%;min-width:44px;height:48px;color:var(--button-plain-text);border-radius:8px;margin-top:12px;padding:0 12px;font-size:17px;font-weight:700}button.calc-save{background:var(--button-main);width:100%;min-width:44px;height:48px;color:var(--button-main-text);border-radius:8px;justify-content:center;align-items:center;margin-top:24px;font-size:17px;font-weight:700;display:flex}button.calc-save:disabled{opacity:.5}div.calc-body{margin-top:12px}div.calc-dates{background:var(--tile);border:1px solid var(--control-edge);border-radius:12px;margin-top:12px;padding:0 14px}div.calc-dates div.job-date-line:first-child{border-top:0}button.calc-delete{background:var(--delete);border:1px solid var(--delete-edge);width:100%;min-width:44px;height:48px;color:var(--delete-text);border-radius:8px;justify-content:center;align-items:center;margin-top:12px;font-size:17px;font-weight:700;display:flex}main.calc-view-only input:disabled,main.calc-view-only select:disabled,main.calc-view-only textarea:disabled{opacity:1;color:var(--text);-webkit-text-fill-color:var(--text)}div.dialog-overlay{z-index:10;background:var(--dialog-overlay);justify-content:center;align-items:center;padding:0 24px;display:flex;position:fixed;inset:0}div.dialog{background:var(--dialog);border:1px solid var(--text);border-radius:12px;width:100%;padding:20px}h2.dialog-heading{margin:0;font-size:20px;font-weight:700;line-height:1.3}p.dialog-body{margin:12px 0 0;font-size:16px}div.dialog-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;display:grid}button.dialog-cancel,button.dialog-replace,button.dialog-delete{border-radius:8px;min-width:44px;height:48px;padding:0 12px;font-size:17px;font-weight:700}button.dialog-cancel{background:var(--button-plain);border:1px solid var(--control-edge);color:var(--button-plain-text)}button.dialog-replace{background:var(--button-main);color:var(--button-main-text)}button.dialog-delete{background:var(--delete);border:1px solid var(--delete-edge);color:var(--delete-text)}div.tolerance-card{background:var(--entry-card);border:1px solid var(--control-edge);border-radius:12px;margin:0 0 16px;padding:16px}p.tolerance-label{margin:0;font-size:16px;font-weight:700}p.tolerance-line{color:var(--text-secondary);margin:8px 0 0;font-size:15px}div.tolerance-switch{border:1px solid var(--control-edge);background:var(--field);border-radius:26px;grid-template-columns:1fr 1fr 1fr;height:52px;margin:16px 0 0;display:grid;overflow:hidden}button.tolerance-choice{white-space:nowrap;min-width:44px;height:50px;color:var(--text);background:var(--field);padding:0;font-size:17px}button.tolerance-choice+button.tolerance-choice{border-left:1px solid var(--control-edge)}button.tolerance-choice.tolerance-choice-on{background:var(--switch-on);color:var(--switch-on-text);font-weight:700}button.tolerance-choice:focus-visible{outline-offset:-4px}button.tolerance-choice.tolerance-choice-on:focus-visible{outline-color:var(--switch-on-text)}div.backup-card{background:var(--entry-card);border:1px solid var(--control-edge);border-radius:12px;margin:0 0 16px;padding:16px}p.backup-label{margin:0;font-size:16px;font-weight:700}p.backup-line{color:var(--text-secondary);margin:8px 0 0;font-size:15px}div.backup-actions{flex-direction:column;gap:12px;margin:16px 0 0;display:flex}button.backup-all,button.backup-one,button.backup-restore{border-radius:8px;width:100%;min-width:44px;height:48px;padding:0 12px;font-size:17px;font-weight:700}button.backup-all{background:var(--button-main);color:var(--button-main-text)}button.backup-one,button.backup-restore{background:var(--button-plain);border:1px solid var(--control-edge);color:var(--button-plain-text)}button.backup-all:disabled,button.backup-one:disabled,button.backup-restore:disabled{opacity:.5}h2.backup-choose{margin:0;font-size:18px;font-weight:700;line-height:1.3}h2.backup-archived{margin:24px 0 0;font-size:18px;font-weight:700;line-height:1.3}div.backup-jobs{flex-direction:column;gap:12px;margin-top:12px;display:flex}p.dialog-body+p.dialog-body{margin-top:8px}div.dialog-stack{flex-direction:column;gap:12px;margin-top:20px;display:flex}button.dialog-keep,button.dialog-use{border-radius:8px;min-width:44px;height:48px;padding:0 12px;font-size:17px;font-weight:700}button.dialog-keep{background:var(--button-main);color:var(--button-main-text)}button.dialog-use{background:var(--button-plain);border:1px solid var(--control-edge);color:var(--button-plain-text)}section.warning.warning-plain{background:var(--tile);border-color:var(--control-edge);color:var(--text)}button.warning-restore{background:var(--button-plain);border:1px solid var(--control-edge);width:100%;min-width:44px;height:48px;color:var(--button-plain-text);border-radius:8px;margin:16px 0 0;padding:0 12px;font-size:17px;font-weight:700;display:block}div.calc-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}button.calc-tile{background:var(--tile);border:1px solid var(--control-edge);text-align:left;width:100%;min-width:44px;min-height:128px;color:var(--text);border-radius:12px;flex-direction:column;align-items:flex-start;gap:12px;padding:14px;display:flex}span.calc-disc-rose{background:var(--disc-rose)}span.calc-tile-name{overflow-wrap:anywhere;font-size:17px;font-weight:700;line-height:1.25;display:block}div.fif-body{flex-direction:column;gap:16px;display:flex}h2.fif-heading{margin:0 0 8px;font-size:18px;font-weight:700;line-height:1.3}div.fif-switch{border:1px solid var(--control-edge);background:var(--field);border-radius:26px;grid-template-columns:1fr 1fr 1fr 1fr;height:52px;display:grid;overflow:hidden}button.fif-op{min-width:44px;height:50px;color:var(--text);background:var(--field);padding:0;font-size:26px;line-height:1}button.fif-op+button.fif-op{border-left:1px solid var(--control-edge)}button.fif-op.fif-op-on{background:var(--switch-on);color:var(--switch-on-text);font-weight:700}button.fif-op:focus-visible{outline-offset:-4px}button.fif-op.fif-op-on:focus-visible{outline-color:var(--switch-on-text)}div.fif-number-card{background:var(--entry-card);border:1px solid var(--control-edge);border-radius:12px;padding:16px}input.fif-number{background:var(--field);border:1px solid var(--field-edge);width:100%;min-width:44px;height:52px;font:inherit;color:var(--text);appearance:none;border-radius:8px;margin:0;padding:0 12px;font-size:17px;display:block}input.fif-number:focus-visible{outline:2px solid var(--focus);outline-offset:2px}div.fif-divzero{background:var(--tile);border:1px solid var(--control-edge);border-radius:12px;padding:16px}p.fif-divzero-text{margin:0;font-size:16px}button.calc-saveto{background:var(--button-main);width:100%;min-width:44px;height:48px;color:var(--button-main-text);border-radius:8px;justify-content:center;align-items:center;margin-top:16px;font-size:17px;font-weight:700;display:flex}
