/* WOODPILOT DESIGN TOKENS — modifier ce bloc pour changer l'identité */
:root {
  --color-primary: #DC2E2E;
  --color-accent-text: #ff7777;
  --color-tertiary: #ffd97d;
  --color-on-secondary: #14251c;
  --color-on-tertiary: #493600;
  --font-secondary: 12px;
  --color-on-primary: #ffffff;
  --color-secondary: #60d394;
  --color-background: #141516;
  --color-surface: #1b1d1e;
  --color-surface-raised: #242728;
  --color-border: #2a2f31;
  --color-border-strong: #3b4245;
  --color-text: #f5f5f4;
  --color-text-secondary: #a7acae;
  --color-text-muted: #a2a9ac;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --touch-min: 48px;
  --motion-fast: 140ms;
  --motion-normal: 220ms;
}
html[data-theme="light"] {
  --color-accent-text: #bd2020;
  --color-background: #f6f7f7;
  --color-surface: #ffffff;
  --color-surface-raised: #eef0f0;
  --color-border: #dadddd;
  --color-border-strong: #b8bdbf;
  --color-text: #171919;
  --color-text-secondary: #606566;
  --color-text-muted: #60696c;
}
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:var(--color-background); color:var(--color-text); font-family:Inter,system-ui,sans-serif; }
body { min-height:100dvh; }
button,input { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }
.app { min-height:100dvh; max-width:520px; margin:auto; position:relative; padding-bottom:92px; overflow:hidden; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:calc(18px + env(safe-area-inset-top)) 20px 12px; }
h1,h2,h3,p { margin:0; }
h1 { font-size:28px; letter-spacing:-.04em; }
h2 { font-size:25px; letter-spacing:-.035em; }
h3 { font-size:16px; }
.eyebrow,.tool-kicker { font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--color-text-muted); }
.icon-btn { width:var(--touch-min); height:var(--touch-min); border:1px solid var(--color-border); border-radius:50%; background:var(--color-surface); color:var(--color-text); display:grid; place-items:center; }
.primary-icon { background:var(--color-primary); color:var(--color-on-primary); border-color:transparent; }
.view { display:none; padding:16px 20px; }
.view.active { display:block; }
.tool-copy { min-height:104px; padding-top:6px; }
.tool-copy h2 { margin-top:7px; }
.tool-copy p { margin-top:8px; color:var(--color-text-secondary); font-size:14px; }
.wheel-stage { height:min(98vw,490px); max-height:490px; position:relative; touch-action:none; user-select:none; }
.wheel-ring { position:absolute; width:330px; height:330px; border:1px solid var(--color-border); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.wheel { position:absolute; inset:0; transition:transform var(--motion-normal) cubic-bezier(.2,.8,.2,1); }
.tool-node { position:absolute; width:72px; height:72px; left:50%; top:50%; margin:-36px; border:1px solid var(--color-border); border-radius:50%; background:var(--color-surface); color:var(--color-text-secondary); display:grid; place-items:center; transition:transform var(--motion-normal), background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast); }
.tool-node .material-symbols-rounded { font-size:27px; }
.tool-node.selected { background:var(--color-primary); border-color:var(--color-primary); color:var(--color-on-primary); }
.wheel-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:116px; height:116px; border-radius:50%; border:1px solid var(--color-border-strong); background:var(--color-surface-raised); color:var(--color-text); display:flex; flex-direction:column; gap:5px; align-items:center; justify-content:center; font-weight:600; }
.wheel-center .material-symbols-rounded { font-size:31px; color:var(--color-accent-text); }
.wheel-center span:last-child { font-size:12px; }
.gesture-hint { display:flex; align-items:center; justify-content:center; gap:8px; color:var(--color-text-muted); font-size:12px; margin-top:-4px; }
.section-head { display:flex; align-items:center; justify-content:space-between; margin:4px 0 24px; }
.section-head h2 { margin-top:6px; }
.project-list { display:grid; gap:12px; }
.card { min-height:78px; display:grid; grid-template-columns:48px 1fr 28px; gap:12px; align-items:center; padding:14px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); }
.card p { color:var(--color-text-secondary); font-size:13px; margin-top:5px; }
.card-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:10px; background:var(--color-surface-raised); color:var(--color-accent-text); }
.end-icon { color:var(--color-text-muted); }
.search { display:flex; align-items:center; gap:10px; height:52px; padding:0 14px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); margin-bottom:22px; }
.search input { flex:1; border:0; outline:0; background:transparent; color:var(--color-text); min-width:0; }
.library-group { margin-bottom:24px; }
.library-group h3 { color:var(--color-text-muted); font-size:11px; letter-spacing:.12em; margin:0 0 8px 4px; }
.library-row { width:100%; min-height:62px; display:grid; grid-template-columns:44px 1fr 40px; gap:12px; align-items:center; border:0; border-bottom:1px solid var(--color-border); background:transparent; color:var(--color-text); text-align:left; }
.library-row .material-symbols-rounded:first-child { color:var(--color-accent-text); }
.library-row small { color:var(--color-text-muted); display:block; margin-top:3px; }
.bottom-nav { position:fixed; z-index:20; bottom:0; left:50%; transform:translateX(-50%); width:min(100%,520px); height:calc(72px + env(safe-area-inset-bottom)); padding:6px 16px env(safe-area-inset-bottom); background:var(--color-background); border-top:1px solid var(--color-border); display:grid; grid-template-columns:repeat(3,1fr); }
.bottom-nav button { border:0; background:transparent; color:var(--color-text-muted); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:11px; }
.bottom-nav button.active { color:var(--color-accent-text); }
.bottom-nav .material-symbols-rounded { font-size:25px; }
.sheet-backdrop { position:fixed; inset:0; z-index:29; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity var(--motion-normal); }
.sheet-backdrop.open { opacity:1; pointer-events:auto; }
.bottom-sheet { position:fixed; z-index:30; left:50%; bottom:0; width:min(100%,520px); transform:translate(-50%,105%); background:var(--color-surface); border:1px solid var(--color-border); border-bottom:0; border-radius:22px 22px 0 0; padding:14px 22px calc(28px + env(safe-area-inset-bottom)); transition:transform var(--motion-normal) cubic-bezier(.2,.8,.2,1); }
.bottom-sheet.open { transform:translate(-50%,0); }
.sheet-handle { width:42px; height:4px; border-radius:2px; background:var(--color-border-strong); margin:0 auto 18px; }
.sheet-close { position:absolute; right:16px; top:18px; }
.sheet-tool-icon { width:56px; height:56px; display:grid; place-items:center; border-radius:14px; background:var(--color-surface-raised); color:var(--color-accent-text); margin-bottom:18px; }
.sheet-tool-icon span { font-size:30px; }
.bottom-sheet h2 { margin:7px 0 9px; }
.bottom-sheet > p { color:var(--color-text-secondary); line-height:1.5; }
.primary-btn { width:100%; min-height:52px; margin-top:24px; border:0; border-radius:var(--radius-md); background:var(--color-primary); color:var(--color-on-primary); display:flex; align-items:center; justify-content:center; gap:8px; font-weight:700; }
.prototype-note { font-size:12px; text-align:center; margin-top:14px!important; color:var(--color-text-muted)!important; }
.material-symbols-rounded { font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24; }
@media (max-width:380px) {
  .wheel-ring { width:290px; height:290px; }
  .tool-node { width:64px; height:64px; margin:-32px; }
}
:root {
  --color-success: var(--color-secondary);
  --color-warning: var(--color-tertiary);
  --color-danger: var(--color-accent-text);
  --color-measurement: var(--color-primary);
  --color-construction-line: #62696c;
  --color-backdrop: rgba(0,0,0,.5);
  --line-normal: 1px;
  --line-technical: 1.5px;
}
html[data-theme="light"] { --color-construction-line: #606566; }
button { cursor:pointer; min-height:var(--touch-min); }
button:active { opacity:.8; }
button:focus-visible,input:focus-visible { outline:2px solid var(--color-primary); outline-offset:3px; }
body { font-size:15px; }
.tool-copy p,.library-row small,.calculation-note,.empty-state { font-size:15px; line-height:1.5; }
.wheel-ring { width:min(330px,calc(100% - 72px)); height:auto; aspect-ratio:1; }
.wheel-stage { height:min(98vw,420px); touch-action:pan-y; }
.sheet-backdrop { display:none; }
dialog { color:var(--color-text); background:var(--color-surface); border:1px solid var(--color-border); }
dialog::backdrop { background:var(--color-backdrop); }
.bottom-sheet { margin:0; max-height:90dvh; overflow:auto; display:none; transform:translateX(-50%); }
.bottom-sheet[open] { display:block; }
.tool-dialog { width:min(100%,520px); max-width:100%; max-height:100dvh; padding:20px; border-radius:var(--radius-lg); overflow:auto; }
.tool-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.tool-dialog > p { color:var(--color-text-secondary); }
.technical-diagram { position:relative; margin:12px 0; }
.technical-diagram svg { display:block; width:100%; }
.arc { fill:none; stroke:var(--color-measurement); stroke-width:2; }
.construction { fill:none; stroke:var(--color-construction-line); stroke-width:var(--line-technical); }
.dimension { stroke:var(--color-measurement); stroke-width:var(--line-technical); stroke-dasharray:4 3; }
.measurement { position:absolute; padding:8px 12px; background:var(--color-surface-raised); border:1px solid var(--color-border-strong); border-radius:var(--radius-sm); color:var(--color-text); min-height:56px; }
.measurement small { display:block; font-size:11px; letter-spacing:.1em; color:var(--color-text-secondary); }
.measurement strong { font-size:20px; font-variant-numeric:tabular-nums; }
.chord { bottom:0; left:50%; transform:translateX(-50%); }
.sagitta { right:0; top:32%; }
.result-card { padding:20px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface-raised); }
.result-card > strong { display:block; font-size:36px; margin:6px 0 20px; font-variant-numeric:tabular-nums; }
.secondary-results { display:grid; grid-template-columns:1fr 1fr; gap:16px; color:var(--color-text-secondary); }
.secondary-results b { display:block; margin-top:6px; color:var(--color-text); font-variant-numeric:tabular-nums; }
.calculation-note { margin-top:12px; }
.measurement-sheet { position:fixed; inset:auto 0 0; margin:0 auto; width:min(100%,520px); max-width:100%; max-height:100dvh; overflow:auto; padding:16px 20px calc(20px + env(safe-area-inset-bottom)); border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.measurement-sheet input { width:100%; height:60px; border:1px solid var(--color-border-strong); border-radius:var(--radius-sm); background:var(--color-background); color:var(--color-text); padding:12px; font-size:28px; font-variant-numeric:tabular-nums; }
.measurement-sheet [role="alert"] { color:var(--color-danger); min-height:24px; margin:8px 0; }
.number-pad { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.number-pad button,.stepper button { border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-surface-raised); color:var(--color-text); height:52px; font-size:22px; }
.stepper { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px; }
.stepper button { font-size:16px; }
#toast { position:fixed; z-index:50; bottom:90px; left:50%; transform:translateX(-50%); width:min(90%,460px); border:1px solid var(--color-border-strong); padding:16px; background:var(--color-surface-raised); border-radius:var(--radius-md); }
@media (max-width:380px) { .tool-dialog { padding:16px; } .result-card > strong { font-size:32px; } }
@media (prefers-reduced-motion:reduce) { * { transition:none!important; } }
.secondary-btn { width:100%; min-height:var(--touch-min); display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border:1px solid var(--color-border-strong); border-radius:var(--radius-md); background:var(--color-surface-raised); color:var(--color-text); font-weight:600; margin-top:12px; }
.result-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.result-actions button { margin:0; }
.wheel-controls { display:flex; justify-content:center; gap:24px; margin:8px 0 12px; }
.library-item { display:grid; grid-template-columns:1fr 48px; align-items:center; gap:8px; }
.library-row { grid-template-columns:32px 1fr 24px; gap:8px; }
.library-row small { color:var(--color-text-secondary); }
.favourite[aria-pressed="true"] { color:var(--color-accent-text); }
button:disabled { opacity:.45; cursor:default; }
[hidden] { display:none!important; }
.measurement-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.measurement-grid .measurement,.count-control .measurement { position:static; width:100%; }
.count-control { display:grid; grid-template-columns:1fr 90px; gap:16px; align-items:center; }
.picker-list { height:144px; overflow-y:auto; scroll-snap-type:y mandatory; padding:48px 0; border:1px solid var(--color-border); border-radius:var(--radius-md); scrollbar-width:none; }
.picker-list button { display:block; width:100%; height:48px; scroll-snap-align:center; border:0; background:transparent; color:var(--color-text-secondary); font-size:22px; }
.picker-list button[aria-pressed="true"] { color:var(--color-accent-text); font-weight:700; background:var(--color-surface-raised); }
.check-row { display:flex; align-items:center; gap:12px; min-height:48px; margin-top:12px; line-height:1.4; }
.check-row input { width:24px; height:24px; accent-color:var(--color-accent-text); }
.slat { fill:var(--color-surface-raised); stroke:var(--color-measurement); stroke-width:1.5; }
details { border-top:1px solid var(--color-border); margin-top:20px; padding-top:8px; }
summary { min-height:48px; padding:12px 0; cursor:pointer; }
[role="alert"] { color:var(--color-danger); line-height:1.5; }
.field-label { display:grid; gap:8px; margin:12px 0; }
select { min-height:48px; width:100%; padding:8px; border:1px solid var(--color-border-strong); border-radius:var(--radius-sm); background:var(--color-surface-raised); color:var(--color-text); font:inherit; }
.photo-import { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.file-button { position:relative; overflow:hidden; cursor:pointer; }
.file-button input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.file-button:focus-within { outline:2px solid var(--color-primary); outline-offset:2px; }
.photo-dialog canvas { display:block; width:100%; height:auto; border:1px solid var(--color-border); border-radius:var(--radius-sm); margin-top:12px; touch-action:none; }
.photo-line-row { display:grid; grid-template-columns:1fr 48px; gap:8px; align-items:center; margin-top:8px; }
.photo-line-row .secondary-btn { margin:0; }
.project-card { display:grid; gap:8px; min-height:80px; width:100%; background:var(--color-surface); color:var(--color-text); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:16px; text-align:left; }
.project-card span { color:var(--color-text-secondary); }
[data-project-list] { margin-top:16px; }
.saved-entry { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.saved-entry > :first-child { grid-column:1/-1; text-align:left; }
.sign-key { grid-column:1/-1; }
@media (max-height:500px) and (orientation:landscape) { .technical-diagram { max-width:320px; margin:auto; } .tool-dialog { width:min(100%,780px); } }
.piece-row { display:grid; grid-template-columns:1fr 48px; gap:8px; align-items:center; margin:12px 0; }
.piece-row .secondary-btn { margin:0; text-align:left; justify-content:flex-start; font-weight:500; }
.panel-outline { fill:var(--color-surface); stroke:var(--color-border-strong); stroke-width:4; }
.nesting-panel { margin-top:20px; border-top:1px solid var(--color-border); padding-top:12px; }
.nesting-panel svg { width:100%; max-height:400px; display:block; margin:12px 0; }
.nesting-panel .slat { stroke-width:4; }
.piece-label { fill:var(--color-text); font-family:Inter,sans-serif; text-anchor:middle; dominant-baseline:middle; }
.nesting-overflow { color:var(--color-danger); line-height:1.5; }
.tool-dialog ul,.tool-dialog ol { padding-left:22px; line-height:1.7; }
.photo-dialog [data-save],.photo-dialog [data-share] { min-height:52px; }
.app-status { margin:16px 20px; font-size:13px; line-height:1.5; color:var(--color-text-secondary); }

.expression-pad{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}
.expression-pad button{min-height:48px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);font-size:20px}

textarea{width:100%;min-height:110px;background:var(--color-surface-raised);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;padding:12px;box-sizing:border-box}.technical-notes{white-space:pre-wrap;overflow-wrap:anywhere}

/* Interface plus légère, avec des cibles tactiles de 44 px minimum. */
:root{--touch-min:44px}
.eyebrow{display:none}
.topbar{justify-content:flex-end;padding:calc(10px + env(safe-area-inset-top)) 20px 0}
.icon-btn{background:transparent;border-color:var(--color-border);width:44px;height:44px}
.tool-node{width:60px;height:60px;margin:-30px;background:var(--color-surface)}
.tool-node .material-symbols-rounded{font-size:24px}
.wheel-center{width:100px;height:100px;background:transparent}
.tool-copy{min-height:80px}
.primary-btn{min-height:44px;padding:8px 12px;margin-top:14px;font-weight:600}
.secondary-btn{padding:8px 10px;background:transparent;margin-top:8px;font-weight:500}
.measurement{min-height:48px;padding:6px 10px;background:transparent;border-color:var(--color-border)}
.measurement strong{font-size:18px}
.result-card{padding:14px;background:transparent;border-color:var(--color-border)}
.result-card>strong{font-size:28px;margin:4px 0 12px}
.card,.project-card,.card-icon,.search,select{background:transparent}
.field-label input{width:100%;min-height:44px;padding:8px 10px;font:inherit;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm)}
.edge-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:12px 0;padding:10px}
.edge-fields legend{font-size:13px;color:var(--color-text-secondary)}
.edge-fields label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px}
.edge-fields input{width:20px;height:20px;accent-color:var(--color-accent-text)}
.panel-dimension{stroke:var(--color-text-secondary);stroke-width:2}
.panel-dimension-label{fill:var(--color-text);text-anchor:middle;dominant-baseline:middle;font-family:Inter,sans-serif}
.panel-edge{stroke:var(--color-primary);fill:none}

.nesting-panel .slat{stroke:var(--color-construction-line)}

.panel-usable{fill:none;stroke:var(--color-text-secondary);stroke-width:2;stroke-dasharray:12 8}

html[data-theme="dark"]{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}

.level-ring{fill:none;stroke:var(--color-border-strong);stroke-width:2}.level-bubble{fill:var(--color-primary)}.level-bubble.aligned{fill:var(--color-success)}[data-level-status]{margin-top:12px;font-size:14px}

.triangle-label{fill:var(--color-text);font:14px Inter,sans-serif}

.photo-calibration select{display:block;width:100%;min-height:48px;margin-block:8px}.photo-controls{display:flex;flex-wrap:wrap;gap:8px;margin-block:12px}.photo-controls button,.photo-calibration a{min-height:48px}.photo-viewport{max-height:460px;overflow:auto;touch-action:none;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.photo-viewport canvas{margin:0;display:block;height:auto}.photo-warning{color:var(--color-warning);font-weight:600}.photo-calibration [hidden]{display:none}

.photo-viewport canvas[hidden]{display:none}

.level-axis-hit{fill:none;stroke:transparent;stroke-width:36;pointer-events:stroke}.level-axis-line{pointer-events:none}.level-target,[data-level-bubble]{pointer-events:none}[data-level-axis]{cursor:pointer}[data-level-axis][aria-pressed="true"] .level-axis-line{stroke:var(--color-primary);stroke-width:3}.level-axis-controls{display:flex;gap:8px;flex-wrap:wrap}.level-axis-controls button{flex:1;min-height:48px}.level-axis-controls [aria-pressed="true"]{border-color:var(--color-primary);color:var(--color-accent-text)}[data-level-axis]:focus-visible{outline:2px solid var(--color-primary)}

.tool-switch{display:inline-flex;align-items:center;gap:12px;min-height:48px;position:relative;margin-right:20px;cursor:pointer}.tool-switch input{position:absolute;right:0;width:48px;height:32px;opacity:0;z-index:1;cursor:pointer}.switch-track{width:46px;height:28px;background:var(--color-border-strong);border-radius:20px;display:block;position:relative}.switch-track:before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:var(--color-text);left:3px;top:3px;transition:transform 140ms}.tool-switch input:checked+.switch-track{background:var(--color-primary)}.tool-switch input:checked+.switch-track:before{transform:translateX(18px)}.tool-switch input:focus-visible+.switch-track{outline:2px solid var(--color-primary);outline-offset:3px}.tool-switch input:disabled+.switch-track{opacity:.5}.tool-help-button{margin-left:auto}.tool-help-popover{max-width:min(420px,calc(100vw - 32px));max-height:75vh;overflow:auto;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.tool-help-popover::backdrop{background:transparent}.photo-controls .icon-btn{width:48px;height:48px}.photo-controls [aria-pressed="true"]{background:var(--color-surface-raised);color:var(--color-accent-text);border:1px solid var(--color-primary)}

.material-symbols-rounded.diagonal-icon{font-size:0!important;display:inline-block;width:28px;height:28px;background:currentColor;mask:url('./icons/diagonal_line.svg') center/contain no-repeat;-webkit-mask:url('./icons/diagonal_line.svg') center/contain no-repeat}#centerIcon.diagonal-icon{width:34px;height:34px}

.voice-record{width:100%;min-height:64px;margin:16px 0}.voice-record.recording{background:var(--color-primary);color:var(--color-on-primary)}.voice-note{display:grid;gap:12px;padding:18px 0;border-bottom:1px solid var(--color-border)}.voice-note small{color:var(--color-text-muted)}#voiceTool audio{display:block;width:100%;margin:10px 0}#voiceTool output{display:block;text-align:center;font-size:28px;font-variant-numeric:tabular-nums}#voiceTool [data-status]{text-align:center}#voiceTool [data-error]:empty{display:none}

.inclino-switches{display:flex;flex-wrap:wrap;gap:8px}.inclino-capture{width:100%;margin:12px 0;min-height:52px}#inclinometerTool [data-error]:empty{display:none}#inclinometerTool [data-percent]{display:block;font-size:22px}#inclinometerTool [data-result-label]{display:block;color:var(--color-text-muted)}

#ralTool [data-photo]{width:100%;height:auto;display:block;cursor:crosshair;border-radius:var(--radius-sm);touch-action:manipulation}#ralTool [data-photo][hidden]{display:none}#ralTool [data-error]:empty{display:none}.ral-inputs{display:grid;grid-template-columns:80px 1fr;gap:14px}.ral-inputs input[type=color]{padding:3px;height:44px}.ral-swatch{display:inline-block;width:42px;height:42px;border-radius:8px;border:1px solid var(--color-border);flex-shrink:0}.ral-match{display:inline-flex;align-items:center;gap:8px;margin:4px;padding:8px;font-size:14px}.ral-match[aria-pressed=true]{border-color:var(--color-primary);color:var(--color-accent-text)}.ral-choice{display:flex;align-items:center;gap:16px;margin:16px 0}.ral-choice strong{font-size:28px!important}.ral-choice .ral-swatch{width:64px;height:64px}.ral-choice div{display:grid;gap:6px}.ral-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:10px}.ral-tile{display:grid;justify-items:center;gap:5px;padding:8px;background:transparent;color:var(--color-text);border:1px solid var(--color-border);border-radius:8px}.ral-warning{font-size:13px;color:var(--color-text-muted)}

/* Toolbox: centre the selector in the available space between navigation bars. */
.app { display:flex; flex-direction:column; }
.app > main { flex:1; display:flex; flex-direction:column; }
.view[data-view="wheel"].active { flex:1; display:grid; grid-template-rows:1fr auto 1fr; }
.tool-copy { text-align:center; min-height:0; align-self:end; padding-bottom:12px; }
.gesture-hint { align-self:start; }
.photo-mode-picker { display:flex; justify-content:center; gap:12px; margin-bottom:12px; }
.photo-mode-picker [aria-pressed="true"] { color:var(--color-on-primary); background:var(--color-primary); border-color:var(--color-primary); }

.photo-import .icon-btn { flex:none; min-width:var(--touch-min); }
.photo-calibration .icon-btn { text-decoration:none; }
.photo-dialog .result-actions { justify-content:flex-end; }
.photo-dialog [data-undo],.photo-dialog [data-to-cabinet] { display:inline-grid; margin:8px 8px 8px 0; }
.photo-mode-picker [aria-pressed="true"] { outline:2px solid var(--color-primary); outline-offset:3px; }

.photo-dialog .photo-import { justify-content:center; gap:12px; }
.photo-dialog .photo-controls { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.photo-dialog [data-calibration-status] { font-size:14px; line-height:1.4; margin:8px 0; }

.photo-dialog .photo-import,.photo-dialog .result-actions { display:flex; justify-content:center; gap:12px; }
.photo-dialog .result-actions [data-undo],.photo-dialog .result-actions [data-to-cabinet] { margin:0; }
.photo-dialog [hidden] { display:none !important; }

/* Guided Photo Métré: name the choices and reveal only the current step. */
.photo-step { margin:16px 0; }
.photo-step-heading { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.photo-step-heading > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid var(--color-border-strong); color:var(--color-accent-text); font-weight:600; }
.photo-step-heading h3 { font-size:18px; }
.photo-step [data-step-instruction] { color:var(--color-text-secondary); line-height:1.5; }
.photo-step-actions { display:flex; flex-wrap:wrap; gap:8px; }
.photo-step-actions button { padding:8px 0; border:0; background:transparent; color:var(--color-text-secondary); font-size:13px; }
.photo-dialog .photo-mode-picker { display:grid; grid-template-columns:1fr; gap:12px; margin:0; }
.photo-mode-card { display:flex; text-align:left; align-items:center; gap:14px; padding:16px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); color:var(--color-text); }
.photo-mode-card > span:last-child { display:grid; gap:5px; }
.photo-mode-card strong { font-size:16px; font-weight:600; }
.photo-mode-card small { color:var(--color-text-secondary); font-size:13px; }
.photo-dialog .photo-import { display:grid; grid-template-columns:1fr; }
.photo-dialog .photo-step-button { display:flex; align-items:center; justify-content:center; gap:10px; padding:12px; min-height:48px; }
.photo-dialog .photo-import .file-button { width:100%; }
.photo-preparation { margin:12px 0; color:var(--color-text-secondary); line-height:1.5; }
.photo-preparation a { display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; margin:12px 0; }
.photo-dialog .photo-controls .photo-step-button { flex:1 1 150px; }

.tool-dialog [hidden]{display:none!important}
.guided-heading{margin:12px 0 18px}.guided-heading small{color:var(--muted);font-size:.75rem}.guided-heading h3{margin:6px 0;font-size:1.05rem}.guided-heading p{font-size:.9rem;line-height:1.45}.guided-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:18px}

#pieceSheet [hidden]{display:none!important}
.edge-preview{position:relative;padding:48px;margin:12px 0;min-height:210px}
.piece-face{aspect-ratio:var(--piece-ratio,1.5);min-height:80px;max-height:240px;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--color-text)}
.edge-side{position:absolute;border:2px solid var(--color-border-strong);border-radius:8px;min-height:44px;background:var(--color-surface-raised);color:var(--color-text);font-size:12px;touch-action:manipulation}
.edge-side[aria-pressed=true]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-text);font-weight:700}
.edge-top,.edge-bottom{left:48px;right:48px}.edge-top{top:0}.edge-bottom{bottom:0}
.edge-left,.edge-right{top:48px;bottom:48px;width:44px;writing-mode:vertical-rl}.edge-left{left:0}.edge-right{right:0}

#levelTool .technical-diagram{width:100%;max-width:320px;margin:12px auto;background:radial-gradient(circle,var(--color-surface-raised),var(--color-background));border:1px solid var(--color-border);border-radius:24px;padding:8px}
#levelTool .level-guide{stroke-width:1;opacity:.55}#levelTool .level-outer{stroke-width:2;opacity:.8}#levelTool .level-target{fill:var(--color-surface-raised);stroke:var(--color-primary);opacity:.7}
#levelTool .level-bubble{stroke:var(--color-surface-raised);stroke-width:3;filter:drop-shadow(0 2px 4px #0004)}
.level-start{width:100%;margin:10px 0;min-height:48px}

.level-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.level-mode-picker button{display:flex;align-items:center;gap:10px;padding:14px 10px;min-height:76px;text-align:left;border:1px solid var(--color-border-strong);border-radius:12px;background:var(--color-surface-raised);color:var(--color-text)}
.level-mode-picker button[aria-pressed=true]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-raised))}
.level-mode-picker svg{width:36px;height:36px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2}
.level-mode-picker strong,.level-mode-picker small{display:block}.level-mode-picker small{font-size:11px;color:var(--color-text-secondary);margin-top:4px}

.inclino-gauge{display:block;width:min(100%,260px);margin:0 auto 12px;fill:none;stroke:var(--color-border-strong);stroke-width:1}
.inclino-gauge .inclino-reference{stroke-dasharray:3 4;opacity:.6}.inclino-gauge [data-inclino-needle]{stroke:var(--color-primary);stroke-width:3}.inclino-gauge [data-inclino-needle] circle{fill:var(--color-primary)}

.stairs-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stairs-type-picker button{display:flex;align-items:center;gap:10px;min-height:70px;padding:12px;text-align:left;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);color:var(--color-text)}.stairs-type-picker svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.stairs-type-picker [aria-pressed=true],.stairs-view-picker [aria-pressed=true],#stairsTool .level-mode-picker [aria-pressed=true]{border-color:var(--color-primary);color:var(--color-accent-text)}
.stairs-view-picker{display:flex;gap:8px;margin:12px 0}.stairs-view-picker button{flex:1;min-height:44px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-raised);color:var(--color-text)}
.stair-tread{fill:var(--color-surface-raised);stroke:var(--color-text-secondary)}.stair-landing{fill:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface-raised));stroke:var(--color-primary)}.stair-landing-line,.stair-walking-line{stroke:var(--color-primary);fill:none}.stair-walking-line{stroke-dasharray:8 5}

.label-preview{display:grid;gap:12px;margin:16px 0;max-height:50vh;overflow:auto}.label-preview .piece-label-print{padding:12px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-wrap:anywhere}.label-preview .label-id{display:flex;justify-content:space-between;gap:12px}.label-preview .label-id span,.label-preview .label-date{color:var(--color-text-secondary);font-size:12px}.label-preview .label-size,.label-preview .label-name{font-weight:600}.label-preview .label-project{color:var(--color-text-secondary)}

#levelTool .level-start,#levelTool .level-sound-button{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--color-surface-raised);color:var(--color-text-secondary);border:1px solid var(--color-border-strong)}#levelTool .level-start.is-active,#levelTool .level-sound-button.is-active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}#levelTool .level-sound-button{width:100%;margin:12px 0}#levelTool .level-guide{stroke:var(--color-construction-line);stroke-width:1.5;opacity:.85}#levelTool .level-outer{stroke:var(--color-construction-line);opacity:1}#levelTool .level-live-controls[hidden]{display:none}

.bottom-nav .toolbox-brand-icon{width:32px;height:32px;object-fit:contain;border-radius:6px}

/* Fournisseurs: shared tool dialog, native list and optional map. */
.supplier-icon{font-size:0!important;width:1em;height:1em;min-width:26px;min-height:26px;background:currentColor;mask:url('./icons/storefront.svg') center/contain no-repeat;display:inline-block!important}
#suppliersTool .supplier-view,#suppliersTool .supplier-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}#suppliersTool .supplier-view button{flex:1}#suppliersTool [aria-pressed=true],.supplier-detail [aria-pressed=true]{border-color:var(--color-primary);color:var(--color-accent-text)}#suppliersTool input,#suppliersTool select{width:100%;min-height:48px}#suppliersTool [data-status]:empty{display:none}.supplier-card{padding:14px 0;border-bottom:1px solid var(--color-border)}.supplier-card-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.supplier-card-name{border:0;background:none;color:var(--color-text);font:inherit;font-weight:600;min-height:48px;text-align:left;padding:4px 0}.supplier-card p{margin:4px 0}.supplier-card-meta{color:var(--color-text-secondary);font-size:13px}.supplier-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.supplier-detail-actions a{min-height:48px;display:inline-flex;align-items:center;text-decoration:none}.supplier-tags{display:flex;flex-wrap:wrap;gap:6px}.supplier-tags span{padding:5px 8px;border-radius:var(--radius-sm);background:var(--color-surface-raised);font-size:12px}.supplier-map{height:min(50dvh,420px);min-height:300px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.supplier-map-pin span{display:block;width:22px;height:22px;background:var(--color-primary);border:3px solid var(--color-on-primary);border-radius:50%}.supplier-map .leaflet-popup-content-wrapper,.supplier-map .leaflet-popup-tip{background:var(--color-surface);color:var(--color-text)}.supplier-map .leaflet-bar a{background:var(--color-surface);color:var(--color-text)}.supplier-map .leaflet-control-attribution{background:var(--color-surface);color:var(--color-text-secondary)}.supplier-map .leaflet-control-attribution a{color:var(--color-accent-text)}.supplier-map-symbol{display:inline-block;width:24px;height:24px;background:currentColor;clip-path:polygon(0 15%,30% 0,70% 15%,100% 0,100% 85%,70% 100%,30% 85%,0 100%)}.supplier-detail textarea{min-height:100px}#suppliersTool [data-list][hidden],#suppliersTool [data-map-panel][hidden]{display:none}

#suppliersTool .supplier-toolbar{display:grid;grid-template-columns:1fr 1fr}#suppliersTool .supplier-toolbar [data-location-reset]{grid-column:1/-1}

.supplier-map-cluster{display:grid;place-items:center;background:var(--color-primary,#DC2E2E);color:#fff;border:2px solid #fff;border-radius:50%;font-weight:700;box-shadow:0 1px 5px #0006}

.palette-modes{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.palette-modes button{flex:1;white-space:nowrap}.palette-modes [aria-pressed="true"],.decor-tile[aria-pressed="true"]{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.decor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:340px;overflow:auto;margin:12px 0}.decor-tile{display:flex;flex-direction:column;text-align:left;gap:5px;padding:8px;border:1px solid var(--color-border,#aaa);border-radius:10px;background:transparent;color:inherit}.decor-preview{height:96px;width:100%;display:grid;place-items:center;border-radius:6px;overflow:hidden;background:var(--color-surface,#eee);font-size:12px;text-align:center}.decor-preview img{width:100%;height:100%;object-fit:cover}.decor-selected>.decor-preview{height:180px}.decor-selected{margin:16px 0}.decor-selected h3{font-size:18px}.decor-tile span{font-size:13px}.decor-tile strong{font-size:14px}

.hygro-choices{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.hygro-choices button{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px}.hygro-choices small{font-size:12px;font-weight:400}.hygro-choices [aria-pressed="true"]{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.hygro-movement{display:block;font-size:30px;color:var(--color-accent-text);margin:12px 0}

.hygrometry-icon{font-size:0!important;display:inline-block!important;width:28px;height:28px;background:currentColor;mask:url('./icons/hygrometry.svg') center/contain no-repeat;-webkit-mask:url('./icons/hygrometry.svg') center/contain no-repeat}#centerIcon.hygrometry-icon{width:34px;height:34px}

#hygrometryTool .hygro-measure{position:static;width:100%;margin:8px 0}

/* Secondary typography: descriptions and help, preserving input text and touch targets. */
.tool-copy p,.library-row small,.calculation-note,.empty-state,.guided-heading p,.photo-step [data-step-instruction],.photo-preparation,.photo-warning,.ral-warning,.supplier-card p,.supplier-detail p,.supplier-information p,.tool-dialog details p,.hygro-choices small,.decor-tile span,.label-project,.voice-note small,.field-label,.tool-dialog small{font-size:var(--font-secondary);line-height:1.5}
.tool-dialog input,.tool-dialog select,.tool-dialog textarea{font-size:16px}
.guided-heading small,.photo-step-heading small{display:inline-block;padding:3px 8px;border-radius:6px;background:var(--color-tertiary);color:var(--color-on-tertiary);font-size:11px}
.panel-offcut-line{stroke:var(--color-text-secondary);opacity:.55}
#levelTool .level-start.is-active,#levelTool .level-sound-button.is-active{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-on-secondary)}

.photo-warning{color:var(--color-on-tertiary);background:var(--color-tertiary);padding:8px 10px;border-radius:var(--radius-sm)}

.tool-dialog p:not([role="alert"]){font-size:var(--font-secondary);line-height:1.5}

.photo-controls .photo-step-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0}.photo-controls .photo-step-actions button{min-height:44px;padding:6px 10px;border:1px solid var(--color-border);border-radius:8px}.project-pdf-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.project-pdf-actions [role=status]{flex-basis:100%}

.photo-controls .photo-step-actions{display:contents}.photo-controls .photo-step-actions button{width:auto;margin:0;min-height:44px}.photo-controls .photo-step-actions .icon-btn{width:48px;height:48px;padding:0}

.nesting-optimization{border:0;padding:12px 0;margin:0}.nesting-optimization-options{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.nesting-optimization-options button{flex:1;min-width:110px}.nesting-optimization-options [aria-pressed="true"]{border-color:var(--primary,#DC2E2E);box-shadow:inset 0 0 0 1px var(--primary,#DC2E2E)}.nesting-table-scroll{overflow-x:auto;margin-top:16px}.nesting-pieces-table{width:100%;border-collapse:collapse;font-size:12px}.nesting-pieces-table caption{text-align:left;font-weight:600;margin-bottom:8px}.nesting-pieces-table th,.nesting-pieces-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border,#7775)}.nesting-pieces-table td:nth-child(3){white-space:nowrap}.nesting-pieces-table td:nth-child(4){text-align:center;font-weight:700}
/* Commandes tactiles : hiérarchie commune, relief discret et retour immédiat. */
:root{--button-radius:14px;--button-fill:color-mix(in srgb,var(--color-surface-raised) 78%,var(--color-surface));--button-shadow:0 1px 2px #0000000d}
.primary-btn,.secondary-btn,.icon-btn{appearance:none;-webkit-appearance:none;touch-action:manipulation;cursor:pointer;transition:background-color 140ms,border-color 140ms,box-shadow 140ms,transform 100ms;color:var(--color-text);font-size:14px;line-height:1.3;font-weight:600;letter-spacing:-.015em;min-width:0}
.primary-btn,.secondary-btn{min-height:48px;border-radius:var(--button-radius);padding:12px 16px}
.primary-btn{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 2px 4px #00000014,inset 0 1px 0 #ffffff22;border:1px solid transparent}
.secondary-btn{background:var(--button-fill);border:1px solid color-mix(in srgb,var(--color-border) 65%,transparent);box-shadow:var(--button-shadow)}
.icon-btn{flex-shrink:0;width:44px;height:44px;border-radius:13px;background:var(--button-fill);border:1px solid var(--color-border);box-shadow:var(--button-shadow)}
.primary-icon{background:var(--color-primary);color:var(--color-on-primary);border-color:transparent}
.primary-btn .material-symbols-rounded,.secondary-btn .material-symbols-rounded{font-size:21px}
.primary-btn:focus-visible,.secondary-btn:focus-visible,.icon-btn:focus-visible{outline:3px solid var(--color-accent-text);outline-offset:3px}
.primary-btn:active:not(:disabled),.secondary-btn:active:not(:disabled),.icon-btn:active:not(:disabled){transform:scale(.98);box-shadow:inset 0 1px 3px #0000001a}
.secondary-btn[aria-pressed="true"],.icon-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-color:var(--color-primary);color:var(--color-accent-text)}
.primary-btn:disabled,.secondary-btn:disabled,.icon-btn:disabled{opacity:.42;cursor:default;box-shadow:none}
.result-actions{gap:10px}.result-actions .primary-btn,.result-actions .secondary-btn{margin-top:12px}
.photo-controls .icon-btn{border-radius:13px}
@media(hover:hover){.secondary-btn:hover:not(:disabled),.icon-btn:hover:not(:disabled){background:color-mix(in srgb,var(--button-fill) 88%,var(--color-text));border-color:var(--color-border-strong)}.primary-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 90%,#000)}}
@media(prefers-reduced-motion:reduce){.primary-btn,.secondary-btn,.icon-btn{transition:none}.primary-btn:active:not(:disabled),.secondary-btn:active:not(:disabled),.icon-btn:active:not(:disabled){transform:none}}
.guided-navigation .primary-btn,.guided-navigation .secondary-btn{margin-top:0;flex:1}
/* Sélecteurs et sections dépliables : même langage que les commandes tactiles. */
select{appearance:none;-webkit-appearance:none;min-height:48px;padding:12px 44px 12px 14px;border:1px solid var(--color-border);border-radius:14px;background-color:var(--button-fill);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m6 8 4 4 4-4' fill='none' stroke='%23747b7d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;color:var(--color-text);font-size:16px;line-height:1.4;box-shadow:var(--button-shadow);cursor:pointer;transition:border-color 140ms,box-shadow 140ms}
select:focus-visible{outline:3px solid var(--color-accent-text);outline-offset:3px;border-color:var(--color-primary)}
select:disabled{opacity:.45;cursor:default}select option,select optgroup{background:var(--color-surface);color:var(--color-text)}
details{border:1px solid var(--color-border);border-radius:14px;margin-top:16px;padding:0 14px;background:var(--color-surface);box-shadow:var(--button-shadow)}
summary{display:flex;align-items:center;gap:12px;list-style:none;min-height:50px;margin:0 -14px;padding:13px 14px;border-radius:13px;background:var(--button-fill);font-size:14px;font-weight:600;line-height:1.4;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color 140ms}
summary::-webkit-details-marker{display:none}summary::marker{content:''}
summary::after{content:'';width:8px;height:8px;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(45deg);margin:-4px 3px 0 auto;flex-shrink:0;transition:transform 160ms}
details[open]{padding-bottom:14px}details[open]>summary{border-radius:13px 13px 0 0;margin-bottom:12px;border-bottom:1px solid var(--color-border)}details[open]>summary::after{transform:rotate(225deg);margin-top:4px}
summary:focus-visible{outline:3px solid var(--color-accent-text);outline-offset:3px}summary:active{background:color-mix(in srgb,var(--button-fill) 90%,var(--color-text))}
@media(hover:hover){summary:hover,select:hover:not(:disabled){border-color:var(--color-border-strong);background-color:color-mix(in srgb,var(--button-fill) 94%,var(--color-text))}}
@media(prefers-reduced-motion:reduce){select,summary,summary::after{transition:none}}
@media(forced-colors:active){select{appearance:auto;background-image:none}summary::after{border-color:ButtonText}}

/* Photo Métré : commandes regroupées selon leur rôle. */
.photo-dialog .photo-controls{align-items:center;gap:8px}.photo-dialog .photo-controls>.icon-btn{width:48px;height:48px;min-height:48px;margin:0;padding:0;flex:0 0 48px}
.photo-edge-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.photo-edge-toolbar .tool-switch{margin:0 auto 0 0;min-height:44px}.photo-edge-toolbar .icon-btn{margin:0;flex:0 0 44px}
.photo-dialog .photo-viewport+.photo-step-actions{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.photo-dialog .photo-viewport+.photo-step-actions .secondary-btn{margin:0;padding:12px 16px;min-height:48px;border:1px solid var(--color-border);border-radius:14px;background:var(--button-fill);color:var(--color-text);font-size:14px}
.photo-dialog .result-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}.photo-dialog .result-actions button{display:flex;align-items:center;justify-content:center;width:100%;margin:0}

.pwa-install-sheet{max-width:420px}.pwa-install-icon{display:block;border-radius:18px;margin:16px auto}.pwa-install-sheet>p{line-height:1.5;margin:12px 0}.pwa-install-sheet [data-install-help]{font-size:13px;color:var(--color-text-secondary)}
