:root{color-scheme:dark;--surface: #10151d;--surface-strong: #171e28;--text: #f7f9fc;--muted: #aab4c3;--accent: #ffc629;--line: rgba(255, 255, 255, .12);--shadow: 0 24px 64px rgba(0, 0, 0, .35);font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0;background:#05070a}body{min-height:100dvh;color:var(--text);overflow:hidden}button,input{font:inherit}button,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,label:focus-within,input:focus-visible{outline:3px solid #8dc7ff;outline-offset:3px}button{color:inherit}.app-shell{width:100%;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) auto;background:radial-gradient(circle at 50% 0%,rgba(54,73,95,.2),transparent 40%),#05070a}.camera-stage{min-height:0;display:grid;place-items:center;overflow:hidden}.viewport{container-type:inline-size;position:relative;width:min(100%,calc((100dvh - 112px) * 1279 / 1698));max-height:100%;aspect-ratio:1279 / 1698;overflow:hidden;isolation:isolate;background:linear-gradient(155deg,#46586da6,#10161ef5),#1b222c}.media-layer{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}#cameraView[data-facing=user]{transform:scaleX(-1)}.is-hidden{display:none!important}.empty-state{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:radial-gradient(circle at 50% 36%,rgba(255,255,255,.08),transparent 26%),linear-gradient(145deg,#232c38,#11161e 65%)}.empty-state>svg{width:54px;height:54px;margin-bottom:6px;fill:none;stroke:#dbe4ef;stroke-width:1.5}.empty-state strong{font-size:20px}.empty-state span{max-width:260px;color:var(--muted);font-size:14px;line-height:1.6}.empty-action{min-height:44px;margin-top:8px;padding:0 22px;border:0;border-radius:999px;background:#fff;color:#111820;font-weight:700;cursor:pointer}.top-actions{position:absolute;z-index:5;top:max(14px,env(safe-area-inset-top));right:14px;display:flex;gap:10px}.icon-button{width:48px;height:48px;display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;transition:background-color .18s ease,opacity .18s ease,transform .12s ease}.icon-button:active,.tool-button:active,.shutter-button:active,.primary-button:active,.secondary-button:active,.locate-button:active,.empty-action:active{transform:scale(.96)}.icon-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.glass-button{border:1px solid rgba(255,255,255,.16);background:#0a0e1475;color:#fff;box-shadow:0 8px 26px #00000029;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.watermark-preview{position:absolute;inset:0;z-index:3;pointer-events:none;color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.52)}.punch-badge{position:absolute;left:1.88cqw;top:70.14%;width:25.8cqw;height:6.3%;display:flex;align-items:center;gap:1.4cqw;padding:.7cqw 1.1cqw;border:1px solid rgba(255,255,255,.62);border-radius:1.25cqw;background:repeating-linear-gradient(125deg,#379ad81c 0 3px,#ffffff0d 3px 7px),#e2edf4db;box-shadow:0 3px 9px #0003;text-shadow:none}.punch-label{height:4.6cqw;min-width:8.9cqw;display:grid;place-items:center;border-radius:.65cqw;background:var(--accent);color:#080b0e;font-size:3.85cqw;font-weight:900;line-height:1}.punch-time{color:#fff;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:4.9cqw;font-weight:900;letter-spacing:-.18cqw;line-height:1;-webkit-text-stroke:.17cqw #0864a2;paint-order:stroke fill;filter:drop-shadow(0 1px 1px rgba(0,0,0,.56))}.watermark-copy{position:absolute;left:1.9cqw;right:3cqw;top:77.72%;min-height:20%}.yellow-rule{position:absolute;left:0;top:.1cqw;width:.8cqw;height:9.3cqw;border-radius:99px;background:var(--accent);box-shadow:none}.address-line,.date-line,.task-line,.record-line{position:absolute;left:2.55cqw;white-space:nowrap}.address-line{top:0;max-width:88cqw;overflow:hidden;text-overflow:clip;font-size:3.28cqw;font-weight:560;line-height:1.2}.date-line{top:5.9cqw;font-size:3.15cqw;font-weight:520;line-height:1.2}.task-line{top:14.6cqw;font-size:3.05cqw;font-weight:500}.record-line{top:21.25cqw;display:flex;align-items:center;gap:.8cqw;color:#ffffffc2;font-size:2.05cqw;font-weight:500}.record-line svg{width:2.55cqw;height:2.55cqw;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.brand-mark{position:absolute;right:1.2cqw;bottom:.1cqw;width:15.2cqw;color:#ffffffeb;font-size:1.65cqw;font-weight:700;line-height:1.25;text-align:left}.brand-title{display:flex;align-items:center;gap:.55cqw;margin-bottom:.3cqw;font-size:2.3cqw;font-weight:800}.brand-title svg{width:2.7cqw;height:2.7cqw;fill:none;stroke:var(--accent);stroke-width:1.6}.brand-mark small{display:block;margin-top:.7cqw;font-family:Arial,sans-serif;font-size:.9cqw;font-weight:700;letter-spacing:.04em}.status-pill{position:absolute;z-index:6;left:50%;top:72px;transform:translate(-50%);max-width:calc(100% - 32px);padding:8px 13px;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#080c119e;color:#ffffffe6;font-size:12px;text-overflow:ellipsis;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .18s ease}.status-pill.is-quiet{opacity:0}.capture-bar{min-height:104px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:12px max(24px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));border-top:1px solid var(--line);background:#080b10}.tool-button{min-width:64px;min-height:64px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;justify-self:center;gap:5px;padding:5px 12px;border:0;border-radius:12px;background:transparent;color:#dbe2eb;font-size:12px;cursor:pointer;transition:background-color .18s ease,transform .12s ease}.tool-button:hover{background:#ffffff12}.tool-button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.shutter-button{position:relative;width:76px;height:76px;display:grid;place-items:center;padding:0;border:3px solid rgba(255,255,255,.96);border-radius:50%;background:transparent;cursor:pointer;transition:transform .12s ease,opacity .18s ease}.shutter-button span{width:62px;height:62px;border-radius:50%;background:#fff;transition:background-color .16s ease}.shutter-button:hover span{background:#edf3f8}.shutter-button:disabled{opacity:.38;cursor:not-allowed}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sheet-backdrop{position:fixed;inset:0;z-index:20;background:#00000094;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bottom-sheet{position:fixed;z-index:21;left:50%;bottom:0;width:min(100%,560px);padding:10px 22px max(24px,env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;background:#151b23;box-shadow:var(--shadow);transform:translate(-50%)}.sheet-handle{width:42px;height:5px;margin:0 auto 16px;border-radius:99px;background:#ffffff3b}.sheet-heading,.result-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 3px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.12em}.sheet-heading h1,.result-heading h2{margin:0;font-size:22px;line-height:1.3}.close-button{flex:0 0 auto;border:0;background:#ffffff12}.field-label{display:block;margin-bottom:8px;color:#e8edf3;font-size:14px;font-weight:700}.field-wrap{min-height:52px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:#0e1319}.field-wrap:focus-within{border-color:#8dc7ff;box-shadow:0 0 0 3px #8dc7ff21}.field-wrap svg{width:21px;height:21px;flex:0 0 auto;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.field-wrap input{min-width:0;width:100%;height:50px;padding:0;border:0;outline:0;background:transparent;color:#fff;font-size:16px}.field-help,.location-feedback{min-height:20px;margin:7px 2px 14px;color:var(--muted);font-size:12px;line-height:1.55}.coordinate-row{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:#ffffff09}.coordinate-row>div{min-width:0;display:grid;gap:4px}.coordinate-row span{color:var(--muted);font-size:12px}.coordinate-row strong{overflow:hidden;color:#f2f5f8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.locate-button{min-height:44px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:0 13px;border:1px solid rgba(255,198,41,.35);border-radius:12px;background:#ffc62917;color:#ffd65f;font-size:13px;font-weight:700;cursor:pointer}.locate-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.locate-button:disabled{opacity:.5;cursor:wait}.primary-button,.secondary-button{min-height:50px;padding:0 20px;border-radius:14px;font-weight:800;cursor:pointer;transition:opacity .18s ease,transform .12s ease,background-color .18s ease}.primary-button{width:100%;border:0;background:var(--accent);color:#181200}.secondary-button{border:1px solid rgba(255,255,255,.13);background:#ffffff0e;color:#f6f8fa}.result-dialog{width:min(94vw,620px);max-height:calc(100dvh - 24px);padding:0;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#151b23;color:var(--text);box-shadow:var(--shadow)}.result-dialog::backdrop{background:#000000b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.result-card{padding:20px}.result-heading{margin-bottom:14px}.result-preview-wrap{max-height:calc(100dvh - 250px);display:grid;place-items:center;overflow:hidden;border-radius:14px;background:#090c10}.result-preview-wrap img{display:block;width:100%;max-height:calc(100dvh - 250px);object-fit:contain}.result-meta{margin:10px 0 14px;color:var(--muted);font-size:12px;text-align:center}.result-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}@media(min-width:720px){.app-shell{grid-template-columns:1fr}.viewport{border-right:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08);box-shadow:0 0 90px #0000005c}.capture-bar{max-width:560px;width:100%;margin:0 auto;border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0}}@media(orientation:landscape)and (max-height:600px){.app-shell{grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:1fr}.viewport{width:min(100%,calc(100dvh * 1279 / 1698))}.capture-bar{min-height:100%;grid-template-columns:1fr;grid-template-rows:1fr auto 1fr;padding:14px max(14px,env(safe-area-inset-right)) 14px 14px;border-top:0;border-left:1px solid var(--line)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
