:root{--bg: #f6f7f9;--panel: #ffffff;--border: #e2e5ea;--text: #1c2430;--muted: #5b6472;--primary: #2563eb;--primary-d: #1d4ed8;--danger: #dc2626;--ok: #15803d;--warn: #b45309}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);font-size:16px;line-height:1.5}h1{font-size:22px;margin:4px 0}h2{font-size:17px}h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}code{background:#eef1f5;padding:1px 5px;border-radius:4px;font-size:.875em}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:6px}.row.gap{gap:12px}a{color:var(--primary)}button{font:inherit;min-height:32px;padding:8px 14px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer}button:hover:not(:disabled){border-color:#c8ccd4}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover:not(:disabled){background:var(--primary-d)}button.link{border:none;background:none;color:var(--primary);padding:6px 8px;min-height:32px}button.link.danger{color:var(--danger)}input,select,textarea{font:inherit;font-size:16px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;width:100%;background:#fff}label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted);margin-bottom:12px}label.row{flex-direction:row;align-items:center;color:var(--text);font-size:16px}label input[type=checkbox]{width:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px}.error-box{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:10px 12px;border-radius:8px;margin:10px 0;font-size:13px}.info-box{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:10px 12px;border-radius:8px;margin:10px 0;font-size:13px}.login-wrap{display:grid;place-items:center;min-height:100vh}.login-card{width:360px}.login-card h1{margin-bottom:4px}.layout{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.sidebar{background:#0f766e;color:#d1faf4;display:flex;flex-direction:column;padding:18px 14px}.brand{font-size:18px;font-weight:700;color:#fff;margin-bottom:22px;display:flex;align-items:baseline;gap:6px}.brand-sub{font-size:11px;font-weight:600;background:#fff3;padding:2px 6px;border-radius:5px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a{color:#d1faf4;text-decoration:none;padding:10px 12px;border-radius:8px;font-weight:500}.sidebar nav a:hover{background:#ffffff1f}.sidebar nav a.active{background:#fff;color:#0f766e}.sidebar-foot{border-top:1px solid rgba(255,255,255,.18);padding-top:12px}.sidebar-foot .muted{color:#cdf7ef;font-size:12px;margin-bottom:4px}.sidebar-foot .link{color:#fff}.content{padding:22px 26px;overflow:auto;max-width:900px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px}.table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.table th,.table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{background:#fafbfc;font-size:12px;color:var(--muted);text-transform:uppercase}.table tr:last-child td{border-bottom:none}.badge{font-size:11px;padding:3px 9px;border-radius:999px;color:#fff;white-space:nowrap}.badge-planned{background:#64748b}.badge-progress{background:var(--warn)}.badge-done{background:var(--ok)}.badge-approved{background:#0f766e}.badge-rejected{background:var(--danger)}.insp-form .pv-field{margin-bottom:16px}.pv-label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:5px}.pv-label .req{color:var(--danger);margin-left:3px}.pv-section{border-bottom:2px solid var(--primary);padding-bottom:6px;margin:26px 0 14px;color:var(--text);font-size:13px;font-weight:700}.pv-help{font-size:11px;margin-top:3px}.pv-multi{display:flex;flex-direction:column;gap:4px}.pv-multi label{font-size:13px;color:var(--text);margin-bottom:0}.pv-field.has-error input,.pv-field.has-error select{border-color:var(--danger);box-shadow:0 0 0 2px #fee2e2}.field-err{color:var(--danger);font-size:12px;margin-top:3px}.pv-placeholder{border:1px dashed var(--border);border-radius:8px;padding:14px;text-align:center;color:var(--muted)}.with-unit{display:flex;align-items:center;gap:8px}.with-unit input{flex:1}.with-unit .unit{color:var(--muted);font-size:13px;min-width:28px}.file-drop{display:flex;align-items:center;justify-content:center;border:1px dashed #b6c2d6;border-radius:10px;padding:22px;color:var(--primary);cursor:pointer;font-weight:600;background:#f8fafc;margin:0}.file-drop:hover{background:#eff6ff}.media-preview{display:flex;align-items:flex-start;gap:12px}.media-preview img{max-width:220px;max-height:180px;border:1px solid var(--border);border-radius:8px}.media-preview img.sig-img{background:#fff}.sigpad canvas{border:1px solid var(--border);border-radius:8px;touch-action:none;width:100%;max-width:500px;background:#fff}.progress{display:flex;align-items:center;gap:10px;margin-bottom:14px}.progress-bar{flex:1;height:8px;background:#e6e9ef;border-radius:999px;overflow:hidden}.progress-bar span{display:block;height:100%;background:var(--primary);transition:width .3s}.action-bar{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:14px 0;margin-top:16px;background:linear-gradient(transparent,var(--bg) 40%)}.action-bar button{padding:11px 20px;font-weight:600}.save-ind{font-size:12px;min-height:18px}.save-error{color:var(--danger)}.report-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:18px 20px;margin-bottom:16px}.report-head{font-weight:700;color:var(--ok);margin-bottom:12px}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 24px}.report-grid>div{display:flex;flex-direction:column;gap:2px}.report-grid .muted{font-size:11px;text-transform:uppercase;letter-spacing:.03em}.pv-grid{margin:14px 0}.pv-grid-title{font-weight:600;margin-bottom:6px}.pv-grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:8px}.pv-grid table{border-collapse:collapse;min-width:100%}.pv-grid th,.pv-grid td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:6px 8px;text-align:left}.pv-grid th{background:#f6f7f9;font-size:12px;font-weight:600;white-space:nowrap}.pv-grid tr:last-child th,.pv-grid tr:last-child td{border-bottom:none}.pv-grid th:last-child,.pv-grid td:last-child{border-right:none}.pv-grid-rowhead{position:sticky;left:0;z-index:1;background:#f6f7f9;max-width:220px;white-space:normal}.pv-grid input,.pv-grid select{min-width:90px;margin:0}.ni-step{margin-bottom:12px}.ni-step-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ni-new{margin-top:8px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, #f6f7f9)}.ni-new label{display:block;margin-bottom:8px}.req{color:var(--danger);margin-left:3px}:where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}:where(a,button,input,select,textarea,summary,[tabindex]):focus:not(:focus-visible){outline:none}@media (pointer: coarse){button,input,select,.file-drop,.sidebar nav a{min-height:44px}button.link{min-height:44px;padding:10px 12px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sr-only-focusable:focus-within{outline:2px solid var(--primary);outline-offset:2px}.field-err:before{content:"⚠ "}.err-summary{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:12px 14px;border-radius:8px;margin:12px 0}.err-summary:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.err-summary h2{margin:0 0 6px;font-size:15px}.err-summary ul{margin:0;padding-left:18px}.err-summary a{color:#991b1b}.pv-field.has-error input,.pv-field.has-error select{border-color:var(--danger)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
