.sevp {
  --sevp-green: #176b52;
  --sevp-green-dark: #0c4c3a;
  --sevp-gold: #d6ab58;
  --sevp-ink: #172622;
  --sevp-muted: #66736f;
  --sevp-border: #dbe3df;
  max-width: 980px;
  width: 100%;
  margin: 2rem auto;
  overflow-wrap: anywhere;
  color: var(--sevp-ink);
  font: 16px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.sevp *, .sevp *::before, .sevp *::after { box-sizing: border-box; }
.sevp__header { max-width: 720px; margin-bottom: 1.5rem; }
.sevp__header h2 { margin: .2rem 0 .6rem; font-size: clamp(1.8rem, 5vw, 2.7rem); line-height: 1.12; }
.sevp__header p:last-child { color: var(--sevp-muted); }
.sevp__eyebrow { margin: 0; color: var(--sevp-green); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sevp__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; max-width: 600px; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.sevp__steps li { display: flex; align-items: center; gap: .45rem; color: #7a8581; font-size: .9rem; font-weight: 700; }
.sevp__steps li::after { content: ""; height: 2px; flex: 1; background: var(--sevp-border); }
.sevp__steps li:last-child::after { display: none; }
.sevp__steps span { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 2px solid var(--sevp-border); border-radius: 50%; }
.sevp__steps .is-active, .sevp__steps .is-done { color: var(--sevp-green); }
.sevp__steps .is-active span, .sevp__steps .is-done span { color: #fff; border-color: var(--sevp-green); background: var(--sevp-green); }
.sevp__panel { padding: clamp(1rem, 4vw, 2rem); border: 1px solid var(--sevp-border); border-radius: 18px; background: #fff; box-shadow: 0 12px 40px rgba(20, 50, 40, .07); }
.sevp__panel[hidden], .sevp [hidden] { display: none !important; }
.sevp__dropzone { display: grid; place-items: center; min-height: 330px; padding: 2rem; border: 2px dashed #aabbb4; border-radius: 14px; text-align: center; cursor: pointer; transition: .2s; background: #f8fbfa; }
.sevp__dropzone:hover, .sevp__dropzone.is-dragging { border-color: var(--sevp-green); background: #f0f8f5; transform: translateY(-2px); }
.sevp__dropzone.is-disabled { opacity: .55; cursor: not-allowed; transform: none; }
.sevp__dropzone input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sevp__dropzone strong { margin-top: .8rem; color: var(--sevp-green-dark); font-size: 1.25rem; }
.sevp__dropzone span:not(.sevp__upload-icon), .sevp__dropzone small { color: var(--sevp-muted); }
.sevp__upload-icon { display: grid; place-items: center; width: 64px; height: 64px; color: #fff; border-radius: 50%; background: var(--sevp-green); font-size: 2rem; font-weight: 300; }
.sevp__consent { display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #d5e2dc; border-radius: 10px; background: #f5faf8; font-size: .92rem; }
.sevp__consent input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--sevp-green); }
.sevp__loader { width: 54px; height: 54px; margin: 1rem auto; border: 5px solid #dfeae6; border-top-color: var(--sevp-green); border-radius: 50%; animation: sevp-spin .8s linear infinite; }
@keyframes sevp-spin { to { transform: rotate(360deg); } }
.sevp [data-step="loading"] { text-align: center; }
.sevp__progress { width: min(500px, 100%); height: 10px; margin: 1.2rem auto; overflow: hidden; border-radius: 999px; background: #e9efec; }
.sevp__progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--sevp-green); transition: width .25s; }
.sevp__muted, .sevp__hint { color: var(--sevp-muted); font-size: .88rem; }
.sevp__editor-panel { display: grid; grid-template-columns: minmax(0, 600px) minmax(230px, 1fr); gap: clamp(1rem, 4vw, 2rem); align-items: start; }
.sevp__editor-panel > *, .sevp__controls { min-width: 0; }
.sevp__canvas-wrap { position: relative; overflow: hidden; width: 100%; max-width: 600px; aspect-ratio: 1; border-radius: 10px; background: #eef2f0; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); overscroll-behavior: contain; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.sevp__canvas-wrap canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.sevp__canvas-wrap canvas.is-dragging { cursor: grabbing; }
.sevp__guide { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 2px rgba(255,255,255,.9); }
.sevp__head-guide { position: absolute; left: 26%; top: 10%; width: 48%; height: 76%; border: 2px solid rgba(214,171,88,.95); border-radius: 48% 48% 45% 45%; box-shadow: 0 0 0 999px rgba(5,25,19,.12); }
.sevp__crown, .sevp__chin { position: absolute; left: 50%; transform: translateX(-50%); padding: .12rem .45rem; color: #3a2a0c; border-radius: 999px; background: rgba(255,244,214,.94); font-size: clamp(.58rem, 2.4vw, .75rem); font-weight: 700; white-space: nowrap; }
.sevp__crown { top: 7%; } .sevp__chin { top: 86%; }
.sevp__center-v, .sevp__center-h { position: absolute; background: rgba(255,255,255,.55); }
.sevp__center-v { left: 50%; top: 0; width: 1px; height: 100%; }
.sevp__center-h { left: 0; top: 50%; width: 100%; height: 1px; }
.sevp__controls h3, .sevp__result h3 { margin-top: 0; }
.sevp__controls label { display: flex; justify-content: space-between; margin: 1.3rem 0 .2rem; font-weight: 700; }
.sevp__controls output { color: var(--sevp-green); }
.sevp input[type="range"] { width: 100%; min-width: 0; height: 44px; margin: 0; accent-color: var(--sevp-green); cursor: pointer; touch-action: pan-x; }
.sevp__zoom-control { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; gap: .55rem; align-items: center; }
.sevp__round-button { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 2px solid var(--sevp-green); border-radius: 50%; color: var(--sevp-green); background: #fff; font: 700 1.45rem/1 system-ui, sans-serif; cursor: pointer; }
.sevp__round-button:hover, .sevp__round-button:focus-visible { color: #fff; background: var(--sevp-green); }
.sevp__round-button:active { transform: scale(.94); }
.sevp__verification { margin-top: 1.25rem; padding: .85rem; border: 1px solid #d5e2dc; border-radius: 10px; background: #f7faf9; }
.sevp__verification > p:first-child { margin: 0 0 .7rem; }
.sevp__verification > p:first-child span { color: var(--sevp-muted); font-size: .86rem; }
.sevp__verification [data-role="turnstile"] { width: 100%; min-height: 65px; overflow: hidden; }
.sevp__verification iframe { max-width: 100%; }
.sevp__verification-status { min-height: 1.4em; margin: .55rem 0 0; color: var(--sevp-muted); font-size: .84rem; }
.sevp__verification-status.is-verified { color: var(--sevp-green); font-weight: 750; }
.sevp__button-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.sevp__button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .72rem 1rem; border: 2px solid var(--sevp-green); border-radius: 9px; color: #fff !important; background: var(--sevp-green); font: inherit; font-weight: 750; line-height: 1.2; text-decoration: none !important; cursor: pointer; transition: .15s; }
.sevp__button:hover { border-color: var(--sevp-green-dark); background: var(--sevp-green-dark); transform: translateY(-1px); }
.sevp__button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.sevp__button.is-processing:disabled { cursor: wait; }
.sevp__button--ghost { color: var(--sevp-green) !important; background: #fff; }
.sevp__text-button { margin-top: 1rem; padding: .2rem; border: 0; color: var(--sevp-green); background: transparent; text-decoration: underline; cursor: pointer; font: inherit; }
.sevp__result { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: clamp(1.5rem, 5vw, 3rem); align-items: center; }
.sevp__result-preview { display: grid; place-items: center; padding: 1.5rem; border-radius: 14px; background: #f2f5f3; }
.sevp__result-preview img { width: 240px; height: 240px; border: 1px solid #cfd9d4; box-shadow: 0 8px 24px rgba(20,50,40,.16); }
.sevp__success-label { color: var(--sevp-green); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.sevp__checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; padding: 0; list-style: none; }
.sevp__checks li::before { content: "✓"; margin-right: .4rem; color: var(--sevp-green); font-weight: 900; }
.sevp__warning { padding: .8rem 1rem; border-left: 4px solid var(--sevp-gold); background: #fff9ec; font-size: .92rem; }
.sevp__error, .sevp__notice { margin: 1rem 0; padding: 1rem; border-radius: 10px; }
.sevp__error { border: 1px solid #efb6b6; background: #fff3f3; }
.sevp__notice { border: 1px solid #e9cd8f; background: #fff8e8; }
.sevp__requirements { margin-top: 1rem; padding: .85rem 1rem; border: 1px solid var(--sevp-border); border-radius: 10px; background: #fff; }
.sevp__requirements summary { color: var(--sevp-green-dark); font-weight: 750; cursor: pointer; }
.sevp__requirements ul { margin-bottom: .2rem; }
.sevp__tool-selector { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1.25rem 0 1.75rem; }
.sevp__tool-selector button { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .65rem; align-items: center; min-width: 0; padding: .9rem 1rem; border: 2px solid var(--sevp-border); border-radius: 12px; color: var(--sevp-ink); background: #fff; text-align: left; cursor: pointer; font: inherit; }
.sevp__tool-selector button > span { grid-row: 1 / 3; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: var(--sevp-green); background: #edf7f3; font-size: 1.1rem; }
.sevp__tool-selector button strong { line-height: 1.2; }
.sevp__tool-selector button small { color: var(--sevp-muted); }
.sevp__tool-selector button:hover, .sevp__tool-selector button.is-active { border-color: var(--sevp-green); background: #f3faf7; }
.sevp__tool-selector button.is-active { box-shadow: 0 0 0 2px rgba(23,107,82,.1); }
.sevp__document-heading { max-width: 760px; margin: 0 0 1rem; }
.sevp__document-heading h3 { margin: .2rem 0 .45rem; font-size: clamp(1.45rem, 4vw, 2rem); }
.sevp__document-heading p:last-child { color: var(--sevp-muted); }
.sevp__dropzone--document { min-height: 270px; }
.sevp__scanner-panel { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: clamp(1rem, 4vw, 2rem); align-items: start; }
.sevp__scanner-panel > * { min-width: 0; }
.sevp__scanner-canvas { position: relative; width: 100%; overflow: hidden; aspect-ratio: 900 / 650; border: 1px solid #243c34; border-radius: 10px; background: #172622; box-shadow: 0 10px 28px rgba(8,30,24,.18); user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; overscroll-behavior: contain; }
.sevp__scanner-canvas canvas { display: block; width: 100%; height: 100%; cursor: crosshair; touch-action: none; user-select: none; -webkit-user-select: none; }
.sevp__scanner-canvas canvas.is-dragging { cursor: grabbing; }
.sevp__scan-status { margin: .65rem 0 0; padding: .65rem .8rem; border-radius: 8px; color: var(--sevp-muted); background: #f2f6f4; font-size: .86rem; font-weight: 650; }
.sevp__scan-status.is-good { color: var(--sevp-green-dark); background: #eaf7f1; }
.sevp__scan-status.is-warning { color: #80530a; background: #fff6df; }
.sevp__scan-status.is-manual { color: #45504c; background: #f1f4f3; }
.sevp__document-editor { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: clamp(1rem, 4vw, 2rem); align-items: start; }
.sevp__document-editor > * { min-width: 0; }
.sevp__document-canvas { position: relative; width: 100%; overflow: hidden; border-radius: 10px; background: #edf1ef; box-shadow: inset 0 0 0 1px rgba(0,0,0,.1); user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.sevp__document-canvas--passport { aspect-ratio: 2 / 1; }
.sevp__document-canvas--card { aspect-ratio: 800 / 504; }
.sevp__document-canvas canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.sevp__document-canvas canvas.is-dragging { cursor: grabbing; }
.sevp__mrz-guide { position: absolute; left: 2%; right: 2%; bottom: 3%; height: 27%; border: 2px dashed rgba(214,171,88,.98); border-radius: 5px; pointer-events: none; box-shadow: 0 0 0 999px rgba(8,30,24,.06); }
.sevp__mrz-guide span { position: absolute; left: 50%; top: 0; transform: translate(-50%, -55%); max-width: 90%; padding: .18rem .55rem; border-radius: 999px; color: #3a2a0c; background: #fff1c8; font-size: clamp(.58rem, 2vw, .75rem); font-weight: 800; text-align: center; white-space: nowrap; }
.sevp__card-guide { position: absolute; inset: 2%; border: 2px dashed rgba(214,171,88,.98); border-radius: 8px; pointer-events: none; }
.sevp__quality-status { min-height: 1.4em; margin: .55rem 0 0; color: var(--sevp-muted); font-size: .86rem; }
.sevp__quality-status.is-good { color: var(--sevp-green); font-weight: 700; }
.sevp__quality-status.is-warning { color: #8b5a08; font-weight: 700; }
.sevp__quality-report { margin-top: .75rem; padding: .85rem 1rem; border: 1px solid var(--sevp-border); border-radius: 10px; background: #f8faf9; font-size: .88rem; }
.sevp__quality-report > strong { display: block; margin-bottom: .4rem; }
.sevp__quality-report ul { display: grid; gap: .28rem; margin: 0; padding: 0; list-style: none; }
.sevp__quality-report li::before, .sevp__mrz-report li::before { display: inline-block; width: 1.2em; font-weight: 900; }
.sevp__quality-report li.is-good::before, .sevp__mrz-report li.is-good::before { content: "✓"; color: var(--sevp-green); }
.sevp__quality-report li.is-warning::before, .sevp__mrz-report li.is-warning::before { content: "!"; color: #9a640b; }
.sevp__quality-report li.is-danger::before { content: "×"; color: #a52d2d; }
.sevp__passport-rule { margin: .75rem 0; padding: .7rem .8rem; border-left: 4px solid #d7ad52; border-radius: 0 7px 7px 0; background: #fff7df; color: #60420b; font-size: .88rem; line-height: 1.45; }
.sevp__document-rotation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: 1.1rem; }
.sevp__document-rotation .sevp__button { width: 100%; padding-inline: .65rem; font-size: .9rem; }
.sevp__enhance { display: flex !important; justify-content: flex-start !important; gap: .55rem; align-items: flex-start; padding: .75rem; border-radius: 8px; background: #f4f8f6; font-size: .9rem; }
.sevp__enhance input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--sevp-green); }
.sevp__filter-control { display: grid !important; gap: .4rem !important; justify-content: stretch !important; margin: 1rem 0 !important; padding: .8rem; border-radius: 9px; background: #f4f8f6; }
.sevp__filter-control select { width: 100%; min-height: 44px; padding: .55rem .65rem; border: 1px solid #aabbb4; border-radius: 7px; color: var(--sevp-ink); background: #fff; font: inherit; }
.sevp__button--full { width: 100%; margin-top: .65rem; }
.sevp__comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin-top: .75rem; padding: .6rem; border: 1px solid var(--sevp-border); border-radius: 9px; background: #f7faf9; }
.sevp__comparison figure { min-width: 0; margin: 0; }
.sevp__comparison canvas { display: block; width: 100%; height: auto; border: 1px solid #c8d4ce; border-radius: 5px; background: #fff; }
.sevp__comparison figcaption { margin-top: .25rem; color: var(--sevp-muted); font-size: .78rem; font-weight: 700; text-align: center; }
.sevp__mrz-report { margin-top: .75rem; padding: .8rem; border: 1px solid var(--sevp-border); border-radius: 9px; background: #f8faf9; font-size: .84rem; }
.sevp__mrz-report.is-good { border-color: #9bcdbb; background: #edf9f4; }
.sevp__mrz-report.is-warning { border-color: #e3c37d; background: #fff8e9; }
.sevp__passport-validity { margin-top: .7rem; padding: .7rem .8rem; border: 1px solid; border-radius: 7px; font-weight: 700; line-height: 1.45; }
.sevp__passport-validity.is-good { border-color: #82bea9; background: #e3f6ee; color: #07563e; }
.sevp__passport-validity.is-warning { border-color: #d7ad52; background: #fff3d2; color: #744900; }
.sevp__passport-validity.is-danger { border-color: #d98b8b; background: #fdeaea; color: #8c2020; }
.sevp__mrz-report pre { overflow-x: auto; margin: .65rem 0; padding: .55rem; border-radius: 5px; background: #172622; color: #fff; font: 600 .72rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre; }
.sevp__mrz-report ul { margin: .5rem 0; padding: 0; list-style: none; }
.sevp__mrz-fields { display: grid; grid-template-columns: minmax(90px, auto) 1fr; gap: .3rem .8rem; margin: .65rem 0; padding: .7rem .8rem; border: 1px solid var(--sevp-border); border-radius: 7px; background: #fff; font-size: .86rem; }
.sevp__mrz-fields dt { color: var(--sevp-muted); font-weight: 700; }
.sevp__mrz-fields dd { margin: 0; color: var(--sevp-ink); font-weight: 650; word-break: break-word; }
.sevp__mrz-fields dd.is-missing { color: #9a640b; font-weight: 550; font-style: italic; }
.sevp__camera-launch { justify-content: center; }
.sevp__camera-modal { position: fixed; z-index: 999999; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(5,20,15,.88); }
.sevp__camera-dialog { width: min(860px, 100%); max-height: calc(100vh - 2rem); overflow: auto; padding: 1rem; border-radius: 16px; background: #fff; box-shadow: 0 20px 70px rgba(0,0,0,.4); }
.sevp__camera-view { position: relative; overflow: hidden; width: 100%; aspect-ratio: 4 / 3; border-radius: 10px; background: #101b17; }
.sevp__camera-view video { display: block; width: 100%; height: 100%; object-fit: cover; }
.sevp__camera-frame { position: absolute; inset: 12% 7%; border: 3px solid #43e2aa; border-radius: 10px; box-shadow: 0 0 0 999px rgba(0,0,0,.28); pointer-events: none; }
.sevp__camera-frame span { position: absolute; left: 50%; top: 0; transform: translate(-50%, -55%); width: max-content; max-width: 92%; padding: .25rem .65rem; border-radius: 999px; color: #14382d; background: #e8fff6; font-size: .78rem; font-weight: 800; text-align: center; }
.sevp__side-badge { display: inline-flex; margin: 0 0 .8rem; padding: .3rem .65rem; border-radius: 999px; color: var(--sevp-green-dark); background: #e8f4ef; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.sevp__document-result { display: grid; grid-template-columns: minmax(280px, 1.5fr) minmax(230px, 1fr); gap: clamp(1.25rem, 4vw, 2.5rem); align-items: center; }
.sevp__document-result > img { display: block; width: 100%; height: auto; border: 1px solid #ccd7d2; border-radius: 8px; background: #fff; box-shadow: 0 8px 25px rgba(20,50,40,.14); }
.sevp__document-result--portrait { grid-template-columns: minmax(200px, 320px) 1fr; }
.sevp__document-result--portrait > img { max-width: 320px; margin-inline: auto; }
@media (max-width: 760px) {
  .sevp { margin: 1rem auto; }
  .sevp__panel { padding: 1rem; border-radius: 14px; }
  .sevp__editor-panel, .sevp__result, .sevp__scanner-panel, .sevp__document-editor, .sevp__document-result, .sevp__document-result--portrait { grid-template-columns: 1fr; }
  .sevp__tool-selector { grid-template-columns: 1fr; gap: .55rem; }
  .sevp__controls { max-width: none; }
  .sevp__canvas-wrap { margin-inline: auto; }
  .sevp__zoom-control { grid-template-columns: 48px minmax(0, 1fr) 48px; gap: .7rem; }
  .sevp__round-button { width: 48px; height: 48px; }
  .sevp input[type="range"] { height: 48px; }
  .sevp__result-preview { padding: 1rem; }
}
@media (max-width: 440px) {
  .sevp__header h2 { font-size: 1.75rem; }
  .sevp__steps li { font-size: .75rem; }
  .sevp__steps li::after { display: none; }
  .sevp__dropzone { min-height: 240px; padding: 1.25rem; }
  .sevp__document-rotation { grid-template-columns: 1fr; }
  .sevp__mrz-guide span { white-space: normal; width: max-content; }
  .sevp__button { width: 100%; }
  .sevp__checks { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .sevp *, .sevp *::before, .sevp *::after { scroll-behavior: auto !important; transition: none !important; }
}
