:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181d;--surface:#1e2128;--surface-deep:#14161b;--border:#2c3039;--text:#ffffffe6;--text-muted:#9aa0ae;--accent:#ec6d00;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:var(--accent);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{filter:brightness(1.15)}button{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.achievement-toast{z-index:90;background:linear-gradient(135deg, var(--surface), var(--surface-deep));border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;width:min(22rem,100vw - 2rem);animation:.35s cubic-bezier(.2,.9,.3,1.2) toast-in;position:fixed;bottom:1rem;right:1rem;box-shadow:0 10px 28px #00000080}.achievement-toast.toast-leaving{animation:.25s forwards toast-out}.toast-body{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:.75rem;padding:.75rem .9rem .5rem;display:flex}.toast-icon{font-size:1.6rem;animation:.9s .3s medal-wiggle}.toast-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.65rem;display:block}.toast-name{font-weight:700;display:block}.toast-flavor{color:var(--text-muted);font-size:.8rem;display:block}.toast-actions{justify-content:flex-end;gap:.25rem;padding:0 .5rem .5rem;display:flex}.toast-action{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-size:.72rem}.toast-action:hover,.toast-action:focus-visible{color:var(--text);background:var(--surface-deep)}@keyframes toast-in{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{to{opacity:0;transform:translate(120%)}}@keyframes medal-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-14deg)}55%{transform:rotate(10deg)}80%{transform:rotate(-5deg)}}.milestone-overlay{z-index:100;cursor:pointer;background:#08090cc7;justify-content:center;align-items:center;padding:1rem;animation:.25s overlay-in;display:flex;position:fixed;inset:0}.milestone-card{text-align:center;cursor:default;max-width:26rem;animation:.45s cubic-bezier(.2,1.1,.3,1.15) milestone-pop}.milestone-badge{background:radial-gradient(circle at 35% 30%, #ffb45e, var(--accent) 60%, #b34f00);border-radius:50%;justify-content:center;align-items:center;width:6rem;height:6rem;margin:0 auto 1rem;font-size:2.8rem;display:flex;box-shadow:0 0 0 6px #ec6d0038,0 0 42px #ec6d008c}.milestone-label{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.75rem}.milestone-name{margin:.25rem 0;font-size:1.5rem;font-weight:800}.milestone-flavor{color:var(--text-muted)}.milestone-hint{color:var(--text-muted);opacity:.8;margin-top:1.25rem;font-size:.75rem}.milestone-skip{margin-top:.75rem}@keyframes overlay-in{0%{opacity:0}}@keyframes milestone-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.recap-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(26rem,100%);padding:1.5rem}.recap-list{text-align:left;gap:.6rem;max-height:45vh;margin:1rem 0;padding:0;list-style:none;display:grid;overflow-y:auto}.recap-list li{align-items:center;gap:.6rem;display:flex}.recap-icon{font-size:1.3rem}.recap-name{font-weight:600;display:block}.recap-desc{color:var(--text-muted);font-size:.78rem;display:block}.confetti-field{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece{opacity:0;border-radius:2px;width:8px;height:13px;animation:1.9s ease-in forwards confetti-fall;position:absolute;top:18%}@keyframes confetti-fall{0%{opacity:0;transform:translate(0)rotate(0)}8%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--drift,0px), 62vh) rotate(560deg)}}.nav-badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:1.15rem;margin-left:.35rem;padding:0 .3rem;font-size:.68rem;font-weight:700;line-height:1.15rem;display:inline-block}.achievements-hero{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.9rem 1.1rem;display:flex}.hero-stats{flex-wrap:wrap;gap:1.5rem;display:flex}.hero-stat .hero-value{font-size:1.35rem;font-weight:800;display:block}.hero-stat .hero-caption{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;display:block}.hero-next{color:var(--text-muted);font-size:.85rem}.hero-next strong{color:var(--text)}.achievements-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.view-switch{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.view-switch button{background:var(--surface);color:var(--text-muted);cursor:pointer;font:inherit;border:none;padding:.4rem .9rem;font-size:.85rem}.view-switch button.view-active{background:var(--accent);color:#fff;font-weight:600}.achievement-log{border-left:2px solid var(--border);gap:.9rem;margin-left:.6rem;padding-left:1.1rem;display:grid}.log-item{position:relative}.log-item:before{content:"";background:var(--accent);border-radius:50%;width:.6rem;height:.6rem;position:absolute;top:.45rem;left:-1.45rem}.log-item.log-next:before{background:var(--surface-deep);border:2px dashed var(--text-muted);width:.45rem;height:.45rem}.log-title{font-weight:700}.log-date{color:var(--text-muted);font-size:.75rem}.log-flavor{color:var(--text-muted);font-size:.82rem}.category-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.9rem;display:grid}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem}.category-title{margin-bottom:.6rem;font-weight:700}.tier-chain{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.6rem;display:flex}.tier-node{background:radial-gradient(circle at 35% 30%, #ffb45e, var(--accent) 65%);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.72rem;font-weight:700;display:inline-flex}.tier-node.tier-locked{background:var(--surface-deep);color:var(--text-muted);border:1px solid var(--border)}.tier-link{background:var(--border);flex:0 0 .7rem;height:2px}.tier-link.tier-link-done{background:var(--accent)}.achievement-row{align-items:flex-start;gap:.65rem;padding:.45rem 0;display:flex}.achievement-row+.achievement-row{border-top:1px solid var(--border)}.achievement-row.row-locked{opacity:.65}.row-icon{font-size:1.25rem}.row-locked .row-icon{filter:grayscale();opacity:.6}.row-name{flex-wrap:wrap;align-items:center;gap:.4rem;font-weight:600;display:flex}.row-desc{color:var(--text-muted);font-size:.8rem}.row-progress{align-items:center;gap:.5rem;margin-top:.3rem;display:flex}.row-progress .progress-track{flex:1;max-width:12rem}.row-progress-caption{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.rarity-pill{text-transform:uppercase;letter-spacing:.05em;color:#ffd166;border:1px solid #ffd16673;border-radius:999px;padding:.05rem .45rem;font-size:.65rem;font-weight:700}.hidden-row{color:var(--text-muted);font-style:italic}.streak-grace{color:var(--text-muted);font-size:.7rem}@media (prefers-reduced-motion:reduce){.achievement-toast,.achievement-toast.toast-leaving,.milestone-card,.milestone-overlay,.toast-icon{animation:none}.achievement-toast,.milestone-overlay{transition:opacity .2s}.confetti-piece{display:none}}.app{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.app-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.app-header h1{color:var(--accent);letter-spacing:.02em;margin:0;font-size:1.75rem}.tagline{color:var(--text-muted);margin:.15rem 0 0;font-size:.9rem}.summary{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1.25rem;padding:1.25rem}.summary-progress-labels{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.summary-progress-title{font-weight:600}.summary-progress-value{color:var(--accent);font-size:1.5rem;font-weight:700}.progress-track{background:var(--surface-deep);border-radius:6px;height:12px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent) 0%, #ff9d3f 100%);border-radius:6px;height:100%;transition:width .4s}.summary-caption{color:var(--text-muted);margin:.5rem 0 0;font-size:.85rem}.summary-statuses{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.status-chip{background:var(--surface-deep);border:1px solid var(--border);cursor:pointer;min-width:5.5rem;color:var(--text);border-radius:10px;flex-direction:column;align-items:center;padding:.5rem .75rem;transition:border-color .15s,background .15s;display:flex}.status-chip:hover{border-color:var(--accent)}.status-chip.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, var(--surface-deep))}.status-chip-count{font-size:1.25rem;font-weight:700}.status-chip-label{color:var(--text-muted);font-size:.75rem}.toolbar{gap:.75rem;margin-bottom:1.25rem;display:flex}.search-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;flex:1;padding:.6rem .9rem;font-size:.95rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1.25rem;padding:1.25rem}.add-form h2{margin:0 0 1rem;font-size:1.1rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.form-field{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.form-field-wide{grid-column:1/-1}.form-field input,.form-field select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;padding:.55rem .7rem;font-size:.95rem}.form-actions{gap:.75rem;margin-top:1rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;transition:filter .15s}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-spinner{vertical-align:-.1em;border:2px solid;border-right-color:#0000;border-radius:50%;width:.85em;height:.85em;margin-right:.45em;animation:.6s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spinner{animation-duration:2s}}.pending-hint{color:var(--text-muted);margin-top:.5rem;font-size:.85rem;display:block}a.provider-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-ghost{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:10px;padding:.6rem 1.1rem}.btn-ghost:hover{border-color:var(--text-muted)}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem .5rem;font-size:.9rem}.btn-icon:hover{color:#ff6b6b;background:var(--surface-deep)}.system-group{margin-bottom:1.5rem}.system-title{align-items:baseline;gap:.6rem;margin:0 0 .6rem;font-size:1.05rem;display:flex}.system-count{color:var(--text-muted);font-size:.8rem;font-weight:400}.mini-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.mini-card{background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:10px;padding:.7rem .9rem}.mini-card-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.mini-card-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.mini-card-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mini-card-meta{color:var(--text-muted);gap:.6rem;font-size:.8rem;display:flex}.mini-card-actions{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.status-select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);cursor:pointer;border-radius:8px;padding:.4rem .6rem;font-size:.85rem}.status-border-wishlist{border-left-color:#8b8fa3}.status-border-unassembled{border-left-color:#a0aec0}.status-border-assembled{border-left-color:#63b3ed}.status-border-primed{border-left-color:#b794f4}.status-border-inprogress{border-left-color:#f6ad55}.status-border-painted{border-left-color:#68d391}.status-border-complete{border-left-color:#ffd166}.list-placeholder{text-align:center;color:var(--text-muted);padding:2.5rem 1rem}.empty-state .empty-title{color:var(--text);font-size:1.1rem;font-weight:600}.error{color:#ff8a8a}.error.banner{background:color-mix(in srgb, #ff6b6b 12%, var(--surface));border:1px solid color-mix(in srgb, #ff6b6b 40%, var(--border));border-radius:10px;margin-bottom:1.25rem;padding:.75rem 1rem}.notice.banner{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--text);border-radius:10px;margin:.75rem 0 1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}footer{text-align:center;color:var(--text-muted);margin-top:2.5rem;font-size:.8rem}.header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.user-menu{align-items:center;gap:.5rem;display:flex}.user-email{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;color:var(--text-muted);font-size:.85rem;overflow:hidden}.btn-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block}.btn-secondary:hover{border-color:var(--accent)}.page-loading{min-height:50vh;color:var(--text-muted);place-items:center;display:grid}.auth-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:380px;padding:2rem}.auth-card h1{color:var(--accent);margin:0 0 .25rem;font-size:1.5rem}.auth-card h2{color:var(--text-muted);margin:0 0 1.25rem;font-size:1.1rem;font-weight:500}.brand-link{text-decoration:none}.auth-intro{color:var(--text-muted);margin:0 0 1.25rem;font-size:.9rem;line-height:1.5}.auth-form{flex-direction:column;gap:.9rem;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.auth-form input{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;padding:.6rem .8rem;font-size:.95rem}.auth-switch{color:var(--text-muted);margin:1.25rem 0 0;font-size:.85rem}.auth-switch a{color:var(--accent)}.external-providers{flex-direction:column;gap:.5rem;margin-top:1.25rem;display:flex}.divider{text-align:center;color:var(--text-muted);margin:0 0 .25rem;font-size:.8rem}.provider-btn{text-align:center}.landing{max-width:1040px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.landing-header{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.landing-brand{color:var(--accent);letter-spacing:.02em;font-size:1.4rem;font-weight:800}.landing-header nav{gap:.6rem;display:flex}.landing-header a{text-decoration:none}.hero{text-align:center;padding:3rem 0 3.5rem}.hero h1{margin:0 0 1rem;font-size:clamp(2rem,5vw,3.25rem);line-height:1.1}.hero-sub{max-width:620px;color:var(--text-muted);margin:0 auto 1.75rem;font-size:1.1rem;line-height:1.6}.hero-cta a{text-decoration:none}.btn-lg{padding:.85rem 1.75rem;font-size:1.05rem}.features{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:2rem 0 3.5rem;display:grid}.feature{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.4rem}.feature h3{color:var(--accent);margin:0 0 .5rem;font-size:1rem}.feature p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.waitlist{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:2.5rem 1.5rem}.waitlist h2{margin:0 0 .6rem}.waitlist p{color:var(--text-muted);max-width:520px;margin:0 auto 1.25rem}.waitlist-form{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.waitlist-form input{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:10px;min-width:240px;padding:.7rem .9rem;font-size:.95rem}.waitlist-thanks{font-weight:600;color:var(--text)!important}.scanner-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.scanner-head h2{margin:0;font-size:1.1rem}.scanner-video-wrap{margin-bottom:.75rem}.scanner-video{background:var(--surface-deep);object-fit:cover;border-radius:10px;width:100%;max-height:280px}.scanner-hint{color:var(--text-muted);margin:.5rem 0;font-size:.85rem}.scanner-manual{gap:.6rem;display:flex}.scanner-manual input{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;flex:1;padding:.6rem .8rem;font-size:.95rem}.scanner-head-actions{align-items:center;gap:.4rem;display:flex}.scanner-video-wrap{position:relative}.scanner-video-wrap--hidden{display:none}.scanner-zoom{width:96px;accent-color:var(--accent)}.scanner-reticle{border:2px solid var(--accent);pointer-events:none;border-radius:10px;width:min(280px,70%);height:min(150px,42%);position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000059}.scanner-reticle-hit{border-color:#4caf50;box-shadow:0 0 0 9999px #00000059,0 0 18px #4caf50e6}.scanner-sweep{background:var(--accent);opacity:.8;height:2px;animation:1.6s ease-in-out infinite alternate scanner-sweep;position:absolute;left:6%;right:6%}@keyframes scanner-sweep{0%{top:12%}to{top:86%}}@media (prefers-reduced-motion:reduce){.scanner-sweep{animation:none;top:50%}}.scan-history{margin-top:.75rem}.scan-history-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem;display:block}.scan-history-chips{flex-wrap:wrap;gap:.4rem;display:flex}.scan-history-chip{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);cursor:pointer;border-radius:999px;padding:.3rem .7rem;font-size:.8rem}.scan-history-chip:hover:not(:disabled){border-color:var(--accent)}.scan-card{border:1px solid var(--border);background:var(--surface-deep);border-radius:10px;align-items:flex-start;gap:.9rem;padding:.9rem;display:flex}.scan-card-added{border-color:#4caf50}.scan-card-image{object-fit:cover;border-radius:8px;flex-shrink:0;width:96px;height:96px}.scan-card-body{flex:1;min-width:0}.scan-card-body h3{margin:0 0 .25rem;font-size:1.05rem}.scan-card-meta{color:var(--text-muted);margin:0;font-size:.85rem}.scan-card-code{color:var(--text-muted);margin:.3rem 0 0;font-family:ui-monospace,monospace;font-size:.75rem}.scan-card-actions{flex-direction:column;flex-shrink:0;gap:.45rem;display:flex}.scan-report-photos{margin:.65rem 0}.scan-report-note{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:8px;margin-top:.2rem;padding:.6rem .8rem;font-family:inherit;font-size:.9rem}.scan-report-sharing{color:var(--text-muted);margin:.5rem 0 0;font-size:.78rem;line-height:1.4}@media (width<=560px){.scan-card{flex-direction:column}.scan-card-actions{flex-flow:wrap}}.modal-backdrop{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{width:min(560px,100%);max-height:90vh;overflow-y:auto}.modal-panel .card{margin-bottom:0}@media (width<=600px){.modal-backdrop{align-items:stretch;padding:0}.modal-panel{width:100%;max-height:100vh}.modal-panel .card{border:none;border-radius:0;min-height:100vh}}.app-nav{gap:.4rem;display:flex}.app-nav a{text-decoration:none}.nav-active{border-color:var(--accent);color:var(--accent)}.paint-list{flex-direction:column;gap:.45rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.paint-row{align-items:center;gap:.7rem;display:flex}.paint-swatch{border:1px solid var(--border);border-radius:6px;flex-shrink:0;width:26px;height:26px}.paint-name{flex-direction:column;flex:1;min-width:0;display:flex}.paint-brand{color:var(--text-muted);font-size:.8rem}.paint-equivalent{color:var(--accent);font-size:.8rem}.paint-owned{color:var(--text-muted);font-size:.85rem}.recipe{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.recipe-head{justify-content:space-between;align-items:center;display:flex}.recipe-head h3{margin:0;font-size:1rem}.recipe-steps{color:var(--text-muted);margin:.5rem 0 0;padding-left:1.25rem;font-size:.9rem}.recipe-form{border-top:1px solid var(--border);flex-direction:column;gap:.6rem;margin-top:1rem;padding-top:1rem;display:flex}.recipe-form h3{margin:0;font-size:1rem}.recipe-form input,.recipe-form select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;padding:.55rem .7rem;font-size:.9rem}.recipe-step-row{gap:.5rem;display:flex}.recipe-step-row input{flex:1}.paint-search-row{gap:.5rem;display:flex}.paint-search-row .search-input{flex:1}.brand-select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;max-width:40%;padding:.55rem .7rem;font-size:.9rem}.recipe-actions{align-items:center;gap:.35rem;display:flex}.recipe-badge{color:var(--accent);margin:.35rem 0 0;font-size:.85rem;font-weight:600}.recipe-meta{color:var(--text-muted);margin:.15rem 0 0;font-size:.8rem}.recipe-section-view{margin-top:.5rem}.recipe-section-name{color:var(--text);margin:.5rem 0 0;font-size:.9rem}.paint-chips{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.paint-chip{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .45rem;font-size:.8rem;display:inline-flex}.paint-chip .paint-swatch{border-radius:50%;width:14px;height:14px}.chip-role-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.chip-role{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:6px;padding:.1rem .3rem;font-size:.72rem}.paint-chip .btn-icon{padding:0 .2rem;font-size:.75rem}.recipe-editor-section{border-left:2px solid var(--border);flex-direction:column;gap:.6rem;padding-left:.7rem;display:flex}.recipe-section-head{gap:.5rem;display:flex}.recipe-section-head input{flex:1}.recipe-editor-step{flex-direction:column;gap:.35rem;display:flex}.paint-picker{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:.6rem}.paint-picker .search-input{width:100%}.recipe-form textarea{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);resize:vertical;border-radius:8px;padding:.55rem .7rem;font-family:inherit;font-size:.9rem}.rollup{border-top:1px dashed var(--border);margin-top:.6rem;padding-top:.6rem}.rollup-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.rollup-row{align-items:center;gap:.7rem;display:flex}.rollup-verdict{color:var(--text-muted);text-align:right;font-size:.82rem}.rollup-owned .rollup-verdict{color:#7bc47f}.rollup-alternativeowned .rollup-verdict,.rollup-closematchowned .rollup-verdict{color:var(--accent)}.linked-recipe-list{flex-direction:column;gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.linked-recipe-row{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.linked-recipe-name{color:var(--text);font-weight:600}.linked-recipe-row .recipe-badge{flex:1;margin:0}.link-recipe-select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;padding:.55rem .7rem;font-size:.9rem}.invite-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.invite-head h2{margin:0 0 .25rem;font-size:1.1rem}.invite-head .scanner-hint{margin:0}.invite-list{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.invite-row{background:var(--surface-deep);border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem}.invite-summary{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.invite-code{letter-spacing:.06em;font-family:ui-monospace,monospace;font-size:.95rem}.invite-status{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600}.invite-status-pending{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--accent)}.invite-status-claimed{color:#68d391;border-color:#68d391}.invite-expiry{color:var(--text-muted);margin-left:auto;font-size:.8rem}.invite-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.invite-link{border:1px solid var(--border);background:var(--surface);min-width:200px;color:var(--text-muted);border-radius:8px;flex:1;padding:.45rem .7rem;font-family:ui-monospace,monospace;font-size:.8rem}.photo-gallery{border-top:1px solid var(--border);margin-top:.7rem;padding-top:.7rem}.photo-grid{flex-wrap:wrap;gap:.5rem;display:flex}.photo-thumb{width:84px;height:84px;margin:0;position:relative}.photo-thumb img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%;height:100%}.photo-delete{color:#fff;background:#0000008c;border-radius:6px;padding:.1rem .35rem;font-size:.75rem;position:absolute;top:2px;right:2px}.photo-add{border:1px dashed var(--border);background:var(--surface-deep);width:84px;height:84px;color:var(--text-muted);cursor:pointer;border-radius:8px;font-size:.8rem}.photo-add:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.photo-thumb-open{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.photo-tile-uploading img{opacity:.6}.photo-progress{background:#0000008c;border-radius:3px;height:6px;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}.photo-progress-bar{background:var(--accent);height:100%;transition:width .15s ease-out}.photo-thumb.photo-tile-error{align-items:flex-start;gap:.5rem;width:100%;max-width:320px;height:auto;display:flex}.photo-tile-error img{opacity:.6;flex:none;width:84px;height:84px}.photo-tile-error .photo-delete{position:absolute;top:2px;left:2px;right:auto}.photo-tile-error-text,.photo-tile-error figcaption{color:#ff6b6b;align-self:center;font-size:.8rem}.photo-confirm{z-index:5;border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:210px;padding:.6rem .7rem;position:absolute;top:0;left:0;box-shadow:0 8px 22px #0006}.photo-confirm p{color:var(--text);margin:0 0 .5rem;font-size:.8rem}.photo-confirm-actions{gap:.4rem;display:flex}.photo-confirm-actions .btn-danger,.photo-confirm-actions .btn-ghost{padding:.3rem .6rem;font-size:.8rem}.btn-danger{color:#fff;cursor:pointer;background:#b33a3a;border:1px solid #0000;border-radius:10px}.btn-danger:hover:not(:disabled){background:#c44}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.mini-card-cover{object-fit:cover;border:1px solid var(--border);border-radius:8px;flex:none;width:44px;height:44px}.lightbox{background:0 0;border:none;max-width:min(96vw,1100px);max-height:94vh;padding:0}.lightbox::backdrop{background:#000000c7}.lightbox-body{flex-direction:column;align-items:center;gap:.4rem;display:flex}.lightbox-stage{touch-action:pan-y;justify-content:center;display:flex}.lightbox-photo{object-fit:contain;-webkit-user-select:none;user-select:none;border-radius:10px;max-width:min(92vw,1000px);max-height:80vh}.lightbox-meta{color:#eee;background:#0000008c;border-radius:8px;align-items:center;gap:.8rem;padding:.3rem .6rem;font-size:.85rem;display:flex}.lightbox-caption{color:#eee}.lightbox-cover-badge{color:#ffd166}.lightbox-make-cover{color:#eee;padding:.25rem .6rem;font-size:.8rem}.lightbox-count{color:#aaa}.lightbox-nav{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;width:44px;height:44px;font-size:1.6rem;line-height:1;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-prev{left:12px}.lightbox-next{right:12px}.lightbox-close{color:#fff;background:#0000008c;position:fixed;top:12px;right:12px}@media (width<=600px){.app-header{flex-direction:column;align-items:flex-start}.mini-card-row{flex-direction:column;align-items:stretch}.mini-card-actions{justify-content:space-between}}.filter-select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;max-width:13rem;padding:.6rem .9rem;font-size:.95rem}.toolbar{flex-wrap:wrap}.toolbar-tools{align-items:center;gap:.5rem;margin-top:-.5rem}.group-toggle{gap:.4rem;display:flex}a.mini-card-name{color:var(--text);text-decoration:none}a.mini-card-name:hover{color:var(--accent);text-decoration:underline}.mini-card-notes{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;overflow:hidden}.mini-select{width:1.15rem;height:1.15rem;accent-color:var(--accent);cursor:pointer;flex:none}.mini-card-selected{border-color:var(--accent)}.bulk-bar{z-index:40;background:var(--surface);border:1px solid var(--accent);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;padding:.7rem .9rem;display:flex;position:sticky;bottom:.75rem;box-shadow:0 10px 24px #00000073}.bulk-count{margin-right:.25rem;font-weight:600}.bulk-bar select{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);border-radius:8px;padding:.45rem .6rem;font-size:.85rem}.bulk-bar .btn-secondary,.bulk-bar .btn-ghost{padding:.45rem .8rem;font-size:.85rem}.bulk-warning{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:.5rem;display:flex}.bulk-warning p{margin:0;font-size:.85rem}.bulk-warning .btn-danger{padding:.35rem .7rem;font-size:.85rem}.bulk-error{flex-basis:100%;margin:0;font-size:.85rem}.project-progress{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8rem;font-weight:400;display:inline-flex}.progress-mini{width:110px;height:8px;display:inline-block}.progress-mini .progress-fill{display:block}.projects-manager h3{margin:0 0 .5rem;font-size:1rem}.project-list{flex-direction:column;gap:.6rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.project-row{background:var(--surface-deep);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.7rem .9rem;display:flex}.project-row-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.project-name{font-weight:600}.project-meta{color:var(--text-muted);font-size:.8rem}.project-notes{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:24rem;font-size:.8rem;overflow:hidden}.project-row-actions{flex-shrink:0;gap:.4rem;display:flex}.project-row-actions .btn-ghost{padding:.35rem .7rem;font-size:.85rem}.project-edit{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.project-edit input{border:1px solid var(--border);background:var(--surface);min-width:10rem;color:var(--text);border-radius:8px;flex:1;padding:.5rem .7rem;font-size:.9rem}.project-edit .btn-secondary,.project-edit .btn-ghost{padding:.45rem .8rem;font-size:.85rem}.project-confirm{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.project-confirm p{margin:0;font-size:.8rem}.project-confirm .btn-danger,.project-confirm .btn-ghost{padding:.3rem .6rem;font-size:.8rem}.back-link{color:var(--text-muted);margin-bottom:1rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.detail-name{margin:0;font-size:1.4rem}.detail-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.detail-confirm{align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.detail-confirm .btn-danger,.detail-confirm .btn-ghost{padding:.35rem .7rem;font-size:.85rem}.detail-fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:0;display:grid}.detail-fields dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.2rem;font-size:.75rem}.detail-fields dd{margin:0;font-size:.95rem}.detail-notes{border-top:1px solid var(--border);color:var(--text);white-space:pre-wrap;margin:1rem 0 0;padding-top:.75rem;font-size:.9rem}.detail-section-title{margin:0 0 .75rem;font-size:1.05rem}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline-item{border-bottom:1px solid var(--border);flex-direction:column;gap:.35rem;padding:.5rem 0;font-size:.9rem;display:flex}.timeline-item:last-child{border-bottom:none}.timeline-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.timeline-move{font-weight:500}.timeline-date{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.timeline-move-wrap{align-items:center;gap:.15rem;display:inline-flex}.timeline-photo-moment{align-items:center;gap:.6rem;display:inline-flex}.timeline-photo{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:44px;height:44px}.timeline-note{color:var(--text-muted);white-space:pre-wrap;margin:0;font-style:italic}.timeline-note-edit{margin-left:.4rem;font-size:.8rem}.timeline-note-editor{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.timeline-note-editor input{border:1px solid var(--border);background:var(--surface-deep);min-width:200px;color:var(--text);border-radius:8px;flex:1;padding:.4rem .6rem;font-size:.85rem}.status-note-prompt{border:1px dashed var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.status-note-label{color:var(--text-muted);white-space:nowrap}.status-note-input{border:1px solid var(--border);background:var(--surface-deep);min-width:180px;color:var(--text);border-radius:8px;flex:1;padding:.4rem .6rem;font-size:.85rem}.status-note-prompt .btn-secondary,.status-note-prompt .btn-ghost{padding:.35rem .7rem;font-size:.8rem}.status-note-error{flex-basis:100%;font-size:.8rem}.log-week{margin-bottom:1rem}.log-week-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.6rem;display:flex}.log-week-title{margin:0;font-size:1.05rem}.log-week-counts{color:var(--text-muted);margin:0;font-size:.85rem}.log-entries{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.log-entry{border-bottom:1px solid var(--border);flex-direction:column;gap:.3rem;padding:.5rem 0;font-size:.9rem;display:flex}.log-entry:last-child{border-bottom:none}.log-entry-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.log-entry-main{flex-wrap:wrap;align-items:center;gap:.15rem;display:inline-flex}.log-name{color:var(--text);font-weight:500;text-decoration:none}a.log-name:hover{color:var(--accent);text-decoration:underline}.log-retired{color:var(--text-muted);font-size:.8rem;font-weight:400}.log-what{color:var(--text)}.log-aside{color:var(--text-muted)}.log-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;align-self:center;width:36px;height:36px;margin-right:.45rem}.log-date{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.log-note{color:var(--text-muted);white-space:pre-wrap;margin:0;font-style:italic}.log-foot{text-align:center;padding:.75rem 0 1.5rem}.log-end{color:var(--text-muted);font-size:.9rem}.form-field textarea{border:1px solid var(--border);background:var(--surface-deep);color:var(--text);resize:vertical;border-radius:8px;padding:.55rem .7rem;font-family:inherit;font-size:.95rem}
