.tool-main{flex-direction:column;flex:1;width:100%;max-width:100%;padding:0;display:flex;overflow:hidden}.tool-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 2rem;display:flex}.tool-header__title{flex-direction:column;gap:.25rem;display:flex}.tool-title{color:var(--color-text-title);margin:0;font-size:1.3rem;font-weight:700}.tool-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.totp-workspace{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);min-height:0;display:grid;overflow:hidden}.totp-col{flex-direction:column;min-width:0;display:flex;overflow-y:auto}.totp-col--input{border-right:1px solid var(--color-border);background-color:var(--color-surface-deep);gap:1.5rem;padding:1.75rem}.totp-col--output{background-color:var(--color-bg)}.input-section{flex-direction:column;gap:.5rem;display:flex}.input-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:.78rem;font-weight:600}.secret-input-wrap{border:1px solid var(--color-border);background-color:var(--color-surface-input);border-radius:6px;align-items:stretch;transition:border-color .15s;display:flex;overflow:hidden}.secret-input-wrap:focus-within{border-color:var(--color-accent-border);box-shadow:0 0 0 1px var(--color-accent-bg)}.secret-input{color:var(--color-text-primary);letter-spacing:.05em;caret-color:var(--color-accent);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:.6rem .9rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.88rem}.secret-input::placeholder{color:var(--color-text-dimmer);letter-spacing:0}.secret-toggle{border:none;border-left:1px solid var(--color-border-faint);width:38px;color:var(--color-sep);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;transition:color .15s,background-color .15s;display:flex}.secret-toggle:hover{color:var(--color-accent);background-color:var(--color-surface-raised)}.secret-toggle--active{color:var(--color-accent)}.input-hint{color:var(--color-text-ghost);min-height:1.2em;font-size:.75rem;line-height:1.4}.input-hint--ok{color:var(--color-success)}.input-hint--error{color:var(--color-danger)}.input-hint--warn{color:var(--color-warning);align-items:center;gap:.3rem;display:flex}.input-hint--info{color:var(--color-accent);align-items:center;gap:.3rem;display:flex}.toggle-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.toggle-btn{border:1px solid var(--color-border);color:var(--color-text-faint);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;padding:.3rem .85rem;font-size:.8rem;font-weight:500;transition:color .12s,background-color .12s,border-color .12s}.toggle-btn:hover{color:var(--color-text-secondary);border-color:var(--color-sep)}.toggle-btn--active{background-color:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent-border)}.toggle-btn--active:hover{background-color:var(--color-accent-hover-bg);border-color:var(--color-accent);color:var(--color-accent-hover-text)}.clear-btn{border:1px solid var(--color-border);color:var(--color-text-faint);cursor:pointer;background:0 0;border-radius:5px;align-self:flex-start;padding:.35rem .85rem;font-size:.8rem;font-weight:500;transition:color .12s,border-color .12s}.clear-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-ghost)}.output-inner{flex-direction:column;flex:1;gap:1.25rem;padding:1.75rem;display:flex}.output-placeholder{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.85rem;padding:3rem 1.5rem;display:flex}.output-placeholder__icon{opacity:.2;font-size:3rem;line-height:1}.output-placeholder__text{color:var(--color-sep);font-size:.9rem}.output-error{background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);border-radius:6px;align-items:flex-start;gap:.65rem;margin:1.75rem;padding:1rem 1.25rem;font-size:.85rem;line-height:1.5;display:flex}.output-error__icon{flex-shrink:0;font-size:1rem}.codes-grid{flex-wrap:wrap;align-items:center;gap:2rem;display:flex}.countdown-wrap{flex-shrink:0;width:80px;height:80px;position:relative}.countdown-ring{width:80px;height:80px}.countdown-ring__track{fill:none;stroke:var(--color-border-faint);stroke-width:5px}.countdown-ring__fill{fill:none;stroke:var(--color-accent);stroke-width:5px;stroke-linecap:round;transition:stroke .3s}.countdown-ring__fill--warning{stroke:var(--color-danger)}.countdown-center{flex-direction:column;justify-content:center;align-items:center;gap:1px;line-height:1;display:flex;position:absolute;inset:0}.countdown-seconds{font-variant-numeric:tabular-nums;color:var(--color-text-primary);font-size:1.45rem;font-weight:700;line-height:1}.countdown-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-ghost);font-size:.6rem;font-weight:500}.code-current-wrap{flex-direction:column;gap:.45rem;min-width:0;display:flex}.code-current-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-ghost);font-size:.7rem;font-weight:600}.code-current{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--color-text-title);white-space:nowrap;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:2.6rem;font-weight:700;line-height:1}.code-meta{color:var(--color-sep);font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.72rem}.copy-btn{cursor:pointer;border:1px solid var(--color-accent-border);background-color:var(--color-accent-bg);color:var(--color-accent);white-space:nowrap;border-radius:5px;align-self:flex-start;align-items:center;gap:.35rem;padding:.35rem .9rem;font-size:.8rem;font-weight:500;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.copy-btn:hover{background-color:var(--color-accent-hover-bg);border-color:var(--color-accent);color:var(--color-accent-hover-text)}.copy-btn--copied{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.copy-btn--small{border-color:var(--color-border);color:var(--color-text-faint);background:0 0;padding:.2rem .6rem;font-size:.72rem}.copy-btn--small:hover{background-color:var(--color-border-faint);border-color:var(--color-sep);color:var(--color-text-secondary)}.progress-bar-wrap{background-color:var(--color-border-faint);border-radius:2px;flex-shrink:0;height:3px;overflow:hidden}.progress-bar{background-color:var(--color-accent);border-radius:2px;width:0%;height:100%;transition:background-color .3s}.progress-bar--warning{background-color:var(--color-danger)}.adjacent-codes{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.adjacent-code{background-color:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:7px;flex-direction:column;gap:.4rem;padding:.85rem 1rem;display:flex}.adjacent-code--prev{border-left:3px solid var(--color-border)}.adjacent-code--next{border-left:3px solid var(--color-accent-bg)}.adjacent-code__label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-sep);font-size:.68rem;font-weight:600}.adjacent-code__value{font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--color-text-muted);font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1.4rem;font-weight:600;line-height:1}.info-strip{background-color:var(--color-surface-deep);border:1px solid var(--color-border-faint);border-radius:7px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-top:auto;padding:.85rem 1rem;display:grid}.info-item{flex-direction:column;gap:.2rem;display:flex}.info-label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-sep);font-size:.68rem;font-weight:600}.info-value{color:var(--color-text-faint);font-variant-numeric:tabular-nums;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.8rem}@media (width<=820px){.totp-workspace{grid-template-columns:1fr;overflow-y:auto}.totp-col--input{border-right:none;border-bottom:1px solid var(--color-border);padding:1.25rem}.output-inner{padding:1.25rem}.code-current{font-size:2rem}.adjacent-codes{grid-template-columns:1fr 1fr}}@media (width<=480px){.codes-grid{flex-direction:column;align-items:flex-start;gap:1.25rem}.adjacent-codes{grid-template-columns:1fr}}
