:root{--bg:#f5f5f7;--surface:#fff;--surface2:#fbfbfd;--text:#1d1d1f;--muted:#6e6e73;--line:#d2d2d7;--line-soft:#e8e8ed;--blue:#0071e3;--blue-hover:#0077ed;--dark:#1d1d1f;--danger:#d70015;--radius:18px;--shadow:0 10px 35px rgba(0,0,0,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
.topbar{position:sticky;top:0;z-index:100;background:rgba(250,250,252,.86);border-bottom:1px solid rgba(0,0,0,.08);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.nav{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.55px}.brand span{color:var(--blue)}.nav nav{display:flex;align-items:center;gap:28px}.nav nav a{color:var(--text);font-size:13px;font-weight:500;transition:opacity .2s}.nav nav a:hover{opacity:.55}
.hero{padding:72px 0 38px;text-align:center}.hero h1{margin:0;font-size:clamp(36px,5vw,58px);line-height:1.02;letter-spacing:-2.5px;font-weight:700}.hero p{max-width:650px;margin:16px auto 0;color:var(--muted);font-size:18px;line-height:1.5}
.filters{margin:0 auto 32px;padding:12px;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.07);border-radius:20px;box-shadow:0 4px 22px rgba(0,0,0,.04);display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.filters select,.filters input,.form-control{width:100%;height:44px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}.filters input:focus,.filters select:focus,.form-control:focus{border-color:#86bff5;box-shadow:0 0 0 4px rgba(0,113,227,.1)}textarea.form-control{height:auto;min-height:120px;padding:12px 13px;resize:vertical}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:60px}.card{overflow:hidden;background:var(--surface);border:1px solid rgba(0,0,0,.07);border-radius:var(--radius);color:var(--text);transition:transform .25s ease,box-shadow .25s ease,border-color .25s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(0,0,0,.1)}.card-img{height:240px;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#fff,#fafafa);border-bottom:1px solid var(--line-soft)}.card-img img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .3s ease}.card:hover .card-img img{transform:scale(1.025)}.card-body{padding:18px 18px 20px}.kicker{text-transform:uppercase;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.8px}.card h3{font-size:18px;line-height:1.2;letter-spacing:-.35px;margin:7px 0 5px}.sensor-generation{font-size:12px;font-weight:600;color:#6e6e73;line-height:1.35;margin:0 0 9px}.meta{font-size:13px;color:var(--muted);line-height:1.45}
.product-head{background:var(--surface);border-bottom:1px solid var(--line-soft)}.crumb{font-size:12px;color:var(--muted);padding-top:18px}.crumb a{color:var(--muted)}.product-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:center;padding:34px 0 50px}.product-gallery{min-width:0}.product-photo{width:100%;border:0;position:relative;cursor:zoom-in;height:440px;display:flex;align-items:center;justify-content:center;background:#fafafa;border-radius:24px;padding:30px}.product-photo img{max-width:100%;max-height:100%;object-fit:contain}.thumb-row{display:flex;gap:9px;overflow-x:auto;padding:12px 2px 3px}.thumb{flex:0 0 70px;width:70px;height:58px;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:.2s}.thumb.active{border-color:var(--blue);box-shadow:0 0 0 2px rgba(0,113,227,.13)}.thumb img{width:100%;height:100%;object-fit:contain}.product-info h1{font-size:clamp(38px,5vw,60px);line-height:1.02;letter-spacing:-2.6px;margin:20px 0 18px}.badges{display:flex;gap:7px;flex-wrap:wrap}.badge{background:#f2f2f7;border:0;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:600;color:#515154}.intro{font-size:17px;line-height:1.58;color:#515154}.product-info .meta{margin-top:18px}
.tabs{position:sticky;top:56px;z-index:90;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(0,0,0,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.tabs .wrap{display:flex;gap:26px;overflow-x:auto}.tabs a{white-space:nowrap;color:var(--text);font-size:13px;font-weight:600;padding:14px 0;border-bottom:2px solid transparent}.tabs a:hover{color:var(--blue)}
.product-content,.content{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;margin-top:30px;margin-bottom:60px}.quick-panel{background:var(--dark);color:#fff;padding:28px;border-radius:22px;margin-bottom:22px;box-shadow:0 14px 38px rgba(0,0,0,.11)}.quick-panel h2{font-size:30px;line-height:1.1;margin:0 0 18px;font-weight:700;letter-spacing:-1px}.quick-rule{height:1px;background:#424245;margin-bottom:10px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.quick-row{min-height:52px;border-bottom:1px solid #38383a;padding:12px 0;display:grid;grid-template-columns:minmax(105px,43%) 1fr;gap:12px;align-items:start}.quick-row span{color:#a1a1a6;text-transform:none;font-size:12px;line-height:1.4}.quick-row strong{text-align:right;text-transform:none;font-size:13px;line-height:1.45;font-weight:600}.quick-button,.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:980px;background:var(--blue);color:#fff;font-weight:600;padding:11px 17px;font-size:13px;cursor:pointer;transition:background .2s,transform .15s}.quick-button{margin-top:18px}.quick-button:hover,.btn:hover{background:var(--blue-hover)}.quick-button:active,.btn:active{transform:scale(.98)}.quick-empty{color:#a1a1a6}.full-specs.is-collapsed{display:none}
.panel,.form-card,.import-card{overflow:hidden;background:var(--surface);border:1px solid rgba(0,0,0,.07);border-radius:18px;margin-bottom:18px;box-shadow:0 2px 12px rgba(0,0,0,.025)}.panel h2,.form-card h2,.import-card h2{font-size:18px;letter-spacing:-.3px;margin:0;padding:17px 19px;border-bottom:1px solid var(--line-soft);background:var(--surface)}.form-card,.import-card{padding:20px}.form-card h2,.import-card h2{padding:0 0 15px;margin-bottom:18px}.spec-table{width:100%;border-collapse:collapse}.spec-table th,.spec-table td{padding:12px 18px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;font-size:13px;line-height:1.45}.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:0}.spec-table th{width:37%;background:#fbfbfd;color:var(--muted);font-weight:500}.spec-table td{font-weight:500}.spec-table tr{transition:background-color .16s ease}.spec-table tbody tr:hover th,.spec-table tbody tr:hover td{background:#f2f2f4}.review-link{display:block;padding:14px 17px;border-bottom:1px solid var(--line-soft);transition:background .2s}.review-link:hover{background:#fafafa}.review-link strong{display:block;color:var(--text);font-size:13px}.review-link small{display:block;color:var(--muted);margin-top:3px}.empty-pad{padding:16px 18px;color:var(--muted);font-size:13px}.footer{border-top:1px solid var(--line-soft);background:#f5f5f7;color:#86868b;padding:28px 0;font-size:12px}
.admin-shell{max-width:1180px;margin:32px auto;padding:0 20px}.adminbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.adminbar h1{font-size:32px;letter-spacing:-1px;margin:0}.adminbar>div{display:flex;gap:8px;flex-wrap:wrap}.btn-red{background:var(--danger)}.table{width:100%;background:#fff;border-collapse:separate;border-spacing:0;border:1px solid rgba(0,0,0,.07);border-radius:16px;overflow:hidden}.table th,.table td{padding:13px 14px;border-bottom:1px solid var(--line-soft);text-align:left;font-size:13px}.table th{background:#fafafa;color:var(--muted);font-weight:600}.table tr:last-child td{border-bottom:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}label{font-size:12px;font-weight:600;display:block;margin-bottom:7px;color:#515154}.notice{padding:13px 15px;background:#f0f7ff;border:1px solid #cce4ff;border-radius:12px;margin-bottom:15px;font-size:13px}.danger{background:#fff1f2;border-color:#ffd0d5}.quick-toggle{display:inline-block;min-width:42px;text-align:center;padding:5px 8px;border-radius:999px;background:#eee;color:#555;font-weight:700;font-size:10px}.quick-toggle.on{background:#e7f6ec;color:#137333}.admin-image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.admin-image-card{background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:10px}.admin-image-card img{width:100%;height:170px;object-fit:contain;background:#fafafa;border-radius:9px}.admin-image-card div{font-size:12px;line-height:1.6;margin-top:8px}
@media(max-width:980px){.grid{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(2,1fr)}.filters input{grid-column:1/-1}.product-main{gap:34px}.product-content,.content{grid-template-columns:1fr}.admin-image-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.wrap{width:min(100% - 28px,1180px)}.nav{min-height:52px}.nav nav{gap:16px}.nav nav a{font-size:12px}.hero{padding:48px 0 28px}.hero h1{letter-spacing:-1.7px}.hero p{font-size:16px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-img{height:190px;padding:18px}.product-main{grid-template-columns:1fr;padding:22px 0 34px}.product-photo{height:340px}.product-info h1{margin-top:16px}.tabs{top:52px}.quick-grid{grid-template-columns:1fr}.adminbar{align-items:flex-start;flex-direction:column}.table{display:block;overflow-x:auto;white-space:nowrap}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-image-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.wrap{width:calc(100% - 24px)}.nav nav{gap:12px}.nav nav a{font-size:11px}.hero{padding-top:38px}.hero h1{font-size:38px}.filters{grid-template-columns:1fr;border-radius:16px}.filters input{grid-column:auto}.grid{grid-template-columns:1fr}.card{border-radius:16px}.card-img{height:235px}.product-photo{height:290px;border-radius:18px}.product-info h1{font-size:39px;letter-spacing:-1.7px}.product-content{margin-top:18px}.quick-panel{padding:22px 17px;border-radius:18px}.quick-row{grid-template-columns:42% 58%;gap:8px}.quick-row strong{font-size:12px}.quick-row span{font-size:11px}.panel{border-radius:15px}.spec-table th,.spec-table td{padding:11px 12px;font-size:12px}.admin-image-grid{grid-template-columns:1fr}}

/* Inline admin editing */
.card-wrap{position:relative;display:flex;flex-direction:column}.card-link{display:flex;flex-direction:column;height:100%;color:inherit}.card-link .card-body{display:flex;flex-direction:column;flex:1}.inline-edit{position:absolute;top:12px;right:12px;z-index:3;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);box-shadow:0 3px 14px rgba(0,0,0,.10);font-size:11px;font-weight:700;color:#0071e3;opacity:0;transform:translateY(-2px);transition:.2s}.card-wrap:hover .inline-edit,.inline-edit:focus{opacity:1;transform:none}.product-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.product-title-row h1{margin-right:auto}.product-edit-btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:9px 14px;border-radius:999px;background:#f2f2f7;color:#0071e3;font-size:12px;font-weight:700;transition:.2s}.product-edit-btn:hover{background:#e8e8ed}
@media(max-width:720px){.inline-edit{opacity:1;transform:none}.product-title-row{align-items:flex-start}.product-edit-btn{margin-top:4px}}

/* Inline admin shortcuts */
.inline-admin-actions{position:absolute;top:12px;right:12px;z-index:3;display:flex;gap:7px;opacity:0;transform:translateY(-2px);transition:.2s}.inline-admin-actions .inline-edit{position:static;opacity:1;transform:none}.card-wrap:hover .inline-admin-actions,.inline-admin-actions:focus-within{opacity:1;transform:none}.inline-spec{background:rgba(242,242,247,.94);color:#1d1d1f}.inline-spec:hover{background:rgba(232,232,237,.98);color:#0071e3}.product-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.product-spec-btn{background:#1d1d1f;color:#fff}.product-spec-btn:hover{background:#333336;color:#fff}
@media(max-width:720px){.inline-admin-actions{opacity:1;transform:none}.product-admin-actions{width:100%}.product-admin-actions .product-edit-btn{flex:1;min-width:120px}}

/* Specs photo manager + product lightbox */
.admin-help{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.55}.drop-zone{min-height:150px;border:1.5px dashed #b8b8bd;border-radius:18px;background:#fafafa;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;cursor:pointer;transition:.2s;margin-bottom:14px}.drop-zone:hover,.drop-zone.dragging{border-color:var(--blue);background:#f3f8ff;box-shadow:0 0 0 4px rgba(0,113,227,.08)}.drop-zone strong{font-size:14px;color:var(--text);margin:5px 0}.drop-zone small{font-size:11px;font-weight:400;color:var(--muted)}.drop-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line-soft);font-size:24px;color:var(--blue)}.upload-preview{display:flex;gap:8px;overflow:auto;margin:0 0 14px}.upload-preview-item{flex:0 0 72px;width:72px;height:58px;padding:4px;background:#fff;border:1px solid var(--line-soft);border-radius:10px}.upload-preview-item img{width:100%;height:100%;object-fit:contain;border-radius:7px}.spec-image-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}.spec-image-card{border:1px solid var(--line-soft);border-radius:14px;padding:8px;background:#fff}.spec-image-card.is-primary{border-color:#8cc3f5;box-shadow:0 0 0 3px rgba(0,113,227,.08)}.spec-image-preview{height:130px;background:#fafafa;border-radius:9px;display:flex;align-items:center;justify-content:center}.spec-image-preview img{width:100%;height:100%;object-fit:contain}.spec-image-meta{padding:8px 3px 2px;font-size:11px;line-height:1.45}.spec-image-meta strong{display:block;margin-bottom:5px}.spec-image-actions{display:flex;gap:8px;flex-wrap:wrap}.danger-link{color:var(--danger)}
.zoom-hint{position:absolute;right:14px;bottom:14px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 3px 14px rgba(0,0,0,.09);color:var(--text);font-size:15px}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:30px}.lightbox.open{display:flex}.lightbox-stage{width:min(1180px,calc(100vw - 150px));height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;position:relative;cursor:zoom-out}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 18px 40px rgba(0,0,0,.25))}.lightbox-close,.lightbox-nav{position:absolute;border:0;color:#fff;background:rgba(255,255,255,.13);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:.2s}.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.22)}.lightbox-close{top:20px;right:20px;width:44px;height:44px;border-radius:50%;font-size:30px;font-weight:200}.lightbox-nav{top:50%;transform:translateY(-50%);width:48px;height:68px;border-radius:24px;font-size:44px;font-weight:200}.lightbox-prev{left:22px}.lightbox-next{right:22px}.lightbox-count{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.35);color:#fff;font-size:11px}.lightbox-open{overflow:hidden}
@media(max-width:980px){.spec-image-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.spec-image-grid{grid-template-columns:repeat(2,1fr)}.lightbox{padding:12px}.lightbox-stage{width:100%;height:calc(100vh - 90px)}.lightbox-nav{width:42px;height:58px;font-size:38px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-close{top:12px;right:12px}.zoom-hint{right:10px;bottom:10px}}
@media(max-width:480px){.spec-image-grid{grid-template-columns:1fr 1fr}.spec-image-preview{height:110px}}

.photo-url-divider{display:flex;align-items:center;gap:14px;margin:22px 0 16px;color:var(--muted,#6e6e73);font-size:13px}.photo-url-divider:before,.photo-url-divider:after{content:"";height:1px;background:rgba(0,0,0,.09);flex:1}.photo-url-form .btn{margin-top:12px}.photo-url-form textarea{resize:vertical;min-height:92px}


/* Back to top */
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:90;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-soft);border-radius:980px;padding:10px 15px;background:var(--surface);box-shadow:0 3px 14px rgba(0,0,0,.06);color:var(--text);font:600 12px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:-.08px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,visibility .2s}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{color:var(--blue);border-color:#b9d8f5;box-shadow:0 5px 18px rgba(0,0,0,.08)}.back-to-top:active{transform:scale(.98)}.back-to-top .back-to-top-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f2f2f7;color:var(--blue);font-size:14px;font-weight:600;line-height:1}.back-to-top-label{display:inline}.back-to-top-mobile{display:none}@media(max-width:720px){.back-to-top{right:14px;bottom:14px;padding:9px 12px;font-size:11px}.back-to-top .back-to-top-icon{width:20px;height:20px;font-size:13px}.back-to-top-desktop{display:none}.back-to-top-mobile{display:inline}}

/* Specification editor */
.spec-row-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;white-space:nowrap}
.spec-edit-card{scroll-margin-top:96px}
.spec-edit-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.btn-secondary{background:#fff;color:#1d1d1f;border:1px solid rgba(0,0,0,.12)}
#specs-table tr[id]{scroll-margin-top:96px}
@media (max-width:700px){.spec-row-actions{justify-content:flex-start}.spec-edit-actions{align-items:flex-start;flex-direction:column}}

.filters [hidden]{display:none!important}


/* Film simulation UI */
.film-sim-panel{margin-top:18px;padding:28px}
.film-sim-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.film-sim-heading h2{margin:0}
.film-sim-heading span{font-size:13px;font-weight:600;color:var(--muted,#6e6e73);background:#f5f5f7;border:1px solid rgba(0,0,0,.06);padding:6px 10px;border-radius:999px}
.film-sim-pills{display:flex;flex-wrap:wrap;gap:9px}
.film-sim-pill{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border-radius:999px;background:#f5f5f7;border:1px solid rgba(0,0,0,.07);font-size:13px;font-weight:600;letter-spacing:-.01em;color:#1d1d1f}
.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.admin-section-head h2{margin-top:0;margin-bottom:6px}
.admin-section-head .admin-help{margin:0}
.film-sim-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.film-sim-check{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.film-sim-check:hover{background:#f7f7f9;border-color:rgba(0,0,0,.14)}
.film-sim-check input{width:17px;height:17px;margin:0;accent-color:#0071e3}
.film-sim-check span{font-size:13px;font-weight:600;color:#1d1d1f}
@media(max-width:900px){.film-sim-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.film-sim-panel{padding:20px}.film-sim-heading{align-items:flex-start}.film-sim-admin-grid{grid-template-columns:1fr}.admin-section-head{display:block}.admin-section-head .btn{margin-top:12px;width:100%}.film-sim-pill{font-size:12px;padding:6px 10px}}

/* Minimal release year badge on all product cards. It is always the last row. */
.release-year-badge{margin-top:auto;padding-top:10px;display:flex;align-items:center}.release-year-badge span{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 9px;border:1px solid rgba(0,0,0,.07);border-radius:999px;background:#f5f5f7;color:#6e6e73;font-size:11px;font-weight:600;line-height:1;letter-spacing:.1px;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
@media(max-width:480px){.release-year-badge{padding-top:8px}.release-year-badge span{min-height:23px;padding:4px 8px;font-size:10.5px}}

/* External review type */
.review-link small{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.review-type-pill{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:rgba(0,0,0,.035);font-size:10px;font-weight:650;letter-spacing:.01em;color:#6e6e73}

/* Latest official Fujifilm firmware */
.firmware-hero{padding:54px 0 30px}.firmware-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.firmware-eyebrow{display:block;color:var(--blue);font-size:10px;font-weight:700;letter-spacing:.12em;margin-bottom:7px}.firmware-head h1{margin:0;font-size:clamp(30px,4vw,46px);line-height:1.05;letter-spacing:-1.8px}.firmware-all{font-size:12px;font-weight:600;color:var(--blue);white-space:nowrap}.firmware-list{background:rgba(255,255,255,.82);border:1px solid rgba(0,0,0,.08);border-radius:20px;overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.035)}.firmware-item{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:16px;padding:12px 16px;color:var(--text);border-bottom:1px solid rgba(0,0,0,.055);transition:background .18s}.firmware-item:last-child{border-bottom:0}.firmware-item:hover{background:rgba(0,113,227,.045)}.firmware-title{font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.firmware-item time{font-size:11px;color:var(--muted);white-space:nowrap}.firmware-arrow{color:var(--muted);font-size:12px;text-align:right}.firmware-item:hover .firmware-arrow{color:var(--blue)}
@media(max-width:720px){.firmware-hero{padding:34px 0 22px}.firmware-head{align-items:center}.firmware-head h1{font-size:30px;letter-spacing:-1.2px}.firmware-list{border-radius:16px}.firmware-item{grid-template-columns:minmax(0,1fr) 16px;gap:8px;padding:12px 13px}.firmware-item time{display:none}.firmware-title{font-size:12px}.firmware-all{font-size:11px}}

/* Collapsible firmware panel */
.firmware-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin:0 0 14px;padding:10px 14px;border:1px solid rgba(0,0,0,.09);border-radius:999px;background:rgba(255,255,255,.82);color:var(--text);box-shadow:0 3px 14px rgba(0,0,0,.035);font-size:12px;font-weight:600;letter-spacing:-.08px;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease,color .18s ease}.firmware-toggle:hover{background:#fff;border-color:rgba(0,113,227,.22);box-shadow:0 5px 18px rgba(0,0,0,.05);color:var(--blue)}.firmware-toggle:active{transform:scale(.985)}.firmware-toggle-chevron{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#f2f2f7;color:var(--blue);font-size:15px;line-height:1;transition:transform .22s ease}.firmware-toggle[aria-expanded="true"] .firmware-toggle-chevron{transform:rotate(180deg)}.firmware-collapse{overflow:hidden;opacity:1;transform:none;transition:opacity .22s ease,transform .22s ease}.firmware-collapse.is-closing{opacity:0;transform:translateY(-6px)}.firmware-collapse[hidden]{display:none!important}@media(max-width:720px){.firmware-toggle{width:100%;min-height:44px;margin-bottom:12px;padding:11px 14px;font-size:12px}}


/* Firmware list: open by default, compact two-column desktop layout */
.firmware-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}
.firmware-item{border-bottom:1px solid rgba(0,0,0,.055)}
.firmware-item:nth-child(odd){border-right:1px solid rgba(0,0,0,.055)}
.firmware-item:nth-last-child(-n+2){border-bottom:0}
.firmware-toggle{gap:0}
.firmware-toggle-chevron{display:none!important}
@media(max-width:720px){
  .firmware-list{grid-template-columns:1fr}
  .firmware-item:nth-child(odd){border-right:0}
  .firmware-item:nth-last-child(-n+2){border-bottom:1px solid rgba(0,0,0,.055)}
  .firmware-item:last-child{border-bottom:0}
}

/* Header external links — compact desktop layout, clean wrapping on mobile */
@media (max-width: 860px){
  .nav{flex-wrap:wrap;padding:9px 0 10px;gap:8px 18px}
  .nav nav{width:100%;gap:8px 18px;flex-wrap:wrap}
  .nav nav a{font-size:12px;white-space:nowrap}
}
@media (max-width: 480px){
  .nav{padding:8px 0 10px}
  .nav nav{gap:7px 14px}
  .nav nav a{font-size:11px}
}

/* FujiDB image logo — constrained so the existing 56px header height does not change */
.brand-logo{display:flex;align-items:center;height:56px;flex:0 0 auto;line-height:0}
.brand-logo img{display:block;width:auto;height:30px;max-width:150px;object-fit:contain}
@media(max-width:700px){.brand-logo{height:56px}.brand-logo img{height:25px;max-width:125px}}

/* FujiDB logo: maximum visual size inside the unchanged header height */
.brand-logo{height:56px;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.brand-logo img{height:44px;width:auto;max-width:215px;object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;pointer-events:auto}
@media(max-width:700px){.brand-logo{height:56px}.brand-logo img{height:38px;max-width:185px}}

/* Review editing */
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line-soft);background:var(--surface)}
.panel-title-row h2{border-bottom:0!important;flex:1}
.panel-edit-link{margin-right:14px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:7px 11px;border-radius:999px;background:#f2f2f7;color:#0071e3;font-size:11px;font-weight:700;transition:.2s}
.panel-edit-link:hover{background:#e8e8ed}
.review-admin-actions{display:flex;align-items:center;gap:12px}
.review-admin-actions a{font-weight:600}
.review-delete-link{color:var(--danger)!important}
.review-form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.review-cancel-btn{background:#f2f2f7;color:#0071e3}
.review-cancel-btn:hover{background:#e8e8ed}
@media(max-width:720px){.panel-title-row{align-items:center}.panel-edit-link{margin-right:10px;padding:7px 10px}.review-admin-actions{gap:10px}}

/* Review admin: POST delete button styled like the existing text action. */
.review-delete-button {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
}

/* FujiDB beta label — aligned to the logo baseline without changing header height */
.brand-logo{display:flex;align-items:center}
.brand-beta{align-self:flex-end;margin:0 0 8px 6px;font-size:11px;line-height:1;font-weight:500;letter-spacing:.01em;color:rgba(29,29,31,.48);white-space:nowrap}
@media(max-width:700px){.brand-beta{font-size:10px;margin-left:5px;margin-bottom:8px}}


/* Editable site-wide notice */
.site-notice{position:relative;z-index:80;border-bottom:1px solid rgba(0,0,0,.06);background:rgba(245,245,247,.92);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}
.site-notice-inner{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:8px;padding-bottom:8px}
.site-notice-copy{display:flex;align-items:center;gap:10px;min-width:0;font-size:13px;line-height:1.45;color:#3a3a3c}
.site-notice-label{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;padding:4px 7px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.07);color:#6e6e73}
.site-notice-message{min-width:0}
.site-notice-link{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--blue);white-space:nowrap}
.site-notice-link:hover{text-decoration:underline}
/* Site notice tones: soft Apple-like info/warning surfaces. Important stays unchanged. */
.site-notice-info{background:rgba(239,247,255,.94);border-bottom-color:rgba(0,113,227,.10)}
.site-notice-info .site-notice-copy{color:#315f86}
.site-notice-info .site-notice-label{background:rgba(255,255,255,.68);color:#5f86aa;border-color:rgba(0,113,227,.10)}
.site-notice-info .site-notice-link{color:#4d7fa8}
.site-notice-warning{background:rgba(255,247,232,.94);border-bottom-color:rgba(191,111,0,.11)}
.site-notice-warning .site-notice-copy{color:#76541f}
.site-notice-warning .site-notice-label{background:rgba(255,255,255,.62);color:#a66a16;border-color:rgba(166,106,22,.13)}
.site-notice-warning .site-notice-link{color:#9a651b}
.site-notice-important{background:rgba(255,244,244,.94)}
.site-notice-important .site-notice-label{background:#fff;color:#b42318;border-color:rgba(180,35,24,.13)}
.site-notice-admin-form{padding:24px}.notice-enable-row{padding-bottom:4px}.notice-switch{display:flex;align-items:center;gap:10px;cursor:pointer;margin:0;color:var(--text);font-size:14px}.notice-switch input{position:absolute;opacity:0;pointer-events:none}.notice-switch span{width:42px;height:24px;border-radius:999px;background:#d1d1d6;position:relative;transition:.2s}.notice-switch span:after{content:'';position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.2s}.notice-switch input:checked+span{background:#34c759}.notice-switch input:checked+span:after{transform:translateX(18px)}
.site-notice-admin-form textarea{width:100%;resize:vertical}.field-help{margin-top:6px;color:var(--muted);font-size:11px}
@media(max-width:720px){.site-notice-inner{align-items:flex-start;flex-direction:column;gap:6px;padding-top:9px;padding-bottom:9px}.site-notice-copy{align-items:flex-start;font-size:12px}.site-notice-link{margin-left:0;padding-left:0}}

/* Public language switch */
.lang-switch{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding:2px;background:rgba(0,0,0,.035);border:1px solid rgba(0,0,0,.055);border-radius:999px}
.lang-switch a{padding:4px 7px!important;border-radius:999px;font-size:10px!important;font-weight:700!important;letter-spacing:.03em;color:#86868b!important;line-height:1.1}
.lang-switch a.active{background:#fff;color:#1d1d1f!important;box-shadow:0 1px 4px rgba(0,0,0,.08)}
@media(max-width:700px){.lang-switch{margin-left:0}.lang-switch a{padding:4px 6px!important;font-size:9px!important}}


/* Header navigation — Apple-style segmented pill group */
.header-link-group{
  display:inline-flex!important;
  align-items:center;
  gap:2px!important;
  padding:3px;
  border:1px solid rgba(0,0,0,.055);
  border-radius:999px;
  background:rgba(0,0,0,.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.header-link-group > a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:6px 10px!important;
  border-radius:999px;
  color:#68686d!important;
  font-size:11px!important;
  font-weight:650!important;
  letter-spacing:-.05px;
  line-height:1;
  white-space:nowrap;
  opacity:1!important;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.header-link-group > a:hover{
  background:rgba(255,255,255,.72);
  color:#1d1d1f!important;
  box-shadow:0 1px 4px rgba(0,0,0,.055);
}
.header-link-group > a:active{
  transform:scale(.985);
}
@media(max-width:860px){
  .nav{flex-wrap:wrap;padding:8px 0 9px;gap:6px 16px}
  .header-link-group{
    width:100%;
    overflow-x:auto;
    justify-content:flex-start;
    flex-wrap:nowrap!important;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .header-link-group::-webkit-scrollbar{display:none}
  .header-link-group > a{
    flex:0 0 auto;
    min-height:27px;
    padding:6px 9px!important;
    font-size:10.5px!important;
  }
}
@media(max-width:480px){
  .header-link-group{
    margin-top:1px;
    padding:3px;
  }
  .header-link-group > a{
    padding:6px 8px!important;
    font-size:10px!important;
  }
}


/* Footer — matching Apple-style pill design */
.site-footer{
  padding:28px 0 34px;
  text-align:center;
}
.footer-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:0;
  padding:4px;
  border:1px solid rgba(0,0,0,.055);
  border-radius:999px;
  background:rgba(0,0,0,.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
  color:#68686d;
  font-size:11px;
  font-weight:650;
  letter-spacing:-.05px;
  line-height:1;
}
.footer-pill span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  white-space:nowrap;
}
.footer-pill span + span::before{
  content:"·";
  margin-right:10px;
  color:#a1a1a6;
}
@media(max-width:640px){
  .site-footer{
    padding:22px 0 28px;
  }
  .footer-pill{
    max-width:100%;
    border-radius:22px;
    font-size:10px;
    line-height:1.2;
  }
  .footer-pill span{
    min-height:24px;
    padding:5px 8px;
  }
  .footer-pill span + span::before{
    margin-right:8px;
  }
}


/* Footer pill hover — match header links */
.footer-pill span{
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.footer-pill span:hover{
  background:rgba(255,255,255,.72);
  color:#1d1d1f;
  box-shadow:0 1px 4px rgba(0,0,0,.055);
}
.footer-pill span:active{
  transform:scale(.985);
}


/* Footer separators stay static; only text items receive hover */
.footer-pill .footer-item{
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.footer-pill .footer-item:hover{
  background:rgba(255,255,255,.72);
  color:#1d1d1f;
  box-shadow:0 1px 4px rgba(0,0,0,.055);
}
.footer-pill .footer-item:active{
  transform:scale(.985);
}
.footer-pill .footer-separator{
  min-height:auto;
  padding:0 2px;
  color:#a1a1a6;
  pointer-events:none;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  transition:none!important;
}
.footer-pill .footer-item + .footer-separator::before,
.footer-pill .footer-separator + .footer-item::before{
  content:none!important;
}

.footer-pill span + span::before{content:none!important;margin:0!important;}


/* Admin review finder */
.review-finder-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.review-finder-head h2{margin:0 0 5px}
.review-finder-help{margin:0;color:#6e6e73;font-size:13px;line-height:1.45}
.review-finder-results{display:grid;gap:8px;margin-top:16px}
.review-found-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:rgba(255,255,255,.62);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.review-found-item:hover{background:#fff;border-color:rgba(0,0,0,.14)}
.review-found-item:active{transform:scale(.997)}
.review-found-item.is-added{opacity:.55;cursor:default}
.review-found-item input{width:17px;height:17px}
.review-found-copy{display:grid;gap:3px;min-width:0}
.review-found-title{font-weight:700;color:#1d1d1f}
.review-found-meta{font-size:11px;color:#6e6e73}
.review-found-snippet{font-size:12px;color:#86868b;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.review-found-item>a{font-size:12px;white-space:nowrap}
.review-finder-actions{margin-top:12px;display:flex;justify-content:flex-end}
.review-finder-message{margin-top:14px;padding:12px 14px;border-radius:12px;background:rgba(0,113,227,.06);color:#515154;font-size:13px;line-height:1.5}
.review-finder-config{margin-top:5px}
.review-finder-config code{font-size:11px}
@media(max-width:680px){.review-found-item{grid-template-columns:auto minmax(0,1fr)}.review-found-item>a{grid-column:2}}

.review-finder-results .review-found-item{grid-template-columns:minmax(0,1fr) auto;}


/* Site notice automatic progress counter */
.site-notice-progress{font-variant-numeric:tabular-nums;font-weight:750;white-space:nowrap}
.notice-progress-settings{margin-top:4px;padding:14px;border:1px solid rgba(0,0,0,.07);border-radius:14px;background:rgba(0,0,0,.018)}
.notice-progress-start{margin-top:14px;max-width:360px}
.notice-progress-input{display:flex;align-items:center;gap:7px}
.notice-progress-input input{max-width:110px}
.notice-progress-input span{font-weight:700;color:#6e6e73}


/* Site notice progress: same typography as the notice message */
.site-notice-progress{
  font:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  color:inherit!important;
}
