:root{--bg:#f3f1ec;--panel:#fff;--border:#ddd8cd;--text:#24211c;--muted:#7a7366;--accent:#2f5d8a;--error:#b3261e;--warning:#a86400;color:var(--text);background:var(--bg);font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app{height:100%;display:flex}.panel{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex:none;width:360px;display:flex}.panel-header{border-bottom:1px solid var(--border);padding:14px 16px 10px}.panel-header h1{margin:0;font-size:17px}.panel-body{flex:1;padding:12px 16px;overflow-y:auto}.panel-footer{border-top:1px solid var(--border);padding:12px 16px}.panel-section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px;font-size:12px}fieldset.layer{border:1px solid var(--border);border-radius:6px;margin:0 0 10px;padding:6px 10px 8px}fieldset.layer legend{padding:0 4px;font-weight:600}.row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field{flex-direction:column;gap:2px;min-width:0;margin:6px 0;display:flex}.field-label{color:var(--muted);font-size:12px}.field-input{border:1px solid var(--border);background:#fff;border-radius:4px;align-items:center;display:flex}.field-input input{font:inherit;background:0 0;border:0;outline:0;width:100%;min-width:0;padding:5px 6px}.field-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #2f5d8a26}.field .unit{color:var(--muted);padding-right:6px;font-size:12px}.field>input[type=text],.field>select,.field select{border:1px solid var(--border);font:inherit;background:#fff;border-radius:4px;padding:5px 6px}.field.error .field-input{border-color:var(--error)}.field.warning .field-input{border-color:var(--warning)}.field.readonly .field-value{font-variant-numeric:tabular-nums;padding:5px 0}.check{align-items:center;gap:6px;margin:6px 0;font-size:13px;display:flex}.issues{max-height:140px;margin:0 0 10px;padding:0;list-style:none;overflow-y:auto}.issues li{border-radius:4px;margin-bottom:4px;padding:5px 8px;font-size:13px}.issues li.error{color:var(--error);background:#fbe9e7}.issues li.warning{color:var(--warning);background:#fff4e0}.issues li.info{color:var(--accent);background:#eef3f8}.actions{gap:8px;display:flex}.actions button{flex:1}.hint{color:var(--error);margin:8px 0 0;font-size:12px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:5px;padding:7px 14px}button:disabled{opacity:.5;cursor:default}button.ghost{color:var(--accent);background:#fff}.viewport{flex:1;min-width:0;position:relative}.overlay{border:1px solid var(--border);pointer-events:auto;background:#ffffffe6;border-radius:6px;padding:8px 12px;line-height:1.5;position:absolute}.overlay.top-left{top:12px;left:12px}.overlay.top-right{background:0 0;border:0;padding:4px;top:12px;right:12px}.overlay-title{font-weight:600}.muted{color:var(--muted);font-size:12px}.modal{z-index:10;background:#e6e3dc;flex-direction:column;display:flex;position:fixed;inset:0}.modal-bar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 16px;display:flex}.spacer{flex:1}.modal-body{flex:1;justify-content:center;align-items:flex-start;padding:24px;display:flex;overflow:auto}.sheet{background:#fff;width:min(100%,141.429vh - 155.571px);height:auto;box-shadow:0 2px 12px #00000026}@page{size:A4 landscape;margin:0}@media print{.app>:not(.modal),.modal-bar{display:none!important}.modal{background:#fff;position:static}.modal-body{padding:0;overflow:visible}.sheet{box-shadow:none;width:297mm;height:210mm}}.overlay.top-right{align-items:center;gap:8px;display:flex}.overlay-check{border:1px solid var(--border);background:#ffffffe6;border-radius:5px;margin:0;padding:6px 10px}.row3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.field-note{color:var(--text);margin:0 0 6px;font-size:12px}button.link{color:var(--accent);background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.nail-group-title{min-height:2.4em;margin-top:4px;font-size:12px;font-weight:600}.overlay.bottom-center{bottom:14px;left:50%;transform:translate(-50%)}.view-bar{white-space:nowrap;gap:4px;padding:4px;display:flex}.view-bar button{padding:5px 10px;font-size:13px}.view-bar button.active{background:var(--accent);color:#fff}.overlay.bottom-right{bottom:14px;right:12px}.camera-help{color:var(--muted);padding:6px 10px;font-size:12px;line-height:1.6}.camera-help strong{color:var(--text);font-weight:600}.panel-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.file-actions{gap:6px;display:flex}button.small{padding:4px 10px;font-size:13px}.file-message{border-bottom:1px solid var(--border);margin:0;padding:6px 16px;font-size:13px}.file-message.error{color:var(--error);background:#fbe9e7}.file-message.info{color:var(--accent);background:#eef3f8}.segmented{border:1px solid var(--accent);border-radius:6px;grid-template-columns:repeat(4,1fr);gap:0;margin:10px 0 4px;display:grid;overflow:hidden}.segmented button{color:var(--accent);background:#fff;border:0;border-radius:0;padding:6px 4px;font-size:13px}.segmented button+button{border-left:1px solid var(--accent)}.segmented button.active{background:var(--accent);color:#fff}.sheet-nav{flex-wrap:wrap;gap:4px;margin-left:12px;display:flex}.modal-body{flex-direction:column;justify-content:flex-start;align-items:center;gap:24px}.sheet-wrap{justify-content:center;width:100%;display:flex}@media print{.modal-body{gap:0}.sheet-wrap{break-after:page}}.consent{z-index:20;border:1px solid var(--border);background:#fff;border-radius:8px;max-width:380px;padding:14px 16px;font-size:13px;line-height:1.45;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 24px #00000026}.consent p{margin:0 0 10px}.consent-title{font-size:14px;font-weight:600}.consent-actions{gap:8px;display:flex}.consent-actions button{flex:1}.check.remember{color:var(--muted);margin-top:10px;font-size:12px}.dialog-backdrop{z-index:30;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:8px;max-width:360px;padding:18px 20px;font-size:13px;line-height:1.45;box-shadow:0 10px 40px #00000040}.dialog p{margin:0 0 12px}.dialog-title{font-size:15px;font-weight:600}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}
