.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius);font-size:var(--text-base);font-weight:600;text-decoration:none;cursor:pointer;transition:var(--transition);min-height:44px}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);min-height:36px}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-lg);min-height:52px}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:var(--shadow-card)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-success{background:linear-gradient(135deg,var(--success),#059669);color:#fff}.btn-warning{background:linear-gradient(135deg,var(--warning),#d97706);color:#fff}.btn-danger{background:linear-gradient(135deg,var(--danger),#dc2626);color:#fff}.btn-info{background:linear-gradient(135deg,var(--info),#0891b2);color:#fff}.btn-outline-primary{background:0 0;color:var(--primary);border:1px solid var(--primary)}.btn-outline-secondary{background:0 0;color:var(--text);border:1px solid var(--border)}.btn-close{background:0 0;border:none;font-size:1.25rem;line-height:1;cursor:pointer;color:var(--text-muted);transition:var(--transition)}.btn-close:hover{color:var(--text);transform:rotate(90deg)}.faq-accordion{display:flex;flex-direction:column;gap:var(--space-3)}.faq-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:0 0;border:none;cursor:pointer;font-size:var(--text-base);color:var(--text)}.faq-question:focus{outline:2px solid var(--primary);outline-offset:2px}.faq-question .fb-emoji{margin-right:var(--space-2)}.faq-icon{font-weight:700;color:var(--text-muted)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .28s;padding:0 var(--space-4)}.faq-answer-content{padding:var(--space-3) 0;color:var(--text-muted)}.faq-item.active .faq-answer{max-height:1000px}.fb-pin-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal) + 5);padding:var(--space-4);backdrop-filter:blur(5px)}.fb-pin-dialog{background:var(--surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-elevated);width:100%;max-width:clamp(320px,90vw,400px);padding:clamp(var(--space-3),4vw,var(--space-6));border:1px solid var(--border)}.fb-pin-header{text-align:center;margin-bottom:var(--space-6)}.fb-pin-title{font-size:var(--text-xl);font-weight:700;color:var(--text);margin:0;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.fb-pin-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2)}.fb-pin-inputs{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1);width:100%}.fb-pin-input{flex:1;height:clamp(3.5rem,9vw,4rem);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--background);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;color:var(--text);transition:var(--transition);position:relative}.fb-pin-input.filled{border-color:var(--primary);background:var(--primary-light);color:#fff;box-shadow:0 0 0 3px rgba(13,110,253,.2)}.fb-pin-input.filled::after{content:"*";font-size:3rem;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.fb-pin-input.error{animation:.5s ease-in-out pinInputError;border-color:var(--danger)}@keyframes pinInputError{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.fb-pin-keyboard{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.fb-pin-key{width:100%;height:clamp(3rem,8vw,4rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);font-size:clamp(var(--text-base), 4vw, var(--text-xl));font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}.fb-pin-key:hover{background:var(--primary-light);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.fb-pin-key:active{transform:translateY(0)}.fb-pin-key.special{background:var(--primary);color:#fff}.fb-pin-key.special:hover{background:var(--primary-dark)}.fb-pin-key.clear{background:var(--warning);color:#fff}.fb-pin-key.clear:hover{background:#d97706}.fb-pin-error{text-align:center;color:var(--danger);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-4);min-height:1.5rem;display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.fb-pin-attempts{text-align:center;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;margin-top:var(--space-3)}.fb-form{width:100%}.fb-form-group{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);min-height:56px;white-space:nowrap;position:relative;transition:.2s}.fb-form-label{width:140px;display:flex;align-items:center;gap:var(--space-2);font-weight:600}.fb-form-input-wrapper{position:relative;flex:1 1 auto;display:flex;align-items:center}.fb-form-input{height:48px;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 3.5rem 0 1rem;font-size:var(--text-base);display:inline-flex;align-items:center;background:var(--surface);color:var(--text);transition:var(--transition)}.fb-form-input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,110,253,.1)}.fb-form-input:disabled{background:var(--surface-alt);color:var(--text-muted);cursor:not-allowed}.fb-form-input:not(:disabled){background:var(--background);border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,110,253,.1)}.fb-form-input.profile-field{height:auto;padding:.625rem 1rem;line-height:1.4}.fb-field-with-edit{position:relative;display:flex;align-items:center;gap:var(--space-2);transition:.2s}.fb-field-with-edit .fb-form-input{flex:1;padding-right:1rem}.field-edit-btn{height:2.5rem;width:2.5rem;padding:0;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition);font-size:1.125rem}.field-edit-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.password-toggle{position:absolute;right:8px;height:32px;width:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:0 0;cursor:pointer}.fb-form-checkbox{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%}.fb-form-checkbox input[type=checkbox]{margin-right:.5rem}.fb-form-buttons{display:flex;gap:var(--space-3);justify-content:center;align-items:flex-end;margin-top:var(--space-3)}.fb-form-buttons .btn{min-width:160px}.fb-forgot-password{display:inline-flex;margin:var(--space-4) auto 0}.fb-tabs{width:100%;max-width:1024px;margin:0 auto var(--space-6)}.fb-tabs-nav{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.fb-tab-btn{flex:1 1 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:600;cursor:pointer;color:var(--text-muted);transition:var(--transition);position:relative;z-index:auto}.fb-tab-btn:hover{color:var(--text);background:var(--card-bg)}.fb-tab-btn.is-active{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;box-shadow:var(--shadow-md)}.fb-tab-btn.is-active::after{content:"";position:absolute;inset:0;border:2px solid rgba(255,255,255,.4);border-radius:inherit;pointer-events:none}.fb-tab-panel{display:none;animation:.3s fadeInTab}.fb-tab-panel.is-active{display:block}@keyframes fadeInTab{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}details.fb-accordion-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3);box-shadow:var(--shadow);overflow:hidden}details.fb-accordion-item[open]{box-shadow:var(--shadow-md)}details.fb-accordion-item>summary.fb-accordion-summary{list-style:none;cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:600;font-size:var(--text-base);display:block;position:relative}details.fb-accordion-item>summary.fb-accordion-summary::-webkit-details-marker,details.fb-accordion-item>summary.fb-accordion-summary::marker{display:none}details.fb-accordion-item>summary.fb-accordion-summary:focus{outline:2px solid var(--primary);outline-offset:2px}details.fb-accordion-item>.fb-accordion-content{padding:0 var(--space-4) var(--space-4)}.edit-mode{display:none}.edit-mode.is-open{display:block!important}.fb-modal{position:fixed;top:clamp(3.5rem,8vh,4.5rem);left:0;right:0;bottom:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);padding:var(--space-4);z-index:var(--z-modal)}.fb-modal.is-open{display:flex}.fb-modal-dialog{width:100%;max-width:min(30rem,90vw)}.fb-modal-dialog.fb-modal-lg{max-width:min(54rem,95vw)}.fb-modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:.28s modalPop}@keyframes modalPop{from{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.fb-modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.fb-modal-title{margin:0;font-size:var(--text-lg);font-weight:700}.fb-modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.fb-modal-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:flex-end}.row{display:flex;flex-wrap:wrap;margin-left:-.75rem;margin-right:-.75rem}[class*=" col-"],[class^=col-]{padding-left:.75rem;padding-right:.75rem;box-sizing:border-box}.col-12{flex:0 0 100%;max-width:100%}.col-6{flex:0 0 50%;max-width:50%}.col-md-4,.col-md-6{flex:0 0 100%;max-width:100%}@media (min-width:720px){.col-md-4{flex:0 0 33.333%;max-width:33.333%}.col-md-6{flex:0 0 50%;max-width:50%}}.input-group{display:flex;align-items:stretch;width:100%}.input-group>.fb-form-input{flex:1 1 auto;border-top-right-radius:0;border-bottom-right-radius:0}.input-group-text{display:inline-flex;align-items:center;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--border);border-left:none;border-radius:0 var(--radius) var(--radius) 0;font-size:var(--text-sm);font-weight:600}.form-check{display:flex;align-items:center;gap:var(--space-2)}.form-check-input{width:1.25rem;height:1.25rem;cursor:pointer}.form-check-label{cursor:pointer}.form-switch .form-check-input{width:2.5rem;height:1.25rem;border-radius:var(--radius-full)}.form-text{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.form-label{font-weight:600;margin-bottom:var(--space-1);display:block}table.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}table.table td,table.table th{padding:6px 10px;border:1px solid var(--border);text-align:left}table.table-striped tbody tr:nth-child(odd){background:rgba(0,0,0,.03)}.badge{display:inline-block;padding:2px 8px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border)}.bg-danger{background:var(--danger)!important;color:#fff}.bg-success{background:var(--success)!important;color:#fff}.bg-warning{background:var(--warning)!important;color:#fff}.bg-info{background:var(--info)!important;color:#fff}.alert{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.alert-info{background:var(--sky-light);color:var(--primary-dark)}.alert-success{background:#dcfce7;color:#166534}.alert-danger{background:#fee2e2;color:#991b1b}.alert-warning{background:#fef3c7;color:#92400e}#bonus-toast{position:fixed;bottom:6rem;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#ff69b4,#ff8c00);color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);font-weight:700;display:none;z-index:calc(var(--z-nav) + 20)}.intro-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:calc(var(--z-modal) + 50);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.9),rgba(255,255,255,.3));backdrop-filter:blur(8px);opacity:0;transition:opacity .4s;pointer-events:none}[data-theme=dark] .intro-overlay{background:radial-gradient(circle at 50% 50%,rgba(15,23,42,.92),rgba(15,23,42,.5))}.intro-overlay.active{opacity:1;pointer-events:auto}.intro-overlay.fade-out{opacity:0;pointer-events:none}.intro-logo-mode{--logo-size:clamp(200px, 40vw, 300px);--explode-scale:5}.intro-logo-stage{position:relative;width:var(--logo-size);height:var(--logo-size);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.intro-logo-wrapper{width:100%;height:100%}.intro-logo-wrapper svg{width:100%;height:100%;display:block;animation:3s ease-out forwards fbPushUp,1.2s ease-in 3s forwards fbExplode}@keyframes fbPushUp{0%{transform:scale(.9);opacity:0}50%{transform:scale(1.05);opacity:1}100%{transform:scale(1)}}@keyframes fbExplode{0%{transform:scale(1);opacity:1;filter:blur(0)}100%{transform:scale(var(--explode-scale));opacity:0;filter:blur(3px)}}#homeHero{opacity:0;transition:opacity .4s}#homeHero.hero-visible{opacity:1}#attach-card-form .fb-form-input,#attach-user-form .fb-form-input{font-size:var(--text-sm)}#attach-card-feedback,#attach-user-feedback{min-height:1.2rem}.user-cards{display:flex;flex-wrap:wrap;gap:var(--space-2)}.user-cards .fb-card-badge{cursor:default}.user-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}#secureInputModal .fb-form-input{letter-spacing:.25em;text-align:center;font-weight:600}#secureInputModal.shake .fb-modal-content{animation:.4s shake}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}.fb-accordion-content .row .d-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2)}.fb-accordion-content .btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);white-space:nowrap}.btn.detach-card-btn,.btn.detach-user-btn{background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;border-color:#dc2626}.btn.detach-card-btn:hover,.btn.detach-user-btn:hover{background:linear-gradient(135deg,#b91c1c,#7f1d1d);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn.change-api-key-btn{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#f59e0b}.btn.change-api-key-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px);box-shadow:var(--shadow-md)}.fade{transition:opacity .2s}.show{opacity:1}.small{font-size:var(--text-sm)}.lead{font-size:var(--text-lg)}.no-translate{translate:none}.fb-emoji{font-style:normal}