.etech-loader{--etech-dur: 2s;--etech-idle: .46;--etech-soft-ease: cubic-bezier(.37, 0, .22, 1);--etech-breathe-ease: cubic-bezier(.37, 0, .63, 1);--etech-corner-fill: currentColor;--etech-bar-fill: currentColor;--etech-dot-fill: currentColor}.etech-loader--current{--etech-corner-fill: currentColor;--etech-bar-fill: currentColor;--etech-dot-fill: currentColor}.etech-loader--color{--etech-corner-fill: #2b66b0;--etech-bar-fill: #c74c27;--etech-dot-fill: #2b66b0}[data-theme=dark] .etech-loader--color,.etech-loader--white{--etech-corner-fill: #fff;--etech-bar-fill: #fff;--etech-dot-fill: #fff}.etech-loader--black{--etech-corner-fill: #000;--etech-bar-fill: #000;--etech-dot-fill: #000}.etech-loader .corner,.etech-loader .bar,.etech-loader .dot{transform-box:fill-box;transform-origin:center;will-change:transform,opacity}.etech-loader .corner{fill:var(--etech-corner-fill);opacity:var(--etech-idle);animation:etech-corner-pulse var(--etech-dur) var(--etech-soft-ease) infinite both}.etech-loader .corner.tl{animation-delay:0s}.etech-loader .corner.tr{animation-delay:calc(var(--etech-dur) * .25)}.etech-loader .corner.br{animation-delay:calc(var(--etech-dur) * .5)}.etech-loader .bar{fill:var(--etech-bar-fill);opacity:var(--etech-idle);animation:etech-bar-pulse var(--etech-dur) var(--etech-soft-ease) infinite both}.etech-loader .bar.b1{animation-delay:calc(var(--etech-dur) * .75)}.etech-loader .bar.b2{animation-delay:calc(var(--etech-dur) * .833333)}.etech-loader .bar.b3{animation-delay:calc(var(--etech-dur) * .916667)}.etech-loader .dot{fill:var(--etech-dot-fill);opacity:.48;animation:etech-dot-breathe var(--etech-dur) var(--etech-breathe-ease) infinite both}@keyframes etech-corner-pulse{0%,to{transform:scale(1);opacity:var(--etech-idle)}8%{transform:scale(1.02);opacity:.58}14%{transform:scale(1.065);opacity:.92}20%{transform:scale(1.03);opacity:.72}25%{transform:scale(1);opacity:var(--etech-idle)}}@keyframes etech-bar-pulse{0%,to{transform:scale(1);opacity:var(--etech-idle)}2.5%{transform:scale(1.02);opacity:.58}4.5%{transform:scale(1.075);opacity:.94}6.5%{transform:scale(1.035);opacity:.72}8.333%{transform:scale(1);opacity:var(--etech-idle)}}@keyframes etech-dot-breathe{0%,to{transform:scale(1);opacity:.46}50%{transform:scale(1.045);opacity:.9}}@media (prefers-reduced-motion: reduce){.etech-loader .corner,.etech-loader .bar,.etech-loader .dot{animation:none;transform:none;opacity:1}}.loading-phrase{font-size:var(--fs-body);color:var(--text-strong);text-align:center;letter-spacing:-.005em;min-height:1.5em;line-height:1.5em}.loading-phrase--inline{text-align:left;font-size:13px;color:inherit}.loading-phrase__caret{display:inline-block;width:1px;height:1em;margin-left:2px;vertical-align:-2px;background:currentColor;opacity:.85}.loading-phrase__caret.is-blinking{-webkit-animation:phrase-caret-blink 1s steps(1) infinite;animation:phrase-caret-blink 1s steps(1) infinite}@-webkit-keyframes phrase-caret-blink{0%,50%{opacity:.85}50.01%,to{opacity:0}}@keyframes phrase-caret-blink{0%,50%{opacity:.85}50.01%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.loading-phrase__caret.is-blinking{animation:none;opacity:.85}}.export-progress{animation:export-progress-in .26s cubic-bezier(.22,1,.36,1) both}.export-progress.is-fading-out{animation:export-progress-out .3s cubic-bezier(.4,0,1,1) both}@keyframes export-progress-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes export-progress-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.96)}}@media (prefers-reduced-motion: reduce){.export-progress,.export-progress.is-fading-out{animation:none}}:root{--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--fs-display-l: 28px;--fs-display-m: 22px;--fs-display-s: 24px;--fs-heading: 14px;--fs-body: 14px;--fs-label: 11px;--fs-caption: 12px;--fs-input: 16px;--font-display: "Roboto Slab", "Zilla Slab", ui-serif, Georgia, serif;--font-ui: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--keyboard-lift: max(0px, calc(var(--keyboard-inset, 0px) - env(safe-area-inset-bottom, 0px)))}[data-theme=light]{--bg: #F8F7F2;--bg-2: #FFFFFF;--bg-3: #EFEEE8;--border: rgba(0, 46, 93, .1);--border-strong: rgba(0, 46, 93, .18);--text: #002E5D;--text-dim: #796E65;--text-strong: #001A38;--accent: #002E5D;--accent-2: #3C5EAB;--accent-on: #FFFFFF;--energy: #BE4829;--energy-soft: rgba(190, 72, 41, .08);--ok: #1A8A5A;--warn: #D4A017;--danger: #B91C1C;--shadow-sm: 0 1px 2px rgba(0, 46, 93, .04);--shadow-md: 0 4px 12px rgba(0, 46, 93, .08);--shadow-lg: 0 8px 24px rgba(0, 46, 93, .15);--lightbox-bg: rgba(0, 26, 56, .92);--mark-src: url(../brand/mark-color.png)}[data-theme=dark]{--bg: #06182F;--bg-2: #0D2545;--bg-3: #152D52;--border: rgba(255, 255, 255, .06);--border-strong: rgba(255, 255, 255, .1);--text: #E8EBF0;--text-dim: #9AA8C1;--text-strong: #FFFFFF;--accent: #FFFFFF;--accent-2: #3C5EAB;--accent-on: #002E5D;--energy: #BE4829;--energy-soft: rgba(190, 72, 41, .15);--ok: #3FB87E;--warn: #E5B73B;--danger: #EF4444;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--lightbox-bg: rgba(0, 0, 0, .92);--mark-src: url(../brand/mark-white.png)}@font-face{font-family:Montserrat;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/Montserrat-400.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/Montserrat-500.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/Montserrat-600.woff2) format("woff2")}@font-face{font-family:Montserrat;font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/Montserrat-700.woff2) format("woff2")}@font-face{font-family:Roboto Slab;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/RobotoSlab-500.woff2) format("woff2")}@font-face{font-family:Roboto Slab;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/RobotoSlab-600.woff2) format("woff2")}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow-x:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch}html{touch-action:pan-y}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.45;font-weight:400;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;width:100%;position:relative;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);margin-bottom:calc(-1*env(safe-area-inset-bottom))}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{font-size:var(--fs-input)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app{display:flex;flex-direction:column;min-height:100vh}main{flex:1;padding:var(--sp-3);padding-bottom:calc(110px + var(--keyboard-lift, 0px));max-width:900px;width:100%;margin:0 auto}input,textarea,[contenteditable]{scroll-margin-top:80px;scroll-margin-bottom:24px}.appbar{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding:max(env(safe-area-inset-top),var(--sp-3)) max(env(safe-area-inset-right),var(--sp-4)) var(--sp-2) max(env(safe-area-inset-left),var(--sp-4));display:flex;align-items:center;gap:var(--sp-2)}.appbar-back{background:none;border:none;color:var(--text);padding:var(--sp-1) var(--sp-2);cursor:pointer;display:inline-flex;align-items:center;border-radius:var(--r-sm)}.appbar-back:hover{background:var(--bg-3)}.appbar-mark{width:26px;height:26px;background-image:var(--mark-src);background-size:contain;background-position:center;background-repeat:no-repeat;flex-shrink:0}.appbar-titles{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.appbar-wordmark{font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:-.01em;margin:0;color:var(--text-strong);line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar-wordmark--button{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:var(--text-strong)}.appbar-crumb{font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-dim);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar-actions{display:flex;gap:var(--sp-1);align-items:center}.appbar-actions button.icon-btn{background:transparent;border:none;padding:var(--sp-2);border-radius:var(--r-sm);color:var(--text);display:inline-flex;align-items:center;justify-content:center}.appbar-actions button.icon-btn:hover{background:var(--bg-3)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--sp-10) var(--sp-5);color:var(--text-dim)}.empty-state-icon{width:56px;height:56px;border-radius:50%;background:var(--bg-3);display:flex;align-items:center;justify-content:center;color:var(--text-dim);margin-bottom:var(--sp-3)}.empty-state-icon--button{width:72px;height:72px;background:var(--energy);color:#fff;border:none;cursor:pointer;box-shadow:0 6px 16px -6px #00000073;transition:transform .14s cubic-bezier(.4,0,.2,1),box-shadow .14s cubic-bezier(.4,0,.2,1);animation:empty-icon-pulse 2.4s ease-in-out infinite}.empty-state-icon--button:active{transform:scale(.94);box-shadow:0 3px 8px -4px #00000080}@keyframes empty-icon-pulse{0%,to{box-shadow:0 6px 16px -6px #00000073,0 0 #be48296b}50%{box-shadow:0 6px 16px -6px #00000073,0 0 0 14px #be482900}}@media (prefers-reduced-motion: reduce){.empty-state-icon--button{animation:none}}.empty-state-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-display-m);margin:0 0 var(--sp-2);color:var(--text-strong);letter-spacing:-.005em}.empty-state-body{font-size:var(--fs-body);color:var(--text-dim);margin:0;max-width:280px;line-height:1.5}.empty-state-action{margin-top:var(--sp-4)}.empty-state-arrow{margin-top:var(--sp-5);color:var(--energy);animation:empty-arrow-bounce 1.5s ease-in-out infinite}@keyframes empty-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.empty-state-arrow--up{animation-name:empty-arrow-bounce-up}.empty-state-arrow--up>*{transform:rotate(180deg);display:inline-block}@keyframes empty-arrow-bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.hero{padding:var(--sp-3) 0 var(--sp-4)}.hero-pretitle{font-family:var(--font-ui);font-weight:600;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);display:flex;align-items:center;gap:var(--sp-2)}.hero-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-display-l);letter-spacing:-.01em;margin:2px 0 0;color:var(--text-strong);line-height:1.1}.hero-title .accent{color:var(--energy)}.build-badge{font-size:9px;font-weight:500;color:var(--text-dim);background:var(--bg-3);padding:1px 6px;border-radius:var(--r-pill);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0;text-transform:none}.search-wrap{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color .15s ease}.search-wrap:focus-within{border-color:var(--accent)}.search-wrap .search-icon{color:var(--text-dim);flex-shrink:0}.search-bar.search-bar--with-icon{flex:1;min-width:0;background:transparent;border:none;border-radius:0;margin:0;padding:10px 0;outline:none;color:var(--text)}.search-bar.search-bar--with-icon::placeholder{color:var(--text-dim)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);margin-bottom:var(--sp-4)}.stat-tile{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.stat-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-val{font-family:var(--font-display);font-weight:600;font-size:var(--fs-display-s);color:var(--text-strong);line-height:1.1;margin-top:2px}.job-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-3);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .2s cubic-bezier(.4,0,.2,1),transform .14s cubic-bezier(.4,0,.2,1),filter .12s ease,background .15s ease}.job-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.job-card:active{transform:translateY(0) scale(.985);filter:brightness(1.08);background:var(--bg-3);box-shadow:var(--shadow-lg)}.job-card .percent-ring:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.18) 24deg,transparent 64deg,transparent 360deg);opacity:0;pointer-events:none;animation:job-ring-sheen .72s cubic-bezier(.4,0,.2,1) .22s 1 both;z-index:1}@keyframes job-ring-sheen{0%{opacity:0;transform:rotate(-30deg)}20%{opacity:1}90%{opacity:.4}to{opacity:0;transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.job-card .percent-ring:before{animation:none;opacity:0}}.job-monogram{width:40px;height:40px;border-radius:var(--r-sm);background:var(--bg-3);color:var(--text);font-family:var(--font-display);font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.job-grow{flex:1;min-width:0}.job-title{font-weight:600;font-size:var(--fs-body);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-sub{font-size:var(--fs-caption);color:var(--text-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-actions{display:flex;gap:2px;flex-shrink:0}.job-actions .icon-btn{background:transparent;border:none;padding:var(--sp-2);color:var(--text-dim);border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center}.job-actions .icon-btn:hover{background:var(--bg-3);color:var(--text)}.job-actions .icon-btn.danger:hover{color:var(--danger)}.modal-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-display-m);letter-spacing:-.005em;color:var(--text-strong);margin:0 0 var(--sp-3)}.sheet-picker{background:var(--bg-2);width:100%;max-width:500px;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-2) var(--sp-4) max(var(--sp-5),env(safe-area-inset-bottom));max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-md);animation:sheet-up .25s ease-out}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-picker-grip{width:36px;height:4px;background:var(--border-strong);border-radius:var(--r-pill);margin:0 auto var(--sp-3)}.sheet-picker-list{display:flex;flex-direction:column;gap:2px}.sheet-picker-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:transparent;border:1px solid transparent;border-radius:var(--r-md);text-align:left;cursor:pointer;font:inherit;color:inherit}.sheet-picker-row:hover{background:var(--bg-3)}.sheet-picker-row.active{background:var(--bg-3);border-color:var(--border)}.sheet-picker-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sheet-picker-dot.empty{background:var(--text-dim)}.sheet-picker-dot.partial{background:var(--warn)}.sheet-picker-dot.complete{background:var(--ok)}.sheet-picker-name{flex:1;font-weight:500;font-size:var(--fs-body)}.sheet-picker-counts{font-family:var(--font-display);font-weight:500;font-size:var(--fs-caption);color:var(--text-dim)}.sheet-picker-chev{color:var(--text-dim)}.savebar{position:fixed;left:0;right:0;bottom:var(--keyboard-lift, 0);z-index:6;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) max(env(safe-area-inset-right),var(--sp-4)) max(var(--sp-2),env(safe-area-inset-bottom)) max(env(safe-area-inset-left),var(--sp-4));background:linear-gradient(to top,var(--bg) 60%,rgba(0,0,0,0));pointer-events:none;transition:bottom .18s ease-out}.savebar-saved{pointer-events:auto;display:inline-flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--border);color:var(--ok);border-radius:var(--r-pill);padding:4px 10px;font-size:var(--fs-caption);font-weight:600;opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease}.savebar-saved.visible{opacity:1;transform:translate(0)}.savebar-cta{pointer-events:auto;margin-left:auto;display:inline-flex;align-items:center;gap:var(--sp-1);background:var(--energy);color:#fff;border:1px solid var(--energy);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);font-weight:600;font-size:var(--fs-body);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform 50ms ease}.savebar-cta:active{transform:scale(.96)}.savebar-cta:disabled{opacity:.5;cursor:not-allowed}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--lightbox-bg);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadein .15s ease;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.lightbox-btn{position:absolute;background:#ffffff1f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.18);width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-btn:hover{background:#ffffff2e}.lightbox-close{top:max(var(--sp-4),env(safe-area-inset-top));right:var(--sp-4)}.lightbox-delete{bottom:max(var(--sp-4),env(safe-area-inset-bottom));right:var(--sp-4)}.lightbox-gps{position:absolute;top:max(var(--sp-4),env(safe-area-inset-top));left:var(--sp-4);display:inline-flex;align-items:center;gap:var(--sp-1);background:#0000008c;color:#fff;font-size:var(--fs-caption);padding:6px 10px;border-radius:var(--r-pill)}.lightbox-counter{position:absolute;bottom:max(var(--sp-4),env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:#0000008c;color:#fff;font-size:var(--fs-caption);padding:4px 12px;border-radius:var(--r-pill)}.tabs{position:relative;display:flex;gap:var(--sp-1);overflow-x:auto;padding:2px 0 var(--sp-2);margin-bottom:var(--sp-3);scrollbar-width:none;scroll-snap-type:x proximity}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--sp-1);padding:6px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-pill);font-size:13px;font-weight:500;white-space:nowrap;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;transition:background .18s ease,border-color .18s ease,color .18s ease;scroll-snap-align:center}.tab.active{background:var(--bg-2);border-color:var(--accent);color:var(--accent);font-weight:600}.tab .dot{flex:0 0 6px;width:6px;height:6px;min-width:6px;min-height:6px;border-radius:50%;align-self:center}.tab .dot.empty{background:var(--text-dim);opacity:.6}.tab .dot.partial{background:var(--warn)}.tab .dot.complete{background:var(--ok)}.tab--overflow{padding:6px 8px;color:var(--text-dim)}.tab--overflow:hover{color:var(--text)}.tab-ink{position:absolute;bottom:0;height:2px;background:var(--accent);border-radius:2px;pointer-events:none;transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion: reduce){.tab-ink{transition:none}}.field{margin-bottom:var(--sp-3)}.field label{display:block;font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.field input,.field select,.field textarea{width:100%;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:10px 12px;outline:none;color:var(--text);transition:border-color .15s ease}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--energy-soft)}.field textarea{resize:vertical;min-height:60px}.field-hint{font-size:11px;color:var(--text-dim);margin-top:3px}.field input::placeholder,.field textarea::placeholder{color:var(--text-dim);opacity:.65}.field-checkbox{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.field-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--ok);cursor:pointer}.field-checkbox label{margin:0;text-transform:none;letter-spacing:0;font-size:var(--fs-body);color:var(--text);font-weight:500;cursor:pointer}.group{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-2);overflow:hidden;transition:border-color .15s ease}.group-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent}.group-head .name{flex:1;font-family:var(--font-display);font-weight:500;font-size:16px;color:var(--text-strong);letter-spacing:-.005em}.group-head .count{font-size:11px;color:var(--text-dim);font-weight:600;background:var(--bg-3);padding:2px 8px;border-radius:var(--r-pill)}.group-body{padding:var(--sp-3);border-top:1px solid var(--border)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-1)}.photo-tile{position:relative;aspect-ratio:1;background:var(--bg-3);border-radius:var(--r-sm);overflow:hidden;cursor:pointer;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-family:inherit}.photo-tile img{width:100%;height:100%;object-fit:cover}.photo-tile-gps{position:absolute;bottom:4px;left:4px;display:inline-flex;align-items:center;gap:3px;background:#0009;color:#fff;border-radius:var(--r-sm);padding:2px 6px;font-size:9px;font-weight:500}.photo-tile--add{border-style:dashed;border-color:var(--border-strong);background:transparent;color:var(--text-dim);transition:color .15s ease,border-color .15s ease}.photo-tile--add:hover{color:var(--energy);border-color:var(--energy)}.checklist-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:4px;cursor:pointer;transition:border-color .15s ease}.checklist-row:hover{border-color:var(--accent)}.checklist-cb{width:18px;height:18px;border-radius:var(--r-sm);border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;background:transparent}.checklist-row.done .checklist-cb{background:var(--ok);border-color:var(--ok)}.checklist-name{flex:1;font-weight:500;font-size:var(--fs-body)}.checklist-count{font-size:11px;font-weight:600;color:var(--text-dim);background:var(--bg-3);padding:2px 8px;border-radius:var(--r-pill)}.section-label{font-family:var(--font-display);font-weight:500;font-size:13px;color:var(--text-dim);margin:var(--sp-4) 0 var(--sp-2);letter-spacing:-.005em}.export-sheet{background:var(--bg-2);width:100%;max-width:500px;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-2) var(--sp-4) max(var(--sp-5),env(safe-area-inset-bottom));max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md);animation:sheet-up .25s ease-out}.export-summary{background:var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--fs-body)}.export-summary-sub{font-size:var(--fs-caption);color:var(--text-dim);margin-top:2px}.export-progress{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-3);justify-content:center;flex-direction:column;text-align:center}.export-progress-text{font-size:var(--fs-body);color:var(--text);font-weight:500}.export-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--bg-3);border-top-color:var(--energy);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.export-check{width:48px;height:48px;border-radius:50%;background:var(--ok);color:#fff;display:flex;align-items:center;justify-content:center}.export-progress--error,.export-progress--error .export-progress-text{color:var(--danger)}.export-check--celebrate{animation:check-pop-in .48s cubic-bezier(.34,1.56,.64,1) both}@keyframes check-pop-in{0%{transform:scale(0);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.export-progress-text--type{font-variant-numeric:tabular-nums}.export-filename-mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em;word-break:break-all}.type-caret{display:inline-block;margin-left:1px;color:var(--energy);animation:type-caret-blink .8s steps(2,jump-none) infinite}@keyframes type-caret-blink{to{opacity:0}}.export-size-countup{font-variant-numeric:tabular-nums}.share-btn-pulse{animation:share-pulse 1.4s cubic-bezier(.4,0,.2,1) .7s 1 both}@keyframes share-pulse{0%{box-shadow:0 0 #be482900}35%{box-shadow:0 0 0 8px #be482952}to{box-shadow:0 0 #be482900}}@media (prefers-reduced-motion: reduce){.export-check--celebrate{animation:none}.type-caret{animation:none;opacity:0}.share-btn-pulse{animation:none}}.settings-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4) var(--sp-2);margin-bottom:var(--sp-3)}.settings-section{font-family:var(--font-display);font-weight:500;font-size:16px;letter-spacing:-.005em;color:var(--text-strong);margin:0 0 var(--sp-2)}.setting-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid var(--border)}.setting-row:first-of-type{border-top:none}.setting-label{flex:1;font-size:var(--fs-body);color:var(--text);font-weight:500}.seg-control{display:inline-flex;background:var(--bg-3);border-radius:var(--r-pill);padding:2px;gap:2px}.seg-option{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:transparent;border:none;border-radius:var(--r-pill);cursor:pointer;font-size:var(--fs-caption);font-weight:500;color:var(--text-dim)}.seg-option.active{background:var(--bg-2);color:var(--text-strong);box-shadow:var(--shadow-sm)}.toggle{width:44px;height:26px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-pill);cursor:pointer;padding:2px;display:inline-flex;align-items:center;transition:background .2s ease}.toggle-thumb{width:20px;height:20px;background:var(--bg-2);border-radius:50%;box-shadow:var(--shadow-sm);transition:transform .2s ease}.toggle.on{background:var(--ok);border-color:var(--ok)}.toggle.on .toggle-thumb{transform:translate(18px)}.storage-bar{height:6px;background:var(--bg-3);border-radius:var(--r-pill);overflow:hidden;margin-top:var(--sp-2)}.storage-bar-fill{height:100%;background:var(--accent);transition:width .25s ease}.storage-stats{font-size:var(--fs-caption);color:var(--text-dim);margin-top:4px}.settings-footer{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--sp-6) 0;color:var(--text-dim);gap:var(--sp-1)}.settings-footer-mark{width:32px;height:32px;background-image:var(--mark-src);background-size:contain;background-position:center;background-repeat:no-repeat;opacity:.5;margin-bottom:var(--sp-2)}.settings-footer-text{font-family:var(--font-display);font-size:14px}.settings-footer-sub{font-size:var(--fs-caption)}.toast-host{position:fixed;bottom:calc(110px + var(--keyboard-lift, 0px));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;z-index:300;pointer-events:none;width:max-content;max-width:90vw}.toast{pointer-events:auto;background:var(--bg-2);border:1px solid var(--border);padding:10px 14px;border-radius:var(--r-md);display:flex;align-items:center;gap:var(--sp-2);box-shadow:var(--shadow-md);font-size:var(--fs-body);animation:toast-in .32s cubic-bezier(.22,1,.36,1) both}@keyframes toast-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast.error{border-color:var(--danger);color:var(--danger)}.toast .toast-icon{color:var(--ok);display:inline-flex}.toast.error .toast-icon{color:var(--danger)}.toast .undo{background:transparent;color:var(--accent);border:none;font-weight:600;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer}.toast .undo:hover{background:var(--bg-3)}.marquee{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;vertical-align:bottom;padding-bottom:.22em;margin-bottom:-.22em}.marquee-inner{display:inline-block;white-space:nowrap;will-change:transform}.marquee--scroll .marquee-inner{animation-name:marquee-pan;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-iteration-count:infinite;animation-fill-mode:both}@keyframes marquee-pan{0%,14%{transform:translate(0)}46%,54%{transform:translate(var(--marquee-distance, 0))}86%,to{transform:translate(0)}}.percent-bar{position:relative;background:var(--bg-3);overflow:hidden;width:100%}.percent-bar__fill{display:block;position:relative;background:var(--accent)}.percent-bar__fill.is-complete{background:var(--energy)}.percent-bar__fill.is-shimmering{--shimmer-tone: rgba(255, 255, 255, .28);background:linear-gradient(90deg,transparent 0%,var(--shimmer-tone) 50%,transparent 100%) -300% 0 / 75% 100% no-repeat,var(--accent);-webkit-animation:percent-bar-shimmer 3s linear infinite;animation:percent-bar-shimmer 3s linear infinite;will-change:background-position}.percent-bar__fill.is-shimmering.is-complete{background:linear-gradient(90deg,transparent 0%,var(--shimmer-tone) 50%,transparent 100%) -300% 0 / 75% 100% no-repeat,var(--energy)}[data-theme=dark] .percent-bar__fill.is-shimmering{--shimmer-tone: rgba(0, 0, 0, .3)}[data-theme=dark] .percent-bar__fill.is-shimmering.is-complete{--shimmer-tone: rgba(255, 255, 255, .28)}@-webkit-keyframes percent-bar-shimmer{0%{background-position:-300% 0,0 0}to{background-position:400% 0,0 0}}@keyframes percent-bar-shimmer{0%{background-position:-300% 0,0 0}to{background-position:400% 0,0 0}}@media (prefers-reduced-motion: reduce){.percent-bar__fill.is-shimmering{-webkit-animation:none;animation:none}}.checklist-task-row.pulse-on{animation:checklist-task-pulse .7s cubic-bezier(.22,1,.36,1) both}@keyframes checklist-task-pulse{0%{background:#be48292e;transform:scale(1)}35%{background:#be482938;transform:scale(1.012)}to{background:transparent;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.percent-bar__shimmer,.checklist-task-row.pulse-on{animation:none}.job-card,.list-item{transition:none}}.cycling-dotmatrix{display:inline-flex;animation:cycling-matrix-fade .48s ease-out both}@keyframes cycling-matrix-fade{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.sheet-anim{animation:sheet-fade-in .22s cubic-bezier(.4,0,.2,1) both}@keyframes sheet-fade-in{0%{opacity:0}to{opacity:1}}::view-transition-old(*),::view-transition-new(*){animation-duration:.36s;animation-timing-function:cubic-bezier(.34,1.56,.64,1)}@media (prefers-reduced-motion: reduce){::view-transition-old(*),::view-transition-new(*){animation-duration:1ms}}.shutter-flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;z-index:9998;pointer-events:none;animation:shutter-flash .22s cubic-bezier(.4,0,.2,1) forwards}@keyframes shutter-flash{0%{opacity:0}18%{opacity:.78}to{opacity:0}}.shutter-btn{position:relative;overflow:hidden}.shutter-btn.is-firing{transform:scale(.96);transition:transform 90ms ease-out}.shutter-btn.is-firing:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:#fff9;transform:translate(-50%,-50%) scale(0);animation:shutter-ring .38s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none}@keyframes shutter-ring{0%{transform:translate(-50%,-50%) scale(0);opacity:.6}to{transform:translate(-50%,-50%) scale(28);opacity:0}}@media (prefers-reduced-motion: reduce){.shutter-flash{animation-duration:1ms}.shutter-btn.is-firing{transform:none}.shutter-btn.is-firing:after{animation:none;opacity:0}}.route-shell--forward{animation:route-fade-forward .22s cubic-bezier(.22,1,.36,1) both}.route-shell--back{animation:route-fade-back .22s cubic-bezier(.22,1,.36,1) both}@keyframes route-fade-forward{0%{opacity:0;margin-top:4px}to{opacity:1;margin-top:0}}@keyframes route-fade-back{0%{opacity:0;margin-top:-4px}to{opacity:1;margin-top:0}}@media (prefers-reduced-motion: reduce){.route-shell--forward,.route-shell--back{animation:none}}.group-body-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s cubic-bezier(.4,0,.2,1),opacity .18s ease-out;opacity:0}.group-body-wrap.open{grid-template-rows:1fr;opacity:1}.group-body-wrap>.group-body{overflow:hidden;min-height:0}@media (prefers-reduced-motion: reduce){.cycling-dotmatrix,.sheet-anim,.group-body-wrap{animation:none;transition:none}}.update-pill{position:fixed;top:max(env(safe-area-inset-top),var(--sp-2));left:50%;transform:translate(-50%);z-index:250;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--energy);color:#fff;border:1px solid var(--energy);border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:600;cursor:pointer;box-shadow:var(--shadow-md);animation:update-pill-in .28s ease-out}.update-pill:active{transform:translate(-50%) scale(.97)}.update-pill:disabled{opacity:.7;cursor:wait}@keyframes update-pill-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}button{background:var(--bg-3);border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:var(--r-md);cursor:pointer;font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit}button.primary{background:var(--energy);border-color:var(--energy);color:#fff}button.primary:hover{filter:brightness(1.08)}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}button.ghost{background:transparent}button.icon-btn{padding:8px 10px;display:inline-flex;align-items:center;justify-content:center}button:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:14px;margin-bottom:10px}.list-item{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:8px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:border-color .15s,transform .12s ease,filter .12s ease,background .15s ease}.list-item:hover{border-color:var(--accent)}.list-item:active{transform:scale(.985);filter:brightness(1.08);background:var(--bg-3)}.list-item .grow{flex:1;min-width:0}.list-item .title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .subtitle{font-size:12px;color:var(--text-dim);margin-top:2px}.list-item .actions{display:flex;gap:4px}.group-body textarea,.group-body input[type=text]{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);font:inherit;font-size:14px;outline:none;resize:vertical}.group-body textarea:focus,.group-body input[type=text]:focus{border-color:var(--accent)}.group-body textarea::placeholder{color:var(--text-dim)}.hyperlink-path{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--text-dim);background:var(--bg);border:1px dashed var(--border);border-radius:var(--r-md);padding:8px 10px;word-break:break-all}.row-pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.row-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--bg-2)}.row-pill.active{background:var(--accent);border-color:var(--accent)}.row-pill .lbl{padding:6px 12px;font-size:13px;cursor:pointer;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-pill.active .lbl{color:var(--accent-on)}.row-pill .more{background:transparent;border:none;padding:6px 8px;font-size:13px;color:var(--text-dim);cursor:pointer;border-left:1px solid var(--border)}.row-pill.active .more{color:var(--accent-on);border-left-color:#ffffff4d}.row-pill .more:disabled{display:none}.progress-bar{height:6px;background:var(--bg-3);border-radius:3px;overflow:hidden;margin-top:6px}.progress-bar-fill{height:100%;background:var(--ok);transition:width .25s}.progress-bar--paced .progress-bar-fill{width:0%;-webkit-animation:progress-bar-pace 4.5s linear forwards;animation:progress-bar-pace 4.5s linear forwards;transition:none;will-change:width}@-webkit-keyframes progress-bar-pace{0%{width:0%}to{width:100%}}@keyframes progress-bar-pace{0%{width:0%}to{width:100%}}@media (prefers-reduced-motion: reduce){.progress-bar--paced .progress-bar-fill{-webkit-animation:none;animation:none;width:100%}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:flex-end;justify-content:center;animation:fadein .15s ease;bottom:var(--keyboard-lift, 0);transition:bottom .18s ease-out}@keyframes fadein{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-2);width:100%;max-width:500px;border-radius:16px 16px 0 0;padding:var(--sp-5) var(--sp-4) max(var(--sp-5),env(safe-area-inset-bottom));max-height:calc(90vh - var(--keyboard-lift, 0px));overflow-y:auto;box-shadow:var(--shadow-md)}.modal h2{margin:0 0 12px;font-size:17px}.modal-list-btn{display:block;width:100%;text-align:left;padding:var(--sp-3);margin-bottom:var(--sp-2);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);cursor:pointer;font:inherit}.modal-list-btn:hover{border-color:var(--accent)}.modal-list-btn:last-of-type{margin-bottom:0}.fab{position:fixed;right:max(var(--sp-4),env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + var(--keyboard-lift, 0px));background:var(--energy);color:#fff;border:none;width:56px;height:56px;border-radius:28px;font-size:24px;box-shadow:var(--shadow-md);cursor:pointer;z-index:5;transition:transform 80ms ease,box-shadow 80ms ease}.fab:active{transform:scale(.92);box-shadow:var(--shadow-sm)}.search-bar{width:100%;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);margin-bottom:10px;outline:none}.search-bar:focus{border-color:var(--accent)}.row-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:12px}.row-table th,.row-table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.row-table th{background:var(--bg-3);font-weight:600;position:sticky;top:0}.row-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-2);max-height:50vh}.view-toggle{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;margin-left:auto}.view-toggle button{background:transparent;border:none;padding:6px 10px;font-size:12px;border-radius:0}.view-toggle button.active{background:var(--accent);color:var(--accent-on)}.percent-ring{position:relative;display:inline-block;flex-shrink:0}.percent-ring svg{display:block}.percent-ring__center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;color:var(--text-strong);pointer-events:none;text-align:center;line-height:1}.percent-bar{width:100%;overflow:hidden}.percent-bar__fill{display:block}.job-monogram-ring{margin-right:var(--sp-3)}.job-monogram-ring .percent-ring__center{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text-strong)}.stat-row--four{grid-template-columns:repeat(4,1fr)}.stat-row--four .stat-val{font-size:22px}.checklist-cta{display:block;width:100%;text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-3);margin:0 0 var(--sp-3) 0;cursor:pointer;font:inherit;color:inherit}.checklist-cta:active{transform:scale(.998)}.checklist-cta__top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-2)}.checklist-cta__title{font-family:var(--font-display);font-weight:600;color:var(--text-strong);font-size:16px}.checklist-cta__count{color:var(--text-dim);font-size:13px;font-variant-numeric:tabular-nums}.panel-row-ring{margin-right:var(--sp-2)}.panel-row-ring__pct{font-size:11px;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}.checklist-task-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-2)}.checklist-task-row:last-child{border-bottom:none}.checklist-task-row__check{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;padding:0;color:var(--accent)}.checklist-task-row__check:disabled{cursor:default;color:var(--text-dim)}.checklist-empty-box{display:inline-block;width:18px;height:18px;border:1.5px solid var(--text-dim);border-radius:4px;background:var(--bg-2)}.checklist-task-row.is-checked .checklist-empty-box{border-color:var(--accent);background:var(--accent)}.checklist-task-row__main{flex:1 1 auto;min-width:0}.checklist-task-row__label{color:var(--text-strong);font-size:15px;line-height:1.4}.checklist-task-row.is-checked .checklist-task-row__label{color:var(--text-dim);text-decoration:line-through}.checklist-task-row.is-locked .checklist-task-row__label{color:var(--text)}.checklist-task-row__caption{color:var(--text-dim);font-size:12px;margin-top:2px}.checklist-task-row__actions{position:relative;flex-shrink:0}.checklist-task-menu{position:absolute;top:100%;right:0;z-index:5;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 6px 18px #0000001f;padding:4px 0;min-width:120px}.checklist-task-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 12px;font:inherit;color:var(--text);cursor:pointer}.checklist-task-menu button:hover{background:var(--bg-3)}.checklist-task-menu button.danger{color:var(--danger)}.checklist-rename-input{flex:1;background:var(--bg-2);border:1px solid var(--accent);border-radius:var(--r-sm);padding:8px 10px;font:inherit;color:var(--text)}.checklist-section{margin:0 0 var(--sp-4) 0;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.checklist-section__header{display:flex;align-items:baseline;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--bg-3);border-bottom:1px solid var(--border)}.checklist-section__label{font-family:var(--font-display);font-weight:600;color:var(--text-strong);font-size:14px;letter-spacing:.02em}.checklist-section__count{color:var(--text-dim);font-size:12px;font-variant-numeric:tabular-nums}.checklist-section__rows{display:flex;flex-direction:column}.checklist-add-btn{display:inline-flex;align-items:center;gap:var(--sp-2);background:transparent;color:var(--accent);border:none;padding:var(--sp-3);font:inherit;font-weight:600;cursor:pointer;text-align:left}.checklist-add-btn:hover{background:var(--bg-3)}.checklist-add-input{display:flex;gap:var(--sp-2);padding:var(--sp-3);align-items:center}.checklist-add-input input{flex:1;background:var(--bg-2);border:1px solid var(--accent);border-radius:var(--r-sm);padding:8px 10px;font:inherit;color:var(--text)}.checklist-add-empty{margin:0 0 var(--sp-4) 0;background:var(--bg-2);border:1px dashed var(--border);border-radius:var(--r-md)}.hero-bar{margin-top:var(--sp-3)}.hero-sub{color:var(--text-dim);font-size:13px;margin-top:var(--sp-1)}.photo-overlay-wrap{position:relative;display:block;width:100%;height:100%;line-height:0;container-type:inline-size}.photo-overlay-wrap img{display:block;width:100%;height:100%;object-fit:cover}.photo-overlay{position:absolute;right:4%;bottom:4%;max-width:92%;padding:.55em .85em;background:#0000009e;color:#fff;font:600 clamp(9px,2.6cqw,18px)/1.25 -apple-system,"Segoe UI",Roboto,sans-serif;border-radius:8px;pointer-events:none;text-align:left}.photo-overlay>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox-frame{position:relative;max-width:100vw;max-height:100vh;container-type:inline-size}.lightbox-img{display:block;width:100%;height:100%;object-fit:contain;touch-action:pinch-zoom}.diff-view{font-size:13px;line-height:1.55}.diff-section{margin-bottom:var(--sp-2)}.diff-section-title{font-weight:600;color:var(--text);padding:4px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}.diff-section-toggle{cursor:pointer}.diff-toggle-arrow{font-size:10px;color:var(--text-dim)}.diff-count{color:var(--text-dim);font-weight:400;font-size:12px;margin-left:auto}.diff-count--none{font-style:italic}.diff-collision{color:var(--warn, #e8d27d);margin-left:4px}.diff-section-body{padding:6px 0 6px 18px}.diff-row{padding:3px 0}.diff-row--add{color:var(--accent-add, #2e8a4f)}.diff-row--del{color:var(--accent-del, #b14848)}.diff-row--mod{color:var(--accent-mod, #8a6a2e)}.diff-mark{display:inline-block;width:14px;font-weight:700}.diff-label{font-weight:500}.diff-old{text-decoration:line-through;opacity:.85}.diff-new{font-weight:500}.diff-arrow{color:var(--text-dim)}.diff-field-change{padding-left:18px;color:var(--text-dim);font-size:12px}.diff-field-change--stacked{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:4px 0 4px 18px;margin-bottom:4px}.diff-field-name{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.diff-field-old{font-size:13px;color:var(--accent-del, #b14848);text-decoration:line-through;text-decoration-thickness:1px;opacity:.85;word-break:break-word}.diff-field-new{font-size:13px;color:var(--accent-add, #2e8a4f);font-weight:600;word-break:break-word}.diff-keep-drop{margin-left:10px;display:inline-flex;gap:6px}.diff-pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.diff-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.diff-skip-block{margin-top:var(--sp-2);padding:var(--sp-2);background:var(--surface-alt);border-radius:6px;font-size:12px}.diff-skip{color:var(--text-dim);padding:2px 0}.diff-empty{color:var(--text-dim);padding:var(--sp-3);text-align:center;font-style:italic}.diff-push-ribbon{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:var(--sp-2) 0;background:var(--energy);color:#fff;border-radius:8px;font-size:13px;font-weight:500;letter-spacing:.01em}.diff-push-ribbon strong{font-weight:700}.install-banner{display:flex;align-items:center;gap:10px;margin:var(--sp-2) 0 var(--sp-3);padding:10px 12px;background:var(--energy);color:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a}.install-banner-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ffffff26;flex:0 0 auto}.install-banner-text{flex:1 1 auto;min-width:0}.install-banner-title{font-weight:700;font-size:14px;line-height:1.2}.install-banner-sub{font-size:12px;opacity:.95;line-height:1.35;margin-top:2px}.install-banner-cta{background:#fff;color:var(--energy);border:none;font-weight:700;padding:6px 14px;border-radius:999px;font-size:13px;cursor:pointer;flex:0 0 auto}.install-banner-cta:active{transform:scale(.97)}.install-banner-close{background:transparent;border:none;color:#fff;opacity:.75;padding:4px;cursor:pointer;flex:0 0 auto;display:flex;align-items:center}.install-banner-close:hover{opacity:1}.install-ios-steps{list-style:none;padding:0;margin:var(--sp-2) 0;display:flex;flex-direction:column;gap:12px}.install-ios-steps li{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45}.install-ios-step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--energy);color:#fff;font-weight:700;font-size:12px;flex:0 0 auto}.install-ios-note{color:var(--text-dim);font-size:12px;font-style:italic;padding:8px 0;border-top:1px solid var(--border);margin-top:12px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--bg-3) 0%,var(--surface-alt) 50%,var(--bg-3) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:6px}.skeleton-row{display:flex;align-items:center;gap:var(--sp-2);padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-2)}.skeleton-bar{height:12px}.skeleton-bar--title{width:55%;height:14px;margin-bottom:6px}.skeleton-bar--sub{width:35%;height:11px}.skeleton-circle{width:36px;height:36px;border-radius:999px;flex:0 0 auto}.skeleton-grow{flex:1;min-width:0}@media (prefers-reduced-motion: reduce){.skeleton-shimmer{animation:none;background:var(--bg-3)}}
