/* Local photo matching: no image leaves the browser. */
.photo-shell{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:46px 0 76px;min-width:0}
.photo-shell [hidden]{display:none!important}
.photo-shell h1,.photo-shell h2,.photo-shell h3{line-height:1.45;letter-spacing:-.035em}
.photo-shell p{overflow-wrap:anywhere}
.photo-shell a:not(.photo-button){color:#a9e8c0;text-decoration:underline;text-underline-offset:4px}
.photo-eyebrow{display:block;color:#93d6af;font-size:11px;font-weight:800;letter-spacing:.17em}
.photo-intro{max-width:800px;margin-bottom:30px}
.photo-intro h1{font-size:clamp(30px,5.9vw,49px);margin:13px 0 16px;line-height:1.35}
.photo-beta{display:inline-block;vertical-align:middle;border:1px solid #567960;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.6;letter-spacing:0;color:#c1dec9;white-space:nowrap}
.photo-intro>p{max-width:720px;margin:0;color:#c0cec5;font-size:15px;line-height:1.9}
.photo-privacy{display:flex;align-items:center;gap:10px;margin-top:19px!important;font-size:13px!important;color:#b8dfc7!important}
.photo-privacy svg{flex:none;color:#8ce3af}
.photo-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:26px 0 0;gap:12px}
.photo-steps li{display:flex;align-items:center;gap:9px;color:#b4c5ba;font-size:12px;min-width:0}
.photo-steps span{display:grid;place-items:center;flex:none;width:26px;height:26px;border:1px solid #47604f;border-radius:50%;color:#b9eaca;font-size:11px;font-weight:800}
.photo-workspace{border:1px solid #385042;border-radius:16px;overflow:hidden;background:#101813}
.photo-upload{padding:clamp(22px,4vw,36px);background:linear-gradient(125deg,#172b1e,#111a15 70%)}
.photo-section-label{color:#8dcca6;font-size:11px;letter-spacing:.12em;font-weight:800}
.photo-upload h2,.photo-editor-heading h2{margin:7px 0 11px;font-size:22px}
.photo-upload>p{margin:0 0 20px;max-width:710px;color:#becfc4;font-size:14px;line-height:1.85}
.photo-file-label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:#e4eee8}
#photo-file{display:block;width:100%;max-width:620px;min-height:54px;padding:7px;color:#c7d8cc;border:1px solid #486554;border-radius:9px;background:#0c140f;font-size:14px;overflow:hidden}
#photo-file::file-selector-button{min-height:40px;padding:8px 16px;margin-right:12px;border:0;border-radius:5px;background:#b8efd0;color:#082412;font:inherit;font-weight:800;cursor:pointer}
.photo-file-help{font-size:12px!important;margin:10px 0 0!important;color:#a4bbaD!important}
.photo-upload details{margin-top:12px;color:#acc1b3;font-size:12px}
.photo-upload summary{cursor:pointer;padding-block:8px;min-height:36px;width:fit-content;text-decoration:underline;text-underline-offset:4px}
.photo-upload details p{margin:6px 0 0;line-height:1.9}
#photo-editor{padding:clamp(20px,4vw,34px);border-top:1px solid #344d3d}
.photo-editor-heading p{font-size:13px;color:#b1c6b9;margin:0 0 20px;max-width:710px}
.photo-crop-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:23px;align-items:start}
.photo-preview-wrap{margin:0;min-width:0}
.photo-preview-surface{display:grid;place-items:center;border:1px solid #385040;border-radius:10px;overflow:hidden;background:repeating-conic-gradient(#101813 0% 25%,#16231a 0% 50%) 50%/20px 20px}
#photo-preview{display:block;width:100%;height:auto;max-width:100%;touch-action:auto}
.photo-preview-wrap figcaption{margin-top:10px;color:#a5bbaD;font-size:12px}
.photo-crop-controls{min-width:0;border:1px solid #344d3c;border-radius:10px;margin:0;padding:17px 20px;background:#142018}
.photo-crop-controls legend{padding:0 7px;color:#d4e5da;font-size:13px;font-weight:700}
.photo-range-field+.photo-range-field{margin-top:15px}
.photo-range-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;color:#c5d9cc}
.photo-range-heading label{font-weight:700}
.photo-range-heading output{color:#aff2c8;font-variant-numeric:tabular-nums}
.photo-range-field input{display:block;width:100%;min-height:42px;margin:0;accent-color:#75e69e;cursor:pointer}
.photo-range-scale{display:flex;justify-content:space-between;margin-top:-3px;color:#91ab9a;font-size:11px}
.photo-controls-hint{margin:16px 0 0;color:#abc1b2;font-size:12px;line-height:1.8}
.photo-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.photo-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;gap:12px;padding:12px 20px;border:1px solid #4e755c;border-radius:8px;background:#1a3021;color:#d1eddb;font:inherit;font-size:14px;font-weight:800;text-align:center;cursor:pointer}
.photo-button-primary{background:#6ee6a0;color:#062813;border-color:#6ee6a0;flex:1 1 210px}
.photo-button-primary:hover:not(:disabled){background:#9ff2bf}
.photo-button-secondary{flex:0 1 auto;background:#142219}
.photo-button-secondary:hover:not(:disabled){background:#263c2d}
.photo-button:disabled{cursor:not-allowed;background:#263a2c;color:#92aa9b;border-color:#3f5848}
.photo-processing{padding:0 clamp(22px,4vw,36px);background:#101813}
#photo-status{margin:0;padding-block:16px;color:#c4dbcd;font-size:13px;line-height:1.8;min-height:52px}
#photo-progress{display:block;width:100%;height:12px;margin:0 0 24px;border:0;border-radius:99px;overflow:hidden;background:#263c2e;accent-color:#78e7a2}
#photo-progress::-webkit-progress-bar{background:#263c2e;border-radius:99px}
#photo-progress::-webkit-progress-value{background:#78e7a2;border-radius:99px}
#photo-progress::-moz-progress-bar{background:#78e7a2;border-radius:99px}
#photo-results{scroll-margin-top:92px;margin-top:40px}
.photo-results-heading h2{margin:7px 0 10px;font-size:27px}
.photo-results-heading>p{color:#bbd0c3;margin:0;font-size:14px;line-height:1.85}
.photo-verification{display:flex;flex-wrap:wrap;gap:8px 12px;margin:18px 0 22px;padding:15px 18px;border:1px solid #476c53;border-radius:8px;background:#15271b;color:#d4e8da;font-size:13px}
.photo-verification strong{color:#a4efbf}
#photo-candidates{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none}
.photo-candidate{display:grid;grid-template-columns:minmax(130px,190px) minmax(0,1fr);gap:24px;padding:22px;border:1px solid #354f3e;border-radius:13px;background:#101a14;min-width:0}
.photo-candidate-image{min-width:0;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:#edf2ed;border:1px solid #d7e0d6;border-radius:8px;padding:12px;min-height:240px;overflow:hidden;color:#254331;font-size:13px}
.photo-candidate-image img{display:block;width:100%;height:250px;object-fit:contain}
.photo-shell .photo-candidate-image a{color:#205632;font-size:11px;line-height:1.8;min-height:36px;display:inline-flex;align-items:center}
img.photo-candidate-image{display:block;width:100%;height:280px;object-fit:contain}
.photo-candidate-details{min-width:0;align-self:center}
.photo-candidate-details h2,.photo-candidate-details h3,.photo-candidate-details h4{font-size:21px;color:#edf4ef;margin:0 0 12px;overflow-wrap:anywhere}
.photo-candidate-details p{font-size:13px;line-height:1.9;margin:9px 0;color:#b8d0c0}
.photo-candidate-details small{color:#9fb9a8;line-height:1.8}
.photo-candidate-details ul{padding-left:19px;margin:12px 0;font-size:13px;line-height:1.85;color:#b7cfc0}
.photo-candidate-details li+li{margin-top:5px}
.photo-candidate-details dl{display:grid;gap:9px;margin:15px 0;font-size:13px}
.photo-candidate-details dt{color:#98b4a2}
.photo-candidate-details dd{margin:0;color:#e2eee6;overflow-wrap:anywhere}
.photo-candidate-actions{display:flex;flex-wrap:wrap;gap:9px 16px;align-items:center;margin-top:17px}
.photo-candidate-actions a{display:inline-flex;align-items:center;min-height:48px;font-size:13px;font-weight:700}
.photo-candidate-actions button{font:inherit;min-height:48px;border:1px solid #5e856b;border-radius:7px;background:#1b3223;color:#d2eedc;padding:10px 15px;cursor:pointer}
.photo-match-note{font-size:12px!important;color:#a8c3b1!important;line-height:1.85}
.photo-candidate label{display:flex;align-items:flex-start;gap:9px;margin-block:14px;font-size:13px;line-height:1.85;color:#d7e8dd}
.photo-candidate input[type=checkbox]{flex:none;width:19px;height:19px;margin-top:3px;accent-color:#75e69e}
.photo-confirm-label{padding:13px 15px;border:1px solid #456b52;border-radius:8px;background:#192c1f}
.photo-inline-error{padding:11px 14px;border-left:3px solid #e6ad78;border-radius:0 6px 6px 0;background:#32251c;color:#f1d2b5!important;font-size:13px;line-height:1.85}
#photo-empty{margin-top:22px;padding:26px;border:1px solid #566044;border-radius:12px;background:#20251a}
#photo-empty h2{font-size:22px;margin:0 0 12px;color:#e2e9d4}
#photo-empty p,#photo-empty li{color:#c6cfb8;font-size:14px;line-height:1.9}
#photo-empty ul{padding-left:22px;margin:15px 0}
#photo-empty a{display:inline-flex;align-items:center;min-height:44px;font-weight:800;font-size:14px}
.photo-limitations{margin-top:36px;border-top:1px solid #2c4434;padding-top:27px}
.photo-limitations h2{font-size:19px;margin:0 0 18px}
.photo-limit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 34px}
.photo-limit-grid h3{margin:0 0 6px;font-size:14px;color:#cfdfd4}
.photo-limit-grid p{margin:0;color:#a9c0b1;font-size:13px;line-height:1.9}
#photo-catalog-note{font-size:12px;line-height:1.9;color:#a6bfaf;margin-top:22px}
.photo-manual-link{display:inline-flex;min-height:44px;align-items:center;margin-top:15px;font-size:14px;font-weight:700}
.photo-noscript{border:1px solid #a29655;border-radius:9px;padding:20px;margin-block:22px;color:#e3dfc1;line-height:1.8}
.photo-license{color:#8ba596;font-size:11px;margin-top:28px}
@media(min-width:780px){.photo-crop-layout{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)}.photo-crop-controls{position:sticky;top:92px}}
@media(max-width:540px){.photo-shell{width:calc(100% - 28px);padding-top:30px}.photo-intro h1{font-size:30px}.photo-beta{font-size:11px}.photo-steps{gap:8px}.photo-steps li{display:grid;align-content:start;gap:7px;font-size:11px}.photo-upload{padding:22px 18px}.photo-file-help{line-height:1.9}#photo-editor{padding:22px 17px}.photo-crop-controls{padding:15px}.photo-actions>*{width:100%;flex-basis:100%}.photo-candidate{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px}.photo-candidate-image{min-height:260px}.photo-candidate-image img{height:280px}.photo-candidate-details h3{font-size:20px}.photo-candidate-actions{display:grid;grid-template-columns:minmax(0,1fr)}.photo-candidate-actions a,.photo-candidate-actions button{width:100%;justify-content:center;text-align:center;border:1px solid #405b49;border-radius:7px;padding:10px}.photo-limit-grid{grid-template-columns:minmax(0,1fr);gap:21px}.photo-verification{display:block}.photo-verification strong{display:block;margin-bottom:5px}#photo-empty{padding:21px}.photo-processing{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.photo-page{scroll-behavior:auto}.photo-page *{scroll-behavior:auto}}
