/* ========================================================
   Pixelis Skan — Frontend styles
   ======================================================== */

:root {
    --ps-primary:      #1a73e8;
    --ps-primary-dark: #1558b0;
    --ps-good:         #137333;
    --ps-good-bg:      #e6f4ea;
    --ps-avg:          #b45309;
    --ps-avg-bg:       #fef3c7;
    --ps-poor:         #c5221f;
    --ps-poor-bg:      #fce8e6;
    --ps-border:       #dadce0;
    --ps-text:         #202124;
    --ps-text-muted:   #5f6368;
    --ps-bg:           #f8f9fa;
    --ps-white:        #ffffff;
    --ps-radius:       10px;
    --ps-shadow:       0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08);
    --ps-font:         -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --ps-navy:         #0d1b2a;
    --ps-navy-mid:     #152840;
}

/* ── Base ── */
.ps-skan {
    font-family: var(--ps-font);
    color: var(--ps-text);
    line-height: 1.6;
}

/* ══════════════════════════════════════════════════════
   HERO — bez tła (tło ustawia kontener w WP)
   ══════════════════════════════════════════════════════ */
.ps-skan__hero {
    padding: 50px 20px 56px;
    display: flex;
    justify-content: center;
}
.ps-skan__hero-inner {
    width: 100%;
    max-width: 700px;
}

/* ── Form ── */
.ps-skan__form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Duże pole URL + przycisk inline */
.ps-skan__url-row {
    display: flex;
    gap: 0;
    background: #fff;
    border-radius: 50px;
    border: 2px solid rgba(255,255,255,.25);
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
}
.ps-skan__input--big {
    flex: 1;
    padding: 16px 24px;
    background: transparent;
    border: none;
    font-size: 1.05rem;
    font-family: var(--ps-font);
    outline: none;
    min-width: 0;
}
.ps-skan__url-row .ps-skan__input--big {
    color: var(--ps-text) !important;
}
.ps-skan__input--big::placeholder { color: #adb5bd !important; opacity: 1; }
.ps-skan__url-row .ps-skan__btn {
    border-radius: 0 46px 46px 0;
    white-space: nowrap;
    flex-shrink: 0;
    box-shadow: none;
    padding: 16px 30px;
}

/* Field */
.ps-skan__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Label */
.ps-skan__label {
    font-weight: 600;
    font-size: .75rem;
    color: inherit;
    opacity: .7;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.ps-skan__required { color: #f87171; }

/* Email + other inputs (smaller, below big field) */
.ps-skan__input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 13px 18px;
    background: rgba(255,255,255,.15);
    border: 1.5px solid rgba(255,255,255,.25);
    border-radius: 10px;
    font-size: .97rem;
    font-family: var(--ps-font);
    color: #ffffff !important;
    transition: border-color .2s, background .2s;
    width: 100%;
    box-sizing: border-box;
}
.ps-skan__input::placeholder { color: rgba(255,255,255,.6) !important; opacity: 1; }
.ps-skan__input:focus {
    outline: none;
    border-color: rgba(255,255,255,.6);
    background: rgba(255,255,255,.2);
}
.ps-skan__input.ps-error {
    border-color: #f87171;
}

/* ── Type toggle ── */
.ps-skan__type-toggle {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.ps-skan__type-option {
    flex: 1;
    min-width: 160px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 2px solid rgba(255,255,255,.2);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    background: rgba(255,255,255,.08);
    user-select: none;
}
.ps-skan__type-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}
.ps-skan__type-option:hover {
    border-color: rgba(255,255,255,.5);
    background: rgba(255,255,255,.14);
}
.ps-skan__type-option--selected,
.ps-skan__type-option:has(input:checked) {
    border-color: rgba(255,255,255,.8);
    background: rgba(255,255,255,.18);
}
.ps-skan__type-icon  { font-size: 1.4rem; line-height: 1; flex-shrink: 0; }
.ps-skan__type-label { font-weight: 700; font-size: .92rem; color: #ffffff !important; }

/* Timing note */
.ps-skan__timing-note {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .82rem;
    color: rgba(255,255,255,.65);
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    padding: 8px 14px;
}
.ps-skan__timing-note svg { flex-shrink: 0; opacity: .7; }
.ps-skan__timing-note strong { color: rgba(255,255,255,.9); }

/* ── Consents ── */
.ps-skan__consents {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 10px;
    padding: 14px 16px;
}
.ps-skan__consent-header {
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,.12);
    margin-bottom: 12px;
}
.ps-skan__select-all-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}
.ps-skan__select-all-text {
    font-size: .88rem;
    font-weight: 700;
    color: #ffffff !important;
}
.ps-skan__consent-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ps-skan__checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}
.ps-skan__checkbox-text {
    flex: 1;
    font-size: .83rem;
    color: rgba(255,255,255,.78);
    line-height: 1.5;
}

/* ── Custom checkbox ── */
.ps-skan__checkbox {
    -webkit-appearance: none;
    appearance: none;
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}
.ps-skan__checkbox-box {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,.45);
    border-radius: 4px;
    background: rgba(255,255,255,.1);
    transition: background .15s, border-color .15s;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.ps-skan__checkbox-label:hover .ps-skan__checkbox-box,
.ps-skan__select-all-label:hover .ps-skan__checkbox-box {
    border-color: rgba(255,255,255,.8);
}
.ps-skan__checkbox:checked + .ps-skan__checkbox-box {
    background: var(--ps-primary);
    border-color: var(--ps-primary);
}
.ps-skan__checkbox:checked + .ps-skan__checkbox-box::after {
    content: '';
    width: 9px;
    height: 5px;
    border: 2px solid #fff;
    border-top: none;
    border-right: none;
    transform: rotate(-45deg) translateY(-1px);
    display: block;
}

/* Badges */
.ps-skan__badge {
    display: inline-flex;
    padding: 1px 7px;
    border-radius: 10px;
    font-size: .67rem;
    font-weight: 700;
    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.65);
    vertical-align: middle;
    margin-left: 4px;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.ps-skan__badge--required {
    background: rgba(248,113,113,.2);
    color: #fca5a5;
}

/* Error */
.ps-skan__error {
    display: none;
    background: rgba(197,34,31,.15);
    color: #fca5a5;
    border: 1px solid rgba(197,34,31,.3);
    border-radius: 8px;
    padding: 10px 14px;
    font-size: .88rem;
}
.ps-skan__error.visible { display: block; }

/* ── Button ── */
.ps-skan__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 32px;
    background: var(--ps-primary);
    color: #ffffff !important;
    border: none;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 700;
    font-family: var(--ps-font);
    cursor: pointer;
    transition: background .2s, transform .15s, box-shadow .15s;
    box-shadow: 0 4px 16px rgba(26,115,232,.4);
    letter-spacing: .02em;
    white-space: nowrap;
}
.ps-skan__btn:hover {
    background: var(--ps-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 22px rgba(26,115,232,.5);
}
.ps-skan__btn:active  { transform: scale(.98); }
.ps-skan__btn:disabled{ opacity: .6; cursor: not-allowed; transform: none; }

/* Secondary variant */
.ps-skan__btn--secondary {
    background: transparent;
    color: var(--ps-primary);
    border: 1.5px solid var(--ps-primary);
    border-radius: var(--ps-radius);
    padding: 10px 24px;
    font-size: .95rem;
    box-shadow: none;
    margin-top: 16px;
}
.ps-skan__btn--secondary:hover { background: rgba(26,115,232,.06); transform: none; }

.ps-skan__btn-icon { flex-shrink: 0; }
.ps-skan__btn-loader {
    display: none;
    width: 17px;
    height: 17px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #ffffff !important;
    border-radius: 50%;
    animation: ps-spin .7s linear infinite;
}
.ps-skan__btn.loading .ps-skan__btn-loader { display: block; }
.ps-skan__btn.loading .ps-skan__btn-text   { opacity: .8; }
.ps-skan__btn.loading .ps-skan__btn-icon   { display: none; }

/* ══════════════════════════════════════════════════════
   LOADER
   ══════════════════════════════════════════════════════ */
.ps-skan__loader {
    background: linear-gradient(160deg, #0d1b2a 0%, #152840 100%);
    padding: 64px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
}
.ps-skan__loader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    max-width: 460px;
    width: 100%;
}

/* SVG ring */
.ps-skan__loader-ring {
    position: relative;
    width: 120px;
    height: 120px;
}
.ps-skan__loader-svg {
    width: 120px;
    height: 120px;
    transform: rotate(-90deg);
}
.ps-skan__loader-track { stroke: rgba(255,255,255,.1); }
.ps-skan__loader-progress {
    stroke: var(--ps-primary);
    stroke-linecap: round;
    transition: stroke-dashoffset .6s ease;
    filter: drop-shadow(0 0 6px rgba(26,115,232,.7));
}
.ps-skan__loader-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2.4rem;
    animation: ps-icon-pulse 2s ease-in-out infinite;
}
@keyframes ps-icon-pulse {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50%       { transform: translate(-50%, -50%) scale(1.1); }
}

.ps-skan__loader-text {
    font-size: 1.15rem;
    color: #ffffff !important;
    font-weight: 700;
    margin: 0;
    text-align: center;
}
.ps-skan__loader-subtext {
    font-size: .88rem;
    color: rgba(255,255,255,.55);
    margin: -12px 0 0;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.ps-skan__loader-subtext strong { color: rgba(255,255,255,.8); }

/* Animated dots */
.ps-skan__loader-dots {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}
.ps-skan__loader-dots span {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ps-primary);
    animation: ps-dot-bounce .9s ease-in-out infinite;
}
.ps-skan__loader-dots span:nth-child(2) { animation-delay: .15s; }
.ps-skan__loader-dots span:nth-child(3) { animation-delay: .3s; }
@keyframes ps-dot-bounce {
    0%, 80%, 100% { transform: scale(1); opacity: .4; }
    40%           { transform: scale(1.4); opacity: 1; }
}

/* Steps */
.ps-skan__steps {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.ps-skan__step {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 10px 16px;
    border-radius: 10px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.07);
    transition: all .4s ease;
}
.ps-skan__step-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .76rem;
    font-weight: 700;
    flex-shrink: 0;
    transition: all .4s ease;
}
.ps-skan__step-label {
    font-size: .86rem;
    color: rgba(255,255,255,.35);
    transition: color .4s;
}
/* Active */
.ps-skan__step.active {
    background: rgba(26,115,232,.15);
    border-color: rgba(26,115,232,.4);
}
.ps-skan__step.active .ps-skan__step-num {
    background: var(--ps-primary);
    color: #ffffff !important;
    animation: ps-step-glow 1.6s ease-in-out infinite;
}
.ps-skan__step.active .ps-skan__step-label {
    color: rgba(255,255,255,.92);
    font-weight: 600;
}
@keyframes ps-step-glow {
    0%, 100% { box-shadow: 0 0 8px rgba(26,115,232,.5); }
    50%       { box-shadow: 0 0 18px rgba(26,115,232,.85); }
}
/* Done */
.ps-skan__step.done {
    background: rgba(19,115,51,.1);
    border-color: rgba(19,115,51,.3);
}
.ps-skan__step.done .ps-skan__step-num {
    background: #137333;
    color: #ffffff !important;
    font-size: 0;
}
.ps-skan__step.done .ps-skan__step-num::after {
    content: '✓';
    font-size: .86rem;
}
.ps-skan__step.done .ps-skan__step-label { color: rgba(255,255,255,.5); }

/* ══════════════════════════════════════════════════════
   CONFIRMATION CARD
   ══════════════════════════════════════════════════════ */
.ps-confirm {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 56px 24px 48px;
    font-family: var(--ps-font);
}
.ps-confirm__icon {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #e6f4ea;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    animation: ps-confirm-pop .45s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes ps-confirm-pop {
    from { transform: scale(0); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.ps-confirm__title {
    font-size: 2rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 12px;
    line-height: 1.2;
}
.ps-confirm__sub {
    font-size: 1rem;
    color: rgba(255,255,255,.75);
    margin: 0 0 10px;
    line-height: 1.6;
}
.ps-confirm__sub strong { color: #ffffff !important; }
.ps-confirm__url {
    font-size: .82rem;
    color: rgba(255,255,255,.4);
    margin: 0 0 28px;
    word-break: break-all;
}
.ps-confirm__scores {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 24px;
}
.ps-confirm__score {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 16px 20px;
    border-radius: 12px;
    min-width: 90px;
}
.ps-confirm__score-val {
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1;
}
.ps-confirm__score-lbl {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .8;
}
.ps-confirm__hint {
    font-size: .8rem;
    color: rgba(255,255,255,.4);
    margin: 0 0 28px;
}

/* ══════════════════════════════════════════════════════
   RESULTS
   ══════════════════════════════════════════════════════ */
@keyframes ps-spin { to { transform: rotate(360deg); } }

.ps-results {
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-family: var(--ps-font);
    max-width: 820px;
    margin: 32px auto;
    padding: 0 16px;
}

/* ── Results header ── */
.ps-results__header {
    background: var(--ps-white);
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    padding: 22px 26px;
    box-shadow: var(--ps-shadow);
}
.ps-results__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 6px; color: var(--ps-text); }
.ps-results__url   { margin: 0 0 10px; }
.ps-results__url a { color: var(--ps-primary); font-size: .92rem; word-break: break-all; font-weight: 500; }
.ps-results__meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; }
.ps-results__type-badge {
    display: inline-flex; align-items: center; gap: 4px;
    background: #e8f0fe; color: var(--ps-primary-dark);
    border: 1px solid #c5d9fc; border-radius: 20px;
    padding: 3px 12px; font-size: .8rem; font-weight: 600;
}
.ps-results__date      { font-size: .8rem; color: var(--ps-text-muted); }
.ps-results__email-note{ font-size: .85rem; color: var(--ps-text-muted); margin: 0; }
.ps-results__email-note strong { color: var(--ps-text); }

/* ── System warnings ── */
.ps-results__warnings {
    background: #fffbeb; border: 1px solid #f59e0b;
    border-radius: var(--ps-radius); padding: 12px 16px;
    display: flex; flex-direction: column; gap: 4px;
}
.ps-results__warning { margin: 0; font-size: .85rem; color: #78350f; }

/* ── Scoreboard ── */
.ps-results__scoreboard { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ps-results__score-card {
    text-align: center; padding: 22px 12px 18px;
    border-radius: 10px; border: 1px solid var(--ps-border);
    background: var(--ps-white); box-shadow: var(--ps-shadow);
    position: relative; overflow: hidden;
}
.ps-results__score-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
}
.ps-results__score-card--good::before    { background: var(--ps-good); }
.ps-results__score-card--average::before { background: var(--ps-avg); }
.ps-results__score-card--poor::before    { background: var(--ps-poor); }
.ps-results__score-number { font-size: 3rem; font-weight: 900; line-height: 1; letter-spacing: -.02em; }
.ps-results__score-card--good    .ps-results__score-number { color: var(--ps-good); }
.ps-results__score-card--average .ps-results__score-number { color: var(--ps-avg); }
.ps-results__score-card--poor    .ps-results__score-number { color: var(--ps-poor); }
.ps-results__score-label {
    font-weight: 600; font-size: .82rem; margin-top: 8px;
    color: var(--ps-text-muted); text-transform: uppercase; letter-spacing: .04em;
}
.ps-results__score-sub { font-size: .7rem; color: var(--ps-text-muted); opacity: .7; }

/* ── Sections ── */
.ps-results__section {
    background: var(--ps-white); border: 1px solid var(--ps-border);
    border-radius: 10px; padding: 22px 26px; box-shadow: var(--ps-shadow);
}
.ps-results__section-title {
    display: flex; align-items: center; gap: 8px;
    font-size: 1.05rem; font-weight: 700; margin: 0 0 16px;
    padding-bottom: 12px; border-bottom: 2px solid var(--ps-border); color: var(--ps-text);
}
.ps-results__sub-title {
    font-size: .88rem; font-weight: 700; margin: 20px 0 10px;
    padding: 6px 12px; border-radius: 6px;
    display: inline-flex; align-items: center; gap: 6px;
}
.ps-results__sub-title:first-of-type { margin-top: 4px; }
h5.ps-results__sub-title { background: var(--ps-bg); color: var(--ps-text); }
.ps-results__summary {
    background: #f0f7ff; border-left: 4px solid var(--ps-primary);
    padding: 12px 16px; border-radius: 0 8px 8px 0;
    font-size: .9rem; margin-bottom: 18px; line-height: 1.6; color: var(--ps-text);
}

/* ── Compliance grid ── */
.ps-results__compliance-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px; margin-bottom: 20px;
}
.ps-results__compliance-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px; border-radius: 8px; font-size: .88rem; border: 1px solid transparent;
}
.ps-results__compliance-item--ok   { background: var(--ps-good-bg); border-color: #a8d5b5; }
.ps-results__compliance-item--fail { background: var(--ps-poor-bg); border-color: #f5c6c6; }
.ps-results__compliance-icon { font-size: 1.3rem; flex-shrink: 0; }
.ps-results__compliance-info { display: flex; flex-direction: column; gap: 2px; }
.ps-results__compliance-info strong { font-size: .85rem; }
.ps-results__compliance-info small  { font-size: .78rem; color: var(--ps-text-muted); }

/* ── Issues list ── */
.ps-results__issues { display: flex; flex-direction: column; gap: 8px; margin-bottom: 4px; }
.ps-results__issue { border-radius: 8px; padding: 12px 14px; border-left: 4px solid transparent; }
.ps-results__issue--krytyczny { background: #fff1f1; border-left-color: var(--ps-poor); }
.ps-results__issue--ważny     { background: #fffbeb; border-left-color: #f59e0b; }
.ps-results__issue--informacja{ background: #f0f7ff; border-left-color: var(--ps-primary); }
.ps-results__issue-header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 6px; }
.ps-results__issue-cat {
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    background: rgba(0,0,0,.06); padding: 2px 7px; border-radius: 4px; color: var(--ps-text);
}
.ps-results__issue-desc  { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--ps-text); }
.ps-results__issue-source{
    display: block; margin-top: 5px; font-size: .75rem;
    color: var(--ps-text-muted); word-break: break-all;
}
.ps-results__issue-source::before { content: '🔗 '; }

/* ── Confidence badges ── */
.ps-conf { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 10px; font-size: .7rem; font-weight: 700; white-space: nowrap; letter-spacing: .02em; }
.ps-conf--wysoka { background: var(--ps-good-bg); color: var(--ps-good); border: 1px solid #a8d5b5; }
.ps-conf--srednia{ background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.ps-conf--niska  { background: var(--ps-poor-bg); color: var(--ps-poor); border: 1px solid #f5c6c6; }

/* ── Reliability note ── */
.ps-results__reliability-note {
    display: flex; align-items: flex-start; gap: 8px; font-size: .83rem;
    color: var(--ps-text-muted); background: #f8f9fa;
    border: 1px solid var(--ps-border); border-radius: 6px; padding: 8px 12px; margin-bottom: 16px;
}

/* ── Missing / positives ── */
.ps-results__missing, .ps-results__positives { margin-top: 16px; padding: 12px 16px; border-radius: 8px; font-size: .88rem; }
.ps-results__missing  { background: #fff1f1; border: 1px solid #f5c6c6; }
.ps-results__positives{ background: var(--ps-good-bg); border: 1px solid #a8d5b5; }
.ps-results__missing strong,
.ps-results__positives strong { display: block; margin-bottom: 6px; font-size: .85rem; }
.ps-results__missing ul,
.ps-results__positives ul { margin: 0; padding: 0 0 0 18px; }
.ps-results__missing li,
.ps-results__positives li { margin-bottom: 4px; }

/* ── All-ok ── */
.ps-results__all-ok {
    display: flex; align-items: center; gap: 10px;
    background: var(--ps-good-bg); color: var(--ps-good);
    border: 1px solid #a8d5b5; border-radius: 8px;
    padding: 12px 16px; font-size: .9rem; font-weight: 600;
}

/* ══════════════════════════════════════════
   Nowa ustawa — czerwiec 2026
   ══════════════════════════════════════════ */
.ps-new-law { border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.ps-new-law--fail { border: 2px solid var(--ps-poor); }
.ps-new-law--ok   { border: 2px solid var(--ps-good); }
.ps-new-law__header { display: flex; align-items: center; gap: 16px; padding: 18px 22px; }
.ps-new-law--fail .ps-new-law__header { background: #fff1f1; }
.ps-new-law--ok   .ps-new-law__header { background: var(--ps-good-bg); }
.ps-new-law__icon  { font-size: 2.2rem; flex-shrink: 0; }
.ps-new-law__title { display: block; font-size: 1rem; font-weight: 700; margin-bottom: 5px; color: var(--ps-text); }
.ps-new-law__badge { display: inline-block; padding: 3px 12px; border-radius: 20px; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ps-new-law--fail .ps-new-law__badge { background: var(--ps-poor); color: #ffffff !important; }
.ps-new-law--ok   .ps-new-law__badge { background: var(--ps-good); color: #ffffff !important; }
.ps-nl__checklist { background: var(--ps-white); padding: 14px 22px; display: flex; flex-direction: column; gap: 4px; border-bottom: 1px solid var(--ps-border); }
.ps-nl__row { display: grid; grid-template-columns: 1.6rem 1fr auto; align-items: center; gap: 10px; font-size: .87rem; padding: 7px 10px; border-radius: 6px; }
.ps-nl__row--fail    { background: #fff1f1; }
.ps-nl__row--ok      { background: var(--ps-good-bg); }
.ps-nl__row--unknown { background: #f8f9fa; color: var(--ps-text-muted); }
.ps-nl__status { font-size: .73rem; font-weight: 700; white-space: nowrap; padding: 2px 8px; border-radius: 10px; }
.ps-nl__row--fail    .ps-nl__status { background: var(--ps-poor); color: #ffffff !important; }
.ps-nl__row--ok      .ps-nl__status { background: var(--ps-good); color: #ffffff !important; }
.ps-nl__row--unknown .ps-nl__status { background: var(--ps-border); color: var(--ps-text-muted); }
.ps-nl__issues { list-style: none; margin: 0; padding: 14px 22px; background: #fff1f1; display: flex; flex-direction: column; gap: 6px; font-size: .87rem; color: var(--ps-poor); }
.ps-nl__issues li { padding: 2px 0; }

/* ══════════════════════════════════════════
   JS / PDF warning banners
   ══════════════════════════════════════════ */
.ps-warn-js, .ps-warn-pdf { display: flex; align-items: flex-start; gap: 14px; border-radius: var(--ps-radius); padding: 14px 18px; font-size: .88rem; }
.ps-warn-js  { background: #fffbeb; border: 1px solid #f59e0b; border-left: 5px solid #f59e0b; }
.ps-warn-pdf { background: #fff7ed; border: 1px solid #ea580c; border-left: 5px solid #ea580c; }
.ps-warn-js__icon, .ps-warn-pdf__icon { font-size: 1.5rem; flex-shrink: 0; line-height: 1.2; margin-top: 1px; }
.ps-warn-js__body strong  { color: #92400e; font-weight: 700; }
.ps-warn-pdf__body strong { color: #7c2d12; font-weight: 700; }
.ps-warn-js__detail,
.ps-warn-pdf__detail { margin: 5px 0 0; font-size: .83rem; line-height: 1.5; }
.ps-warn-js__detail  { color: #78350f; }
.ps-warn-pdf__detail { color: #7c2d12; }
.ps-warn-pdf__detail a { color: #ea580c; }

/* ══════════════════════════════════════════
   Cookie banner section
   ══════════════════════════════════════════ */
.ps-cookies__grid { display: flex; flex-direction: column; border: 1px solid var(--ps-border); border-radius: 8px; overflow: hidden; }
.ps-cookies__row { display: flex; align-items: baseline; gap: 16px; padding: 10px 14px; font-size: .87rem; border-bottom: 1px solid var(--ps-border); background: var(--ps-white); }
.ps-cookies__row:last-child { border-bottom: none; }
.ps-cookies__row--alert { background: #fff1f1; }
.ps-cookies__label { flex: 0 0 260px; font-weight: 600; color: var(--ps-text-muted); font-size: .82rem; line-height: 1.4; }
.ps-cookies__value { flex: 1; font-size: .87rem; }
.ps-cookies__value--ok   { color: var(--ps-good); font-weight: 600; }
.ps-cookies__value--fail { color: var(--ps-poor); font-weight: 600; }

/* ══════════════════════════════════════════
   Checkout / dark patterns
   ══════════════════════════════════════════ */
.ps-checkout__page { background: var(--ps-bg); border: 1px solid var(--ps-border); border-radius: 8px; padding: 14px 16px; margin-bottom: 10px; }
.ps-checkout__page--alert { background: #fff1f1; border-color: #f5c6c6; border-left: 4px solid var(--ps-poor); }
.ps-checkout__url { font-size: .8rem; margin: 0 0 10px; color: var(--ps-text-muted); word-break: break-all; }
.ps-checkout__url a { color: var(--ps-primary); }
.ps-checkout__facts { display: flex; flex-wrap: wrap; gap: 8px; }
.ps-checkout__fact { font-size: .82rem; padding: 4px 12px; border-radius: 20px; border: 1px solid var(--ps-border); background: var(--ps-white); font-weight: 500; }
.ps-checkout__fact--ok  { border-color: #a8d5b5; background: var(--ps-good-bg); color: var(--ps-good); }
.ps-checkout__fact--bad { border-color: #f5c6c6; background: #fff1f1; color: var(--ps-poor); }
.ps-checkout__notes { margin: 10px 0 0; font-size: .82rem; color: var(--ps-text-muted); font-style: italic; }

/* ══════════════════════════════════════════
   PageSpeed
   ══════════════════════════════════════════ */
.ps-results__ps-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ps-results__ps-device h5 { margin: 0 0 12px; font-size: .92rem; font-weight: 700; color: var(--ps-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.ps-results__ps-scores { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }
.ps-results__ps-score { text-align: center; padding: 12px 8px; border-radius: 8px; border: 1px solid var(--ps-border); }
.ps-results__ps-score--good    { background: var(--ps-good-bg); border-color: #a8d5b5; }
.ps-results__ps-score--average { background: #fef3c7; border-color: #fcd34d; }
.ps-results__ps-score--poor    { background: #fff1f1; border-color: #f5c6c6; }
.ps-results__ps-score-num { font-size: 1.7rem; font-weight: 900; }
.ps-results__ps-score--good    .ps-results__ps-score-num { color: var(--ps-good); }
.ps-results__ps-score--average .ps-results__ps-score-num { color: #92400e; }
.ps-results__ps-score--poor    .ps-results__ps-score-num { color: var(--ps-poor); }
.ps-results__ps-score-lbl { font-size: .7rem; color: var(--ps-text-muted); margin-top: 3px; font-weight: 600; }
.ps-results__cwv { background: var(--ps-bg); border-radius: 6px; padding: 10px 12px; font-size: .83rem; }
.ps-results__cwv strong { display: block; margin-bottom: 6px; font-size: .8rem; color: var(--ps-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.ps-results__cwv ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 3px; }
.ps-results__cwv li { color: var(--ps-text); }
.ps-results__tech-issues { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.ps-results__tech-issue { font-size: .87rem; padding: 7px 12px; border-radius: 6px; background: var(--ps-bg); border: 1px solid var(--ps-border); }
.ps-results__tech-issue--critical { background: #fff1f1; border-color: #f5c6c6; }
.ps-results__tech-issue--warn     { background: #fffbeb; border-color: #f59e0b; }

/* ══════════════════════════════════════════
   Domain / Technical analysis section
   ══════════════════════════════════════════ */
.ps-domain__info { margin-bottom: 16px; }
.ps-domain__info-row { display: flex; align-items: center; gap: 8px; font-size: .87rem; margin-bottom: 4px; }
.ps-domain__info-key { font-weight: 600; color: var(--ps-text-muted); font-size: .78rem; min-width: 130px; flex-shrink: 0; }
.ps-domain__info-val { color: var(--ps-text); }

.ps-domain__ssl { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: .87rem; }
.ps-domain__ssl--ok   { background: var(--ps-good-bg); border: 1px solid #a8d5b5; }
.ps-domain__ssl--warn { background: #fffbeb; border: 1px solid #f59e0b; }
.ps-domain__ssl--fail { background: var(--ps-poor-bg); border: 1px solid #f5c6c6; }
.ps-domain__ssl-icon  { font-size: 1.5rem; flex-shrink: 0; }
.ps-domain__ssl strong { display: block; margin-bottom: 3px; }
.ps-domain__ssl small  { color: var(--ps-text-muted); }


.ps-domain__pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.ps-domain__pill { display: inline-flex; align-items: center; gap: 5px; padding: 5px 14px; border-radius: 20px; font-size: .82rem; font-weight: 600; border: 1px solid transparent; }
.ps-domain__pill--ok   { background: var(--ps-good-bg); border-color: #a8d5b5; color: var(--ps-good); }
.ps-domain__pill--fail { background: var(--ps-poor-bg); border-color: #f5c6c6; color: var(--ps-poor); }
.ps-domain__pill--info { background: #e8f0fe; border-color: #c5d9fc; color: var(--ps-primary-dark); }
.ps-domain__pill--warn { background: #fffbeb; border-color: #fcd34d; color: #92400e; }

.ps-domain__dns { background: var(--ps-bg); border-radius: 8px; padding: 12px 16px; font-size: .84rem; margin-bottom: 16px; }
.ps-domain__dns strong { display: block; margin-bottom: 6px; font-size: .8rem; color: var(--ps-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.ps-domain__dns-row { display: inline-flex; align-items: center; gap: 6px; margin: 3px 6px 3px 0; padding: 2px 10px; border-radius: 12px; background: rgba(26,115,232,.08); border: 1px solid rgba(26,115,232,.18); font-weight: 600; color: var(--ps-primary-dark); font-size: .8rem; }
.ps-domain__schema-type { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: .78rem; font-weight: 600; background: #e8f0fe; color: var(--ps-primary-dark); border: 1px solid #c5d9fc; margin: 2px 4px 2px 0; }

/* ── Meta table ── */
.ps-results__meta-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.ps-results__meta-table th { text-align: left; width: 120px; color: var(--ps-text-muted); font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; padding: 8px 12px 8px 0; vertical-align: top; }
.ps-results__meta-table td { padding: 8px 0; word-break: break-word; line-height: 1.5; }
.ps-results__meta-table tr { border-bottom: 1px solid var(--ps-border); }
.ps-results__meta-table tr:last-child { border-bottom: none; }

/* ── Nav pages scan ── */
.ps-nav-scan { display: flex; flex-direction: column; gap: 8px; }
.ps-nav-scan__badge {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 6px;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.ps-nav-scan__badge--ok   { background: var(--ps-good-bg);  color: var(--ps-good); }
.ps-nav-scan__badge--warn { background: #fef3c7; color: #92400e; }
.ps-nav-scan__badge--fail { background: var(--ps-poor-bg);  color: var(--ps-poor); }
.ps-nav-scan__info { min-width: 0; }
.ps-nav-scan__url {
    display: block;
    font-size: .88rem;
    font-weight: 600;
    color: var(--ps-primary);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ps-nav-scan__url:hover { text-decoration: underline; }
.ps-nav-scan__title {
    display: block;
    font-size: .78rem;
    color: var(--ps-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}
.ps-nav-scan__meta { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ps-nav-scan__pill {
    font-size: .75rem;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    font-weight: 500;
}
.ps-nav-scan__pill--ok   { background: var(--ps-good-bg);  color: var(--ps-good); }
.ps-nav-scan__pill--warn { background: #fef3c7; color: #92400e; }
.ps-nav-scan__pill--fail { background: var(--ps-poor-bg);  color: var(--ps-poor); }

/* ── Missing sections with explanations ── */
.ps-results__missing ul { list-style: none; padding: 0; margin: 8px 0 0; }
.ps-missing__item { margin-bottom: 10px; }
.ps-missing__name { display: block; font-weight: 600; color: var(--ps-poor); font-size: .9rem; }
.ps-missing__desc { display: block; font-size: .82rem; color: var(--ps-text-muted); margin-top: 3px; line-height: 1.5; padding-left: 16px; border-left: 2px solid var(--ps-border); }

/* ── Fix hints on issues ── */
.ps-results__issue-hint { font-size: .82rem; color: #1a5276; background: #eaf4fb; border-left: 3px solid #1a73e8; padding: 6px 10px; border-radius: 0 6px 6px 0; margin: 6px 0 0; line-height: 1.5; }

/* ── Domain info cards (age, OPR, registrar) ── */
.ps-domain-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
}
.ps-domain-card {
    flex: 1;
    min-width: 160px;
    background: var(--ps-bg);
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.ps-domain-card--dark {
    background: linear-gradient(135deg, #0d1b2a 0%, #1a3a5c 100%);
    border-color: transparent;
    color: #ffffff !important;
}
.ps-domain-card--dark small { opacity: .7; }
.ps-domain-card__val {
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    color: var(--ps-primary);
}
.ps-domain-card__val--good { color: var(--ps-good); }
.ps-domain-card__val--average { color: var(--ps-avg); }
.ps-domain-card__val--poor { color: var(--ps-poor); }
.ps-domain-card--dark .ps-domain-card__val { color: #ffffff !important; }
.ps-domain-card__val span { font-size: .85rem; font-weight: 400; opacity: .6; margin-left: 2px; }
.ps-domain-card__lbl { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ps-text-muted); font-weight: 600; }
.ps-domain-card--dark .ps-domain-card__lbl { color: rgba(255,255,255,.6); }
.ps-domain-card small { font-size: .75rem; color: var(--ps-text-muted); }

/* ── API missing state ── */
.ps-results__api-missing { background: #fffbeb; border: 1px solid #f59e0b; border-radius: var(--ps-radius); padding: 14px 18px; margin-bottom: 16px; font-size: .9rem; }
.ps-results__api-missing strong { display: block; margin-bottom: 4px; }
.ps-results__api-missing a { color: var(--ps-primary); }

/* ── Nav scan cards (rich SEO view) ── */
.ps-nav-scan__card {
    border-radius: var(--ps-radius);
    border: 1px solid var(--ps-border);
    background: #fff;
    overflow: hidden;
    margin-bottom: 10px;
}
.ps-nav-scan__card--ok   { border-left: 4px solid var(--ps-good); }
.ps-nav-scan__card--warn { border-left: 4px solid #f59e0b; }
.ps-nav-scan__card--fail { border-left: 4px solid var(--ps-poor); }
.ps-nav-scan__head {
    display: grid;
    grid-template-columns: 52px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
}
.ps-nav-scan__seo {
    border-top: 1px solid var(--ps-border);
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.ps-nav-scan__seo-row {
    display: flex;
    flex-direction: column;
    padding: 8px 14px;
    border-right: 1px solid var(--ps-border);
    border-bottom: 1px solid var(--ps-border);
    font-size: .8rem;
}
.ps-nav-scan__seo-row:nth-child(even) { border-right: none; }
.ps-nav-scan__seo-row--ok   { background: #f8fdf9; }
.ps-nav-scan__seo-row--warn { background: #fffbeb; }
.ps-nav-scan__seo-row--info { background: #f8f9fa; }
.ps-nav-scan__seo-lbl {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ps-text-muted);
    font-weight: 600;
    margin-bottom: 3px;
}
.ps-nav-scan__seo-val { color: var(--ps-text); line-height: 1.4; }
.ps-nav-scan__seo-val em { color: var(--ps-text-muted); font-style: normal; font-size: .78rem; }

/* ── Footer ── */
.ps-results__footer { text-align: center; font-size: .82rem; color: var(--ps-text-muted); padding: 8px 0 16px; line-height: 1.6; }

/* ── Responsive ── */
@media (max-width: 640px) {
    .ps-skan__timing-note {
        text-align: center;
        justify-content: center;
        flex-wrap: wrap;
        padding: 10px;
        line-height: 1.4;
    }
    .ps-skan__title          { font-size: 1.65rem; }
    .ps-skan__form           { padding: 24px 18px; }
    .ps-skan__row            { grid-template-columns: 1fr; }
    .ps-results__section     { padding: 16px 18px; }
    .ps-results__header      { padding: 16px 18px; }
    .ps-results__scoreboard  { grid-template-columns: 1fr; gap: 10px; }
    .ps-results__ps-grid     { grid-template-columns: 1fr; }
    .ps-results__ps-scores   { grid-template-columns: repeat(2, 1fr); }
    .ps-results__compliance-grid { grid-template-columns: 1fr; }
    .ps-cookies__label       { flex: 0 0 auto; width: 100%; }
    .ps-cookies__row         { flex-direction: column; gap: 4px; }
    .ps-new-law__header      { padding: 14px 16px; }
    .ps-nl__checklist        { padding: 10px 14px; }
    .ps-skan__btn            { width: 100%; justify-content: center; }
    .ps-nav-scan__seo        { grid-template-columns: 1fr; }
    .ps-skan__url-row        { flex-direction: column; background: transparent; border: none; box-shadow: none; gap: 12px; }
    .ps-skan__url-row .ps-skan__input--big { color: var(--ps-text) !important; background: #fff; border: 2px solid rgba(255,255,255,.25); border-radius: 50px; box-shadow: 0 8px 32px rgba(0,0,0,.18); }
    .ps-skan__url-row .ps-skan__btn { border-radius: 50px; width: 100%; justify-content: center; padding: 16px 30px; }
    .ps-skan__url-row .ps-skan__btn:hover { background: #1a73e8 !important; color: #fff !important; opacity: 1 !important; border-color: #1a73e8 !important; }

}
