:root{--psc-ink: #14171f;--psc-ink-2: #222734;--psc-muted: #5b6272;--psc-paper: #f4f3ef;--psc-surface: #ffffff;--psc-line: #dedbd2;--psc-line-strong: #c6c1b4;--psc-accent: #3b4fd8;--psc-accent-dark: #2a3aa8;--psc-accent-soft: rgba(59, 79, 216, 0.08);--psc-l0: #b42318;--psc-l1: #c2560c;--psc-l2: #a16207;--psc-l3: #2f7d32;--psc-l4: #0f7469;--psc-word: #7c3aed;--psc-pass: #b42318;--psc-key: #c2560c;--psc-seq: #0369a1;--psc-rep: #be185d;--psc-date: #a16207;--psc-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--psc-shadow: 0 18px 44px rgba(20, 23, 31, 0.1);--primary: var(--psc-accent);--primary-dark: var(--psc-accent-dark);--border: var(--psc-line);--surface: var(--psc-surface);--surface-muted: var(--psc-paper);--shadow-soft: var(--psc-shadow);--text-main: var(--psc-ink);--text-muted: var(--psc-muted);}
.psc-page{color: var(--psc-ink);padding-bottom: 2.5rem;}
.psc-page code{font-family: var(--psc-mono);font-size: 0.88em;color: var(--psc-accent-dark);background: var(--psc-accent-soft);padding: 0.08em 0.35em;border-radius: 4px;}
.psc-desk{--psc-level: var(--psc-line-strong);background: var(--psc-surface);border: 1px solid var(--psc-line);border-radius: 18px;box-shadow: var(--psc-shadow);overflow: hidden;margin-bottom: 2.5rem;}
.psc-desk[data-level="0"]{--psc-level: var(--psc-l0);}
.psc-desk[data-level="1"]{--psc-level: var(--psc-l1);}
.psc-desk[data-level="2"]{--psc-level: var(--psc-l2);}
.psc-desk[data-level="3"]{--psc-level: var(--psc-l3);}
.psc-desk[data-level="4"]{--psc-level: var(--psc-l4);}
.psc-byline{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 0.35rem 1rem;padding: 0.65rem 1.4rem;background: var(--psc-ink);color: rgba(236, 238, 245, 0.74);font-size: 0.82rem;}
.psc-byline .author-link{color: #ffffff;font-weight: 600;text-decoration: underline;text-underline-offset: 3px;}
.psc-byline .author-link:hover,.psc-byline .author-link:focus-visible{color: #c7cffd;}
.psc-entry{padding: 1.4rem 1.4rem 1.1rem;background: var(--psc-ink-2);color: #eceef5;}
.psc-entry-head{display: flex;justify-content: space-between;align-items: baseline;gap: 1rem;margin-bottom: 0.55rem;}
.psc-label{font-size: 0.95rem;font-weight: 700;letter-spacing: 0.01em;margin: 0;}
.psc-len{font-family: var(--psc-mono);font-size: 0.8rem;color: rgba(236, 238, 245, 0.6);}
.psc-field{display: flex;align-items: stretch;background: #0d1016;border: 2px solid #3a4152;border-radius: 12px;overflow: hidden;transition: border-color 0.2s;}
.psc-field:focus-within{border-color: var(--psc-level);}
.psc-desk[data-level="none"] .psc-field:focus-within{border-color: #8d9bff;}
.psc-input{flex: 1;min-width: 0;padding: 0.95rem 1rem;border: 0;background: transparent;color: #ffffff;font-family: var(--psc-mono);font-size: 1.15rem;letter-spacing: 0.02em;outline: none;}
.psc-input::placeholder{color: rgba(236, 238, 245, 0.35);}
.psc-fbtn{flex: 0 0 auto;min-width: 64px;padding: 0 1rem;border: 0;border-left: 1px solid #3a4152;background: transparent;color: #c7cffd;font-size: 0.85rem;font-weight: 600;cursor: pointer;}
.psc-fbtn:hover{background: rgba(255, 255, 255, 0.06);color: #ffffff;}
.psc-fbtn:focus-visible{outline: 2px solid #8d9bff;outline-offset: -2px;}
.psc-private{margin: 0.6rem 0 0.9rem;font-size: 0.82rem;color: rgba(236, 238, 245, 0.66);}
.psc-samples{display: flex;flex-wrap: wrap;align-items: center;gap: 0.45rem;}
.psc-samples-label{font-size: 0.8rem;color: rgba(236, 238, 245, 0.6);margin-right: 0.2rem;}
.psc-sample{min-height: 34px;padding: 0.3rem 0.75rem;border: 1px solid #3a4152;border-radius: 999px;background: transparent;color: #eceef5;font-family: var(--psc-mono);font-size: 0.8rem;cursor: pointer;transition: border-color 0.2s, background 0.2s;}
.psc-sample:hover{border-color: #8d9bff;background: rgba(141, 155, 255, 0.1);}
.psc-sample:focus-visible{outline: 2px solid #8d9bff;outline-offset: 2px;}
.psc-sample--rand{font-family: inherit;font-weight: 600;color: #c7cffd;}
.psc-empty{padding: 2.2rem 1.4rem;text-align: center;color: var(--psc-muted);background: var(--psc-paper);}
.psc-empty strong{display: block;color: var(--psc-ink);font-size: 1.05rem;margin-bottom: 0.3rem;}
.psc-results{padding: 1.4rem;}
.psc-verdict-row{display: grid;grid-template-columns: 1fr minmax(180px, 260px);gap: 1rem 2rem;align-items: center;padding-bottom: 1.2rem;border-bottom: 1px solid var(--psc-line);}
.psc-kicker{margin: 0;font-size: 0.75rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.08em;color: var(--psc-muted);}
.psc-verdict{margin: 0.1rem 0 0.35rem;font-size: 2rem;font-weight: 800;line-height: 1.1;color: var(--psc-level);}
.psc-summary{margin: 0;color: var(--psc-ink);}
.psc-meter{display: grid;grid-template-columns: repeat(5, 1fr);gap: 5px;}
.psc-seg{height: 12px;border-radius: 3px;background: var(--psc-line);transition: background 0.25s;}
.psc-seg--on{background: var(--psc-level);}
.psc-stats{display: grid;grid-template-columns: repeat(3, 1fr);gap: 0.75rem;margin: 1.2rem 0;}
.psc-stat{padding: 0.85rem 1rem;border: 1px solid var(--psc-line);border-radius: 12px;background: var(--psc-paper);}
.psc-stat dt{font-size: 0.78rem;font-weight: 600;color: var(--psc-muted);margin-bottom: 0.2rem;}
.psc-stat dd{margin: 0;font-family: var(--psc-mono);font-size: 1.35rem;font-weight: 700;color: var(--psc-ink);}
.psc-stat--real{border-color: var(--psc-level);background: var(--psc-surface);}
.psc-stat--real dd{color: var(--psc-level);}
.psc-stat--naive dd{text-decoration: line-through;text-decoration-color: rgba(91, 98, 114, 0.5);color: var(--psc-muted);}
.psc-block{margin-top: 1.2rem;}
.psc-h{font-size: 0.95rem;font-weight: 700;margin: 0 0 0.6rem;color: var(--psc-ink);}
.psc-strip{display: flex;flex-wrap: wrap;gap: 6px;}
.psc-piece{--psc-tone: var(--psc-muted);display: inline-flex;flex-direction: column;min-width: 0;max-width: 100%;border: 1px solid var(--psc-tone);border-top-width: 4px;border-radius: 8px;background: var(--psc-surface);overflow: hidden;}
.psc-piece-text{padding: 0.35rem 0.6rem 0.15rem;font-family: var(--psc-mono);font-size: 1rem;white-space: pre-wrap;word-break: break-all;color: var(--psc-ink);}
.psc-piece-tag{padding: 0 0.6rem 0.35rem;font-size: 0.7rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.05em;color: var(--psc-tone);}
.psc-piece--password{--psc-tone: var(--psc-pass);}
.psc-piece--word{--psc-tone: var(--psc-word);}
.psc-piece--spatial{--psc-tone: var(--psc-key);}
.psc-piece--sequence{--psc-tone: var(--psc-seq);}
.psc-piece--repeat{--psc-tone: var(--psc-rep);}
.psc-piece--year,.psc-piece--date{--psc-tone: var(--psc-date);}
.psc-piece--brute{--psc-tone: var(--psc-l4);border-style: dashed;border-top-style: solid;}
.psc-grid{display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);gap: 1.4rem;}
.psc-times{width: 100%;border-collapse: collapse;font-size: 0.9rem;}
.psc-times th,.psc-times td{padding: 0.55rem 0.5rem;border-bottom: 1px solid var(--psc-line);text-align: left;vertical-align: top;}
.psc-times thead th{font-size: 0.75rem;text-transform: uppercase;letter-spacing: 0.05em;color: var(--psc-muted);}
.psc-times tbody th{font-weight: 600;}
.psc-times small{display: block;font-weight: 400;color: var(--psc-muted);font-size: 0.78rem;}
.psc-times td{font-family: var(--psc-mono);font-weight: 700;white-space: nowrap;text-align: right;}
.psc-findings{list-style: none;margin: 0;padding: 0;display: grid;gap: 0.5rem;}
.psc-find{position: relative;padding: 0.6rem 0.75rem 0.6rem 2rem;border-radius: 10px;background: var(--psc-paper);font-size: 0.9rem;line-height: 1.45;}
.psc-find::before{content: "i";position: absolute;left: 0.65rem;top: 0.62rem;width: 0.95rem;height: 0.95rem;border-radius: 50%;background: var(--psc-muted);color: #fff;font-size: 0.65rem;font-weight: 700;line-height: 0.95rem;text-align: center;}
.psc-find--bad{background: #fdf3f1;}
.psc-find--bad::before{content: "!";background: var(--psc-l0);}
.psc-find--good{background: #eef7f1;}
.psc-find--good::before{content: "\2713";background: var(--psc-l3);}
.psc-breach{display: grid;grid-template-columns: 1fr auto;gap: 0.6rem 1.4rem;align-items: center;margin-top: 1.4rem;padding: 1.1rem 1.2rem;border: 1px dashed var(--psc-line-strong);border-radius: 12px;}
.psc-breach p{margin: 0;font-size: 0.88rem;color: var(--psc-muted);}
.psc-breach .psc-h{margin-bottom: 0.25rem;}
.psc-btn{min-height: 44px;padding: 0.6rem 1.2rem;border: 0;border-radius: 10px;background: var(--psc-accent);color: #fff;font-weight: 700;font-size: 0.9rem;cursor: pointer;transition: background 0.2s;}
.psc-btn:hover{background: var(--psc-accent-dark);}
.psc-btn:focus-visible{outline: 3px solid rgba(59, 79, 216, 0.4);outline-offset: 2px;}
.psc-btn:disabled{background: var(--psc-line-strong);cursor: not-allowed;}
.psc-breach-out{grid-column: 1 / -1;margin: 0;padding: 0.7rem 0.85rem;border-radius: 10px;background: var(--psc-paper);font-size: 0.9rem;color: var(--psc-ink);}
.psc-breach-out--bad{background: #fdf3f1;color: #8a1c13;font-weight: 600;}
.psc-breach-out--good{background: #eef7f1;color: #1f5c22;}
.psc-breach-out--warn{background: #fdf7e8;color: #7a4b05;}
.psc-copy{display: grid;grid-template-columns: minmax(0, 1fr);gap: 2.2rem;margin: 0 auto 2.5rem;line-height: 1.7;}
.psc-copy h2{font-size: 1.45rem;font-weight: 800;margin: 0 0 0.75rem;color: var(--psc-ink);}
.psc-copy p{margin: 0 0 0.85rem;}
.psc-copy ul{margin: 0 0 0.85rem;padding-left: 1.2rem;}
.psc-copy li{margin-bottom: 0.4rem;}
.psc-table-wrap{overflow-x: auto;border: 1px solid var(--psc-line);border-radius: 12px;margin: 0.4rem 0 0.9rem;}
.psc-table{width: 100%;border-collapse: collapse;font-size: 0.92rem;background: var(--psc-surface);}
.psc-table th,.psc-table td{padding: 0.6rem 0.8rem;border-bottom: 1px solid var(--psc-line);text-align: left;vertical-align: top;}
.psc-table thead th{background: var(--psc-paper);font-size: 0.78rem;text-transform: uppercase;letter-spacing: 0.05em;color: var(--psc-muted);}
.psc-table tbody tr:last-child th,.psc-table tbody tr:last-child td{border-bottom: 0;}
.psc-table tfoot td{font-weight: 700;background: var(--psc-paper);border-top: 2px solid var(--psc-line-strong);border-bottom: 0;}
.psc-num{font-family: var(--psc-mono);white-space: nowrap;}
.psc-patterns{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0.75rem;margin: 0;}
.psc-pattern{padding: 0.85rem 1rem;border: 1px solid var(--psc-line);border-left: 4px solid var(--psc-tone, var(--psc-muted));border-radius: 10px;background: var(--psc-surface);}
.psc-pattern dt{font-weight: 700;color: var(--psc-tone, var(--psc-ink));margin-bottom: 0.2rem;}
.psc-pattern dd{margin: 0;font-size: 0.92rem;}
.psc-limits{border-left: 4px solid var(--psc-l2);padding: 1.1rem 1.3rem;background: #fdf7e8;border-radius: 0 12px 12px 0;}
.psc-limits ul{margin-bottom: 0;}
.psc-nist{counter-reset: nist;list-style: none;padding-left: 0;}
.psc-nist li{counter-increment: nist;position: relative;padding-left: 2.2rem;}
.psc-nist li::before{content: counter(nist);position: absolute;left: 0;top: 0.1rem;width: 1.5rem;height: 1.5rem;border-radius: 50%;background: var(--psc-ink);color: #fff;font-size: 0.78rem;font-weight: 700;line-height: 1.5rem;text-align: center;}
@media (max-width: 767.98px){.psc-verdict-row{grid-template-columns: 1fr;}.psc-stats{grid-template-columns: 1fr;}.psc-grid{grid-template-columns: 1fr;}.psc-breach{grid-template-columns: 1fr;}.psc-patterns{grid-template-columns: 1fr;}.psc-entry,.psc-results{padding: 1.1rem;}.psc-byline{padding: 0.6rem 1.1rem;}.psc-verdict{font-size: 1.6rem;}.psc-stat dd{font-size: 1.15rem;}}
@media (prefers-reduced-motion: reduce){.psc-seg,.psc-field,.psc-sample,.psc-btn{transition: none;}}