:root{--bg:#f2efe8;--surface:#fff;--surface-2:#ebe7dd;--ink:#181c22;--ink-dim:#5b6068;--ink-faint:#8b909a;--border:#181c2224;--border-strong:#181c223d;--primary:#1f3a5c;--primary-ink:#fff;--accent:#d9560e;--accent-ink:#fff;--pass:#2f8f4e;--pass-bg:#e4f3e8;--fail:#c92a2a;--fail-bg:#fbe4e4;--radius:14px;--radius-sm:9px;--shadow-sm:0 1px 2px #181c220f;--shadow-md:0 6px 20px -8px #181c2247;--font-display:"Barlow Condensed",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.45}input,textarea,select,button{font-family:inherit;font-size:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:700}.shell{max-width:720px;min-height:100dvh;margin:0 auto;padding:0 16px 40px}.topbar{z-index:20;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:16px;padding:12px 0;display:flex;position:sticky;top:0}.topbar img{width:auto;height:34px}.topbar .spacer{flex:1}.topbar h1{font-size:20px}.nav{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.nav a{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-dim);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;text-decoration:none}.nav a.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.iconbtn{border:1px solid var(--border);background:var(--surface);min-width:42px;height:42px;color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.iconbtn.danger{color:var(--fail);border-color:var(--fail-bg)}.btn{border-radius:var(--radius);width:100%;font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:15px;font-size:16px;font-weight:700;display:flex}.btn.accent{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-md)}.btn.accent:disabled{color:var(--ink-faint);box-shadow:none;cursor:not-allowed;background:#e1ddd0}.btn.ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--border-strong)}.btn.danger{background:var(--fail);color:#fff}.btn.small{width:auto;padding:10px 16px;font-size:13px}.field{margin-bottom:14px}.field label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field .req{color:var(--accent)}.field input,.field textarea,.field select,.cell{border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--surface);width:100%;color:var(--ink);padding:12px 13px}.field textarea{resize:vertical;min-height:60px}input:focus,textarea:focus,select:focus{outline:2px solid var(--primary);outline-offset:1px}.mono{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;font-weight:600}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=480px){.two{grid-template-columns:1fr}}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:16px}.card h3{margin-bottom:10px;font-size:18px}.toggle-row{gap:8px;margin-bottom:14px;display:flex}.toggle{border:1.5px solid var(--border-strong);background:var(--surface);font-family:var(--font-display);cursor:pointer;border-radius:12px;flex:1;padding:12px 6px;font-size:15px;font-weight:700}.toggle.on{background:var(--primary);border-color:var(--primary);color:#fff}.line-row{grid-template-columns:64px 1fr 40px;align-items:start;gap:8px;margin-bottom:8px;display:grid}.note-row{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.note-row textarea{flex:1;min-height:52px}.sig-wrap{border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;position:relative;overflow:hidden}.sig-wrap canvas{touch-action:none;cursor:crosshair;width:100%;height:170px;display:block}.sig-hint{text-align:center;color:#9a9a9a;pointer-events:none;font-size:13px;position:absolute;bottom:38px;left:0;right:0}.sig-line{pointer-events:none;border-bottom:1px dashed #c9c9c9;position:absolute;bottom:30px;left:16px;right:16px}.link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:6px 0;font-size:13px;font-weight:600}.photo-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.photo-thumb{aspect-ratio:4/3;border:1px solid var(--border);background:var(--surface-2);cursor:zoom-in;border-radius:10px;width:100%;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb .rm{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;width:32px;height:32px;font-size:16px;line-height:1;position:absolute;top:6px;right:6px}.add-photo{aspect-ratio:4/3;border:1.5px dashed var(--border-strong);background:var(--surface-2);width:100%;color:var(--ink-dim);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.lightbox{z-index:100;background:#0a0c0feb;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox img{border-radius:8px;max-width:100%;max-height:100%}.lightbox button{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;position:absolute;top:16px;right:16px}.bottom-bar{z-index:20;padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 60%,transparent);margin-top:8px;position:sticky;bottom:0}.status-line{text-align:center;color:var(--ink-dim);min-height:16px;margin-top:8px;font-size:12px}.error{color:var(--fail);margin:6px 0;font-size:13px}.grn-row{color:inherit;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:14px;text-decoration:none;display:block}.grn-row .top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grn-row .num{font-family:var(--font-mono);word-break:break-all;font-size:14px;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);color:var(--ink-dim);border-radius:99px;padding:2px 8px;font-size:10px;font-weight:700}.badge.open{background:var(--pass-bg);color:var(--pass)}.badge.closed{background:var(--fail-bg);color:var(--fail)}.meta{color:var(--ink-dim);flex-wrap:wrap;gap:10px;margin-top:4px;font-size:12px;display:flex}.filters{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.filters .wide{grid-column:1/-1}.filters input,.filters select{border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--surface);width:100%;padding:10px 12px}.kv{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:7px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:none}.kv span:first-child{color:var(--ink-dim)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 6px}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-dim);font-size:11px}.empty{text-align:center;color:var(--ink-faint);padding:40px 20px}.login{max-width:380px;margin:12vh auto 0}.login img{width:200px;margin:0 auto 18px;display:block}.note-view{background:var(--surface-2);white-space:pre-wrap;border-radius:8px;margin-bottom:8px;padding:8px 10px;font-size:14px}.note-view small{color:var(--ink-faint);margin-top:3px;font-size:11px;display:block}
