:root{font-family:system-ui,-apple-system,Arial,sans-serif;color:#1b2a41;background:#edf2f8}*{box-sizing:border-box}body{margin:0}header{background:#143b7d;color:white;padding:22px max(18px,calc((100vw - 800px)/2));}header h1{margin:22px 0 0;font-size:1.65rem}header p{margin:5px 0}.logo{font-weight:900;letter-spacing:.25em;font-size:2rem}.logo span{color:#f5a324}small{display:block;font-size:.68rem;letter-spacing:.03em}main{max-width:840px;margin:20px auto;padding:0 14px}.card{background:white;border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px #14294b13}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}label{display:block;font-weight:650;font-size:.87rem;margin:10px 0}input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #b6c4d5;border-radius:8px;background:white;color:#152945;font-size:16px}h2{color:#143b7d;font-size:1.25rem;margin:15px 0 4px}h3{color:#143b7d}.diagram{display:block;width:min(100%,340px);max-height:160px;object-fit:contain;margin:12px auto}.measures>div{border:1px solid #e0e6ee;border-radius:8px;padding:8px}.note{font-size:.82rem;color:#596a80}.actions{display:flex;flex-wrap:wrap;gap:9px}button{background:#1554ad;color:white;border:0;border-radius:9px;padding:14px 16px;font-weight:700;cursor:pointer;flex:1}button.secondary{background:#dce6f2;color:#143b7d}.hidden{display:none!important}.report{background:white;padding:32px;box-shadow:0 2px 12px #14294b15}.reporthead{display:flex;justify-content:space-between;border-bottom:3px solid #143b7d;padding-bottom:14px;margin-bottom:15px;gap:15px}.reporthead>div:last-child{text-align:right}.brand{color:#143b7d;font-size:1.7rem;letter-spacing:.1em}.report table{border-collapse:collapse;width:100%;margin:12px 0}.report th,.report td{border:1px solid #cbd5e3;padding:8px;text-align:left;font-size:.9rem}.report th{width:40%;background:#eff4fa}.report h3{border-bottom:1px solid #cbd5e3;padding-bottom:5px;margin-top:22px}.report footer{margin-top:32px}.report .comment{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:470px){.grid{grid-template-columns:1fr}.card{padding:15px}.report{padding:18px}.reporthead{font-size:.8rem}}@media print{@page{size:A4;margin:15mm}body{background:white}header,.card{display:none!important}main{max-width:none;margin:0;padding:0}.report{display:block!important;box-shadow:none;padding:0}.report .diagram{max-height:110px}.report h3{margin-top:12px}.report table{margin:8px 0}.report th,.report td{padding:5px}.report footer{margin-top:18px}}

.diagram.cardan{width:min(100%,580px);max-height:235px}.reportpairs{display:grid;grid-template-columns:1fr 1fr;gap:16px}.reportpairinner{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.reportpairinner .diagram{width:100%;max-height:150px}.reportref{font-size:.75rem;line-height:1.65;background:#f0f5fb;padding:8px}.reportpair table{font-size:.8rem}.reportpair th,.reportpair td{padding:5px}.reportpair h3{font-size:1rem}@media(max-width:650px){.reportpairs{grid-template-columns:1fr}.reportpairinner{grid-template-columns:1fr 1fr}}@media print{.reportpairs{grid-template-columns:1fr 1fr;gap:12px}.reportpairinner{grid-template-columns:1fr}.reportpairinner .diagram{max-height:130px}.reportpair h3{margin-top:10px}.reportpair table{margin:5px 0}.reportref{margin:3px 0;padding:5px}.report .reportpairs h3{font-size:12px}}
.smim-logo{display:block;width:260px;max-width:85%;height:auto;object-fit:contain;background:white;padding:5px;border-radius:3px}.print-logo{width:185px}.reporthead{align-items:center}.reportpairinner .diagram{max-height:170px}input.invalid,select.invalid{border:2px solid #bf2626;background:#fff7f7}.validation-error{color:#ad1d1d;font-size:.82rem;margin:4px 0 0}@media print{.smim-logo{padding:0;background:transparent}.reporthead{break-inside:avoid}.reportpair{break-inside:avoid}}

.diagram{width:min(100%,650px);max-height:270px;object-fit:contain}.diagram.cardan{width:min(100%,680px);max-height:260px}.report-metal{width:min(100%,540px)!important;max-height:210px!important}button:disabled{opacity:.6;cursor:wait}@media(max-width:480px){.diagram,.diagram.cardan{max-height:200px}}

/* Sprint 1.5: touch-first field use and safe mobile layout */
html{-webkit-text-size-adjust:100%}input,select,textarea{min-height:48px;touch-action:manipulation}button{min-height:50px;touch-action:manipulation}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #f6a800;outline-offset:2px}#offlineStatus{font-size:.78rem} @media(max-width:600px){main{padding:0 10px;margin:12px auto}.card{padding:15px;border-radius:12px}.actions{display:grid;grid-template-columns:1fr 1fr}.actions button{min-width:0}.actions .secondary{grid-column:1/-1}.measures{grid-template-columns:repeat(2,minmax(0,1fr))}.measures input,.measures select{width:100%;min-width:0}.smim-logo{width:220px}header{padding:14px 16px}header h1{font-size:1.35rem;margin-top:12px}.diagram{width:100%;max-height:none}.report{overflow-x:auto}}@media(max-width:370px){.measures{grid-template-columns:1fr}}
