:root{color-scheme:light;--ink:#183c35;--green:#166a4d;--line:#abc7ba;--paper:#fff}*{box-sizing:border-box}body{margin:0;background:#f2f7f2;color:var(--ink);font:17px/1.5 system-ui,sans-serif;overflow-wrap:anywhere}button,input,select,textarea{font:inherit}button,.button{background:var(--green);color:#fff;border:1px solid var(--green);border-radius:10px;padding:10px 13px;min-height:44px;cursor:pointer;font-weight:650}button:disabled{opacity:.48;cursor:default}.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.danger{background:#fff2ef;color:#922b24;border-color:#a56d64}a{color:#135e49}:focus-visible{outline:3px solid #cf5e00;outline-offset:3px}#shell{max-width:760px;margin:auto;padding:14px}header{display:flex;gap:12px;align-items:center}header h1{font-size:25px;line-height:1.15;margin:4px 0}header p,header small{font-size:12px;margin:0}header img{border-radius:12px}.install{width:100%;margin:12px 0}.toolbar,.dock{display:flex;gap:7px;margin:10px 0}.toolbar button,.dock button{flex:1;min-width:0;padding:8px 5px;font-size:13px}nav{display:flex;gap:5px;margin:14px 0}nav button{flex:1;min-width:0;padding:8px 2px;font-size:13px;background:#fff;color:#345e51;border-color:var(--line)}nav button[aria-current=step]{background:var(--green);color:#fff}nav span{display:block;font-size:10px}main{background:#fff;padding:clamp(14px,4vw,25px);border:1px solid var(--line);border-radius:16px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.05em;margin:0}h2{font-size:24px;line-height:1.2;margin:7px 0 16px}h3{font-size:19px}p{margin:10px 0}label{display:block;font-weight:650;margin:12px 0 5px}input:not([type=checkbox]),select,textarea{width:100%;min-height:44px;padding:10px;border:1px solid #8aa89d;border-radius:8px;background:white;color:var(--ink)}textarea{min-height:75px;resize:vertical}input[type=checkbox]{width:21px;height:21px;accent-color:var(--green);flex:none}.choice{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:9px;margin:8px 0;font-weight:400}.choice small{display:block;color:#42645a;font-size:13px}.hint{font-size:13px;color:#42645a}.nav{display:flex;justify-content:space-between;gap:9px;border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.row{display:flex;gap:10px}.row>div{flex:1;min-width:0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.actions button{flex:1;font-size:14px}.callout{border-left:4px solid #d17a18;background:#fff8e7;padding:10px;font-size:14px}.cards{display:grid;gap:8px}.cards button{min-height:50px;text-align:left}.art{width:100%;height:auto;display:block}svg{max-width:100%}.paper{position:relative;aspect-ratio:1.6;background:white;box-shadow:0 0 0 1px #8aa89d;overflow:hidden;margin:12px 0}.paper>svg{position:absolute;inset:0;width:100%;height:100%}.paper canvas{position:relative;width:100%;height:100%;display:block;background:transparent;touch-action:none}#lineFigure svg{width:100%;max-height:260px;display:block}.bearing{font-size:37px;font-weight:750;text-align:center;background:#e9f6ed;border-radius:12px;padding:12px}.status{font-size:13px;min-height:22px}.mini{font-size:12px}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.split figure{margin:0;min-width:0}.split figcaption{font-size:13px;font-weight:650}.split svg{width:100%;height:190px}summary{cursor:pointer;padding:12px 0;min-height:44px;font-weight:650}details{margin:10px 0}#error,#notice{padding:12px;border:1px solid #b66445;background:#fff1e9;border-radius:8px}#notice{font-size:13px;margin:10px 0}table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:7px;border:1px solid var(--line);text-align:left}footer{text-align:center;margin:16px 0;font-size:12px}footer p{margin:5px}fieldset{border:0;padding:0;min-width:0}.skip{position:absolute;top:-100px;background:white;padding:8px}.skip:focus{top:0}#print{display:none}[hidden]{display:none!important}@media(max-width:360px){#shell{padding:10px}nav span{font-size:9px}.row{gap:7px}.dock button{font-size:12px}.split svg{height:130px}}@media print{body{background:white;color:#111;font:10pt/1.4 sans-serif}#shell,.skip,noscript{display:none!important}#print{display:block}#print svg{width:100%;max-width:480px;max-height:280px}#print .split svg{height:200px}#print h2{font-size:16pt}#print table{font-size:8pt}#print tr{break-inside:avoid}#print .signature{break-inside:avoid}#print .hint{font-size:9pt}#print p,#print li{orphans:3;widows:3}}
/* v1.1.0: tres pasos, controles grandes y ampliación táctil */
nav button{font-size:14px;padding:11px 5px}nav span{font-size:11px;margin-top:2px}
.lead{font-weight:600;font-size:16px}.task-cards{display:grid;gap:11px;margin:16px 0}
.task-button{display:block;text-align:left;background:#edf7ee;color:var(--ink);border:1px solid #b0d3bd;font-size:17px;padding:17px 15px;line-height:1.35}
.task-button small{display:block;font-size:13px;font-weight:400;color:#405c52;margin-top:4px}
.optional{margin:16px 0}.compact-label{margin:0;white-space:nowrap;font-size:13px}
.direction-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:8px 0 16px}
.direction-grid button{font-size:17px;padding:12px 3px;min-height:55px}
.direction-grid button.selected{background:#17694f;color:white;border-color:#17694f}
.result-caption{font-size:20px;font-weight:700;line-height:1.3}.signature-panel>svg{width:100%;display:block}
.signature-panel{max-width:700px}.signature-panel p{margin:12px 0}
.canvas-editor{border:1px solid var(--line);border-radius:14px;background:#f7fbf7;padding:9px;min-width:0}
.editor-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.editor-top select{width:auto;flex:1;min-width:132px;font-size:14px;height:45px}
.editor-top button{flex:1;white-space:nowrap;font-size:14px}.canvas-mode,.editor-actions{display:flex;gap:9px;margin:9px 0}.canvas-mode button,.editor-actions button{flex:1;font-size:14px}
.paper-viewport{width:100%;max-width:100%;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#f1f6f3;margin:10px 0;box-shadow:inset 0 0 0 1px #7ba28d}
.canvas-editor .paper{margin:0;min-width:0;box-shadow:none;width:100%;aspect-ratio:1.6}
.canvas-editor canvas{touch-action:none;cursor:crosshair}
.canvas-editor.is-pan canvas{touch-action:pan-x pan-y;cursor:grab}
.canvas-editor.is-expanded{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;background:#fff;display:flex;flex-direction:column;padding:8px max(8px,env(safe-area-inset-right)) 9px max(8px,env(safe-area-inset-left));height:100dvh;width:100vw}
.canvas-editor.is-expanded .editor-top{flex:0 0 auto}
.canvas-editor.is-expanded .editor-top button{min-width:130px}
.canvas-editor.is-expanded .paper-viewport{flex:1;min-height:0;min-width:0;overflow:auto;margin:7px 0}
.canvas-editor.is-expanded .paper{width:max(960px,100%);max-width:none;aspect-ratio:1.6}
.canvas-editor.is-expanded.is-fit .paper{width:100%;max-width:100%}
.canvas-editor.is-expanded .canvas-mode{display:flex;flex:0 0 auto}
.canvas-editor.is-expanded .editor-actions{flex:0 0 auto}
.canvas-editor.is-expanded .status{flex:0 0 auto;margin:0 2px;font-size:12px}
body.drawing-expanded{overflow:hidden}
@media(max-width:460px){.editor-top .compact-label{display:none}.editor-top select{min-width:120px;width:45%}.editor-top button{min-width:130px}.direction-grid{gap:6px}.direction-grid button{font-size:16px;min-height:50px}.canvas-editor.is-expanded .editor-top select{font-size:12px;padding:7px}.canvas-editor.is-expanded .editor-top button{font-size:12px;padding:8px}}
@media print{.ticket-report .split{display:grid;grid-template-columns:1fr 1fr}.ticket-report .split svg{height:165px}.ticket-report .signature svg{max-height:220px}.ticket-report .hint{font-size:9pt}}
/* Opciones relegadas a un menú discreto. */
footer .more-menu{text-align:left;margin:0 0 10px}
footer .more-menu summary{color:#275849;font-weight:600;padding:9px 6px}
footer .toolbar{flex-wrap:wrap}
footer .toolbar button{min-width:98px}
footer .install{font-size:14px;padding:9px 12px;min-height:44px;margin:7px 0 12px}
/* v1.2.0: cuatro pantallas, dos roles, contraste de diseño y recorrido. */
.brand{padding:2px 1px 5px}.brand small{color:#276247;font-size:12px}.brand h1{letter-spacing:-.5px}
nav#steps button{min-width:0;padding:9px 2px;font-size:12px}nav#steps button strong{display:block;font-size:17px}nav#steps button span{font-size:10px;line-height:1.1;display:block}nav#steps button:disabled{opacity:.65}
main{box-shadow:0 6px 28px #1b64410a}.identity-head{display:flex;gap:14px;align-items:center;background:#eaf6ef;padding:10px 12px;border-radius:12px;margin:14px 0}.identity-head div{flex:1}.identity-head div p{font-size:12px;margin:2px 0}.identity-avatar{font-size:34px}.story{padding:12px;border-left:4px solid #e49a3e;background:#fffaef;margin-top:18px;border-radius:8px}
.letter-card{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#e9f6ee;border:1px solid #a9cebe;padding:9px 13px;border-radius:12px}.letter-card span{font-size:12px;max-width:35%}.letter-card strong{font-size:35px;color:#154b37}.letter-controls{display:flex;gap:9px;margin:10px 0}.letter-controls button{flex:1;font-size:13px}
.editor-meta{display:flex;flex-direction:column;flex:1;min-width:100px}.editor-meta span{font-size:12px;color:#527365}.editor-top{align-items:center}.editor-top button{flex:0 1 auto}.canvas-editor .paper{aspect-ratio:1.5}.canvas-editor.is-expanded .paper{aspect-ratio:1.5}.canvas-editor.is-expanded .paper{width:max(1050px,100%)}.canvas-editor.is-expanded.is-fit .paper{width:100%}.canvas-editor.is-expanded .editor-top{min-height:48px}.canvas-editor.is-expanded .editor-meta{font-size:13px}
.route-progress{display:flex;justify-content:space-between;gap:8px;color:#245b46;background:#edf7ee;padding:10px;border-radius:10px;font-size:13px}
.direction-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.direction-grid button{min-width:0;font-size:15px;min-height:49px;font-weight:700}
#lineFigure{border:1px solid #b2cabb;border-radius:10px;overflow:hidden}#lineFigure svg{display:block;width:100%;max-height:260px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.stats>div{border:1px solid #acd0bf;border-radius:10px;padding:12px;background:#f3faf6}.stats span{font-size:12px;display:block;color:#4c675d}.stats strong{display:block;font-size:16px;line-height:1.3;margin-top:4px}
.compare-drawings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compare-drawings figure{margin:0;min-width:0}.compare-drawings figcaption{font-size:13px;font-weight:700;margin-bottom:7px}.compare-drawings svg{width:100%;max-height:290px}
.signature-panel svg{max-width:100%}.table-scroll{overflow-x:auto;max-width:100%}.table-scroll table{font-size:12px;min-width:580px}.table-scroll th,.table-scroll td{padding:7px 5px}
.actions button{min-width:155px}.nav button{flex:1}.nav button[hidden]{display:none!important}
@media(max-width:460px){body{font-size:16px}#shell{padding:10px}main{padding:13px}nav#steps button span{font-size:9px}.direction-grid button{font-size:15px;padding:6px 0}.letter-controls button{font-size:12px}.editor-top button{min-width:132px}.compare-drawings{gap:5px}.compare-drawings figcaption{font-size:11px}.stats strong{font-size:14px}.canvas-editor.is-expanded .editor-top button{min-width:115px}.canvas-editor.is-expanded .editor-meta{min-width:85px}.canvas-editor.is-expanded .editor-meta span{font-size:11px}}
@media print{.ticket-report .compare-drawings{display:grid;grid-template-columns:1fr 1fr}.ticket-report .compare-drawings svg{max-height:180px}.ticket-report .stats{grid-template-columns:1fr 1fr}.ticket-report .table-scroll{overflow:visible}.ticket-report .table-scroll table{min-width:0}.ticket-report .table-scroll th,.ticket-report .table-scroll td{padding:3px;font-size:8pt}}
