.main-bottom-pad{padding-bottom:64px}.tool-hero{text-align:center;padding:64px 20px 32px}.tool-hero h1{font-family:var(--font-headline);font-size:var(--text-headline-xl);font-weight:700;line-height:var(--text-headline-xl-line);letter-spacing:-.02em;color:var(--color-on-background);margin:0 0 16px}.tool-hero .hero-sub{font-size:var(--text-body-lg);line-height:var(--text-body-lg-line);color:var(--color-secondary);max-width:42rem;margin:0 auto 32px}.tool-section{padding:24px 0}.tab-pills{display:inline-flex;padding:4px;background:var(--color-surface-container);border-radius:var(--radius-xl);gap:4px}.tab-pills .tab-btn{padding:8px 24px;border-radius:999px;font-size:14px;font-weight:500;border:none;background:transparent;color:var(--color-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.tab-pills .tab-btn.active{background:var(--color-primary);color:var(--color-on-primary)}.tool-container{max-width:800px;margin:0 auto}.controls-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:16px 0}.controls-bar .ctrl-btn{display:flex;align-items:center;gap:8px;padding:12px 32px;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body);border:none}.controls-bar .ctrl-btn.primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-lg)}.controls-bar .ctrl-btn.primary:hover{opacity:.9;transform:scale(.97)}.controls-bar .ctrl-btn.secondary{background:var(--color-surface-container-highest);color:var(--color-on-surface);border:1px solid var(--color-outline-variant)}.controls-bar .ctrl-btn.secondary:hover{background:var(--color-surface-variant);transform:scale(.97)}html.dark .controls-bar .ctrl-btn.secondary{background:var(--color-surface-container)}html.dark .controls-bar .ctrl-btn.secondary:hover{background:var(--color-surface-bright)}.pwd-display-area{padding:24px;background:var(--color-surface-container-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);margin-bottom:16px}.pwd-output-wrapper{display:flex;gap:12px;align-items:center;margin-bottom:12px;border-radius:var(--border-radius);overflow:hidden;border:1px solid var(--border-color);min-height:72px}.pwd-display{flex:1;font-family:var(--font-code);font-size:24px;font-weight:600;word-break:break-all;color:var(--color-on-surface);padding:12px 16px;background:var(--color-surface-container-low);border-radius:var(--radius-lg);cursor:pointer}.pwd-display:hover{background:var(--color-surface-container)}.btn-copy-lg{padding:12px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-container-lowest);cursor:pointer;color:var(--color-on-surface)}.btn-copy-lg:hover{background:var(--color-surface-container-low)}.pwd-strength-bar{display:flex;align-items:center;gap:12px}.strength-track{flex:1;height:8px;background:var(--color-surface-container);border-radius:4px;overflow:hidden}.strength-fill{height:100%;border-radius:4px;transition:width .3s,background var(--transition-fast)}.strength-label{font-size:13px;font-weight:600;min-width:40px}.entropy-label{font-size:12px;color:var(--color-on-surface-variant)}.pwd-bulk-area{margin-bottom:16px}.pwd-bulk-output{padding:16px;background:var(--color-surface-container-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);min-height:80px;font-family:var(--font-code);font-size:14px;line-height:1.8}.pwd-bulk-placeholder{color:var(--color-outline);margin:0}.pwd-list{list-style:none;margin:0;padding:0;counter-reset:pwd-item}.pwd-list-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border-subtle);counter-increment:pwd-item}html.dark .pwd-list-item{color:var(--color-on-surface-variant)}.pwd-list-item:last-child{border-bottom:none}.pwd-list-item:before{content:counter(pwd-item) ".";flex-shrink:0;width:28px;text-align:right;font-size:13px;color:var(--color-on-surface-variant);font-family:var(--font-body)}.pwd-list-item code{flex:1;font-family:var(--font-code);font-size:14px;font-weight:500;color:var(--color-on-surface);word-break:break-all;padding:4px 0}.btn-copy-sm{flex-shrink:0;padding:4px 6px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-container-low);cursor:pointer;color:var(--color-on-surface-variant);display:flex;align-items:center;transition:all var(--transition-fast)}.btn-copy-sm:hover{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.pwd-options{display:flex;flex-direction:column;gap:16px}.pwd-option-group{padding:16px;background:var(--color-surface-container-low);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl)}.option-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.option-label{font-size:14px;font-weight:600;color:var(--color-on-surface)}.length-control-wrapper{display:flex;align-items:center;gap:8px}.length-number-input{width:60px;padding:4px 8px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);text-align:center;font-family:var(--font-code);font-size:14px;background:var(--color-surface-container-lowest);color:var(--color-on-surface)}.length-badge{font-family:var(--font-code);font-size:14px;font-weight:600;color:var(--color-primary);background:var(--color-primary-fixed);padding:2px 10px;border-radius:999px}.pwd-slider{width:100%;accent-color:var(--color-primary);margin-bottom:4px}.slider-labels{display:flex;justify-content:space-between;font-size:12px;color:#faf6f6}.preset-buttons{display:flex;flex-wrap:wrap;gap:8px}.char-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle-inline{margin-top:4px}html.dark .toggle-inline{color:#fff}.toggle-label{font-size:13px;color:#000}.toggle-desc{font-size:12px;color:#000}html.dark .toggle-label,.toggle-desc{color:#fff}.dropdown-wrapper{position:relative;display:inline-block}.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--color-surface-container-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:10;min-width:160px;padding:4px 0}.dropdown-wrapper:hover .dropdown-menu{display:block}.dropdown-item{display:block;width:100%;padding:10px 16px;border:none;background:none;cursor:pointer;font-size:14px;text-align:left;color:var(--color-on-surface);font-family:var(--font-body)}.dropdown-item:hover{background:var(--color-surface-container-low)}.btn-row{display:flex;gap:8px;margin-top:12px}.feat-section{padding:64px 0}.feat-section .feat-heading{font-family:var(--font-headline);font-size:var(--text-headline-lg);font-weight:600;text-align:center;margin:0 0 48px;color:var(--color-on-surface)}.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-gutter)}@media (max-width: 1024px){.feat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.feat-grid{grid-template-columns:1fr}}.feat-card{padding:32px;background:var(--color-surface-container-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);transition:all var(--transition-normal)}.feat-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.feat-card .feat-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.feat-card .feat-icon.feat-primary{background:var(--color-primary-fixed);color:var(--color-primary)}.feat-card .feat-icon.feat-tertiary{background:var(--color-tertiary-fixed);color:var(--color-tertiary)}.feat-card .feat-icon.feat-secondary{background:var(--color-secondary-fixed);color:var(--color-on-secondary-fixed)}.feat-card .feat-icon.feat-error{background:var(--color-error-container);color:var(--color-on-error-container)}.feat-card h3{font-family:var(--font-headline);font-size:var(--text-title-md);font-weight:600;line-height:var(--text-title-md-line);margin:0 0 12px;color:var(--color-on-surface)}.feat-card p{font-size:var(--text-body-md);color:var(--color-on-surface-variant);margin:0;line-height:var(--text-body-md-line)}.faq-section-v3{padding:80px 0}.faq-section-v3 h2{font-family:var(--font-headline);font-size:var(--text-headline-lg);font-weight:600;line-height:var(--text-headline-lg-line);letter-spacing:-.01em;color:var(--color-on-surface);margin:0 0 48px}.faq-section-v3 .faq-cat-title{font-family:var(--font-headline);font-size:var(--text-title-md);font-weight:600;color:var(--color-on-surface);margin:32px 0 16px}.faq-section-v3 details{border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);overflow:hidden;background:var(--color-surface-container-low);margin-bottom:8px}.faq-section-v3 details summary{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;cursor:pointer;font-family:var(--font-headline);font-size:var(--text-title-md);font-weight:600;color:var(--color-on-surface);list-style:none}.faq-section-v3 details summary::-webkit-details-marker{display:none}.faq-section-v3 details summary .mat-icon{transition:transform var(--transition-normal);color:var(--color-outline)}.faq-section-v3 details[open] summary .mat-icon{transform:rotate(180deg)}.faq-section-v3 details .det-content{padding:0 24px 24px;color:var(--color-on-surface-variant);font-size:var(--text-body-md);line-height:var(--text-body-md-line);border-top:1px solid var(--color-border-subtle);margin:0 24px}#result-message{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;padding:12px 32px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none;white-space:nowrap;font-family:var(--font-body)}#result-message.show{opacity:1;transform:translate(-50%) translateY(0)}#result-message.success{color:var(--color-on-primary);background:var(--color-success)}#result-message.error{color:#fff;background:var(--color-error)}@media (max-width: 768px){.tool-hero{padding:40px 16px 24px}.tool-hero h1{font-size:32px;line-height:40px}.controls-bar .ctrl-btn{padding:10px 20px;font-size:14px}.feat-grid{grid-template-columns:1fr}}
