:root{--ink:#12263a;--navy:#0a3a5c;--navy-soft:#e3eef7;--bg:#eef2f6;--card:#fff;--line:#d3dce6;--muted:#566677;--amber:#f5a623;--ok:#12805c;--warn:#a35f00;--err:#b3261e;--info:#1462a8;--radius:12px;--radius-sm:8px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0;font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}h1,h2{margin:0;line-height:1.25}h2{margin-bottom:12px;font-size:1.05rem}a{color:var(--info)}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.app{max-width:680px;min-height:100vh;padding-bottom:calc(96px + env(safe-area-inset-bottom));margin:0 auto}.topbar{z-index:20;position:sticky;top:0}.header{background:var(--navy);color:#fff;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;align-items:center;gap:10px;display:flex}.header h1{flex:1;font-size:1.1rem;font-weight:650}.logo{border-radius:7px}.header-btn,.header-text-btn{color:#fff;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;min-height:36px;padding:0 10px}.header-btn{padding:0 8px;font-size:1.4rem}.header-text-btn{border:1px solid #fff6;font-size:.95rem}.statusbar{border-bottom:1px solid #00000014;align-items:center;gap:10px;padding:9px 14px;font-size:.92rem;font-weight:600;display:flex;position:relative}.statusbar-text{flex:1}.statusbar .dot{background:currentColor;border-radius:50%;flex:none;width:10px;height:10px}.statusbar-btn{color:inherit;cursor:pointer;background:0 0;border:1.5px solid;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:650}.statusbar.offline{color:#6b4300;background:#fff1cf}.statusbar.pending{color:#7a5200;background:#fff8e6}.statusbar.syncing{color:#0d4c86;background:#dcecfa}.statusbar.done{color:#0d5f43;background:#dcf2e8}.statusbar.error{color:#8a1c14;background:#fde3e0}.statusbar.syncing .dot{animation:1s ease-in-out infinite pulse}.progress{background:currentColor;width:35%;height:3px;animation:1.2s ease-in-out infinite slide;position:absolute;bottom:0;left:0}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.progress,.statusbar.syncing .dot{animation:none}}.page{flex-direction:column;gap:14px;padding:14px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.row{gap:10px;display:flex}.row>*{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:.82rem}.hint{color:var(--muted);margin:6px 0 0;font-size:.85rem;display:block}.ok-text{color:var(--ok)}.req{color:var(--err);font-weight:700}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:28px 12px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1.5px solid #0000;width:100%;min-height:48px;padding:0 16px;font-weight:650}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{border-color:var(--navy);color:var(--navy);background:#fff}.btn.ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn.danger{border-color:var(--err);color:var(--err);background:#fff}.card>.btn{margin-top:12px}.card .row{margin-top:4px}.fab{right:max(16px,50% - 324px);bottom:calc(18px + env(safe-area-inset-bottom));cursor:pointer;background:var(--navy);color:#fff;border:0;border-radius:999px;min-height:52px;padding:0 22px;font-size:1rem;font-weight:700;position:fixed;box-shadow:0 4px 14px #0a3a5c59}.fab:before{content:"+";color:var(--amber);vertical-align:-1px;margin-right:8px;font-size:1.3rem}.field{margin-bottom:14px;display:block}.field:last-child{margin-bottom:0}.field-label{margin-bottom:6px;font-size:.95rem;font-weight:600;display:block}input[type=text],input[type=url],input[type=search],input[type=datetime-local],select,textarea{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;width:100%;min-height:48px;padding:10px 12px}textarea{resize:vertical}.has-error>input,.has-error>select,.has-error>textarea,.question.has-error{border-color:var(--err)}.field-error{color:var(--err);margin:6px 0 0;font-size:.88rem;display:block}.question{border-radius:var(--radius-sm);border:1.5px solid #0000;min-inline-size:0;margin:0 0 18px;padding:0}.question legend{margin-bottom:8px;padding:0;font-weight:600}.question.has-error{padding:8px}.choice{border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#fff;align-items:center;gap:10px;min-height:48px;margin-bottom:8px;padding:8px 12px;display:flex}.choice input{width:20px;height:20px;accent-color:var(--navy);flex:none}.choice.on{border-color:var(--navy);background:var(--navy-soft)}.scale-buttons{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.scale-buttons button{border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#fff;min-height:48px;font-weight:700}.scale-buttons button.on{background:var(--navy);border-color:var(--navy);color:#fff}.scale-legend{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:.82rem;display:flex}.gps{border-radius:var(--radius-sm);border:1px solid var(--line);background:#f4f7fa;margin-bottom:12px;padding:10px 12px}.gps.ok{background:#e8f6ef;border-color:#b5dcc9}.gps.error{background:#fdeceb;border-color:#f0bdb9}.gps p{margin:0}.gps-coords{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:16px;font-weight:650;display:flex}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.photo-grid li{aspect-ratio:1;border-radius:var(--radius-sm);background:#dfe6ee;position:relative;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:100%;display:block}.photo-size{color:#fff;background:#0009;border-radius:999px;padding:1px 6px;font-size:.72rem;position:absolute;bottom:4px;left:4px}.photo-remove{color:#fff;cursor:pointer;background:#000000a6;border:0;border-radius:50%;width:30px;height:30px;font-size:1.2rem;line-height:1;position:absolute;top:4px;right:4px}.form-actions{grid-template-columns:1fr 2fr;gap:10px;display:grid}.stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:var(--radius);background:#fff;flex-direction:column;gap:2px;padding:12px;display:flex}.stat strong{font-variant-numeric:tabular-nums;font-size:1.9rem;line-height:1.1}.stat span{color:var(--muted);font-size:.82rem}.stat.ok{border-top-color:var(--ok)}.stat.warn{border-top-color:var(--amber)}.toolbar{grid-template-columns:1fr auto;gap:10px;display:grid}.toolbar .btn{white-space:nowrap;width:auto;min-height:48px}.chips{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;flex:none;min-height:36px;padding:0 14px;font-size:.9rem}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.item{text-align:left;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#fff;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;padding:14px;display:flex}.item-main,.item-side{flex-direction:column;gap:2px;min-width:0;display:flex}.item-main strong{overflow-wrap:anywhere}.item-side{text-align:right;flex:none;align-items:flex-end}.pill{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-block}.pill.pending{color:#6b4300;background:#fff1cf}.pill.syncing{color:#0d4c86;background:#dcecfa}.pill.synced{color:#0d5f43;background:#dcf2e8}.pill.error{color:#8a1c14;background:#fde3e0}.detail-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.detail-head h2{overflow-wrap:anywhere;margin-bottom:8px}dl{margin:0}.kv{border-top:1px solid var(--line);grid-template-columns:38% 1fr;gap:10px;padding:8px 0;display:grid}.kv:first-child{border-top:0}.kv dt{color:var(--muted);font-size:.9rem}.kv dd{overflow-wrap:anywhere;margin:0}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;border-radius:var(--radius-sm);background:var(--ink);color:#fff;cursor:pointer;border-left:6px solid var(--info);width:min(92vw,520px);padding:12px 16px;font-weight:550;position:fixed;transform:translate(-50%)}.toast.ok{border-left-color:#35c08e}.toast.warn{border-left-color:var(--amber)}.toast.error{border-left-color:#ff6b61}
