:root{--primary-50:#f0fdf4;--primary-100:#dcfce7;--primary-200:#bbf7d0;--primary-300:#86efac;--primary-500:#22c55e;--primary-600:#16a34a;--primary-700:#15803d;--primary-800:#166534;--accent-50:#fefce8;--accent-100:#fef9c3;--accent-200:#fef08a;--accent-500:#eab308;--accent-600:#ca8a04;--accent-700:#a16207;--earth-50:#fafaf9;--earth-100:#f5f5f4;--earth-200:#e7e5e4;--earth-300:#d6d3d1;--earth-400:#a8a29e;--earth-500:#78716c;--earth-600:#57534e;--earth-700:#44403c;--earth-800:#292524;--earth-900:#1c1917;--success-50:#f0fdf4;--success-500:#10b981;--success-600:#059669;--success-700:#047857;--warning-50:#fff7ed;--warning-500:#f59e0b;--warning-600:#d97706;--danger-50:#fef2f2;--danger-500:#ef4444;--danger-600:#dc2626;--surface-bg:#fafaf9;--surface-card:#fff;--surface-card-alt:#fafaf9;--surface-border:#e7e5e4;--surface-hover:#f5f5f4;--surface-topbar:#ffffffd9;--surface-gradient:linear-gradient(135deg,#f0fdf4,#fefce8);--hero-gradient:linear-gradient(135deg,#f0fdf4,#fefce8);--hero-greeting:#15803d;--text-primary:#1c1917;--text-secondary:#57534e;--text-muted:#78716c;--text-faint:#a8a29e;--input-bg:#fff;--input-border:#d6d3d1;--shadow-xs:0 1px 2px 0 #0000000a;--shadow-sm:0 1px 3px 0 #00000014;--shadow-md:0 4px 6px -1px #00000014;--shadow-lg:0 10px 15px -3px #00000014;--shadow-xl:0 20px 25px -5px #0000001a;--shadow-2xl:0 25px 50px -12px #0000001f;--radius-xs:0.25rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition-fast:0.15s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu",sans-serif;--font-mono:ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Monaco,"Courier New",monospace}[data-theme=dark]{--earth-50:#1c1917;--earth-100:#292524;--earth-200:#44403c;--earth-300:#57534e;--earth-400:#78716c;--earth-500:#a8a29e;--earth-600:#d6d3d1;--earth-700:#e7e5e4;--earth-800:#f5f5f4;--earth-900:#fafaf9;--primary-50:#1f1a0e;--primary-100:#362d14;--primary-200:#4a3d1a;--primary-500:#d4a853;--primary-600:#d4a853;--primary-700:#e0be7a;--accent-50:#1f1a0e;--accent-100:#362d14;--accent-500:#d4a853;--accent-600:#c49a47;--success-50:#052e16;--warning-50:#431407;--danger-50:#450a0a;--surface-bg:#1e1e1e;--surface-card:#272727;--surface-card-alt:#2c2c2c;--surface-border:#3a3a3a;--surface-hover:#333;--surface-topbar:#1e1e1eeb;--surface-gradient:linear-gradient(135deg,#272727,#2c2518);--hero-gradient:linear-gradient(135deg,#252525,#2c2518);--hero-greeting:#d4a853;--text-primary:#e0ddd8;--text-secondary:#a39e97;--text-muted:#7a756f;--text-faint:#504b47;--input-bg:#2c2c2c;--input-border:#4a4a4a;--shadow-xs:0 1px 2px 0 #0003;--shadow-sm:0 1px 3px 0 #0000004d;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0000004d;--shadow-xl:0 20px 25px -5px #0006;--shadow-2xl:0 25px 50px -12px #00000080}body{background:#fafaf9}.text-primary,body{color:#1c1917;color:var(--text-primary)}.text-secondary{color:#57534e;color:var(--text-secondary)}.text-muted{color:#78716c;color:var(--text-muted)}.bg-primary{background-color:#16a34a;background-color:var(--primary-600)}.bg-secondary{background-color:#f5f5f4;background-color:var(--earth-100)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #16a34a;outline:2px solid var(--primary-600);outline-offset:2px}[data-theme=dark] .auth-button.primary,[data-theme=dark] .btn-primary,[data-theme=dark] .chore-btn-primary,[data-theme=dark] .chore-btn-success{background:#b8943f;border-color:#b8943f;color:#1e1e1e}[data-theme=dark] .auth-button.primary:hover,[data-theme=dark] .btn-primary:hover,[data-theme=dark] .chore-btn-primary:hover:not(:disabled),[data-theme=dark] .chore-btn-success:hover:not(:disabled){background:#d4a853;border-color:#d4a853}[data-theme=dark] .service-card:hover{border-color:#d4a853}[data-theme=dark] .nav-home-button:hover{color:#d4a853}[data-theme=dark] .comp-tab.active{border-bottom-color:#d4a853;color:#d4a853}[data-theme=dark] .amount-positive,[data-theme=dark] .positive{color:#10b981}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--earth-50);color:var(--earth-900);font-family:var(--font-sans)}code{font-family:var(--font-mono)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--surface-bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6}.App{align-items:stretch;background:var(--surface-gradient);display:flex;flex-direction:column;justify-content:flex-start;min-height:100vh;padding:70px 20px 20px}.hero-section{color:var(--text-primary);margin-bottom:3rem}.hero-title{font-size:3.5rem;font-weight:700;margin-bottom:1rem;text-shadow:none}.hero-subtitle{font-size:1.3rem;font-weight:400;margin-bottom:2rem}.services-grid{grid-gap:2rem;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));max-width:1000px;width:100%}.service-card{box-shadow:var(--shadow-md);color:var(--text-primary);padding:2rem}.service-card:hover{box-shadow:var(--shadow-xl);color:var(--text-primary);text-decoration:none;transform:translateY(-6px)}.service-icon{display:block;font-size:3rem;margin-bottom:1rem}.service-title{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1rem}.service-description{font-size:1rem}.footer{font-size:.9rem;margin-top:3rem}.top-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--surface-topbar);border-bottom:1px solid var(--surface-border);justify-content:space-between;left:0;padding:12px 20px;position:fixed;right:0;top:0;z-index:50}.top-bar,.top-bar-left,.top-bar-right{align-items:center;display:flex}.top-bar-right{gap:10px}.nav-home-button{background:none;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600;padding:6px 12px;transition:all .2s ease}.nav-home-button:hover{background:var(--primary-50);color:#16a34a}.account-info{background:var(--surface-card);border:2px solid var(--surface-border);border-radius:999px;color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600;margin-right:6px;padding:8px 16px;text-decoration:none;transition:border-color .15s}.account-info:hover{border-color:#3b82f6}.auth-button{align-items:center;border:2px solid var(--surface-border);border-radius:999px;cursor:pointer;display:inline-flex;font-weight:600;gap:8px;padding:.6rem 1.2rem;transition:all .2s ease}.auth-button.primary{background:#16a34a;border-color:#16a34a;box-shadow:var(--shadow-md);color:#fff}.auth-button.primary:hover{background:#15803d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.auth-button.ghost{background:var(--surface-card);border:2px solid var(--surface-border);color:var(--text-primary)}.auth-button.ghost:hover{background:var(--surface-hover);border-color:var(--input-border)}.auth-button svg{height:16px;width:16px}.auth-login-container{align-items:center;display:flex;justify-content:center;min-height:70vh;padding:2rem}.auth-login-card{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:16px;box-shadow:0 4px 24px #00000014;max-width:380px;padding:2.5rem 2rem;text-align:center;width:100%}.auth-login-logo{font-size:3rem;margin-bottom:.5rem}.auth-login-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:1.5rem;font-weight:700;margin:0 0 .35rem}.auth-login-subtitle{color:#78716c;color:var(--text-muted,#78716c);font-size:.9rem;margin:0 0 1.5rem}.auth-login-error{background:#fef2f2;border-radius:8px;color:#b91c1c;font-size:.85rem;margin-bottom:1rem;padding:.5rem .75rem}.auth-login-providers{align-items:center;display:flex;flex-direction:column;gap:.75rem}.auth-login-footer{color:#a8a29e;color:var(--text-muted,#a8a29e);font-size:.75rem;margin-bottom:0;margin-top:1.5rem}.auth-login-spinner{animation:auth-spin .6s linear infinite;border:3px solid #e7e5e4;border:3px solid var(--surface-border,#e7e5e4);border-radius:50%;border-top:3px solid #3b82f6;height:32px;margin:0 auto 1rem;width:32px}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-button--microsoft{background:#2f2f2f;border-color:#2f2f2f;color:#fff;font-size:.9rem;justify-content:center;width:280px}.auth-button--microsoft:hover{background:#1a1a1a}.auth-button--github{background:#24292e;border-color:#24292e;color:#fff;font-size:.9rem;justify-content:center;width:280px}.auth-button--github:hover{background:#1b1f23}.auth-google-wrapper{display:flex;justify-content:center}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.1rem}.services-grid{gap:1.5rem;grid-template-columns:1fr}.service-card{padding:1.5rem}.auth-button svg{height:14px;width:14px}}.app-header-nav{margin-bottom:.25rem;text-align:left}.back-button{background:var(--surface-card);border:2px solid var(--earth-200);border-radius:var(--radius-md);color:var(--earth-700);display:inline-block;font-size:.9rem;font-weight:600;padding:.5rem 1rem;text-decoration:none;transition:var(--transition-base)}.back-button:hover{background:var(--earth-100);border-color:var(--primary-300);color:var(--primary-700);text-decoration:none;transform:translateX(-2px)}.app-container{color:var(--earth-900);margin:0 auto;max-width:1000px;padding:32px 20px}.app-header{background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin-bottom:2rem;padding:32px;text-align:center}.app-header h1{color:var(--earth-900);font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.balance-card{background:linear-gradient(135deg,var(--primary-50) 0,var(--accent-50) 100%);border:2px solid var(--primary-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin-bottom:2rem;padding:2rem;text-align:center}.balance-card h2{color:var(--earth-700);font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:1rem;text-transform:uppercase}.balance{color:var(--primary-800);font-size:3rem;font-weight:800}.balance.positive{color:var(--success-600)}.balance.negative{color:var(--danger-600)}.add-transaction{background:var(--surface-card);border:2px solid var(--earth-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin-bottom:2rem;padding:2rem}.add-transaction h3{color:var(--earth-900);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.form-row{display:flex;flex-wrap:wrap;gap:1rem}.form-row button,.form-row input,.form-row select{background:var(--surface-card);border:2px solid var(--earth-300);border-radius:var(--radius-md);color:var(--earth-900);font-family:var(--font-sans);font-size:1rem;padding:.75rem 1rem;transition:var(--transition-base)}.form-row input::placeholder{color:var(--earth-400)}.form-row input:focus,.form-row select:focus{border-color:var(--primary-600);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-row input[type=text]{flex:2 1;min-width:200px}.form-row input[type=number],.form-row select{flex:1 1;min-width:120px}.form-row button{background:var(--primary-600);border:none;box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;font-weight:600;min-width:80px;transition:var(--transition-base)}.form-row button:hover{background:var(--primary-700);box-shadow:var(--shadow-md);transform:translateY(-2px)}.transactions-list{background:var(--surface-card);border:2px solid var(--earth-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:2rem}.transactions-list h3{color:var(--earth-900);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.transaction-item{align-items:center;background:var(--earth-50);border:1px solid var(--earth-200);border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:.75rem;padding:1rem;transition:var(--transition-base)}.transaction-item:hover{border-color:var(--primary-300);box-shadow:var(--shadow-sm)}.transaction-info{display:flex;flex-direction:column;gap:.25rem}.transaction-info .date{color:var(--earth-500);font-size:.85rem;font-weight:500}.transaction-info .description{color:var(--earth-900);font-weight:600}.transaction-info .category{background:var(--primary-100);border-radius:var(--radius-full);color:var(--primary-800);font-size:.85rem;font-weight:600;padding:.25rem .75rem;width:-webkit-fit-content;width:fit-content}.transaction-item .amount{font-size:1.2rem;font-weight:700}.transaction-item .amount.positive{color:var(--success-600)}.transaction-item .amount.negative{color:var(--danger-600)}@media (max-width:768px){.form-row{flex-direction:column}.form-row button,.form-row input,.form-row select{min-width:0;min-width:auto}.transaction-item{align-items:flex-start;flex-direction:column;gap:.5rem}.transaction-info{width:100%}.transaction-item .amount{align-self:flex-end}}.expense-tracker{margin:0 auto;max-width:1200px;padding:2rem}.expense-dashboard{grid-gap:1.5rem;display:grid;gap:1.5rem;margin-top:1.5rem}.expense-status-card{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:16px;padding:2rem;text-align:center}.expense-status-card h3{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem}.expense-status-card p{color:var(--text-muted);margin-bottom:1.5rem}.expense-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.expense-btn.primary{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));color:#fff}.expense-btn.primary:hover{box-shadow:0 4px 12px #16a34a4d;transform:translateY(-1px)}.expense-btn.primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.expense-btn.secondary{background:var(--surface-hover);border:1px solid var(--input-border);color:var(--text-secondary)}.expense-btn.secondary:hover{background:var(--surface-border)}.expense-upload-header{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.expense-upload-header h2{color:var(--text-primary);margin:0}.expense-period-selector{align-items:center;display:flex;gap:.75rem;margin-bottom:1.5rem}.expense-period-selector label{color:var(--text-secondary);font-weight:600}.expense-period-selector input{border:2px solid var(--surface-border);border-radius:8px;font-size:1rem;outline:none;padding:.5rem .75rem;transition:border-color .2s}.expense-period-selector input:focus{border-color:var(--primary-600)}.expense-dropzone{background:var(--surface-card-alt);border:2px dashed var(--input-border);border-radius:16px;cursor:pointer;padding:3rem;text-align:center;transition:all .2s ease}.expense-dropzone.drag-over,.expense-dropzone:hover{background:var(--primary-50);border-color:var(--primary-600)}.expense-dropzone-icon{display:block;font-size:3rem;margin-bottom:1rem}.expense-dropzone p{color:var(--text-secondary);font-size:1.1rem;margin:.25rem 0}.expense-dropzone-hint{color:var(--text-faint)!important;font-size:.9rem!important}.expense-loading{align-items:center;display:flex;flex-direction:column;gap:1rem}.expense-spinner{animation:spin .8s linear infinite;border:4px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);height:40px;width:40px}.expense-error{background:var(--danger-50);border:1px solid var(--danger-500);border-radius:8px;color:var(--danger-600);margin-top:1rem;padding:1rem}.expense-import-result{border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.expense-import-result.success{background:var(--success-50);border:1px solid var(--primary-200)}.expense-import-result h3{color:var(--success-700);margin:0 0 .5rem}.expense-import-result p{color:var(--success-600);margin:.25rem 0}.expense-preview{margin-top:1.5rem}.expense-preview-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.expense-preview-header h3{color:var(--text-primary);margin:0}.expense-bank-badge{color:var(--primary-600);font-size:.9rem;margin:.25rem 0 0}.expense-cardholder-section{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;margin-bottom:1rem;overflow:hidden}.expense-cardholder-header{align-items:center;background:var(--surface-hover);border-bottom:1px solid var(--surface-border);display:flex;justify-content:space-between;padding:1rem 1.5rem}.expense-cardholder-actions{align-items:center;display:flex;gap:.75rem}.expense-cardholder-header h4{color:var(--text-primary);margin:0}.expense-card-number{color:var(--text-faint);font-size:.85rem;font-weight:400}.expense-txn-count{color:var(--text-muted);font-size:.9rem}.expense-preview-table-wrapper{overflow-x:auto}.expense-preview-table{border-collapse:collapse;width:100%}.expense-preview-table td,.expense-preview-table th{border-bottom:1px solid var(--surface-hover);padding:.75rem 1rem;text-align:left}.expense-preview-table th{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.expense-preview-table tr:hover{background:var(--surface-hover)}.amount-col{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right!important}.expense-sum-row td{background:var(--surface-card-alt);border-top:2px solid var(--input-border);padding-top:.75rem}.expense-grand-total{align-items:center;background:var(--surface-hover);border:2px solid var(--input-border);border-radius:8px;display:flex;font-size:1.1rem;justify-content:space-between;margin-top:1rem;padding:1rem 1.5rem}.expense-grand-total-amount{font-feature-settings:"tnum";font-size:1.2rem;font-variant-numeric:tabular-nums;font-weight:700}@media (max-width:768px){.expense-tracker{padding:1rem}.expense-preview-header{flex-direction:column}.expense-upload-header{align-items:flex-start;flex-direction:column}}.expense-period-bar{align-items:center;display:flex;gap:1.5rem;justify-content:center;margin-bottom:1.5rem}.expense-period-bar h2{color:var(--text-primary);margin:0;min-width:200px;text-align:center;text-transform:capitalize}.expense-status-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.expense-status-card{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.expense-status-card.highlight{background:var(--accent-50);border-color:var(--accent-500)}.expense-status-icon{font-size:2rem}.expense-status-card h4{color:var(--text-primary);margin:0}.expense-status-card p{margin:.25rem 0 0}.expense-status-card .expense-btn{margin-left:auto}.expense-section{margin-bottom:2rem}.expense-section-title{color:var(--text-secondary);font-size:1.1rem;margin:0 0 .75rem}.expense-inline-select{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;font-size:.85rem;min-width:120px;padding:.35rem .5rem}.expense-inline-select:focus{border-color:var(--primary-600);outline:none}.expense-btn-sm{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.3rem .6rem}.expense-btn-sm.primary{background:var(--primary-600);color:#fff}.expense-btn-sm.primary:disabled{cursor:not-allowed;opacity:.4}.approved-row{opacity:.7}.expense-desc-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-cardholder-cell{color:var(--text-muted);font-size:.85rem;white-space:nowrap}.expense-empty{color:var(--text-muted);padding:3rem;text-align:center}.expense-link{background:none;border:none;color:var(--primary-600);cursor:pointer;font-size:inherit;text-decoration:underline}.expense-category-bar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.expense-new-category-form{align-items:center;display:flex;gap:.5rem}.expense-new-category-form input:not([type]),.expense-new-category-form input[type=text]{border:1px solid var(--input-border);border-radius:6px;font-size:.85rem;padding:.4rem .6rem}.expense-new-category-form input[type=color]{border:none;cursor:pointer;height:32px;width:32px}.suggested-row{background:var(--accent-50)}.expense-inline-select.suggested{background:var(--accent-50);border-color:var(--accent-500)}.expense-inconsistency-banner{background:var(--warning-50);border:2px solid var(--warning-500);border-radius:12px;margin-bottom:1rem;padding:1rem 1.5rem}.expense-inconsistency-banner h4{color:var(--accent-700);margin:0 0 .25rem}.expense-inconsistency-banner p{color:var(--text-muted);font-size:.85rem;margin:0 0 .75rem}.expense-inconsistency-item{align-items:center;border-top:1px solid var(--accent-200);display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;padding:.5rem 0}.expense-inconsistency-cat{align-items:center;background:var(--surface-card);border-radius:6px;display:inline-flex;font-size:.85rem;gap:.25rem;padding:.2rem .5rem}.expense-batch-list{display:flex;flex-direction:column;gap:.75rem}.expense-batch-item{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:1rem;justify-content:space-between;padding:1rem}.expense-batch-info{display:flex;flex-direction:column;font-size:.85rem;gap:.15rem}.expense-batch-info strong{font-size:.95rem}.expense-batch-meta{color:var(--text-faint);font-size:.8rem}.expense-batch-actions{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.expense-batch-actions label{color:var(--text-muted);font-size:.8rem}.expense-batch-period-input{border:1px solid var(--input-border);border-radius:6px;font-size:.85rem;padding:.3rem .5rem}.expense-alert-banner{align-items:center;background:var(--warning-50);border:2px solid var(--warning-500);border-radius:10px;display:flex;justify-content:space-between;padding:.75rem 1.25rem}.expense-alert-banner span{color:var(--accent-700);font-size:.95rem}.expense-charts{display:flex;flex-direction:column;gap:1.5rem}.expense-charts-empty{color:var(--text-faint);font-size:1.1rem;padding:3rem;text-align:center}.expense-cardholder-breakdown{margin-top:.5rem}.expense-section-heading{color:var(--text-secondary);font-size:1rem;font-weight:600;margin-bottom:.75rem}.expense-cardholder-cards{display:flex;flex-direction:column;gap:.5rem}.expense-cardholder-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;overflow:hidden}.expense-cardholder-card-header{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;padding:.75rem 1rem;text-align:left;width:100%}.expense-cardholder-card-header:hover{background:var(--surface-hover)}.cardholder-header-left{align-items:center;display:flex;gap:.75rem}.cardholder-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.cardholder-count{color:var(--text-faint);font-size:.8rem}.cardholder-header-right{align-items:center;display:flex;gap:.75rem}.cardholder-total{font-feature-settings:"tnum";color:var(--text-primary);font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700}.cardholder-bar-track{background:var(--surface-border);border-radius:2px;height:4px;margin:0 1rem .5rem;overflow:hidden}.cardholder-bar-fill{background:var(--primary-600);border-radius:2px;height:100%;transition:width .3s ease}.expense-ownership-section{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}@media (max-width:768px){.expense-ownership-section{grid-template-columns:1fr}}.expense-ownership-card{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;overflow:hidden}.expense-ownership-header{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;padding:.85rem 1rem;text-align:left;width:100%}.expense-ownership-header:hover{background:var(--surface-hover)}.ownership-header-left{align-items:center;display:flex;gap:.5rem}.ownership-icon{font-size:1.3rem}.ownership-label{color:var(--text-primary);font-size:.95rem;font-weight:600}.ownership-count{color:var(--text-faint);font-size:.75rem}.ownership-header-right{align-items:center;display:flex;gap:.5rem}.ownership-total{font-feature-settings:"tnum";font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:700}.ownership-chevron{color:var(--text-faint);font-size:.7rem}.expense-ownership-details{border-top:1px solid var(--surface-border);padding:.5rem 1rem .75rem}.ownership-detail-row{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;justify-content:space-between;padding:.3rem 0}.ownership-detail-count{color:var(--text-faint);font-size:.75rem}.ownership-detail-amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.stacked-tooltip{min-width:180px}.tooltip-breakdown{border-top:1px solid var(--surface-border);margin:.35rem 0;padding-top:.35rem}.tooltip-breakdown-row{display:flex;font-size:.8rem;gap:1rem;justify-content:space-between;padding:.1rem 0}.tooltip-cat-name{color:var(--text-secondary)}.tooltip-cat-amount{font-feature-settings:"tnum";color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.expense-summary-strip{display:flex;flex-wrap:wrap;gap:1rem}.expense-summary-item{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;flex:1 1;min-width:120px;padding:.75rem 1.25rem;text-align:center}.expense-summary-item.total{background:var(--primary-50);border-color:#86efac;border-color:var(--primary-300,#86efac)}.summary-label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.05em;margin-bottom:.2rem;text-transform:uppercase}.summary-value{color:var(--text-primary);display:block;font-size:1.25rem}.expense-charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}@media (max-width:900px){.expense-charts-grid{grid-template-columns:1fr}}.expense-chart-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:14px;padding:1.5rem}.expense-chart-card h3{color:var(--text-primary);font-size:1.1rem;margin:0 0 1rem}.expense-chart-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.expense-chart-header h3{margin:0}.expense-chart-tooltip{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;box-shadow:0 4px 12px #0000001a;padding:.5rem .75rem}.tooltip-title{color:var(--text-primary);font-size:.9rem;font-weight:600;margin:0 0 .15rem}.tooltip-amount{color:var(--primary-600);font-size:1.1rem;font-weight:700;margin:0}.tooltip-detail{color:var(--text-muted);font-size:.8rem;margin:0}.expense-pie-legend{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.75rem}.pie-legend-item{align-items:center;color:var(--text-secondary);display:inline-flex;font-size:.8rem;gap:.3rem}.pie-legend-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:10px;width:10px}.expense-mgmt-section{border-top:1px solid var(--surface-border);margin-top:.5rem}.expense-mgmt-toggle{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:1rem 0;text-align:left;width:100%}.expense-mgmt-toggle:hover{color:#16a34a}.expense-mgmt-summary{color:var(--text-faint);font-size:.85rem;font-weight:400;margin-left:auto}.expense-mgmt-content{display:flex;flex-direction:column;gap:1rem;padding:0 0 1rem}.expense-mgmt-actions{display:flex;flex-wrap:wrap;gap:.75rem}.settlement-btn{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important;font-size:.9rem!important;margin-left:auto;padding:.5rem 1.25rem!important}.settlement-btn:hover{transform:translateY(-1px)}.settlement{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.settlement-empty{color:var(--text-faint);padding:3rem;text-align:center}.settlement-result{align-items:center;border-radius:14px;display:flex;font-size:1.2rem;font-weight:700;gap:1rem;padding:1.25rem 1.5rem}.settlement-result.owes{background:var(--warning-50);border:2px solid var(--warning-500);color:var(--accent-700)}.settlement-result.settled{background:var(--success-50);border:2px solid var(--primary-300);color:var(--success-700)}.settlement-result-icon{font-size:1.5rem}.settlement-summary{display:flex;flex-wrap:wrap;gap:1rem}.settlement-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;flex:1 1;min-width:140px;padding:1rem 1.5rem;text-align:center}.settlement-card-label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.05em;margin-bottom:.25rem;text-transform:uppercase}.settlement-card-value{color:var(--text-primary);display:block;font-size:1.3rem;font-weight:700}.settlement-persons{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:1fr 1fr}@media (max-width:700px){.settlement-persons{grid-template-columns:1fr}}.settlement-person-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:14px;padding:1.25rem}.settlement-person-card h3{color:var(--text-primary);font-size:1.1rem;margin:0 0 .75rem}.settlement-detail-table{border-collapse:collapse;font-size:.9rem;width:100%}.settlement-detail-table td{padding:.35rem 0}.settlement-detail-table .amount-col{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.settlement-detail-table .detail-sub td{color:var(--text-faint);font-size:.8rem}.settlement-detail-table .detail-separator td{border-top:1px solid var(--surface-border);font-weight:600;padding-top:.5rem}.settlement-detail-table .detail-total td{border-top:2px solid var(--input-border);font-size:1rem;font-weight:700;padding-top:.5rem}.positive{color:var(--success-500)}.negative{color:var(--danger-600)}.settlement-contributions{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:14px;padding:1.25rem}.settlement-contrib-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.settlement-contrib-header h3{font-size:1rem;margin:0}.settlement-contrib-form{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.75rem}.settlement-contrib-form input,.settlement-contrib-form select{border:1px solid var(--input-border);border-radius:6px;font-size:.85rem;padding:.4rem .6rem}.settlement-contrib-form input[type=number]{width:100px}.settlement-contrib-list{display:flex;flex-direction:column;gap:.5rem}.settlement-contrib-item{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;display:flex;font-size:.85rem;justify-content:space-between;padding:.5rem .75rem}.settlement-contrib-item>div{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.contrib-badge{border-radius:4px;font-size:.75rem;padding:.15rem .4rem}.contrib-badge.monthly{background:var(--primary-50);color:var(--primary-600)}.contrib-badge.deposit{background:var(--warning-50);color:var(--accent-700)}.contrib-desc,.contrib-period{color:var(--text-faint);font-size:.8rem}.contrib-amount-actions{align-items:center;display:flex;gap:.5rem}.contrib-amount{font-size:.95rem;font-weight:600}.settlement-contrib-empty{color:var(--text-faint);font-size:.85rem;padding:.5rem 0}.chore-app{margin:0 auto;max-width:900px;padding:0 1rem 2rem}.chore-tabs{border-bottom:2px solid var(--surface-border);display:flex;gap:0;margin-bottom:1.5rem}.chore-tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-muted);cursor:pointer;font-size:.95rem;padding:.75rem 1.25rem;transition:all .2s}.chore-tab:hover{background:var(--surface-card-alt);color:var(--text-primary)}.chore-tab.active{border-bottom-color:var(--primary-600);color:var(--primary-600);font-weight:600}.chore-tab-count{background:var(--surface-border);border-radius:10px;color:var(--text-secondary);font-size:.75rem;margin-left:.4rem;padding:.1rem .5rem}.chore-tab.active .chore-tab-count{background:var(--primary-100);color:var(--primary-600)}.chore-message{animation:choreSlideIn .3s ease-out;border-radius:8px;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.chore-message-success{background:var(--success-50);color:var(--success-700)}.chore-message-error{background:var(--danger-50);color:var(--danger-600)}@keyframes choreSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.chore-board-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.chore-filters{display:flex;gap:.25rem}.chore-filter-btn{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.4rem .8rem;transition:all .15s}.chore-filter-btn:hover{background:var(--surface-card-alt)}.chore-filter-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.chore-loading{color:var(--text-muted);padding:2rem;text-align:center}.chore-spinner{animation:choreSpin .6s linear infinite;border:3px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);display:inline-block;height:24px;margin-right:.5rem;vertical-align:middle;width:24px}@keyframes choreSpin{to{transform:rotate(1turn)}}.chore-empty{color:var(--text-muted);padding:3rem 1rem;text-align:center}.chore-empty-icon{display:block;font-size:3rem;margin-bottom:.5rem}.chore-overdue-banner{background:var(--danger-50);border:1px solid var(--danger-500);border-radius:8px;color:var(--danger-600);font-weight:600;margin-bottom:1rem;padding:.75rem 1rem}.chore-section{margin-bottom:1.5rem}.chore-section-header{align-items:center;background:none;border:none;border-bottom:1px solid var(--surface-border);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:space-between;padding:.6rem .5rem;width:100%}.chore-section-arrow{color:var(--text-faint)}.chore-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.chore-card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:10px;transition:all .15s}.chore-card:hover{border-color:var(--input-border);box-shadow:0 2px 8px #0000000a}.chore-card-overdue{border-left:4px solid var(--danger-500)}.chore-card-due-soon{border-left:4px solid var(--warning-500)}.chore-card-completed{opacity:.7}.chore-card-header{cursor:pointer;padding:.75rem 1rem}.chore-card-title-row{align-items:center;display:flex;gap:.5rem}.chore-card-icon{font-size:1.2rem}.chore-card-title{flex:1 1;font-size:.95rem;font-weight:600}.chore-card-done{color:var(--text-faint);text-decoration:line-through}.chore-card-meta{display:flex;gap:1rem;margin-top:.3rem;padding-left:1.7rem}.chore-meta-item{color:var(--text-muted);font-size:.8rem}.chore-meta-overdue{color:var(--danger-500);font-weight:600}.chore-meta-due-soon{color:var(--warning-500)}.chore-card-body{border-top:1px solid var(--surface-hover);padding:0 1rem 1rem}.chore-card-description{color:var(--text-secondary);font-size:.85rem;margin:.5rem 0}.chore-checklist{margin:.75rem 0}.chore-checklist-progress{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:.5rem;margin-bottom:.5rem}.chore-progress-bar{background:var(--surface-border);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.chore-progress-bar-small{height:4px;margin-bottom:.25rem}.chore-progress-fill{background:var(--primary-600);border-radius:3px;height:100%;transition:width .3s ease}.chore-checklist-item{align-items:center;display:flex;font-size:.85rem;gap:.5rem;padding:.3rem 0}.chore-checklist-item label{align-items:center;cursor:pointer;display:flex;flex:1 1;gap:.5rem}.chore-checklist-item.checked span{color:var(--text-faint);text-decoration:line-through}.chore-checklist-done-info{color:var(--text-faint);font-size:.7rem;margin-left:auto;white-space:nowrap}.chore-checklist-item-small{font-size:.78rem;padding:.15rem 0}.chore-add-item{display:flex;gap:.25rem;margin-top:.5rem}.chore-add-item-input{border:1px solid var(--input-border);border-radius:6px;flex:1 1;font-size:.85rem;padding:.4rem .6rem}.chore-card-actions{border-top:1px solid var(--surface-hover);display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding-top:.75rem}.chore-btn{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:all .15s}.chore-btn:disabled{cursor:not-allowed;opacity:.5}.chore-btn-primary{background:var(--primary-600);color:#fff}.chore-btn-primary:hover:not(:disabled){background:var(--primary-700)}.chore-btn-secondary{background:var(--surface-hover);border:1px solid var(--input-border);color:var(--text-secondary)}.chore-btn-secondary:hover:not(:disabled){background:var(--surface-border)}.chore-btn-success{background:var(--primary-600);color:#fff}.chore-btn-success:hover:not(:disabled){background:var(--primary-700)}.chore-btn-danger{background:var(--danger-50);color:var(--danger-600)}.chore-btn-danger:hover:not(:disabled){background:var(--danger-50);border:1px solid var(--danger-500)}.chore-btn-small{font-size:.8rem;padding:.3rem .6rem}.chore-btn-tiny{font-size:.75rem;padding:.15rem .4rem}.chore-badge{background:var(--surface-hover);border-radius:4px;color:var(--text-secondary);font-size:.7rem;padding:.1rem .4rem}.chore-badge-recurring{background:var(--primary-50);color:var(--primary-600)}.chore-badge-inactive{background:var(--danger-50);color:var(--danger-600)}.chore-badge-planned{background:var(--success-50);color:var(--success-700);font-size:.75rem}.chore-goal-picker-wrapper{display:inline-block;position:relative}.chore-goal-picker{background:var(--surface-card);border:1px solid var(--input-border);border-radius:8px;bottom:100%;box-shadow:0 4px 16px #0000001f;left:0;min-width:140px;overflow:hidden;position:absolute;z-index:100}.chore-goal-picker-item{background:none;border:none;cursor:pointer;display:block;font-size:.85rem;padding:.5rem .75rem;text-align:left;width:100%}.chore-goal-picker-item:hover{background:var(--surface-hover)}.goal-board{padding:0}.goal-board-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.goal-board-header h3{margin:0}.goal-view-toggle{display:flex;gap:.25rem}.goal-buckets{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:1.5rem}.goal-bucket{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;min-height:120px;padding:.75rem}.goal-bucket-empty{opacity:.7}.goal-bucket-header{border-bottom:1px solid var(--surface-border);display:flex;font-size:.9rem;font-weight:600;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.4rem}.goal-bucket-count{background:var(--surface-border);border-radius:8px;color:var(--text-secondary);font-size:.7rem;padding:.1rem .4rem}.goal-bucket-items{display:flex;flex-direction:column;gap:.4rem}.goal-bucket-placeholder{color:var(--text-faint);font-size:.8rem;padding:1rem 0;text-align:center}.goal-item{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;padding:.5rem}.goal-item-overdue{background:var(--danger-50);border-left:3px solid var(--danger-500)}.goal-item-header{display:flex;flex-direction:column;gap:.15rem}.goal-item-title{font-size:.85rem;font-weight:500}.goal-item-user{color:var(--text-muted);font-size:.75rem}.goal-overdue-badge{color:var(--danger-500);font-size:.7rem;font-weight:600}.goal-item-checklist{margin:.3rem 0}.goal-item-actions{display:flex;gap:.25rem;margin-top:.3rem}.goal-unplanned{border-top:2px solid var(--surface-border);padding-top:1rem}.goal-unplanned h4{margin:0 0 .25rem}.goal-unplanned-hint{color:var(--text-faint);font-size:.8rem;margin:0 0 .5rem}.goal-unplanned-list{display:flex;flex-direction:column;gap:.3rem}.goal-unplanned-item{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:6px;display:flex;font-size:.85rem;justify-content:space-between;padding:.4rem .6rem}.chore-modal-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.chore-modal{background:var(--surface-card);border-radius:12px;box-shadow:0 20px 40px #00000026;max-height:85vh;max-width:520px;overflow-y:auto;width:100%}.chore-modal-header{align-items:center;border-bottom:1px solid var(--surface-border);display:flex;justify-content:space-between;padding:1rem 1.25rem}.chore-modal-header h3{margin:0}.chore-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.2rem;padding:.25rem}.chore-modal-form{padding:1.25rem}.chore-form-group{margin-bottom:1rem}.chore-form-group label{color:var(--text-secondary);display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem}.chore-form-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.chore-input,.chore-select,.chore-textarea{border:1px solid var(--input-border);border-radius:6px;box-sizing:border-box;font-family:inherit;font-size:.9rem;padding:.5rem .75rem;width:100%}.chore-input:focus,.chore-select:focus,.chore-textarea:focus{border-color:var(--primary-600);box-shadow:0 0 0 2px #16a34a26;outline:none}.chore-input-icon{font-size:1.2rem;text-align:center;width:60px}.chore-modal-actions{border-top:1px solid var(--surface-border);display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem}.chore-checklist-builder{display:flex;flex-direction:column;gap:.3rem}.chore-checklist-builder-item{background:var(--surface-card-alt);border-radius:4px;font-size:.85rem;padding:.3rem .5rem}.chore-checklist-builder-item,.chore-templates-header{align-items:center;display:flex;justify-content:space-between}.chore-templates-header{margin-bottom:1rem}.chore-templates-header h3{margin:0}.chore-template-list{display:flex;flex-direction:column;gap:.5rem}.chore-template-card{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;display:flex;justify-content:space-between;padding:.75rem 1rem}.chore-template-inactive{opacity:.6}.chore-template-info{align-items:center;display:flex;gap:.75rem}.chore-template-info div{display:flex;flex-direction:column;gap:.15rem}.chore-template-frequency{color:var(--text-muted);font-size:.8rem}.chore-template-checklist-count{color:var(--text-faint);font-size:.75rem}.chore-template-actions{display:flex;gap:.3rem}.chore-settings{display:flex;flex-direction:column;gap:2rem}.chore-settings-section{border:1px solid var(--surface-border);border-radius:10px;padding:1rem}.chore-settings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.chore-settings-header h3{margin:0}.chore-settings-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.chore-settings-list{display:flex;flex-direction:column;gap:.3rem}.chore-settings-item{align-items:center;border-bottom:1px solid var(--surface-hover);display:flex;font-size:.9rem;justify-content:space-between;padding:.5rem .6rem}.chore-settings-item-type{color:var(--text-faint);font-size:.75rem;margin:0 .5rem}@media (max-width:768px){.chore-board-header{align-items:stretch;flex-direction:column}.chore-filters{flex-wrap:wrap}.chore-form-row,.goal-buckets{grid-template-columns:1fr}.chore-tabs{overflow-x:auto}.chore-tab{font-size:.85rem;padding:.6rem .8rem;white-space:nowrap}.chore-settings-form{flex-direction:column}}.compensation-app{margin:0 auto;max-width:1200px;padding:0 1rem 2rem}.comp-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:1.5rem}.comp-controls-right{align-items:center;display:flex;gap:12px}.person-switcher{display:flex;gap:8px}.person-btn{background:var(--surface-card);border:2px solid var(--surface-border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-weight:500;padding:8px 20px;transition:all .2s}.person-btn.active{background:var(--surface-hover);border-color:#3b82f6;color:#2563eb}.person-btn:hover{border-color:#93c5fd}.currency-toggle{border:1px solid var(--input-border);border-radius:8px;display:flex;overflow:hidden}.currency-btn{background:var(--surface-card-alt);border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:6px 14px;transition:all .2s}.currency-btn.active{background:#3b82f6;color:#fff}.year-selector{align-items:center;background:var(--surface-card-alt);border:1px solid var(--input-border);border-radius:8px;display:flex;gap:8px;padding:4px}.year-selector button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:4px 8px}.year-selector button:hover{color:#3b82f6}.year-selector span{color:var(--text-primary);font-weight:600;min-width:50px;text-align:center}.overview-controls{align-items:center;display:flex;gap:12px;margin-bottom:20px}.projected-toggle{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:600;padding:6px 14px;transition:all .2s ease}.projected-toggle:hover{border-color:#3b82f6}.projected-toggle.active{background:var(--primary-50);border-color:var(--primary-600);color:var(--primary-600)}.total-comp-card{background:var(--surface-card);border:2px solid var(--primary-600);border-radius:16px;margin-bottom:20px;padding:24px 28px;text-align:center}.total-comp-label{align-items:center;color:var(--text-muted);display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;margin-bottom:4px}.actual-tag{background:var(--accent-50);border-radius:999px;color:var(--accent-600);font-size:.7rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.total-comp-value{color:var(--text-primary);font-size:2.2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.total-comp-breakdown{color:var(--text-secondary);display:flex;font-size:.85rem;font-weight:500;gap:20px;justify-content:center}.stock-price-banner{align-items:center;background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:10px;display:flex;gap:16px;margin-bottom:16px;padding:12px 20px}.stock-symbol{color:#3b82f6;font-size:1.1rem;font-weight:700}.stock-price{color:var(--text-primary);font-size:1.2rem;font-weight:600}.stock-price-nok{color:var(--text-muted);font-size:.95rem}.comp-tabs{border-bottom:2px solid var(--surface-border);display:flex;gap:0;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:0}.comp-tab{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:var(--text-muted);cursor:pointer;display:flex;font-size:.85rem;gap:4px;margin-bottom:-2px;padding:.6rem .75rem;transition:all .2s;white-space:nowrap}.comp-tab.active{border-bottom-color:#3b82f6;color:#3b82f6;font-weight:600}.comp-tab:hover{background:var(--surface-card-alt);color:var(--text-primary)}.tab-icon{font-size:1rem}.comp-loading{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:16px;padding:60px 40px;text-align:center}.loading-spinner{animation:spin .8s linear infinite;border:4px solid var(--surface-border);border-radius:50%;border-top:4px solid #6366f1;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.comp-error{align-items:center;background:var(--danger-50);border:1px solid var(--danger-500);border-radius:8px;color:var(--danger-600);display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:16px;padding:10px 16px}.comp-error button{background:none;border:none;color:var(--danger-600);cursor:pointer;font-size:1rem;padding:0 4px}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.card-label{color:var(--text-muted);font-size:.85rem;margin-bottom:6px}.card-value{color:var(--text-primary);font-size:1.4rem;font-weight:700}.card-sub{color:var(--text-faint);font-size:.85rem;margin-top:4px}.quarterly-breakdown{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;margin-bottom:24px;padding:20px}.quarterly-breakdown h3{color:var(--text-primary);margin-bottom:16px}.vesting-timeline{padding:0}.vesting-timeline h3{color:var(--text-primary);margin-bottom:16px}.vesting-legend{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;gap:6px}.legend-dot{border-radius:50%;height:12px;width:12px}.timeline-year{margin-bottom:24px}.timeline-year-label{border-bottom:1px solid var(--surface-border);color:var(--text-muted);font-size:1rem;margin-bottom:12px;padding-bottom:6px}.timeline-events{grid-gap:8px;display:grid;gap:8px}.timeline-event{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-left:4px solid #3b82f6;border-radius:8px;padding:12px 16px}.timeline-event.past{opacity:.85}.timeline-event.future{border-style:solid solid solid dashed;opacity:.6}.event-date{color:var(--text-secondary);font-size:.9rem;font-weight:500;min-width:80px}.event-details{flex:1 1}.event-shares{color:var(--text-primary);font-weight:600}.event-value{color:var(--success-500)}.event-grant{font-size:.8rem;font-weight:500}.event-badge{border-radius:12px;font-size:.75rem;padding:2px 8px}.event-badge.actual{background:var(--primary-100);color:var(--primary-600)}.event-badge.projected{background:var(--surface-hover);color:#1e40af}.stock-accumulation h3{color:var(--text-primary);margin-bottom:16px}.accumulation-panels{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.accumulation-panel{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;padding:20px}.accumulation-panel h4{color:var(--text-muted);font-size:.9rem;letter-spacing:.05em;margin-bottom:12px;text-transform:uppercase}.panel-stats{grid-gap:10px;display:grid;gap:10px}.stat{align-items:center;display:flex;justify-content:space-between}.stat-label{color:var(--text-muted);font-size:.85rem}.stat-value{color:var(--text-primary)}.stat.highlight .stat-value{color:#3b82f6;font-size:1.2rem}.accumulation-chart{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;padding:20px}.espp-tracker{padding:0}.espp-enrollment-section{border-bottom:2px solid var(--surface-border);margin-bottom:2rem;padding-bottom:1.5rem}.espp-purchases-section{margin-top:1rem}.espp-current-enrollment{align-items:center;background:var(--primary-50);border:1px solid var(--primary-200);border-radius:10px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;padding:12px 16px}.enrollment-badge.active{color:var(--success-500);font-size:.85rem;font-weight:600}.espp-no-enrollment{color:var(--text-muted);font-style:italic;padding:12px 0}.enrollment-history{margin-top:12px}.enrollment-history h4{color:var(--text-secondary);font-size:.9rem;margin-bottom:8px}.active-row{background:var(--primary-50)}.espp-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.espp-header h3{color:var(--text-primary)}.espp-summary{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:16px}.espp-form,.espp-summary{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;margin-bottom:16px}.espp-form{padding:20px}.espp-header-actions{align-items:center;display:flex;gap:8px}.espp-generate-panel{background:var(--surface-card-alt);border:2px solid var(--primary-200);border-radius:12px;margin-bottom:20px;padding:20px}.espp-generate-panel h4{color:var(--text-primary);font-size:1.05rem;margin:0 0 8px}.generate-description{color:var(--text-muted);font-size:.85rem;line-height:1.5;margin:0 0 16px}.generate-empty{color:var(--text-muted);font-style:italic;padding:20px 0;text-align:center}.generate-table .gen-input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.85rem;padding:6px 8px;text-align:right;width:100px}.generate-table .gen-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px #22c55e26;outline:none}.generate-table .gen-input-sm{width:80px}.generate-table .row-ready{background:var(--primary-50)}.generate-table .center-cell{text-align:center}.generate-hint{color:var(--text-faint);font-size:.8rem;font-style:italic;margin:8px 0 16px}.auto-fetch-hint{color:var(--text-muted);display:block;font-size:.75rem;margin-top:4px}.generate-actions{align-items:center;display:flex;gap:12px}.stock-sales{display:flex;flex-direction:column;gap:20px}.sales-summary-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.summary-card{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px}.summary-card h4{color:var(--text-primary);font-size:1rem;margin:0 0 12px}.holdings-card{border-color:var(--primary-200)}.realized-card{border-color:var(--surface-border)}.summary-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.summary-stats .stat{align-items:flex-start;flex-direction:column;gap:2px}.summary-stats .stat-value{font-size:.9rem;word-break:break-word}.gain-pct{font-size:.75rem;font-weight:400;opacity:.7}.notes-cell{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-message{color:var(--text-muted);font-style:italic;padding:40px 20px;text-align:center}.espp-chart-section{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;margin-bottom:20px;padding:20px}.espp-chart-section h4{color:var(--text-primary);font-size:1rem;margin-bottom:16px}.espp-totals{grid-gap:16px;border-top:1px solid var(--surface-border);display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:20px;padding-top:16px}.espp-total-item{display:flex;flex-direction:column;gap:2px}.espp-total-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.espp-total-value{color:var(--text-primary);font-size:1.15rem;font-weight:700}.espp-total-sub{color:var(--text-faint);font-size:.8rem}.espp-table-container{overflow-x:auto}.espp-table{background:var(--surface-card);border:1px solid var(--surface-border);border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.espp-table th{background:var(--surface-card-alt);border-bottom:2px solid var(--surface-border);color:var(--text-muted);font-size:.8rem;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.espp-table td{border-bottom:1px solid var(--surface-hover);color:var(--text-secondary);padding:10px 16px}.espp-table tr:hover td{background:var(--surface-card-alt)}.empty-cell{color:var(--text-faint);padding:24px!important;text-align:center}.profile-form{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;margin-bottom:20px;padding:24px}.profile-form h3{color:var(--text-primary);margin-bottom:16px}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:16px}.form-group{gap:4px}.form-group.full-width{grid-column:1/-1}.form-group label{color:var(--text-muted);font-size:.85rem}.form-group input,.form-group select,.form-group textarea{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.9rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.form-hint{color:var(--text-faint);font-size:.8rem}.auto-fetched-info{background:var(--primary-50);border:1px solid var(--primary-200);border-radius:8px;color:var(--primary-600);font-size:.9rem;margin-bottom:12px;padding:8px 12px}.form-actions{gap:8px}.sign-on-section{border-top:1px solid var(--surface-border);margin-top:1rem;padding-top:.75rem}.btn-toggle{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.95rem;font-weight:600;padding:4px 0}.btn-toggle:hover{color:var(--text-primary)}.sign-on-section .form-grid{margin-top:.75rem}.event-tag.sign-on{background:var(--accent-50);border-radius:4px;color:var(--accent-700);font-size:.7rem;font-weight:600;padding:1px 6px}.comp-onboarding{margin:0 auto;max-width:700px}.onboarding-hero{margin-bottom:1rem;padding:2rem 1rem;text-align:center}.onboarding-icon{display:block;font-size:3rem;margin-bottom:.75rem}.onboarding-hero h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem}.onboarding-hero p{color:var(--text-muted);font-size:1rem;line-height:1.5}.onboarding-reassurance{color:var(--text-faint);font-size:.9rem;font-style:italic;margin-top:8px}.onboarding-steps{gap:0;margin-bottom:24px}.onboarding-steps,.step-dot{align-items:center;display:flex;justify-content:center}.step-dot{background:var(--surface-border);border-radius:50%;color:var(--text-muted);font-size:.85rem;font-weight:700;height:32px;transition:all .2s;width:32px}.step-dot.active{background:#6366f1;color:#fff}.step-line{background:var(--surface-border);height:3px;width:48px}.skip-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;display:block;font-size:.95rem;margin:16px auto 0;padding:8px 16px}.skip-btn:hover{color:#3b82f6}.btn-primary{background:#3b82f6;border-radius:8px;font-weight:500;padding:8px 20px}.btn-primary:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f64d}.btn-secondary{background:var(--surface-hover);border:1px solid var(--input-border);border-radius:8px;color:var(--text-secondary);padding:8px 20px}.btn-secondary:hover{background:var(--surface-border)}.btn-icon{background:none;border:none;cursor:pointer;font-size:1rem;padding:4px}.comp-list-section{border-bottom:2px solid var(--surface-border);margin-bottom:2rem;padding-bottom:1.5rem}.comp-list-section:last-child{border-bottom:none}.comp-list-table{overflow-x:auto}.comp-table{background:var(--surface-card);border:1px solid var(--surface-border);border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.comp-table th{background:var(--surface-card-alt);border-bottom:2px solid var(--surface-border);color:var(--text-muted);font-size:.8rem;letter-spacing:.05em;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.comp-table td{border-bottom:1px solid var(--surface-hover);color:var(--text-secondary);font-size:.9rem;padding:10px 14px}.comp-table tr:hover td{background:var(--surface-card-alt)}.comp-table .year-cell{color:#3b82f6;font-size:1rem;font-weight:700}.comp-table .amount-cell{color:var(--text-primary);font-weight:600}.comp-table .notes-cell{color:var(--text-faint);font-style:italic;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-table .actions-cell{text-align:right;white-space:nowrap}.comp-table .empty-cell{color:var(--text-faint);font-style:italic;padding:24px!important;text-align:center}.comp-year-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;margin-bottom:12px;padding:16px 20px}.comp-year-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.comp-year-header h3{color:var(--text-primary);font-size:1.15rem;margin:0}.comp-year-actions{display:flex;gap:4px}.comp-year-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.comp-year-item{display:flex;flex-direction:column;gap:2px}.comp-item-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.comp-item-value{color:var(--text-primary);font-size:1.1rem;font-weight:700}.comp-item-sub{color:var(--text-faint);font-size:.8rem}.comp-year-notes{border-top:1px solid var(--surface-border);color:var(--text-muted);font-size:.85rem;font-style:italic;margin-top:10px;padding-top:8px}.empty-state{padding:24px}.level-badge{background:var(--surface-hover);color:#8b5cf6;font-weight:700}.current-badge,.level-badge{border-radius:6px;font-size:.85rem;padding:2px 8px}.current-badge{color:var(--success-600);font-weight:600}.current-badge,.current-row{background:var(--primary-50)}.onboarding-step-desc{color:var(--text-muted);font-size:.95rem;margin:-4px 0 16px}.type-badge{border-radius:10px;font-size:.75rem;font-weight:600;padding:2px 8px}.type-badge.regular{background:var(--surface-hover);color:#1e40af}.type-badge.sign-on{background:var(--accent-50);color:var(--accent-700)}.sign-on-row{background:var(--warning-50)}.profiles-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.profiles-header h2{color:var(--text-primary)}.profiles-list{grid-gap:12px;display:grid;gap:12px}.basepay-section{border-bottom:2px solid var(--surface-border);margin-bottom:2rem;padding-bottom:1.5rem}.comp-profiles-section{margin-top:1rem}.basepay-list{grid-gap:10px;display:grid;gap:10px}.basepay-card{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:12px;display:flex;gap:16px;padding:14px 16px}.basepay-card:hover{border-color:var(--input-border);box-shadow:0 2px 8px #0000000a}.basepay-level{background:var(--surface-hover);border-radius:8px;color:#8b5cf6;font-size:1.1rem;font-weight:700;min-width:48px;padding:6px 10px;text-align:center}.basepay-details{flex:1 1}.basepay-salary{color:var(--text-primary);font-size:1.05rem;font-weight:600}.basepay-date{color:var(--text-muted);font-size:.85rem}.empty-state{font-style:italic;padding:12px 0}.profile-card{align-items:flex-start;background:var(--surface-card);border-radius:12px;gap:16px;padding:16px}.profile-card:hover{border-color:var(--input-border);box-shadow:0 2px 8px #0000000a}.profile-year{color:#3b82f6;font-size:1.5rem;font-weight:700;min-width:60px}.profile-details{grid-gap:4px;color:var(--text-secondary);display:grid;flex:1 1;font-size:.9rem;gap:4px}.profile-notes{color:var(--text-faint);font-style:italic;margin-top:4px}.profile-actions{display:flex;gap:8px}.empty-state{color:var(--text-faint)}.empty-state p{margin-bottom:16px}@media (max-width:768px){.comp-controls{align-items:stretch;flex-direction:column}.comp-controls-right,.person-switcher{justify-content:center}.summary-cards{grid-template-columns:1fr 1fr}.accumulation-panels,.form-grid{grid-template-columns:1fr}.comp-tabs{gap:0}.comp-tab{font-size:.8rem;padding:8px 12px}.tab-label{display:none}.tab-icon{font-size:1.3rem}}.property-manager{background:var(--earth-50);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;margin:0 auto;min-height:100vh;padding:32px 40px}.header{background:linear-gradient(135deg,var(--primary-600) 0,var(--primary-700) 100%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:40px;overflow:hidden;padding:40px 48px;position:relative}.header:before{background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:400px;pointer-events:none;position:absolute;right:0;top:0;width:400px}.header-content{align-items:center;display:flex;gap:24px;justify-content:space-between;position:relative;z-index:1}.header-title{flex:1 1}.header h1{color:#fff;font-size:36px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px;text-shadow:0 2px 4px #0000001a}.header-subtitle{color:#ffffffe6;font-size:16px;font-weight:400;letter-spacing:.01em;margin:0}.add-button{align-items:center;background:var(--surface-card);border:none;border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;color:var(--primary-700);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;font-weight:600;gap:8px;padding:14px 28px;transition:all .2s ease;white-space:nowrap}.add-icon{font-size:20px;font-weight:700;line-height:1}.add-button:hover{background:var(--earth-50);box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.add-button:active{transform:translateY(0)}.loading{background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);color:var(--earth-600);font-size:18px;padding:60px 20px;text-align:center}.error{background:var(--danger-50);border:2px solid var(--danger-500);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);font-size:16px;font-weight:500;padding:20px 24px;text-align:center}.add-form-container{background:var(--surface-card);border:1px solid var(--earth-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:20px 24px}.add-form-container h2{border-bottom:2px solid var(--earth-200);color:var(--earth-900);font-size:18px;font-weight:700;margin-bottom:16px;margin-top:0;padding-bottom:12px}.add-form{display:flex;flex-direction:column;gap:16px}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column}.form-group label{color:var(--earth-600);font-size:12px;letter-spacing:.02em;margin-bottom:4px}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface-card);border:1px solid var(--earth-300);border-radius:var(--radius-md);color:var(--earth-900);font-family:inherit;font-size:14px;padding:8px 12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-600);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--earth-400)}.submit-button{align-self:flex-start;background:var(--success-600);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s ease}.submit-button:hover{background:var(--success-700);box-shadow:var(--shadow-md);transform:translateY(-1px)}.properties-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr;width:100%}.no-properties{border:2px dashed var(--earth-300);border-radius:var(--radius-xl);color:var(--earth-500);font-size:18px;grid-column:1/-1;padding:80px 20px;text-align:center}.no-properties,.property-card{background:var(--surface-card)}.property-card{border:1px solid var(--earth-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:28px;position:relative;transition:all .3s ease}.property-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-xl);transform:translateY(-4px)}.property-panels{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:20px}.panel{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:var(--radius-lg);min-width:0;overflow:hidden;padding:20px}.panel-mortgage{grid-column:1/-1}.panel-title{border-bottom:2px solid var(--primary-200);color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:16px;padding-bottom:8px}.panel-header-row{align-items:center;display:flex;justify-content:space-between}.panel-header-row .panel-title{border-bottom:none;margin-bottom:0;padding-bottom:0}.panel-header-row{border-bottom:2px solid var(--primary-200);margin-bottom:16px;padding-bottom:8px}.rental-chip{align-items:center;background:var(--surface-card);border:1px solid var(--earth-200);border-radius:20px;color:var(--earth-400);cursor:pointer;display:flex;font-size:12px;gap:6px;padding:4px 10px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.rental-chip:hover{border-color:var(--primary-300);color:var(--earth-600)}.rental-chip input{accent-color:var(--primary-500);cursor:pointer;height:14px;width:14px}.rental-chip input:checked~span{color:var(--primary-600);font-weight:600}.rental-chip:has(input:checked){background:var(--primary-50);border-color:var(--primary-300)}.panel-mortgage{border-color:var(--primary-200)}.panel-rental{border-color:var(--accent-200,var(--earth-300))}.icon-btn.graph-toggle{cursor:pointer;opacity:.4;transition:all .2s ease}.icon-btn.graph-toggle.active{background:var(--primary-50);border-color:var(--primary-300);opacity:1}.card-header-bar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:0}.card-header-actions{display:flex;flex-shrink:0;gap:6px}.icon-btn{align-items:center;background:var(--surface-card);border:1px solid var(--earth-200);border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:16px;height:36px;justify-content:center;transition:all .2s ease;width:36px}.icon-btn:hover{background:var(--earth-50);border-color:var(--earth-400);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.icon-btn.delete-btn:hover{background:var(--danger-50);border-color:var(--danger-300)}.property-header{align-items:center;display:flex;gap:10px;min-width:0}.property-header h3{color:var(--earth-900);font-size:20px;font-weight:700;line-height:1.3;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-type{background:var(--primary-100);border-radius:999px;color:var(--primary-800);flex-shrink:0;font-size:12px;font-weight:600;padding:4px 12px;white-space:nowrap}.card-summary-bar{background:var(--earth-50);border:1px solid var(--earth-100);border-radius:var(--radius-md);display:flex;gap:0;margin:12px 0 4px;overflow:hidden;padding:0}.summary-item{border-right:1px solid var(--earth-100);flex:1 1;padding:8px 12px;text-align:center}.summary-item:last-child{border-right:none}.summary-item-label{color:var(--earth-500);display:block;font-size:10px;font-weight:600;letter-spacing:.05em;margin-bottom:2px;text-transform:uppercase}.summary-item-value{font-feature-settings:"tnum";color:var(--earth-900);display:block;font-size:14px;font-variant-numeric:tabular-nums;font-weight:700}.summary-item.positive .summary-item-value{color:var(--primary-700)}.summary-item.negative .summary-item-value{color:var(--danger-600)}.property-details{margin-bottom:24px}.address{color:var(--earth-600);font-size:15px;font-style:italic;margin:0 0 20px}.purchase-info{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:20px}.purchase-details-subtle{align-items:center;color:var(--earth-400);display:flex;flex-wrap:wrap;font-size:13px;gap:4px;margin:8px 0 16px}.subtle-separator{color:var(--earth-300)}.purchase-info div{display:flex;flex-direction:column}.purchase-info label{color:var(--earth-500);font-size:12px;font-weight:600;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}.purchase-info span{color:var(--earth-900);font-size:16px;font-weight:700}.current-value{background:linear-gradient(135deg,var(--primary-50) 0,var(--accent-50) 100%);border:2px solid var(--primary-200);border-radius:var(--radius-lg);padding:20px}.current-value>div:first-child{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.current-value label{color:var(--primary-800);font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.current-value .value{color:var(--primary-800);font-size:24px;font-weight:800}.value-change{display:flex;font-size:14px;font-weight:700;justify-content:space-between}.value-change.positive{color:var(--success-600)}.value-change.negative{color:var(--danger-600)}.value-form{background:var(--earth-100);border:2px solid var(--earth-200);border-radius:var(--radius-lg);margin-bottom:20px;padding:20px}.value-inputs{grid-gap:12px;display:grid;gap:12px;grid-template-columns:2fr 1fr;margin-bottom:16px}.value-inputs input,.value-inputs select{background-color:var(--surface-card);border:2px solid var(--earth-300);border-radius:var(--radius-md);color:var(--earth-900);font-size:14px;padding:10px 14px;transition:all .2s ease}.value-inputs input:focus,.value-inputs select:focus{border-color:var(--primary-600);box-shadow:0 0 0 3px var(--primary-100);outline:none}.value-actions{display:flex;gap:10px}.value-actions button{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.value-actions button[type=submit]{background:var(--success-600);color:#fff}.value-actions button[type=submit]:hover{background:var(--success-700)}.value-actions button[type=button]{background:var(--earth-500);color:#fff}.value-actions button[type=button]:hover{background:var(--earth-600)}.property-notes{background:var(--accent-50);border:2px solid var(--accent-100);border-left:4px solid var(--accent-600);border-radius:var(--radius-lg);margin-top:20px;padding:16px}.property-notes p{color:var(--earth-700);font-size:14px;font-style:italic;line-height:1.6;margin:0}.rental-toggle{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:8px;margin:12px 0;padding:10px 14px}.rental-toggle-label{align-items:center;color:var(--earth-700);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px}.rental-toggle-label input[type=checkbox]{accent-color:var(--primary-600);cursor:pointer;height:18px;width:18px}.section-hint{font-size:13px;margin:-8px 0 12px}.subsection-title{border-top:1px solid var(--earth-200);color:var(--earth-700);font-size:15px;font-weight:600;margin:16px 0 4px;padding-top:12px}.value-history-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.value-history-row{align-items:flex-end;background:var(--earth-50);border:1px solid var(--earth-200);border-radius:8px;display:flex;gap:12px;padding:10px 12px}.value-history-row.new-row{background:var(--primary-50);border-color:var(--primary-500)}.value-history-row.purchase-row{background:var(--earth-100);border-color:var(--earth-300)}.value-history-row.purchase-row input:disabled,.value-history-row.purchase-row select:disabled{background:#0000;border-color:#0000;color:var(--earth-700);cursor:default}.value-history-row.modified-row{background:var(--accent-50);border-color:var(--accent-500)}.value-history-row .form-group{flex:1 1;margin-bottom:0}.value-history-row .form-group label{font-size:11px;margin-bottom:2px}.value-history-actions{display:flex;gap:4px;padding-bottom:2px}.delete-row-btn,.save-row-btn{background:none;border:1px solid var(--earth-200);border-radius:6px;cursor:pointer;font-size:14px;padding:6px 8px;transition:background .2s}.save-row-btn:hover{background:var(--primary-100);border-color:var(--primary-500)}.delete-row-btn:hover{background:#fee2e2;border-color:#ef4444}.add-row-btn{background:var(--earth-50);border:1px dashed var(--earth-300);border-radius:8px;color:var(--primary-600);cursor:pointer;font-size:14px;font-weight:500;padding:10px;transition:background .2s,border-color .2s;width:100%}.add-row-btn:hover{background:var(--primary-50);border-color:var(--primary-500)}.empty-hint{color:var(--earth-500);font-size:13px;font-style:italic;padding:8px;text-align:center}.card-value-history{border-top:1px solid var(--earth-200);margin-top:12px;padding-top:12px}@media (max-width:768px){.property-panels{grid-template-columns:1fr}.property-manager{padding:20px 16px}.header{padding:32px 24px}.header-content{align-items:stretch;flex-direction:column;gap:20px}.header-title{text-align:center}.header h1{font-size:28px}.header-subtitle{font-size:14px}.add-button{justify-content:center;width:100%}.add-form-container{padding:24px 20px}.form-row,.purchase-info,.value-inputs{grid-template-columns:1fr}}@media (max-width:480px){.property-card{padding:20px}.property-header{align-items:flex-start;flex-direction:column}.current-value .value{font-size:20px}}.form-section{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:var(--radius-md);margin-bottom:0;padding:16px}.form-section h3{border-bottom:1px solid var(--earth-200);color:var(--earth-800);font-size:13px;margin:0 0 12px;padding-bottom:8px}.form-section h3,.form-section h4{font-weight:700;letter-spacing:.04em;text-transform:uppercase}.form-section h4{color:var(--earth-700);font-size:12px;margin:12px 0 8px}.form-section .form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:8px}.cancel-button{background:var(--earth-400);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s ease}.cancel-button:hover{background:var(--earth-500);box-shadow:var(--shadow-md);transform:translateY(-1px)}.rental-section{background:var(--primary-50);border:1px solid var(--primary-200)}.rental-checkbox{margin-bottom:12px}.rental-checkbox label{align-items:center;color:var(--earth-800);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px}.rental-checkbox input[type=checkbox]{accent-color:var(--primary-600);cursor:pointer;height:16px;width:16px}.rental-fields{background:var(--surface-card);border:1px solid var(--primary-200);border-radius:var(--radius-md);margin-top:12px;padding:12px}.rental-fields h4{border-bottom:1px solid var(--primary-200);color:var(--primary-800);padding-bottom:6px}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--earth-400);font-style:italic}@media (max-width:768px){.form-section{padding:12px}.form-section .form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.cancel-button,.submit-button{text-align:center;width:100%}.rental-fields{padding:10px}}.input-with-button{align-items:stretch;display:flex;gap:8px}.input-with-button input{flex:1 1}.calc-button{background:var(--accent-500);border:none;border-radius:var(--radius-md);color:var(--earth-900);cursor:pointer;font-size:12px;font-weight:600;padding:0 12px;transition:all .2s ease;white-space:nowrap}.calc-button:hover{background:var(--accent-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.calc-payments-btn{margin-top:4px;padding:6px 12px}.hint{color:var(--earth-400);display:block;font-size:11px;font-style:italic;margin-top:2px}.edit-btn{background:var(--primary-600);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.edit-btn:hover{background:var(--primary-700);box-shadow:var(--shadow-md);transform:translateY(-1px)}.mortgage-btn{background:var(--accent-500);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--earth-900);cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.mortgage-btn:hover{background:var(--accent-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.value-chart-btn{background:var(--primary-100);border:2px solid var(--primary-300);border-radius:var(--radius-md);color:var(--primary-800);cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.value-chart-btn:hover{background:var(--primary-200);border-color:var(--primary-400);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.property-tabs{border-bottom:2px solid var(--earth-200);display:flex;gap:0;margin:.5rem 0 0}.property-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--earth-500);cursor:pointer;font-size:.85rem;font-weight:500;margin-bottom:-2px;padding:.5rem 1rem;transition:all .2s ease}.property-tab:hover{background:var(--earth-50);color:var(--earth-800)}.property-tab.active{border-bottom-color:var(--primary-600);color:var(--primary-600);font-weight:600}.property-tab-content{padding:1rem 0}.tab-panel{animation:fadeIn .2s ease}.mortgage-summary-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:.75rem}.mortgage-summary-grid .summary-card{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:var(--radius-md);padding:.5rem .6rem;text-align:center}.mortgage-summary-grid .summary-label{color:var(--earth-500);font-size:.65rem;letter-spacing:.05em;margin-bottom:.15rem;text-transform:uppercase}.mortgage-summary-grid .summary-value{color:var(--earth-900);font-size:.85rem;font-weight:700}.mortgage-summary-grid .summary-value.positive{color:var(--success-600)}.mortgage-summary-grid .summary-value.negative{color:var(--danger-600)}.mortgage-section{border-bottom:1px solid var(--earth-100);margin-bottom:1rem;padding-bottom:.75rem}.section-hint{color:var(--earth-500);font-size:.9em;margin-bottom:.75rem}.rammelån-current{background:var(--earth-50);border-radius:6px;font-size:.95em;margin-bottom:.75rem;padding:.5rem .75rem}.rammelån-table{border-collapse:collapse;font-size:.9em;margin-top:.5rem;width:100%}.rammelån-table td,.rammelån-table th{border-bottom:1px solid var(--earth-100);padding:.5rem .6rem;text-align:right}.rammelån-table th{border-bottom:2px solid var(--earth-200);color:var(--earth-600);font-size:.85em;font-weight:600;text-align:right}.rammelån-table td:first-child,.rammelån-table th:first-child{text-align:left}.rammelån-table td.positive{color:var(--primary-700);font-weight:600}.what-if-results h5{color:var(--earth-700);font-size:.95em;margin:.75rem 0 .5rem}.info-tooltip{cursor:help;font-size:.85em;margin-left:6px;position:relative}.profitability-breakdown{background:var(--earth-50);border-radius:8px;padding:1rem}.breakdown-row{align-items:center;display:flex;font-size:.85em;justify-content:space-between;padding:.35rem 0}.breakdown-row.income-row{font-size:.9em}.breakdown-label{align-items:center;color:var(--earth-700);display:flex;font-size:.85em;gap:4px}.breakdown-value{font-feature-settings:"tnum";color:var(--earth-800);font-size:.85em;font-variant-numeric:tabular-nums}.breakdown-value.positive{color:var(--primary-700)}.breakdown-value.negative{color:var(--danger-600)}.breakdown-divider{background:var(--earth-200);height:1px;margin:.2rem 0}.breakdown-divider.total-divider{background:var(--earth-400);height:2px;margin:.4rem 0}.breakdown-row.total-row{font-size:.95em;padding:.4rem 0 .2rem}.breakdown-row.total-row.positive .breakdown-value{color:var(--primary-700)}.breakdown-row.total-row.negative .breakdown-value{color:var(--danger-600)}.breakdown-row.yearly-row{font-size:.85em;opacity:.85;padding-top:.2rem}.summary-value.negative{color:var(--danger-600)}.mortgage-section:last-child{border-bottom:none}.mortgage-section h4{color:var(--earth-700);font-size:.8rem;font-weight:600;margin:0 0 .4rem}.stats-grid{grid-gap:.4rem 1rem;gap:.4rem 1rem;grid-template-columns:1fr 1fr}.stat-item{padding:.3rem 0}.stat-item.total{border-top:1px solid var(--earth-200);font-weight:600;margin-top:.25rem;padding-top:.5rem}.stat-item.highlight{background:var(--primary-50);border-radius:4px;padding:.4rem .5rem}.stat-label{color:var(--earth-500);font-size:.75rem}.stat-value{font-size:.8rem}.stat-value.interest{color:var(--danger-600)}.stat-value.principal{color:var(--primary-600)}.stat-value.positive{color:var(--success-600)}.what-if-section{background:var(--accent-50);border:1px solid var(--accent-200);border-radius:var(--radius-lg);padding:1rem!important}.what-if-inputs{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-bottom:.75rem}.what-if-inputs .form-group{margin:0}.what-if-inputs label{color:#64748b;display:block;font-size:.75rem;margin-bottom:.25rem}.what-if-inputs input{border:1px solid #d4d4d8;border-radius:4px;box-sizing:border-box;font-size:.85rem;padding:.4rem .5rem;width:100%}.what-if-results{background:var(--surface-card);border:1px solid #e5e7eb;border-radius:6px;padding:.75rem}.what-if-warning{background:#fef2f2;border-radius:4px;color:#991b1b;font-size:.8rem;margin-top:.5rem;padding:.5rem .75rem}.rental-tab .mortgage-summary-grid{margin-bottom:1rem}.ongoing-costs{align-items:center;display:flex;font-size:.85rem;gap:.5rem;margin-top:.5rem;padding:.3rem 0}.ongoing-costs label{color:#64748b}.mortgage-details-embedded{margin-top:.5rem}.mortgage-details-embedded .action-buttons{display:flex;gap:.5rem;margin-bottom:.75rem}.mortgage-details-embedded .timeline-section h4{font-size:.9rem}@media (max-width:600px){.mortgage-summary-grid{grid-template-columns:1fr 1fr}.stats-grid,.what-if-inputs{grid-template-columns:1fr}.card-summary-bar,.property-tabs{flex-wrap:wrap}.summary-item{flex:1 1 45%}.card-header-bar{flex-wrap:wrap;gap:8px}.rammelån-table{font-size:.8em}.rammelån-table td,.rammelån-table th{padding:.4rem}.profitability-breakdown{padding:.75rem}.breakdown-label{font-size:.85em}.property-header h3{font-size:16px}}@media (max-width:480px){.rammelån-table td:nth-child(3),.rammelån-table th:nth-child(3){display:none}.summary-item{padding:6px 8px}.summary-item-value{font-size:12px}}.extra-deposits-section{border-left:3px solid var(--primary-500)}.extra-deposits-section .section-hint,.what-if-section .section-hint,.withdrawal-section .section-hint{color:var(--earth-500);font-size:13px;margin-bottom:16px}.extra-monthly-row{margin-bottom:20px}.extra-monthly-row label{color:var(--earth-700);display:block;font-weight:600;margin-bottom:6px}.extra-monthly-input{align-items:center;display:flex;gap:8px}.extra-monthly-input input{border:1px solid var(--earth-300);border-radius:6px;font-size:14px;padding:8px 12px;width:140px}.input-suffix{color:var(--earth-500);font-size:13px}.btn-save-extra{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:6px 16px}.btn-save-extra:disabled{background:var(--earth-300);cursor:default}.extra-monthly-active{color:var(--success-500);display:block;font-size:13px;margin-top:6px}.one-time-deposits{margin-top:16px}.deposits-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.deposits-header h5{color:var(--earth-700);font-size:14px;margin:0}.btn-add-deposit{background:var(--primary-50);border:1px solid var(--primary-200);border-radius:6px;color:var(--primary-700);cursor:pointer;font-size:13px;padding:4px 12px}.add-deposit-form{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:8px;margin-bottom:12px;padding:12px}.add-deposit-form .form-row{display:flex;gap:8px;margin-bottom:8px}.add-deposit-form .form-row:last-child{margin-bottom:0}.add-deposit-form input{border:1px solid var(--earth-300);border-radius:6px;flex:1 1;font-size:13px;padding:8px 10px}.btn-confirm-deposit{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:8px 20px;white-space:nowrap}.deposits-list{display:flex;flex-direction:column;gap:8px}.deposit-item{align-items:center;background:var(--earth-50);border:1px solid var(--earth-200);border-radius:8px;display:flex;justify-content:space-between;padding:10px 12px}.deposit-item.applied{background:var(--primary-50);border-color:var(--primary-200);opacity:.6}.deposit-info{display:flex;flex-direction:column;gap:2px}.deposit-amount{color:var(--earth-800);font-weight:600}.deposit-date,.deposit-notes{color:var(--earth-500);font-size:12px}.deposit-notes{font-style:italic}.deposit-actions{align-items:center;display:flex;gap:6px}.btn-apply-deposit{background:var(--primary-600);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 12px}.btn-delete-deposit{background:none;border:1px solid var(--earth-300);border-radius:4px;color:var(--earth-500);cursor:pointer;font-size:12px;padding:4px 8px}.deposit-applied-badge{color:var(--success-500);font-size:12px}.deposits-total{background:var(--accent-50);border-radius:6px;color:var(--earth-700);font-size:13px;margin-top:4px;padding:8px 12px}.empty-deposits{color:var(--earth-500);font-size:13px;margin:8px 0 0}.mortgage-sub-tabs{grid-gap:4px;border-bottom:2px solid var(--earth-200);display:grid;gap:4px;grid-template-columns:1fr 1fr;margin-bottom:16px;padding-bottom:0}.sub-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--earth-500);cursor:pointer;font-size:13px;margin-bottom:-2px;padding:8px 16px;text-align:center;transition:all .2s}.sub-tab:hover{background:var(--earth-50);color:var(--earth-700)}.sub-tab.active{border-bottom-color:var(--primary-600);color:var(--primary-700);font-weight:600}.mortgage-sub-panel{animation:fadeIn .15s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.withdrawal-section{border-left:3px solid var(--accent-500)}.btn-withdraw{background:var(--accent-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:8px 20px;white-space:nowrap}.btn-withdraw:disabled{background:var(--earth-300);cursor:default}.btn-withdraw:hover:not(:disabled){background:var(--accent-500)}@media (max-width:768px){.mortgage-sub-tabs{grid-template-columns:1fr 1fr}.sub-tab{font-size:12px;padding:6px 12px}}.mortgage-details-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.mortgage-details-container{background:#fafaf9;background:var(--earth-50,#fafaf9);border-radius:1rem;border-radius:var(--radius-xl,1rem);box-shadow:var(--shadow-xl);max-height:90vh;max-width:1000px;overflow-y:auto;padding:32px;width:100%}.mortgage-header{align-items:flex-start;border-bottom:2px solid #e7e5e4;border-bottom:2px solid var(--earth-200,#e7e5e4);display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:24px}.mortgage-header h2{color:#1c1917;color:var(--earth-900,#1c1917);font-size:28px;font-weight:700;margin:0}.property-name{color:#57534e;color:var(--earth-600,#57534e);font-size:16px;margin:4px 0 0}.close-btn{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:#78716c;color:var(--earth-500,#78716c);cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:32px}.close-btn:hover{background:#e7e5e4;background:var(--earth-200,#e7e5e4);color:#1c1917;color:var(--earth-900,#1c1917)}.summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.summary-card{background:var(--surface-card);border:1px solid #e7e5e4;border:1px solid var(--earth-200,#e7e5e4);border-radius:.75rem;border-radius:var(--radius-lg,.75rem);box-shadow:var(--shadow-sm);padding:20px}.summary-label{color:#57534e;color:var(--earth-600,#57534e);font-size:14px;font-weight:500;margin-bottom:8px}.summary-value{color:#1c1917;color:var(--earth-900,#1c1917);font-size:24px;font-weight:700}.stats-section{background:var(--surface-card);border:1px solid var(--earth-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}.stats-section h3{color:var(--earth-900);font-size:18px;font-weight:600;margin:0 0 20px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-item{align-items:center;background:var(--earth-50);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:12px}.stat-label{color:var(--earth-700);font-size:14px}.stat-value{color:var(--earth-900);font-weight:600}.stat-value.interest{color:#dc2626;color:var(--danger-600,#dc2626)}.stat-value.principal{color:#059669;color:var(--success-600,#059669)}.stat-value.extra{color:#16a34a;color:var(--primary-600,#16a34a)}.action-buttons{display:flex;gap:12px;margin-bottom:32px}.btn-primary{background:#16a34a;background:var(--primary-600,#16a34a);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-primary:hover{background:#15803d;background:var(--primary-700,#15803d);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:disabled{background:var(--earth-300);cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface-card);border:1px solid var(--earth-300);border-radius:var(--radius-md);color:var(--earth-700);cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-secondary:hover{background:var(--earth-100);border-color:var(--earth-400)}.timeline-section{background:var(--surface-card);border:1px solid var(--earth-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.timeline-section h3{color:var(--earth-900);font-size:18px;font-weight:600;margin:0 0 24px}.timeline{display:flex;flex-direction:column;gap:16px}.timeline-event{background:var(--earth-50);border-left:4px solid var(--earth-300);border-radius:var(--radius-md);display:flex;gap:16px;padding:16px;transition:all .2s}.timeline-event:hover{background:var(--earth-100);transform:translateX(4px)}.timeline-event.payment{border-left-color:var(--primary-500)}.timeline-event.rate_change{border-left-color:var(--accent-500)}.event-date{color:var(--earth-600);font-size:14px;font-weight:600;min-width:100px}.event-content{flex:1 1}.event-description{color:var(--earth-900);font-weight:600;margin-bottom:8px}.event-details{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.detail{color:var(--earth-600);font-size:14px}.detail.rate{color:var(--accent-600);font-weight:600}.badge{border-radius:var(--radius-sm);display:inline-block;font-size:12px;font-weight:600;padding:2px 8px}.badge,.badge.extra{background:var(--primary-100);color:var(--primary-700)}.event-notes{color:var(--earth-600);font-size:14px;font-style:italic;margin-top:8px}.empty-state{color:var(--earth-500);font-size:16px;padding:40px;text-align:center}.modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.modal-content{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;max-width:500px;overflow-y:auto;padding:32px;width:100%}.modal-header{align-items:center;border-bottom:2px solid var(--earth-200);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.modal-header h3{color:var(--earth-900);font-size:22px;font-weight:700;margin:0}.form-group{margin-bottom:20px}.form-group label{color:var(--earth-700);display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group textarea{border:1px solid var(--earth-300);border-radius:var(--radius-md);font-family:inherit;font-size:16px;padding:12px;transition:all .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-group textarea{min-height:80px;resize:vertical}.checkbox-group label{align-items:center;cursor:pointer;display:flex}.checkbox-group input[type=checkbox]{cursor:pointer;margin-right:8px;width:auto}.preview-section{background:var(--earth-50);border:1px solid var(--earth-200);border-radius:var(--radius-md);margin-bottom:20px;padding:20px}.preview-section h4{color:var(--earth-800);font-size:16px;font-weight:600;margin:0 0 16px}.preview-grid{display:flex;flex-direction:column;gap:12px}.preview-item{align-items:center;background:var(--surface-card);border-radius:var(--radius-sm);display:flex;font-size:14px;justify-content:space-between;padding:12px}.preview-item span:first-child{color:var(--earth-600);font-weight:500}.preview-item span:last-child{color:var(--earth-900);font-weight:700}.preview-item .interest{color:var(--danger-600)}.preview-item .principal{color:var(--success-600)}.preview-item .balance{color:var(--primary-600)}.modal-actions{border-top:1px solid var(--earth-200);display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px}.error-message{background:#fef2f2;background:var(--danger-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--danger-200,#fecaca);border-radius:var(--radius-md);color:var(--danger-600);font-size:14px;margin-bottom:16px;padding:12px 16px}@media (max-width:768px){.mortgage-details-container{padding:24px}.summary-grid{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:1fr}.action-buttons,.event-details{flex-direction:column}.event-details{gap:8px}.timeline-event{flex-direction:column}.event-date{min-width:auto}}.portfolio-chart-section{background:var(--surface-card);border:1px solid #e7e5e4;border:1px solid var(--earth-200,#e7e5e4);border-radius:1rem;border-radius:var(--radius-xl,1rem);box-shadow:var(--shadow-lg);margin-top:40px;padding:32px}.chart-header{margin-bottom:24px}.chart-header h2{color:#1c1917;color:var(--earth-900,#1c1917);font-size:28px;font-weight:700;margin:0 0 8px}.chart-subtitle{color:#57534e;color:var(--earth-600,#57534e);font-size:14px;font-weight:500;margin:0}.portfolio-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.stat-card{background:#fafaf9;background:var(--earth-50,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--earth-200,#e7e5e4);border-radius:.75rem;border-radius:var(--radius-lg,.75rem);padding:20px}.stat-label{color:#57534e;color:var(--earth-600,#57534e);font-size:13px;font-weight:500;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.stat-value{color:#1c1917;color:var(--earth-900,#1c1917);font-size:22px;font-weight:700}.stat-value.current{color:#16a34a;color:var(--primary-600,#16a34a)}.stat-value.positive{color:#059669;color:var(--success-600,#059669)}.stat-value.negative{color:#dc2626;color:var(--danger-600,#dc2626)}.stat-value .percent{display:block;font-size:16px;font-weight:600;margin-top:4px}.chart-container{background:#fafaf9;background:var(--earth-50,#fafaf9);border:1px solid var(--earth-200);border-radius:var(--radius-lg);margin-bottom:20px;padding:24px}.chart-container:last-child{margin-bottom:0}.chart-title{color:#44403c;color:var(--earth-700,#44403c);font-size:18px;font-weight:600;margin:0 0 16px}.portfolio-chart-tooltip{background:var(--surface-card);border:2px solid var(--primary-500);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 16px}.tooltip-date{color:var(--earth-900);font-size:14px;font-weight:700;margin:0 0 8px}.tooltip-value{font-size:14px;font-weight:600;margin:4px 0}.empty-chart{color:var(--earth-500);padding:80px 20px;text-align:center}.empty-chart p{font-size:16px;margin:8px 0}.empty-chart .hint{color:var(--earth-400);font-size:14px;font-style:italic}.error,.loading{color:var(--earth-600);font-size:16px;padding:40px;text-align:center}.error{color:var(--danger-600)}.property-select-checkbox{align-items:center;background:var(--surface-card);border:2px solid var(--earth-300);border-radius:var(--radius-md);color:var(--earth-700);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 12px;position:absolute;right:16px;top:16px;transition:all .2s ease}.property-select-checkbox:hover{background:var(--primary-50);border-color:var(--primary-500);color:var(--primary-700)}.property-select-checkbox input[type=checkbox]{accent-color:var(--primary-600);cursor:pointer;height:18px;width:18px}.property-select-checkbox.checked{background:var(--primary-100);border-color:var(--primary-500);color:var(--primary-700)}@media (max-width:768px){.portfolio-chart-section{padding:24px 16px}.chart-header h2{font-size:24px}.portfolio-stats{grid-template-columns:1fr 1fr}.stat-value{font-size:18px}.chart-container{padding:16px}}.household-manager{margin:0 auto;max-width:700px;padding:2rem 1rem}.household-manager h2{margin-bottom:.25rem}.household-manager .subtitle{color:var(--text-muted);font-size:.95rem;margin-bottom:1.5rem}.hh-error{background:var(--danger-50);border:1px solid var(--danger-500);border-radius:6px;color:var(--danger-600)}.hh-error,.hh-success{margin-bottom:1rem;padding:.75rem 1rem}.hh-success{background:var(--success-50);border:1px solid var(--success-500);border-radius:6px;color:var(--success-600)}.hh-empty{background:var(--surface-card-alt);border-radius:8px;color:var(--text-muted);padding:2rem;text-align:center}.hh-empty,.hh-list{margin-bottom:1.5rem}.hh-list{display:flex;flex-direction:column;gap:1rem}.hh-card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;padding:1.25rem}.hh-card-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.hh-card-header h3{flex:1 1;margin:0}.hh-role-badge{background:var(--surface-hover);border-radius:12px;color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.2rem .6rem}.hh-members h4{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem}.hh-members ul{list-style:none;margin:0;padding:0}.hh-member-row{align-items:center;border-bottom:1px solid var(--surface-hover);display:flex;justify-content:space-between;padding:.5rem 0}.hh-member-row:last-child{border-bottom:none}.hh-member-info{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.hh-member-name{font-weight:600}.hh-member-email{color:var(--text-muted);font-size:.85rem}.hh-member-role{background:var(--surface-hover);border-radius:10px;color:var(--text-secondary);font-size:.7rem;padding:.15rem .5rem}.hh-member-role.owner{background:var(--primary-50);color:var(--primary-600)}.hh-btn-primary{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.hh-btn-primary:hover{background:var(--primary-700)}.hh-btn-secondary{background:var(--surface-hover);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.hh-btn-secondary:hover{background:var(--surface-border)}.hh-btn-danger{background:none;border:1px solid var(--danger-600);border-radius:6px;color:var(--danger-600);cursor:pointer;font-size:.85rem;padding:.5rem 1rem}.hh-btn-danger:hover{background:var(--danger-50)}.hh-btn-remove{background:none;border:none;border-radius:4px;color:var(--danger-600);cursor:pointer;font-size:1rem;padding:.25rem .5rem}.hh-btn-remove:hover{background:var(--danger-50)}.hh-actions{border-top:1px solid var(--surface-hover);margin-top:1rem;padding-top:.75rem}.hh-button-row{display:flex;gap:.75rem}.hh-add-member-form,.hh-create-form{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.hh-add-member-form input,.hh-create-form input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.9rem;min-width:200px;padding:.5rem .75rem}.hh-create-btn{width:100%}.ge-xp-card{margin-bottom:1.5rem}.ge-xp-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}.ge-level-badge{background:#722f37;background:var(--wine-red,#722f37);border-radius:20px;color:#fff;font-size:.85rem;font-weight:700;padding:4px 12px}.ge-level-title{color:var(--text-primary);font-size:1.05rem;font-weight:600}.ge-xp-text{color:var(--text-muted);font-size:.85rem;font-weight:500;margin-left:auto}.ge-xp-bar{background:var(--surface-border);border-radius:5px;height:10px;overflow:hidden}.ge-xp-fill{background:linear-gradient(90deg,#722f37,#c41e3a);background:linear-gradient(90deg,var(--wine-red,#722f37),var(--wine-accent,#c41e3a));border-radius:5px;height:100%;transition:width .5s ease}.ge-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.ge-stat-card{align-items:center;display:flex;flex-direction:column;gap:4px;text-align:center}.ge-stat-icon{font-size:1.5rem}.ge-stat-value{color:var(--text-primary);font-size:1.6rem;font-weight:800}.ge-stat-label{color:var(--text-muted);font-size:.8rem;font-weight:500}.ge-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:1.5rem}.ge-action-btn{flex:1 1;min-width:130px;text-align:center}.ge-recent-notes{grid-gap:10px;display:grid;gap:10px}.ge-note-card{padding:14px 16px}.ge-note-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.ge-note-wine{color:var(--text-primary);font-weight:600}.ge-note-rating{font-size:.85rem}.ge-note-meta{color:var(--text-muted);display:flex;font-size:.8rem;gap:12px;margin-bottom:4px}.ge-note-text{color:var(--text-secondary);font-size:.85rem;line-height:1.4;margin:6px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:600px){.ge-stats-grid{gap:8px;grid-template-columns:1fr 1fr 1fr}.ge-stat-card{padding:12px 8px}.ge-quick-actions{flex-direction:column}.ge-action-btn{min-width:0;min-width:auto}}.ge-add-wine{padding-bottom:2rem}.ge-wine-mode-toggle{border:1px solid var(--input-border);border-radius:8px;display:flex;gap:0;margin-bottom:1rem;overflow:hidden;width:-webkit-fit-content;width:fit-content}.ge-wine-search{margin-bottom:1rem}.ge-search-row{display:flex;gap:8px;margin-bottom:10px}.ge-search-row input{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.9rem;padding:8px 12px}.ge-search-row input:focus{border-color:#722f37;border-color:var(--wine-red,#722f37);box-shadow:0 0 0 2px #722f3726;outline:none}.ge-search-results{grid-gap:6px;display:grid;gap:6px;max-height:200px;overflow-y:auto}.ge-search-result{border:1px solid var(--surface-border);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 12px;transition:all .15s}.ge-search-result:hover{background:var(--surface-card-alt)}.ge-search-result.selected,.ge-search-result:hover{border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-search-result.selected{background:#f3e5e7;background:var(--wine-light,#f3e5e7)}.ge-search-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.ge-search-meta{color:var(--text-muted);font-size:.8rem}.ge-cellar-toggle{border:1px solid var(--input-border);border-radius:8px;display:flex;gap:0;margin-bottom:1rem;overflow:hidden;width:-webkit-fit-content;width:fit-content}.ge-toggle-btn{background:var(--surface-card-alt);border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 20px;transition:all .2s}.ge-toggle-btn.active{background:#722f37;background:var(--wine-red,#722f37);color:#fff}.ge-cellar-stats{display:flex;font-size:.95rem;gap:24px;margin-bottom:1rem}.ge-cellar-stat{color:var(--text-secondary);font-weight:600}.ge-cellar-controls{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:1rem}.ge-type-filters{display:flex;flex-wrap:wrap;gap:6px}.ge-filter-chip{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.8rem;padding:4px 12px;transition:all .2s}.ge-filter-chip.active{background:#f3e5e7;background:var(--wine-light,#f3e5e7);color:#722f37;color:var(--wine-red,#722f37);font-weight:600}.ge-filter-chip.active,.ge-filter-chip:hover{border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-wine-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.ge-wine-card{cursor:pointer;padding:14px 16px;transition:border-color .2s}.ge-wine-card:hover{border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-wine-card-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.ge-wine-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.ge-wine-type-badge{background:var(--surface-hover);border-radius:10px;color:var(--text-secondary);font-size:.7rem;font-weight:600;padding:2px 8px;white-space:nowrap}.ge-wine-type-badge.red{background:#fde8e8;color:#991b1b}.ge-wine-type-badge.white{background:#fefce8;color:#854d0e}.ge-wine-type-badge.rosé{background:#fce7f3;color:#9d174d}.ge-wine-type-badge.sparkling{background:#ecfdf5;color:#065f46}.ge-wine-type-badge.dessert{background:#fff7ed;color:#9a3412}.ge-wine-type-badge.fortified{background:#f5f3ff;color:#5b21b6}.ge-wine-details{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:10px;margin-bottom:8px}.ge-wine-card-footer{align-items:center;display:flex;font-size:.85rem;gap:12px}.ge-wine-qty{color:var(--text-primary);font-weight:700}.ge-wine-price{color:var(--text-muted)}.ge-wine-status{border-radius:10px;font-size:.7rem;font-weight:600;margin-left:auto;padding:2px 8px}.ge-wine-status.drinking{background:var(--success-50);color:var(--success-700)}.ge-wine-status.aging{background:var(--primary-50);color:var(--primary-600)}.ge-wine-status.consumed{background:var(--surface-hover);color:var(--text-muted)}@media (max-width:600px){.ge-wine-grid{grid-template-columns:1fr}.ge-cellar-controls{flex-direction:column}}.ge-tasting-form{padding-bottom:2rem}.ge-steps{gap:0;margin-bottom:1.5rem}.ge-step-dot,.ge-steps{align-items:center;display:flex;justify-content:center}.ge-step-dot{background:var(--surface-border);border-radius:50%;color:var(--text-muted);cursor:pointer;font-size:.85rem;font-weight:700;height:32px;transition:all .2s;width:32px}.ge-step-dot.active{background:#722f37;background:var(--wine-red,#722f37);color:#fff}.ge-step-dot.done{background:#f3e5e7;background:var(--wine-light,#f3e5e7);color:#722f37;color:var(--wine-red,#722f37)}.ge-step-line{background:var(--surface-border);height:3px;width:32px}.ge-step-content{margin-bottom:1rem;min-height:200px}.ge-step-content h4{color:var(--text-primary);font-size:1.05rem;margin:0 0 16px}.ge-tasting-form .ge-search-row{display:flex;gap:8px;margin-bottom:10px}.ge-tasting-form .ge-search-row input{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.9rem;padding:8px 12px}.ge-tasting-form .ge-search-row input:focus{border-color:#722f37;border-color:var(--wine-red,#722f37);box-shadow:0 0 0 2px #722f3726;outline:none}.ge-tasting-form .ge-search-results{grid-gap:6px;display:grid;gap:6px;max-height:200px;overflow-y:auto}.ge-tasting-form .ge-search-result{border:1px solid var(--surface-border);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 12px;transition:all .15s}.ge-tasting-form .ge-search-result:hover{background:var(--surface-card-alt);border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-tasting-form .ge-search-result.selected{background:#f3e5e7;background:var(--wine-light,#f3e5e7);border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-tasting-form .ge-search-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.ge-tasting-form .ge-search-meta{color:var(--text-muted);font-size:.8rem}.ge-selected-wine{background:#f3e5e7;background:var(--wine-light,#f3e5e7);border-radius:8px;color:#722f37;color:var(--wine-red,#722f37);font-size:.9rem;font-weight:600;margin-bottom:10px;padding:8px 14px}.ge-aroma-section{margin-top:16px}.ge-aroma-section>label{color:var(--text-muted);display:block;font-size:.85rem;margin-bottom:8px}.ge-aroma-chips{display:flex;flex-wrap:wrap;gap:6px}.ge-aroma-chip{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.8rem;padding:4px 12px;transition:all .15s}.ge-aroma-chip.active{background:#f3e5e7;background:var(--wine-light,#f3e5e7);color:#722f37;color:var(--wine-red,#722f37);font-weight:600}.ge-aroma-chip.active,.ge-aroma-chip:hover{border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-rating-input{display:flex;gap:4px}.ge-star{background:none;border:none;cursor:pointer;font-size:1.3rem;opacity:.3;padding:2px;transition:opacity .15s}.ge-star.active{opacity:1}.ge-step-nav{display:flex;gap:12px;justify-content:space-between}@media (max-width:600px){.ge-steps{gap:0}.ge-step-dot{font-size:.75rem;height:28px;width:28px}.ge-step-line{width:16px}}.ge-session-detail{padding-bottom:2rem}.ge-session-info{margin-bottom:1.5rem}.ge-session-info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ge-info-label{color:var(--text-muted);display:block;font-size:.8rem;font-weight:600;margin-bottom:2px}.ge-info-value{color:var(--text-primary);font-weight:600}.ge-session-wines{grid-gap:8px;display:grid;gap:8px}.ge-session-wine-card{align-items:center;display:flex;gap:12px;padding:10px 16px}.ge-wine-number{color:#722f37;color:var(--wine-red,#722f37);font-size:1.1rem;font-weight:700;min-width:32px}.ge-session-wine-info{flex:1 1}.ge-blind-label{color:var(--text-muted);font-style:italic}.ge-participants-list{display:flex;flex-wrap:wrap;gap:8px}.ge-participant-chip{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:20px;color:var(--text-secondary);font-size:.85rem;font-weight:500;padding:4px 14px}.ge-comparison-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.ge-comparison-card{padding:14px 16px}.ge-comparison-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.ge-comparison-details,.ge-note-author{color:var(--text-muted);font-size:.8rem}.ge-comparison-details{display:flex;gap:12px;margin-bottom:4px}.ge-comparison-notes{color:var(--text-secondary);font-size:.85rem;line-height:1.4;margin:4px 0 0}.ge-session-actions{display:flex;gap:10px;margin-top:1.5rem}@media (max-width:600px){.ge-session-info-grid{grid-template-columns:1fr 1fr}.ge-comparison-grid{grid-template-columns:1fr}}.ge-tasting-actions{display:flex;gap:10px;margin-bottom:1.5rem}.ge-notes-list{grid-gap:8px;display:grid;gap:8px}.ge-tasting-note-card{padding:12px 16px}.ge-note-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.ge-note-row+.ge-note-row{margin-top:4px}.ge-note-wine-name{color:var(--text-primary);font-weight:600}.ge-note-date{color:var(--text-muted);font-size:.8rem}.ge-note-rating-stars{font-size:.85rem}.ge-quality-badge{background:#f3e5e7;background:var(--wine-light,#f3e5e7);border-radius:10px;color:#722f37;color:var(--wine-red,#722f37);font-size:.7rem;font-weight:600;padding:2px 8px}.ge-sessions-list{grid-gap:8px;display:grid;gap:8px}.ge-session-card{cursor:pointer;padding:12px 16px;transition:border-color .2s}.ge-session-card:hover{border-color:#722f37;border-color:var(--wine-red,#722f37)}.ge-session-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.ge-session-name{color:var(--text-primary);font-weight:600}.ge-session-type-badge{background:var(--surface-hover);border-radius:10px;color:var(--text-secondary);font-size:.7rem;font-weight:600;padding:2px 8px}.ge-session-type-badge.blind{background:#fef3c7;color:#92400e}.ge-session-type-badge.themed{background:#ede9fe;color:#5b21b6}.ge-session-meta{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;justify-content:space-between;margin-top:4px}.ge-session-status{border-radius:10px;font-size:.7rem;font-weight:600;padding:2px 8px}.ge-session-status.active{background:var(--success-50);color:var(--success-700)}.ge-session-status.completed{background:var(--surface-hover);color:var(--text-muted)}.ge-session-status.draft{background:var(--primary-50);color:var(--primary-600)}.ge-new-session{padding-bottom:2rem}.ge-level-card{margin-bottom:1.5rem;text-align:center}.ge-level-display{align-items:center;display:flex;gap:16px;justify-content:center;margin-bottom:12px}.ge-level-num{color:#722f37;color:var(--wine-red,#722f37);font-size:2.5rem;font-weight:800;line-height:1}.ge-level-info{align-items:flex-start;display:flex;flex-direction:column}.ge-level-title-text{color:var(--text-primary);font-size:1.1rem;font-weight:700}.ge-level-xp{color:var(--text-muted);font-size:.85rem}.ge-achievements .ge-xp-bar{background:var(--surface-border);border-radius:5px;height:10px;overflow:hidden}.ge-achievements .ge-xp-fill{background:linear-gradient(90deg,#722f37,#d4a017);background:linear-gradient(90deg,var(--wine-red,#722f37),var(--wine-gold,#d4a017));border-radius:5px;height:100%;transition:width .5s ease}.ge-achievement-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.5rem}.ge-badge-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:1.5rem}.ge-badge-card{align-items:center;display:flex;flex-direction:column;gap:6px;padding:16px 12px;text-align:center;transition:transform .15s}.ge-badge-card.earned:hover{transform:translateY(-2px)}.ge-badge-card.locked{opacity:.5}.ge-badge-icon{font-size:2rem}.ge-badge-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.ge-badge-desc{color:var(--text-muted);font-size:.75rem;line-height:1.3}.ge-badge-progress{margin-top:4px;width:100%}.ge-badge-progress-bar{background:var(--surface-border);border-radius:2px;height:4px;margin-bottom:2px;overflow:hidden}.ge-badge-progress-fill{background:#d4a017;background:var(--wine-gold,#d4a017);border-radius:2px;height:100%;transition:width .3s}.ge-badge-progress-text{color:var(--text-faint);font-size:.7rem}.ge-stats-detail-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.ge-stat-detail{align-items:center;display:flex;flex-direction:column;gap:4px;text-align:center}.ge-stat-detail-value{color:var(--text-primary);font-size:1.5rem;font-weight:800}.ge-stat-detail-label{color:var(--text-muted);font-size:.8rem;font-weight:500}@media (max-width:600px){.ge-badge-grid,.ge-stats-detail-grid{grid-template-columns:repeat(2,1fr)}}.grape-escape{--wine-red:#722f37;--wine-dark:#8b0000;--wine-accent:#c41e3a;--wine-light:#f3e5e7;--wine-gold:#d4a017;margin:0 auto;max-width:960px;padding:0 1rem 2rem}.ge-tabs{border-bottom:2px solid var(--surface-border);display:flex;gap:0;margin-bottom:1.5rem}.ge-tab{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:var(--text-muted);cursor:pointer;display:flex;font-size:.95rem;gap:6px;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.ge-tab:hover{background:var(--surface-card-alt);color:var(--text-primary)}.ge-tab.active{border-bottom-color:var(--wine-red);color:var(--wine-red);font-weight:600}.ge-tab-icon{font-size:1.1rem}.ge-message{animation:geSlideIn .3s ease-out;border-radius:8px;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.ge-message-success{background:var(--success-50);color:var(--success-700)}.ge-message-error{background:var(--danger-50);color:var(--danger-600)}@keyframes geSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ge-loading{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:16px;padding:60px 40px;text-align:center}.ge-spinner{animation:geSpin .8s linear infinite;border:4px solid var(--surface-border);border-radius:50%;border-top-color:var(--wine-red);height:40px;width:40px}@keyframes geSpin{to{transform:rotate(1turn)}}.ge-error{align-items:center;background:var(--danger-50);border:1px solid var(--danger-500);border-radius:8px;color:var(--danger-600);display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:16px;padding:10px 16px}.ge-error button{background:none;border:none;color:var(--danger-600);cursor:pointer;font-size:1rem;padding:0 4px}.ge-empty{color:var(--text-faint);font-style:italic;padding:40px 20px;text-align:center}.ge-section{margin-bottom:1.5rem}.ge-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.ge-section-header h3{color:var(--text-primary);margin:0}.ge-btn-primary{background:var(--wine-red);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:8px 20px;transition:all .2s}.ge-btn-primary:hover{background:var(--wine-dark);box-shadow:0 4px 12px #722f374d;transform:translateY(-1px)}.ge-btn-secondary{background:var(--surface-hover);border:1px solid var(--input-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;padding:8px 20px}.ge-btn-secondary:hover{background:var(--surface-border)}.ge-btn-icon{background:none;border:none;cursor:pointer;font-size:1rem;padding:4px}.ge-card{background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;padding:20px}.ge-form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:16px}.ge-form-group{display:flex;flex-direction:column;gap:4px}.ge-form-group.full-width{grid-column:1/-1}.ge-form-group label{color:var(--text-muted);font-size:.85rem}.ge-form-group input,.ge-form-group select,.ge-form-group textarea{background:var(--surface-card);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.9rem;padding:8px 12px}.ge-form-group input:focus,.ge-form-group select:focus,.ge-form-group textarea:focus{border-color:var(--wine-red);box-shadow:0 0 0 2px #722f3726;outline:none}.ge-form-actions{display:flex;gap:8px;margin-top:16px}@media (max-width:768px){.ge-tabs{overflow-x:auto}.ge-tab{font-size:.85rem;padding:.6rem .75rem}.ge-tab-label{display:none}.ge-tab-icon{font-size:1.3rem}.ge-form-grid{grid-template-columns:1fr}}.bookcover-placeholder{align-items:center;background:linear-gradient(145deg,#3e2723,#5d4037);border-radius:6px;color:#d7ccc8;display:flex;flex-direction:column;gap:4px;height:100%;justify-content:center;min-height:80px;width:100%}.bookcover-placeholder-emoji{font-size:1.6rem}.bookcover-placeholder-title{font-size:.65rem;line-height:1.2;opacity:.8;padding:0 6px;text-align:center;word-break:break-word}.bookcover-img{border-radius:6px;height:100%;object-fit:cover;width:100%}.booksearch-container{width:100%}.booksearch-input-wrap{margin-bottom:1.5rem;position:relative}.booksearch-input-icon{font-size:1.1rem;left:16px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.booksearch-input{background:#faf6ef;border:2px solid #d4c5a9;border-radius:12px;box-sizing:border-box;color:#3d3225;font-family:Georgia,serif;font-size:1rem;outline:none;padding:.85rem 1rem .85rem 2.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.booksearch-input:focus{border-color:#8b6914;box-shadow:0 0 0 3px #8b69141f}.booksearch-loading{align-items:center;color:#8a7a5e;display:flex;flex-direction:column;padding:3rem 1rem}.booksearch-spinner{animation:booksearch-spin .7s linear infinite;border:3px solid #e8dcc8;border-radius:50%;border-top-color:#8b6914;height:32px;margin-bottom:.75rem;width:32px}@keyframes booksearch-spin{to{transform:rotate(1turn)}}.booksearch-empty{color:#8a7a5e;padding:3rem 1rem;text-align:center}.booksearch-empty-icon{display:block;font-size:3rem;margin-bottom:.75rem}.booksearch-empty p{font-size:.95rem;font-style:italic;margin:0}.booksearch-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:700px){.booksearch-grid{grid-template-columns:1fr 1fr}}.booksearch-card{background:linear-gradient(135deg,#faf6ef,#f5efe3);border:1px solid #e0d5be;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:0;padding:0;position:relative;transition:box-shadow .2s,transform .15s}.booksearch-card:hover{box-shadow:0 4px 20px #503c141a;transform:translateY(-1px)}.booksearch-card-clickable{display:flex;gap:1rem;padding:1rem;position:relative}.booksearch-card-chevron{color:#a8a29e;font-size:.65rem;pointer-events:none;position:absolute;right:.6rem;top:.5rem}.booksearch-card-detail{border-top:1px solid #e0d5be;padding:0 1rem .5rem}.booksearch-card-desc{color:#5a4a2f;font-size:.82rem;line-height:1.45;margin:.5rem 0}.booksearch-card-desc--empty{color:#a8a29e;font-style:italic}.booksearch-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1rem .75rem}.booksearch-cover{border-radius:4px;box-shadow:2px 2px 8px #503c1426,-1px 0 3px #503c1414;flex-shrink:0;height:150px;overflow:hidden;width:100px}.booksearch-cover-img{height:100%;object-fit:cover;width:100%}.booksearch-cover-placeholder{align-items:center;background:linear-gradient(145deg,#e8dcc8,#d4c5a9);display:flex;flex-direction:column;font-size:1.75rem;gap:.4rem;height:100%;justify-content:center;padding:.5rem;width:100%}.booksearch-cover-placeholder-title{color:#6b5d45;font-size:.6rem;font-style:italic;line-height:1.2;text-align:center;word-break:break-word}.booksearch-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.booksearch-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#3d3225;display:-webkit-box;font-family:Georgia,serif;font-size:1rem;font-weight:600;line-height:1.3;margin:0 0 .2rem;overflow:hidden}.booksearch-author{color:#8a7a5e;font-size:.85rem;font-style:italic;margin:0 0 .5rem}.booksearch-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.booksearch-pages{color:#8a7a5e;font-size:.8rem}.booksearch-stars{display:inline-flex;font-size:.85rem;gap:1px}.booksearch-star-filled{color:#c9951a}.booksearch-star-empty{color:#d4c5a9}.booksearch-community-rating{color:#8b6914;font-size:.82rem;font-weight:500;white-space:nowrap}.booksearch-rating-count{color:#8a7a5e;font-size:.72rem;font-weight:400}.booksearch-btn{background:#faf6ef;border:1px solid #d4c5a9;border-radius:6px;color:#5a4a2f;cursor:pointer;font-size:.78rem;font-weight:500;padding:.4rem .7rem;transition:all .2s;white-space:nowrap}.booksearch-btn:hover:not(:disabled){background:#f0e6d0;border-color:#b8a47a}.booksearch-btn:disabled{cursor:default;opacity:.6}.booksearch-btn.success{background:#4a7c59;border-color:#4a7c59;color:#fff}.booksearch-btn.error{background:#faf6ef;border-color:#c0392b;color:#c0392b}.booksearch-btn-read{background:#f0e6d0;border-color:#b8a47a;color:#4a7c59;font-weight:600}.booksearch-btn-read:hover:not(:disabled){background:#4a7c59;border-color:#4a7c59;color:#fff}.booksearch-dropdown-wrap{position:relative}.booksearch-dropdown{background:#faf6ef;border:1px solid #d4c5a9;border-radius:8px;bottom:calc(100% + 4px);box-shadow:0 4px 16px #503c1426;left:0;min-width:150px;overflow:hidden;position:absolute;z-index:10}.booksearch-dropdown-item{background:none;border:none;color:#3d3225;cursor:pointer;display:block;font-size:.85rem;padding:.55rem .85rem;text-align:left;transition:background .15s;width:100%}.booksearch-dropdown-item:hover{background:#f0e6d0}@media (max-width:480px){.booksearch-cover{height:120px;width:80px}.booksearch-title{font-size:.9rem}.booksearch-actions{flex-direction:column}}.club-detail-loading{color:var(--text-secondary);padding:4rem 1rem;text-align:center}.club-detail-spinner{animation:club-detail-spin .8s linear infinite;border:3px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);height:36px;margin:0 auto 1rem;width:36px}@keyframes club-detail-spin{to{transform:rotate(1turn)}}.club-detail-error{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.club-detail-error span{display:block;font-size:1rem;margin-bottom:1rem}.club-detail-error-actions{display:flex;gap:.75rem;justify-content:center}.club-detail-error-actions button{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:.9rem;padding:.5rem 1.25rem;transition:background .2s}.club-detail-error-actions button:hover{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.club-detail-inline-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.club-detail-inline-error button{background:none;border:none;color:#b91c1c;cursor:pointer;font-size:1rem;padding:0 .25rem}.club-detail-back{background:none;border:none;color:var(--primary-600);cursor:pointer;display:inline-block;font-size:.95rem;font-weight:500;margin-bottom:1rem;padding:.5rem 0;transition:opacity .2s}.club-detail-back:hover{opacity:.75}.club-detail-hero{align-items:flex-start;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem;padding:1.5rem}.club-detail-hero-info{flex:1 1;min-width:0}.club-detail-name{color:var(--text-primary);font-size:1.5rem;margin:0 0 .5rem}.club-detail-desc{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin:0 0 .75rem}.club-detail-badges{display:flex;flex-wrap:wrap;gap:.5rem}.club-detail-badge{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:16px;color:var(--text-secondary);display:inline-flex;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.club-detail-badge-type{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.club-detail-badge-pace{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.club-detail-badge-public{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.club-detail-badge-household{background:#fefce8;border-color:#fde68a;color:#854d0e}.club-detail-hero-action{flex-shrink:0}.club-detail-btn{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.25rem;transition:all .2s ease}.club-detail-btn:disabled{cursor:not-allowed;opacity:.6}.club-detail-btn-join{background:var(--primary-600);color:#fff}.club-detail-btn-join:hover:not(:disabled){filter:brightness(1.1)}.club-detail-btn-leave{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.club-detail-btn-leave:hover:not(:disabled){background:#fecaca}.club-detail-btn-search{background:var(--primary-600);color:#fff;padding:.5rem .75rem}.club-detail-btn-search:hover:not(:disabled){filter:brightness(1.1)}.club-detail-btn-nominate{background:var(--primary-600);color:#fff;font-size:.85rem;padding:.4rem 1rem}.club-detail-btn-nominate:hover:not(:disabled){filter:brightness(1.1)}.club-detail-section{margin-bottom:1.5rem}.club-detail-section-title{border-bottom:2px solid var(--surface-border);color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 .75rem;padding-bottom:.5rem}.club-detail-empty{color:var(--text-muted);font-size:.9rem;margin:0}.club-detail-members{display:flex;flex-wrap:wrap;gap:.75rem}.club-detail-member{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:.5rem;padding:.5rem .75rem}.club-detail-member-avatar{align-items:center;background:var(--primary-600);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:600;height:32px;justify-content:center;width:32px}.club-detail-member-name{color:var(--text-primary);font-size:.9rem}.club-detail-member-role{border-radius:10px;font-size:.75rem;font-weight:500;padding:.15rem .5rem}.club-detail-role-owner{background:#fef3c7;color:#92400e}.club-detail-role-admin{background:#ede9fe;color:#5b21b6}.club-detail-role-member{color:var(--text-muted)}.club-detail-current-read,.club-detail-role-member{background:var(--surface-card-alt);border:1px solid var(--surface-border)}.club-detail-current-read{border-radius:12px;display:flex;gap:1.25rem;padding:1.25rem}.club-detail-cover{border-radius:8px;box-shadow:0 2px 8px #0000001a;flex-shrink:0;height:150px;object-fit:cover;width:100px}.club-detail-current-read-info{flex:1 1;min-width:0}.club-detail-book-title{color:var(--text-primary);font-size:1.15rem;margin:0 0 .25rem}.club-detail-book-author{color:var(--text-secondary);font-size:.9rem;margin:0 0 .75rem}.club-detail-reading-since{color:var(--text-muted);font-size:.85rem;margin:0}.club-detail-reads-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.club-detail-read-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:.75rem;padding:.75rem;transition:box-shadow .2s}.club-detail-read-card:hover{box-shadow:0 2px 8px #00000014}.club-detail-read-cover{border-radius:6px;flex-shrink:0;height:75px;object-fit:cover;width:50px}.club-detail-read-cover-placeholder{align-items:center;background:var(--surface-border);border-radius:6px;display:flex;flex-shrink:0;font-size:1.5rem;height:75px;justify-content:center;width:50px}.club-detail-read-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.club-detail-read-title{color:var(--text-primary);font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-detail-read-author{color:var(--text-secondary);font-size:.8rem}.club-detail-read-date{color:var(--text-muted);font-size:.75rem}.club-detail-invite-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.club-detail-invite-header .club-detail-section-title{border:none;margin:0;padding:0}.club-detail-btn-invite{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem 1rem;transition:filter .2s}.club-detail-btn-invite:hover{filter:brightness(1.1)}.club-detail-invite-panel{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;padding:1.25rem}.club-detail-invite-desc{color:var(--text-secondary);font-size:.9rem;margin:0 0 .75rem}.club-detail-invite-form{display:flex;flex-direction:column;gap:.75rem}.club-detail-invite-input{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);font-size:.9rem;outline:none;padding:.5rem .75rem;transition:border-color .2s}.club-detail-invite-input:focus{border-color:var(--primary-600)}.club-detail-invite-buttons{display:flex;gap:.5rem}.club-detail-btn-email{background:#2563eb;color:#fff}.club-detail-btn-email:hover:not(:disabled){filter:brightness(1.1)}.club-detail-invite-result{display:flex;flex-direction:column;gap:.75rem}.club-detail-invite-link-row{display:flex;gap:.5rem}.club-detail-invite-link{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);flex:1 1;font-size:.85rem;outline:none;padding:.5rem .75rem}.club-detail-btn-copied{background:#16a34a;color:#fff}.club-detail-invite-success{color:#16a34a;font-size:.85rem;margin:0}.club-detail-invite-info{color:var(--text-secondary);font-size:.85rem;margin:0}.club-detail-invite-expiry{color:var(--text-muted);font-size:.8rem;margin:0}.club-detail-invite-error{color:#b91c1c;font-size:.85rem;margin:0}.club-detail-btn-new-invite{align-self:flex-start;background:none;border:1px dashed var(--surface-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.4rem 1rem;transition:all .2s}.club-detail-btn-new-invite:hover{border-color:var(--primary-600);color:var(--primary-600)}.club-detail-nominate-search{display:flex;gap:.5rem;margin-bottom:.75rem}.club-detail-nominate-input{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);flex:1 1;font-size:.9rem;outline:none;padding:.5rem .75rem;transition:border-color .2s}.club-detail-nominate-input:focus{border-color:var(--primary-600)}.club-detail-search-results{display:flex;flex-direction:column;gap:.5rem}.club-detail-search-result{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;display:flex;gap:.75rem;justify-content:space-between;padding:.6rem .75rem}.club-detail-search-result-info{display:flex;flex:1 1;flex-direction:column;gap:.15rem;min-width:0}.club-detail-search-result-title{color:var(--text-primary);font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-detail-search-result-author{color:var(--text-secondary);font-size:.8rem}@media (max-width:768px){.club-detail-hero{flex-direction:column;gap:1rem}.club-detail-hero-action,.club-detail-hero-action .club-detail-btn{width:100%}.club-detail-name{font-size:1.25rem}.club-detail-current-read{align-items:center;flex-direction:column;text-align:center}.club-detail-reads-grid{grid-template-columns:1fr}}.club-discovery-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.club-discovery-toggle-btn{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.9rem;font-weight:500;padding:.6rem 1rem;transition:all .2s ease}.club-discovery-toggle-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.club-discovery-toggle-btn:hover:not(.active){background:var(--surface-border)}.club-discovery-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.club-discovery-create-btn{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.25rem;transition:filter .2s}.club-discovery-create-btn:hover{filter:brightness(1.1)}.club-discovery-form{animation:club-discovery-slide-down .25s ease-out;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}@keyframes club-discovery-slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.club-discovery-form-title{color:var(--text-primary);font-size:1.1rem;margin:0 0 1rem}.club-discovery-form-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.club-discovery-form-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr 1fr}.club-discovery-form-field{display:flex;flex-direction:column;gap:.3rem}.club-discovery-form-toggle-field{align-items:center;flex-direction:row;gap:.75rem}.club-discovery-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.club-discovery-input,.club-discovery-select,.club-discovery-textarea{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);font-size:.9rem;outline:none;padding:.5rem .75rem;transition:border-color .2s}.club-discovery-input:focus,.club-discovery-select:focus,.club-discovery-textarea:focus{border-color:var(--primary-600)}.club-discovery-textarea{min-height:60px;resize:vertical}.club-discovery-toggle-switch{background:var(--surface-border);border:1px solid var(--surface-border);border-radius:12px;cursor:pointer;flex-shrink:0;height:24px;padding:0;position:relative;transition:background .2s;width:42px}.club-discovery-toggle-switch.active{background:var(--primary-600);border-color:var(--primary-600)}.club-discovery-toggle-knob{background:#fff;border-radius:50%;height:18px;left:2px;position:absolute;top:2px;transition:transform .2s;width:18px}.club-discovery-toggle-switch.active .club-discovery-toggle-knob{transform:translateX(18px)}.club-discovery-submit-btn{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.5rem;transition:filter .2s}.club-discovery-submit-btn:hover:not(:disabled){filter:brightness(1.1)}.club-discovery-submit-btn:disabled{cursor:not-allowed;opacity:.6}.club-discovery-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.club-discovery-error button{background:none;border:none;color:#b91c1c;cursor:pointer;font-size:1rem;padding:0 .25rem}.club-discovery-loading{color:var(--text-secondary);padding:4rem 1rem;text-align:center}.club-discovery-spinner{animation:club-discovery-spin .8s linear infinite;border:3px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);height:36px;margin:0 auto 1rem;width:36px}@keyframes club-discovery-spin{to{transform:rotate(1turn)}}.club-discovery-empty{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.club-discovery-empty-icon{display:block;font-size:2.5rem;margin-bottom:.75rem}.club-discovery-empty p{font-size:.95rem;margin:0}.club-discovery-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.club-discovery-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;padding:1.25rem;transition:box-shadow .2s,transform .15s}.club-discovery-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.club-discovery-card-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.club-discovery-card-name{color:var(--text-primary);font-size:1.05rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-discovery-card-badges{display:flex;flex-wrap:wrap;gap:.4rem}.club-discovery-badge{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:16px;color:var(--text-secondary);display:inline-flex;font-size:.75rem;font-weight:500;padding:.2rem .6rem}.club-discovery-badge-type{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.club-discovery-badge-pace{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.club-discovery-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-secondary);display:-webkit-box;font-size:.85rem;line-height:1.4;margin:0 0 .75rem;overflow:hidden}.club-discovery-card-footer{align-items:center;border-top:1px solid var(--surface-border);display:flex;gap:.5rem;justify-content:space-between;margin-top:auto;padding-top:.75rem}.club-discovery-card-members{color:var(--text-muted);font-size:.85rem}.club-discovery-card-reading{color:var(--text-secondary);font-size:.8rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-discovery-join-btn{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.8rem;font-weight:500;padding:.35rem 1rem;transition:filter .2s}.club-discovery-join-btn:hover:not(:disabled){filter:brightness(1.1)}.club-discovery-join-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.club-discovery-form-row,.club-discovery-grid{grid-template-columns:1fr}.club-discovery-toggle{flex-direction:column}}.my-library-loading{align-items:center;color:#8a7a5e;display:flex;flex-direction:column;justify-content:center;padding:3rem 1rem}.my-library-spinner{animation:my-library-spin .8s linear infinite;border:4px solid #e8dcc8;border-radius:50%;border-top-color:#8b6914;height:36px;margin-bottom:1rem;width:36px}@keyframes my-library-spin{to{transform:rotate(1turn)}}.my-library-error{color:#9c4040;padding:2rem 1rem;text-align:center}.my-library-retry-btn{background:#0000;border:1px solid #9c4040;border-radius:8px;color:#9c4040;cursor:pointer;font-size:.85rem;margin-top:.5rem;padding:.5rem 1.25rem;transition:all .2s}.my-library-retry-btn:hover{background:#9c4040;color:#fff}.my-library-stats{background:linear-gradient(135deg,#faf6ef,#f5efe3);border-bottom:2px solid #e0d5be;border-radius:8px 8px 0 0;display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.25rem;padding:.75rem 1rem}.my-library-stat{color:#5a4a2f;font-size:.9rem}.my-library-layout{display:flex;gap:1.5rem}.my-library-shelves{display:flex;flex-direction:column;flex-shrink:0;gap:.35rem;min-width:160px}.my-library-shelves-title{color:#8a7a5e;font-size:.8rem;font-weight:600;letter-spacing:.08em;margin:0 0 .5rem;text-transform:uppercase}.my-library-shelf-pill{align-items:center;background:#faf6ef;border:1px solid #e0d5be;border-radius:8px;color:#5a4a2f;cursor:pointer;display:flex;font-size:.85rem;justify-content:space-between;padding:.5rem .85rem;transition:all .15s}.my-library-shelf-pill:hover{background:#f0e6d0;border-color:#d4c5a9}.my-library-shelf-pill.active{background:#5a4a2f;border-color:#5a4a2f;color:#faf6ef;font-weight:600}.my-library-shelf-count{background:#0000000f;border-radius:10px;font-size:.72rem;margin-left:.5rem;padding:.1rem .5rem}.my-library-shelf-pill.active .my-library-shelf-count{background:#fff3}.my-library-main{flex:1 1;min-width:0}.my-library-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.my-library-filter-btn{background:#faf6ef;border:1px solid #d4c5a9;border-radius:20px;color:#5a4a2f;cursor:pointer;font-size:.82rem;font-weight:500;padding:.4rem .9rem;transition:all .15s}.my-library-filter-btn:hover{background:#f0e6d0}.my-library-filter-btn.active{background:#5a4a2f;border-color:#5a4a2f;color:#faf6ef}.my-library-empty{color:#8a7a5e;padding:4rem 1rem;text-align:center}.my-library-empty-icon{display:block;font-size:3.5rem;margin-bottom:.75rem}.my-library-empty p{font-style:italic;line-height:1.5;margin:0 auto;max-width:300px}.my-library-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media (min-width:768px){.my-library-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1100px){.my-library-grid{grid-template-columns:repeat(4,1fr)}}.my-library-card{background:linear-gradient(180deg,#faf6ef,#f5efe3);border:1px solid #e0d5be;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s,transform .15s}.my-library-card:hover{box-shadow:0 4px 16px #503c141f;transform:translateY(-2px)}.my-library-card-cover{align-items:center;background:linear-gradient(145deg,#e8dcc8,#d4c5a9);display:flex;height:200px;justify-content:center;overflow:hidden;position:relative;width:100%}.my-library-card-cover img{border-radius:2px;box-shadow:2px 2px 8px #503c1433;height:190px;object-fit:cover;width:130px}.my-library-card-placeholder{color:#b8a47a;font-size:3rem}.my-library-card-info{flex:1 1;padding:.75rem .85rem}.my-library-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#3d3225;display:-webkit-box;font-family:Georgia,serif;font-size:.92rem;line-height:1.3;margin:0 0 .2rem;overflow:hidden;text-overflow:ellipsis}.my-library-card-author{color:#8a7a5e;font-size:.8rem;font-style:italic;margin:0 0 .5rem}.my-library-badge{border-radius:12px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.15rem .6rem}.my-library-badge--owned{background:#dff0d8;color:#3c763d}.my-library-badge--digital{background:#d9edf7;color:#31708f}.my-library-badge--borrowed{background:#fcf8e3;color:#8a6d3b}.my-library-badge--wishlist{background:#f2dede;color:#a94442}.my-library-stars{color:#c9951a;display:block;font-size:.85rem;letter-spacing:1px;margin-top:.3rem}.my-library-page-count{color:#8a7a5e;display:block;font-size:.75rem;margin-top:.2rem}.my-library-card-actions{border-top:1px solid #e8dcc8;display:flex;flex-direction:column;gap:.4rem;padding:.6rem .85rem .85rem}.my-library-select{background:#faf6ef;border:1px solid #d4c5a9;border-radius:6px;color:#5a4a2f;cursor:pointer;font-size:.8rem;padding:.35rem .5rem;width:100%}.my-library-remove-btn{background:#0000;border:1px solid #c9a0a0;border-radius:6px;color:#9c4040;cursor:pointer;font-size:.8rem;padding:.35rem .6rem;transition:all .15s}.my-library-remove-btn:hover{background:#9c4040;border-color:#9c4040;color:#fff}.my-library-confirm-delete{align-items:center;color:#9c4040;display:flex;font-size:.82rem;gap:.4rem}.my-library-confirm-yes{background:#9c4040;border:none;border-radius:4px;color:#fff}.my-library-confirm-no,.my-library-confirm-yes{cursor:pointer;font-size:.8rem;padding:.25rem .7rem}.my-library-confirm-no{background:#0000;border:1px solid #b8a47a;border-radius:4px;color:#5a4a2f}@media (max-width:640px){.my-library-layout{flex-direction:column}.my-library-shelves{flex-direction:row;flex-wrap:wrap;min-width:0}.my-library-shelves-title{width:100%}}.my-books-container{padding:0}.my-books-stats-bar{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;gap:1.5rem;justify-content:center;margin-bottom:1.5rem;padding:.75rem 1rem}.my-books-stat{align-items:center;display:flex;flex-direction:column;gap:.15rem}.my-books-stat-count{color:var(--primary-600);font-size:1.4rem;font-weight:700}.my-books-stat-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.03em;text-transform:uppercase}.my-books-tabs{-webkit-overflow-scrolling:touch;border-bottom:2px solid var(--surface-border);display:flex;gap:0;margin-bottom:1.5rem;overflow-x:auto;scrollbar-width:none}.my-books-tabs::-webkit-scrollbar{display:none}.my-books-tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-muted);cursor:pointer;font-size:.95rem;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.my-books-tab:hover{background:var(--surface-card-alt);color:var(--text-primary)}.my-books-tab.active{border-bottom-color:var(--primary-600);color:var(--primary-600);font-weight:600}.my-books-tab-count{font-size:.8rem;opacity:.7}.my-books-content{min-height:200px}.my-books-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}.my-books-grid-finished{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.my-books-card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:1rem;padding:1rem;transition:box-shadow .2s}.my-books-card:hover{box-shadow:0 2px 12px #00000014}.my-books-card-finished{align-items:center;flex-direction:column;text-align:center}.my-books-card-finished .my-books-card-info{align-items:center}.my-books-card-abandoned{border-left:3px solid var(--danger-500);opacity:.75}.my-books-cover{background:var(--surface-card-alt);border-radius:6px;flex-shrink:0;height:120px;object-fit:cover;width:80px}.my-books-card-finished .my-books-cover{height:150px;width:100px}.my-books-cover-placeholder{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:6px;display:flex;flex-shrink:0;font-size:2rem;height:120px;justify-content:center;width:80px}.my-books-card-finished .my-books-cover-placeholder{height:150px;width:100px}.my-books-card-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.my-books-card-title{color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.3;margin:0}.my-books-card-author{color:var(--text-secondary);font-size:.85rem;margin:0}.my-books-card-date,.my-books-card-meta{color:var(--text-muted);font-size:.8rem;margin:0}.my-books-ownership-badge{background:#8b776526;border-radius:10px;color:#a08b76;display:inline-block;font-size:.72rem;margin:.2rem 0;padding:.15rem .5rem}.my-books-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.my-books-btn{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem .85rem;transition:all .2s}.my-books-btn:disabled{cursor:not-allowed;opacity:.5}.my-books-btn-primary{background:var(--primary-600);color:#fff}.my-books-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.my-books-btn-secondary{background:var(--surface-card-alt);border:1px solid var(--surface-border);color:var(--text-primary)}.my-books-btn-secondary:hover:not(:disabled){background:var(--surface-border)}.my-books-btn-danger{background:var(--danger-50);color:var(--danger-600)}.my-books-btn-danger:hover:not(:disabled){background:var(--danger-50);background:var(--danger-100,var(--danger-50));filter:brightness(.95)}.my-books-btn-muted{background:#0000;color:var(--text-muted)}.my-books-btn-muted:hover:not(:disabled){background:var(--surface-card-alt);color:var(--text-primary)}.my-books-star-rating{display:inline-flex;gap:2px}.my-books-star{color:var(--surface-border);cursor:pointer;font-size:1.3rem;line-height:1;transition:color .15s,transform .15s;-webkit-user-select:none;user-select:none}.my-books-star:hover{transform:scale(1.2)}.my-books-star.filled{color:#f5a623}.my-books-difficulty-rating{display:inline-flex;gap:3px}.my-books-difficulty-dot{color:var(--surface-border);cursor:pointer;font-size:1rem;line-height:1;transition:color .15s,transform .15s;-webkit-user-select:none;user-select:none}.my-books-difficulty-dot:hover{transform:scale(1.2)}.my-books-difficulty-dot.filled{color:var(--primary-600)}.my-books-rating-row{align-items:center;display:flex;gap:.5rem;margin-top:.25rem}.my-books-rating-label{color:var(--text-muted);font-size:.8rem;min-width:60px}.my-books-community-avg{color:#8b6914;font-size:.75rem;margin-left:.25rem;white-space:nowrap}.my-books-review-snippet{color:var(--text-secondary);font-size:.82rem;font-style:italic;line-height:1.4;margin:.25rem 0 0}.my-books-review-full{color:var(--text-primary);font-size:.88rem;line-height:1.5;margin:.5rem 0;white-space:pre-wrap}.my-books-expand-toggle{color:var(--primary-600);cursor:pointer;font-size:.8rem;margin-top:.35rem;-webkit-user-select:none;user-select:none}.my-books-expand-toggle:hover{text-decoration:underline}.my-books-expanded-body{border-top:1px solid var(--surface-border);margin-top:.5rem;padding-top:.5rem}.my-books-empty{color:var(--text-muted);padding:3rem 1rem;text-align:center}.my-books-empty-icon{display:block;font-size:2.5rem;margin-bottom:.5rem}.my-books-empty p{font-size:.95rem;margin:0}.my-books-modal-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.my-books-modal{background:var(--surface-card);border-radius:12px;box-shadow:0 20px 40px #00000026;max-height:85vh;max-width:480px;overflow-y:auto;width:100%}.my-books-modal-header{align-items:center;border-bottom:1px solid var(--surface-border);display:flex;justify-content:space-between;padding:1rem 1.25rem}.my-books-modal-header h3{color:var(--text-primary);font-size:1.1rem;margin:0}.my-books-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.2rem;line-height:1;padding:.25rem}.my-books-modal-close:hover{color:var(--text-primary)}.my-books-modal-body{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem}.my-books-review-textarea{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:.9rem;padding:.75rem;resize:vertical;width:100%}.my-books-review-textarea:focus{border-color:var(--primary-600);box-shadow:0 0 0 2px #6366f126;box-shadow:0 0 0 2px rgba(var(--primary-rgb,99,102,241),.15);outline:none}.my-books-modal-footer{border-top:1px solid var(--surface-border);display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1.25rem}@media (max-width:768px){.my-books-stats-bar{gap:.75rem;padding:.6rem .75rem}.my-books-stat-count{font-size:1.1rem}.my-books-stat-label{font-size:.65rem}.my-books-tabs{overflow-x:auto}.my-books-tab{font-size:.85rem;padding:.6rem .8rem}.my-books-grid-finished{grid-template-columns:1fr}.my-books-card-finished{flex-direction:row;text-align:left}.my-books-card-finished .my-books-card-info{align-items:flex-start}.my-books-card-finished .my-books-cover,.my-books-card-finished .my-books-cover-placeholder{height:120px;width:80px}.my-books-modal{margin:.5rem;max-width:100%}}.learning-tracks-container{margin:0 auto;max-width:900px}.learning-tracks-fiction-notice{color:var(--text-muted);padding:2.5rem 1.5rem;text-align:center}.learning-tracks-fiction-notice-icon{display:block;font-size:2.5rem;margin-bottom:.75rem}.learning-tracks-fiction-notice p{font-size:1rem;line-height:1.6;margin:0 auto;max-width:420px}.learning-tracks-message{border-radius:8px;font-size:.9rem;font-weight:500;margin-bottom:1rem;padding:.6rem 1rem}.learning-tracks-message-success{background:#f0fdf4;background:var(--primary-50,#f0fdf4);border:1px solid #16a34a;border:1px solid var(--primary-600,#16a34a);color:#16a34a;color:var(--primary-600,#16a34a)}.learning-tracks-message-error{background:#fef2f2;background:var(--danger-50,#fef2f2);border:1px solid #dc2626;border:1px solid var(--danger-600,#dc2626);color:#dc2626;color:var(--danger-600,#dc2626)}.learning-tracks-view-toggle{background:#fafaf9;background:var(--surface-card-alt,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:24px;display:flex;gap:0;justify-content:center;margin-bottom:1.25rem;padding:4px}.learning-tracks-toggle-btn{background:#0000;border:none;border-radius:20px;color:#78716c;color:var(--text-muted,#78716c);cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.5rem;transition:all .25s ease}.learning-tracks-toggle-btn.active{background:#16a34a;background:var(--primary-600,#16a34a);box-shadow:0 2px 8px #0000001f;color:#fff}.learning-tracks-filter-bar{display:flex;gap:.75rem;margin-bottom:1rem}.learning-tracks-difficulty-select,.learning-tracks-topic-input{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--input-border,var(--surface-border,#e7e5e4));border-radius:6px;color:#1c1917;color:var(--text-primary,#1c1917);font-size:.9rem;padding:8px 12px}.learning-tracks-topic-input{flex:1 1}.learning-tracks-difficulty-select:focus,.learning-tracks-topic-input:focus{border-color:#16a34a;border-color:var(--primary-600,#16a34a);box-shadow:0 0 0 2px #16a34a26;outline:none}.learning-tracks-create-toggle{background:#0000;border:1px dashed #e7e5e4;border:1px dashed var(--surface-border,#e7e5e4);border-radius:8px;color:#16a34a;color:var(--primary-600,#16a34a);cursor:pointer;font-size:.9rem;font-weight:500;margin-bottom:1rem;padding:.5rem 1rem;transition:all .2s}.learning-tracks-create-toggle:hover{background:#f0fdf4;background:var(--primary-50,#f0fdf4);border-color:#16a34a;border-color:var(--primary-600,#16a34a)}.learning-tracks-create-form{background:#fafaf9;background:var(--surface-card-alt,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:10px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;padding:1.25rem}.learning-tracks-create-form input,.learning-tracks-create-form select,.learning-tracks-create-form textarea{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--input-border,var(--surface-border,#e7e5e4));border-radius:6px;color:#1c1917;color:var(--text-primary,#1c1917);font-family:inherit;font-size:.9rem;padding:8px 12px}.learning-tracks-create-form input:focus,.learning-tracks-create-form select:focus,.learning-tracks-create-form textarea:focus{border-color:#16a34a;border-color:var(--primary-600,#16a34a);box-shadow:0 0 0 2px #16a34a26;outline:none}.learning-tracks-create-form button[type=submit]{align-self:flex-start;background:#16a34a;background:var(--primary-600,#16a34a);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.25rem;transition:opacity .2s}.learning-tracks-create-form button[type=submit]:disabled{cursor:not-allowed;opacity:.6}.learning-tracks-loading{color:#78716c;color:var(--text-muted,#78716c);padding:2rem;text-align:center}.learning-tracks-error{color:#dc2626;color:var(--danger-600,#dc2626);padding:1.5rem;text-align:center}.learning-tracks-empty{color:#78716c;color:var(--text-muted,#78716c);font-size:.95rem;padding:2.5rem 1rem;text-align:center}.learning-tracks-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.learning-tracks-card{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:10px;cursor:pointer;padding:1.1rem 1.25rem;transition:border-color .2s,box-shadow .2s}.learning-tracks-card:hover{border-color:#16a34a;border-color:var(--primary-600,#16a34a);box-shadow:0 1px 3px 0 #00000014;box-shadow:var(--shadow-sm,0 1px 3px 0 #00000014)}.learning-tracks-card-header{align-items:flex-start;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.4rem}.learning-tracks-card-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:1.05rem;font-weight:600;margin:0}.learning-tracks-badge{border-radius:4px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.learning-tracks-badge-green{background:#dcfce7;color:#166534}.learning-tracks-badge-blue{background:#dbeafe;color:#1e40af}.learning-tracks-badge-red{background:#fee2e2;color:#991b1b}.learning-tracks-topic-badge{background:#f0fdf4;background:var(--primary-50,#f0fdf4);border-radius:12px;color:#16a34a;color:var(--primary-600,#16a34a);display:inline-block;font-size:.78rem;margin-bottom:.5rem;padding:2px 8px}.learning-tracks-card-desc{color:#78716c;color:var(--text-muted,#78716c);font-size:.88rem;line-height:1.45;margin:.4rem 0}.learning-tracks-card-meta{color:#78716c;color:var(--text-muted,#78716c);display:flex;font-size:.82rem;gap:1rem;margin-top:.5rem}.learning-tracks-detail{border-top:1px solid #e7e5e4;border-top:1px solid var(--surface-border,#e7e5e4);margin-top:1rem;padding-top:1rem}.learning-tracks-book-list{display:flex;flex-direction:column;gap:.75rem}.learning-tracks-book-step{align-items:flex-start;display:flex;gap:.75rem}.learning-tracks-step-number{align-items:center;background:#16a34a;background:var(--primary-600,#16a34a);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.8rem;font-weight:700;height:28px;justify-content:center;margin-top:2px;width:28px}.learning-tracks-book-info{align-items:flex-start;display:flex;flex:1 1;gap:.6rem}.learning-tracks-book-cover{border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:4px;flex-shrink:0;height:56px;object-fit:cover;width:40px}.learning-tracks-book-info strong{color:#1c1917;color:var(--text-primary,#1c1917);display:block;font-size:.92rem}.learning-tracks-book-author{font-size:.82rem}.learning-tracks-book-author,.learning-tracks-book-pages{color:#78716c;color:var(--text-muted,#78716c);display:block}.learning-tracks-book-pages{font-size:.78rem}.learning-tracks-book-desc{color:#78716c;color:var(--text-muted,#78716c);font-size:.84rem;line-height:1.4;margin:.25rem 0 0}.learning-tracks-enroll-btn{background:#16a34a;background:var(--primary-600,#16a34a);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;margin-top:1rem;padding:.55rem 1.5rem;transition:opacity .2s}.learning-tracks-enroll-btn:hover{opacity:.9}.learning-tracks-my-card{cursor:default}.learning-tracks-progress{margin-top:.75rem}.learning-tracks-progress-bar{background:#e7e5e4;background:var(--surface-border,#e7e5e4);border-radius:4px;height:8px;overflow:hidden}.learning-tracks-progress-fill{background:linear-gradient(90deg,#16a34a,#22d3ee);background:linear-gradient(90deg,var(--primary-600,#16a34a),#22d3ee);border-radius:4px;height:100%;transition:width .4s ease}.learning-tracks-progress-text{color:#78716c;color:var(--text-muted,#78716c);display:block;font-size:.8rem;margin-top:.3rem}.learning-tracks-current-book{background:#fafaf9;background:var(--surface-card-alt,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:8px;margin-top:.75rem;padding:.75rem}.learning-tracks-current-label{color:#78716c;color:var(--text-muted,#78716c);display:block;font-size:.82rem;margin-bottom:.25rem}.learning-tracks-current-book strong{color:#1c1917;color:var(--text-primary,#1c1917);display:block;font-size:.95rem}.learning-tracks-complete-btn{background:#16a34a;background:var(--primary-600,#16a34a);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:.5rem;padding:.4rem 1rem;transition:opacity .2s}.learning-tracks-complete-btn:hover{opacity:.9}.learning-tracks-completed{color:#16a34a;color:var(--primary-600,#16a34a);font-size:1rem;font-weight:600;margin-top:.75rem;padding:.5rem 0;text-align:center}@media (max-width:768px){.learning-tracks-grid{grid-template-columns:1fr}.learning-tracks-filter-bar{flex-direction:column}.learning-tracks-toggle-btn{font-size:.85rem;padding:.4rem 1rem}.learning-tracks-action-buttons{flex-direction:column}}.learning-tracks-action-buttons{display:flex;gap:.75rem;margin-bottom:1rem}.learning-tracks-ai-toggle{background:linear-gradient(135deg,#8b6914,#c9951a);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1.25rem;transition:opacity .2s,transform .15s}.learning-tracks-ai-toggle:hover{opacity:.9;transform:translateY(-1px)}.learning-tracks-ai-section{margin-bottom:1.5rem}.learning-tracks-ai-form{background:linear-gradient(135deg,#faf6ef,#f5efe3);border:2px solid #d4c5a9;border-radius:12px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1.25rem}.learning-tracks-ai-form-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.25rem}.learning-tracks-ai-icon{font-size:2rem}.learning-tracks-ai-form-header strong{color:#3d3225;display:block;font-size:1.05rem}.learning-tracks-ai-subtitle{color:#8a7a5e;font-size:.85rem;margin:.15rem 0 0}.learning-tracks-ai-form input,.learning-tracks-ai-form select,.learning-tracks-ai-form textarea{background:#fff;border:1px solid #d4c5a9;border-radius:8px;color:#3d3225;font-family:inherit;font-size:.9rem;padding:.6rem .85rem}.learning-tracks-ai-form input:focus,.learning-tracks-ai-form select:focus,.learning-tracks-ai-form textarea:focus{border-color:#8b6914;box-shadow:0 0 0 3px #8b69141f;outline:none}.learning-tracks-ai-submit{align-self:flex-start;background:linear-gradient(135deg,#8b6914,#c9951a);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.65rem 1.5rem;transition:opacity .2s}.learning-tracks-ai-submit:disabled{cursor:not-allowed;opacity:.6}.learning-tracks-ai-loading{color:#5a4a2f;padding:2rem 1rem;text-align:center}.learning-tracks-ai-spinner{animation:ai-spin .8s linear infinite;border:4px solid #e8dcc8;border-radius:50%;border-top-color:#8b6914;height:40px;margin:0 auto 1rem;width:40px}@keyframes ai-spin{to{transform:rotate(1turn)}}.learning-tracks-ai-loading p{font-size:1rem;font-weight:500;margin:0}.learning-tracks-ai-loading-sub{color:#8a7a5e!important;font-size:.85rem!important;font-weight:400!important;margin-top:.25rem!important}.learning-tracks-ai-preview{background:linear-gradient(135deg,#faf6ef,#f5efe3);border:2px solid #d4c5a9;border-radius:12px;padding:1.25rem}.learning-tracks-ai-preview-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.learning-tracks-ai-preview-header h3{color:#3d3225;font-family:Georgia,serif;font-size:1.15rem;margin:0}.learning-tracks-ai-preview-desc{color:#5a4a2f;font-size:.9rem;line-height:1.5;margin:0 0 1rem}.learning-tracks-ai-book-list{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.25rem}.learning-tracks-ai-book-item{align-items:flex-start;background:#fff9;border:1px solid #e0d5be;border-radius:8px;display:flex;gap:.75rem;padding:.75rem;transition:box-shadow .15s}.learning-tracks-ai-book-item:hover{box-shadow:0 2px 8px #503c1414}.learning-tracks-ai-book-item.not-found{border-style:dashed;opacity:.55}.learning-tracks-ai-book-number{align-items:center;background:#8b6914;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.8rem;font-weight:700;height:28px;justify-content:center;margin-top:2px;width:28px}.learning-tracks-ai-book-cover-wrap{flex-shrink:0}.learning-tracks-ai-book-cover{border-radius:3px;box-shadow:1px 1px 4px #503c1426;height:72px;object-fit:cover;width:50px}.learning-tracks-ai-book-cover-placeholder{align-items:center;background:linear-gradient(145deg,#e8dcc8,#d4c5a9);border-radius:3px;display:flex;font-size:1.5rem;height:72px;justify-content:center;width:50px}.learning-tracks-ai-book-info{flex:1 1;min-width:0}.learning-tracks-ai-book-info strong{color:#3d3225;display:block;font-family:Georgia,serif;font-size:.95rem}.learning-tracks-ai-book-author{color:#8a7a5e;display:block;font-size:.82rem;font-style:italic;margin-bottom:.25rem}.learning-tracks-ai-book-reason{color:#5a4a2f;font-size:.84rem;line-height:1.4;margin:.2rem 0 0}.learning-tracks-ai-book-pages{color:#8a7a5e;display:block;font-size:.78rem;margin-top:.15rem}.learning-tracks-ai-book-missing{color:#9c4040;display:block;font-size:.78rem;margin-top:.2rem}.learning-tracks-ai-preview-actions{align-items:center;border-top:1px solid #e0d5be;display:flex;flex-wrap:wrap;gap:.75rem;padding-top:.75rem}.learning-tracks-ai-found-count{color:#8a7a5e;font-size:.85rem;margin-right:auto}.learning-tracks-ai-confirm-btn{background:#4a7c59;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.55rem 1.5rem;transition:opacity .2s}.learning-tracks-ai-confirm-btn:disabled{cursor:not-allowed;opacity:.5}.learning-tracks-ai-confirm-btn:hover:not(:disabled){opacity:.9}.learning-tracks-ai-regenerate-btn{background:#0000;border:1px solid #d4c5a9;border-radius:8px;color:#5a4a2f;cursor:pointer;font-size:.9rem;padding:.55rem 1rem;transition:all .15s}.learning-tracks-ai-regenerate-btn:hover:not(:disabled){background:#f0e6d0;border-color:#b8a47a}.learning-tracks-ai-regenerate-btn:disabled{cursor:not-allowed;opacity:.5}.recommendations-container{display:flex;flex-direction:column;gap:2rem;width:100%}.recommendations-lang-hint{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;cursor:pointer;font-size:.85rem;padding:.6rem 1rem;transition:background .2s}.recommendations-lang-hint:hover{background:#dbeafe}.recommendations-section{width:100%}.recommendations-section-header{color:#1c1917;color:var(--text-primary,#1c1917);font-size:1.15rem;font-weight:700;margin:0 0 1rem}.recommendations-scroll-row{-webkit-overflow-scrolling:touch;display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory}.recommendations-scroll-row::-webkit-scrollbar{height:6px}.recommendations-scroll-row::-webkit-scrollbar-track{background:#e7e5e4;background:var(--surface-border,#e7e5e4);border-radius:3px}.recommendations-scroll-row::-webkit-scrollbar-thumb{background:#78716c;background:var(--text-muted,#78716c);border-radius:3px}.recommendations-card{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:12px;cursor:pointer;display:flex;flex:0 0 220px;flex-direction:column;overflow:hidden;scroll-snap-align:start;transition:box-shadow .2s,transform .2s,flex-basis .3s}.recommendations-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.recommendations-card--expanded{flex:0 0 280px}.recommendations-card-top{display:flex;flex-direction:column;position:relative}.recommendations-card-chevron{color:#a8a29e;color:var(--text-muted,#a8a29e);font-size:.7rem;pointer-events:none;position:absolute;right:.5rem;top:.4rem}.recommendations-card-cover{flex-shrink:0;height:160px;overflow:hidden;width:100%}.recommendations-card-cover-img{height:100%;object-fit:cover;width:100%}.recommendations-card-cover-placeholder{align-items:center;background:#e7e5e4;background:var(--surface-border,#e7e5e4);display:flex;font-size:2.5rem;height:100%;justify-content:center;width:100%}.recommendations-card-body{display:flex;flex:1 1;flex-direction:column;padding:.75rem}.recommendations-card-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:.9rem;font-weight:600;margin:0 0 .15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommendations-card-author{color:#57534e;color:var(--text-secondary,#57534e);font-size:.8rem;margin:0 0 .4rem}.recommendations-card-tag{background:#e7e5e4;background:var(--surface-border,#e7e5e4);border-radius:10px;color:#1c1917;color:var(--text-primary,#1c1917);display:inline-block;font-size:.7rem;margin-bottom:.3rem;padding:.1rem .45rem;width:-webkit-fit-content;width:fit-content}.recommendations-stars{display:inline-flex;font-size:.8rem;gap:1px;margin-bottom:.3rem}.recommendations-star-filled{color:#16a34a;color:var(--primary-600,#16a34a)}.recommendations-star-empty{color:#e7e5e4;color:var(--surface-border,#e7e5e4)}.recommendations-card-reason{color:#78716c;color:var(--text-muted,#78716c);flex:1 1;font-size:.75rem;font-style:italic;line-height:1.35;margin:0 0 .5rem}.recommendations-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.recommendations-btn{background:#fafaf9;background:var(--surface-card-alt,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:8px;color:#1c1917;color:var(--text-primary,#1c1917);cursor:pointer;font-size:.75rem;padding:.35rem .6rem;transition:background .2s,border-color .2s;white-space:nowrap}.recommendations-btn:hover:not(:disabled){border-color:#16a34a;border-color:var(--primary-600,#16a34a)}.recommendations-btn:disabled{cursor:default;opacity:.6}.recommendations-btn.success{background:#16a34a;background:var(--primary-600,#16a34a);border-color:#16a34a;border-color:var(--primary-600,#16a34a);color:#fff}.recommendations-btn-secondary{background:#0000}.recommendations-btn-dismiss{background:#0000;border-color:#e7e5e4;color:#a8a29e;color:var(--text-muted,#a8a29e);min-width:auto;padding:.35rem .5rem}.recommendations-btn-dismiss.success,.recommendations-btn-dismiss:hover:not(:disabled){background:#fef2f2;border-color:#fecaca;color:#b91c1c}.recommendations-card-dismissed{opacity:.4;transform:scale(.95);transition:all .5s ease}.recommendations-picker{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.recommendations-picker-label{color:#57534e;color:var(--text-secondary,#57534e);font-size:.9rem;font-weight:500;white-space:nowrap}.recommendations-picker-select{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:8px;color:#1c1917;color:var(--text-primary,#1c1917);flex:1 1;font-size:.9rem;min-width:200px;outline:none;padding:.5rem .75rem;transition:border-color .2s}.recommendations-picker-select:focus{border-color:#16a34a;border-color:var(--primary-600,#16a34a);box-shadow:0 0 0 2px #16a34a26}.recommendations-tracks-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.recommendations-track-card{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:10px;padding:1rem 1.15rem;transition:border-color .2s,box-shadow .2s}.recommendations-track-card:hover{border-color:#16a34a;border-color:var(--primary-600,#16a34a);box-shadow:0 1px 3px 0 #00000014;box-shadow:var(--shadow-sm,0 1px 3px 0 #00000014)}.recommendations-track-header{align-items:flex-start;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.35rem}.recommendations-track-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:1rem;font-weight:600;margin:0}.recommendations-track-badge{border-radius:4px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.recommendations-track-badge-green{background:#dcfce7;color:#166534}.recommendations-track-badge-blue{background:#dbeafe;color:#1e40af}.recommendations-track-badge-red{background:#fee2e2;color:#991b1b}.recommendations-track-topic{background:#f0fdf4;background:var(--primary-50,#f0fdf4);border-radius:12px;color:#16a34a;color:var(--primary-600,#16a34a);display:inline-block;font-size:.78rem;margin-bottom:.5rem;padding:2px 8px}.recommendations-track-meta{color:#78716c;color:var(--text-muted,#78716c);display:flex;font-size:.82rem;gap:1rem;margin-top:.5rem}.recommendations-card-detail{border-top:1px solid #e7e5e4;border-top:1px solid var(--surface-border,#e7e5e4);padding:0 .75rem .5rem}.recommendations-card-desc{color:#57534e;color:var(--text-secondary,#57534e);font-size:.78rem;line-height:1.45;margin:.5rem 0}.recommendations-card-desc--empty{color:#a8a29e;color:var(--text-muted,#a8a29e);font-style:italic}.recommendations-card-pages{color:#78716c;color:var(--text-muted,#78716c);display:inline-block;font-size:.72rem;margin-bottom:.5rem}.recommendations-loading{align-items:center;color:#78716c;color:var(--text-muted,#78716c);display:flex;flex-direction:column;padding:2rem 1rem}.recommendations-spinner{animation:recommendations-spin .7s linear infinite;border:3px solid #e7e5e4;border-top-color:#16a34a;border:3px solid var(--surface-border,#e7e5e4);border-radius:50%;border-top-color:var(--primary-600,#16a34a);height:28px;margin-bottom:.5rem;width:28px}@keyframes recommendations-spin{to{transform:rotate(1turn)}}.recommendations-loading p{font-size:.9rem;margin:0}.recommendations-error{color:#dc2626;color:var(--danger-600,#dc2626);font-size:.9rem;padding:1.25rem;text-align:center}.recommendations-empty{color:#78716c;color:var(--text-muted,#78716c);padding:2.5rem 1rem;text-align:center}.recommendations-empty-icon{display:block;font-size:2.5rem;margin-bottom:.5rem}.recommendations-empty p{font-size:.95rem;line-height:1.5;margin:0 auto;max-width:360px}@media (max-width:768px){.recommendations-tracks-grid{grid-template-columns:1fr}.recommendations-card{flex:0 0 180px}.recommendations-picker{align-items:stretch;flex-direction:column}.recommendations-picker-select{min-width:0}}@media (max-width:480px){.recommendations-card{flex:0 0 160px}.recommendations-card-cover{height:120px}.recommendations-card-actions{flex-direction:column}}.reader-profile-error,.reader-profile-loading{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.reader-profile-spinner{animation:reader-profile-spin .7s linear infinite;border:3px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);display:inline-block;height:28px;width:28px}@keyframes reader-profile-spin{to{transform:rotate(1turn)}}.reader-profile-error-icon{display:block;font-size:2rem;margin-bottom:.5rem}.reader-profile-view{margin:0 auto;max-width:700px}.reader-profile-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.reader-profile-header h2{color:var(--text-primary);font-size:1.25rem;margin:0}.reader-profile-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.reader-profile-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:.35rem;padding:1.25rem 1rem;text-align:center}.reader-profile-card-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.reader-profile-card-sub{color:var(--text-secondary);font-size:.8rem}.reader-profile-badge{background:var(--primary-600);border-radius:14px;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;padding:.25rem .85rem}.reader-profile-stars{color:var(--surface-border);font-size:1.2rem;letter-spacing:2px}.reader-profile-pill,.reader-profile-stars .filled{color:var(--primary-600)}.reader-profile-pill{background:var(--surface-card-alt);border:1px solid var(--primary-600);border-radius:14px;display:inline-block;font-size:.9rem;font-weight:500;padding:.2rem .75rem}.reader-profile-section{margin-bottom:1.25rem}.reader-profile-section h3{color:var(--text-primary);font-size:.95rem;margin:0 0 .5rem}.reader-profile-authors,.reader-profile-bio{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0}.reader-profile-tags{display:flex;flex-wrap:wrap;gap:.5rem}.reader-profile-tag{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:14px;color:var(--text-secondary);font-size:.82rem;padding:.2rem .7rem}.reader-profile-form{margin:0 auto;max-width:700px}.reader-profile-form-title{color:var(--text-primary);font-size:1.25rem;margin:0 0 1.25rem}.reader-profile-form-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.88rem;margin-bottom:1rem;padding:.6rem 1rem}.reader-profile-fieldset{border:none;margin:0 0 1.25rem;padding:0}.reader-profile-fieldset legend{color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:.5rem}.reader-profile-option-group{display:flex;flex-wrap:wrap;gap:.5rem}.reader-profile-option-btn{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;font-size:.88rem;gap:.15rem;padding:.6rem 1.1rem;transition:all .2s ease}.reader-profile-option-btn:hover{border-color:var(--primary-600);color:var(--text-primary)}.reader-profile-option-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.reader-profile-option-emoji{font-size:1.1rem}.reader-profile-option-desc{font-size:.75rem;opacity:.85}.reader-profile-slider-wrap{padding:.25rem 0}.reader-profile-slider{accent-color:var(--primary-600);width:100%}.reader-profile-slider-labels{color:var(--text-muted);display:flex;font-size:.75rem;justify-content:space-between;margin-top:.25rem}.reader-profile-slider-labels .active{color:var(--primary-600);font-weight:600}.reader-profile-hint{color:var(--text-muted);font-size:.85rem;line-height:1.4;margin:0 0 .75rem}.reader-profile-lang-grid{display:flex;flex-wrap:wrap;gap:.5rem}.reader-profile-lang-btn{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.85rem;gap:.35rem;padding:.4rem .8rem;transition:all .2s ease}.reader-profile-lang-btn:hover{border-color:var(--primary-600);color:var(--text-primary)}.reader-profile-lang-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.reader-profile-lang-flag{font-size:1rem}.reader-profile-genre-group{margin-bottom:.75rem}.reader-profile-genre-group-title{color:var(--text-primary);font-size:.85rem;font-weight:600;letter-spacing:.03em;margin:0 0 .35rem;text-transform:uppercase}.reader-profile-genre-item{margin-bottom:.25rem}.reader-profile-checkbox{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.88rem;gap:.4rem;padding:.15rem 0}.reader-profile-checkbox input[type=checkbox]{accent-color:var(--primary-600)}.reader-profile-subgenres{padding-left:1.4rem}.reader-profile-input,.reader-profile-textarea{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:.9rem;padding:.6rem .75rem;resize:vertical;transition:border-color .2s;width:100%}.reader-profile-input:focus,.reader-profile-textarea:focus{border-color:var(--primary-600);outline:none}.reader-profile-form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.reader-profile-btn{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1.2rem;transition:all .2s ease}.reader-profile-btn.primary{background:var(--primary-600);color:#fff}.reader-profile-btn.primary:hover{filter:brightness(1.1)}.reader-profile-btn.primary:disabled{cursor:not-allowed;opacity:.6}.reader-profile-btn.secondary{background:var(--surface-card-alt);border:1px solid var(--surface-border);color:var(--text-secondary)}.reader-profile-btn.secondary:hover{border-color:var(--text-muted);color:var(--text-primary)}.reader-profile-blocked-header{align-items:center;display:flex;justify-content:space-between}.reader-profile-blocked-header h3{margin:0}.reader-profile-blocked-desc{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 .75rem}.reader-profile-blocked-list{display:flex;flex-direction:column;gap:.5rem}.reader-profile-blocked-item{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;display:flex;gap:.75rem;justify-content:space-between;padding:.5rem .75rem}.reader-profile-blocked-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.reader-profile-blocked-title{color:var(--text-primary);font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-profile-blocked-author{color:var(--text-secondary);font-size:.8rem}.reader-profile-btn-unblock{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#166534;font-size:.8rem;padding:.3rem .75rem;white-space:nowrap}.reader-profile-btn-unblock:hover{background:#dcfce7}.reader-profile-muted{color:var(--text-muted);font-size:.85rem;margin:0}@media (max-width:768px){.reader-profile-cards{grid-template-columns:1fr}.reader-profile-option-group{flex-direction:column}.reader-profile-option-btn{flex-direction:row;justify-content:center}}.streaks-container{display:flex;flex-direction:column;gap:1.25rem}.streaks-error,.streaks-loading{color:var(--text-muted);padding:2rem;text-align:center}.streaks-error{color:#c0392b}.streaks-error button{cursor:pointer;margin-left:.5rem}.streaks-counter-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:.75rem;padding:1.5rem}.streaks-fire-section{align-items:center;display:flex;gap:.5rem}.streaks-fire-emoji{animation:streaks-fire-pulse 1.2s ease-in-out infinite;font-size:2.5rem}@keyframes streaks-fire-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.streaks-count{color:var(--primary-600);font-size:2.5rem;font-weight:800}.streaks-label{color:var(--text-muted);font-size:1rem;font-weight:500}.streaks-freeze-badge{align-items:center;background:#e0f0ff;border-radius:20px;color:#1a73e8;display:inline-flex;font-size:.8rem;font-weight:600;gap:.35rem;padding:.25rem .75rem}.streaks-record-btn{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1.25rem;transition:opacity .2s}.streaks-record-btn:disabled{cursor:default;opacity:.6}.streaks-auto-note{color:var(--text-muted);font-size:.8rem;margin:.5rem 0 0;text-align:center}.streaks-xp-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;padding:1rem 1.25rem}.streaks-xp-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.streaks-xp-badge{background:var(--primary-600);border-radius:20px;color:#fff;display:inline-block;font-size:.8rem;font-weight:700;padding:.2rem .75rem}.streaks-xp-progress-text{color:var(--text-muted);font-size:.8rem;font-weight:500}.streaks-xp-bar{background:var(--surface-border);border-radius:4px;height:8px;overflow:hidden}.streaks-xp-bar-fill{background:var(--primary-600);border-radius:4px;height:100%;transition:width .4s ease}.streaks-challenges-section{display:flex;flex-direction:column;gap:.75rem}.streaks-section-title{color:var(--text-primary);font-size:1.1rem;font-weight:700;margin:0}.streaks-group-label{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.04em;margin:.5rem 0 .25rem;text-transform:uppercase}.streaks-challenge-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:.75rem;padding:.75rem 1rem;transition:opacity .2s}.streaks-challenge-card.completed{opacity:.65}.streaks-challenge-check{flex-shrink:0;font-size:1.2rem}.streaks-challenge-info{display:flex;flex:1 1;flex-direction:column;gap:.15rem;min-width:0}.streaks-challenge-title{color:var(--text-primary);font-size:.9rem;font-weight:600}.streaks-challenge-desc{color:var(--text-muted);font-size:.78rem}.streaks-xp-pill{background:#fff3cd;border-radius:20px;color:#856404;display:inline-block;flex-shrink:0;font-size:.75rem;font-weight:700;padding:.15rem .6rem;white-space:nowrap}.streaks-complete-btn{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.8rem;font-weight:600;padding:.3rem .75rem;transition:opacity .2s}.streaks-complete-btn:disabled{cursor:default;opacity:.6}.streaks-empty{color:var(--text-muted);font-size:.9rem;padding:1rem;text-align:center}@media (max-width:600px){.streaks-challenge-card{flex-wrap:wrap}}.achievements-container{display:flex;flex-direction:column;gap:1.25rem}.achievements-error,.achievements-loading{color:var(--text-muted);padding:2rem;text-align:center}.achievements-error{color:#c0392b}.achievements-error button{cursor:pointer;margin-left:.5rem}.achievements-summary{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;gap:.5rem;justify-content:center;padding:1rem}.achievements-trophy-icon{font-size:1.75rem}.achievements-summary-text{color:var(--text-primary);font-size:1.1rem;font-weight:700}.achievements-tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem}.achievements-tab{background:#0000;border:1px solid var(--surface-border);border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .85rem;transition:all .2s;white-space:nowrap}.achievements-tab.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.achievements-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.achievements-card{align-items:center;background:var(--surface-card-alt);border:2px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;padding:1.25rem 1rem;text-align:center;transition:transform .2s}.achievements-card:hover{transform:translateY(-2px)}.achievements-card.locked{opacity:.55}.achievements-card.rarity-common{border-color:#9e9e9e}.achievements-card.rarity-uncommon{border-color:#4caf50}.achievements-card.rarity-rare{border-color:#2196f3}.achievements-card.rarity-epic{border-color:#9c27b0}.achievements-card.rarity-legendary{border-color:#ffc107}.achievements-card.silhouette{opacity:.4}.silhouette-icon{color:var(--text-muted);font-size:2rem}.achievements-card-icon{font-size:2.25rem;margin-bottom:.5rem}.achievements-card-name{color:var(--text-primary);font-size:.9rem;font-weight:700;margin-bottom:.25rem}.achievements-card-desc{color:var(--text-muted);font-size:.78rem;margin-bottom:.5rem}.achievements-card-meta{align-items:center;display:flex;flex-direction:column;gap:.25rem}.achievements-rarity-badge{border-radius:20px;display:inline-block;font-size:.7rem;font-weight:700;padding:.15rem .6rem;text-transform:uppercase}.achievements-rarity-badge.rarity-common{background:#e0e0e0;color:#555}.achievements-rarity-badge.rarity-uncommon{background:#e8f5e9;color:#2e7d32}.achievements-rarity-badge.rarity-rare{background:#e3f2fd;color:#1565c0}.achievements-rarity-badge.rarity-epic{background:#f3e5f5;color:#7b1fa2}.achievements-rarity-badge.rarity-legendary{background:#fff8e1;color:#f57f17}.achievements-percent,.achievements-unlock-date{color:var(--text-muted);font-size:.72rem}.achievements-percent{font-style:italic;margin-top:.35rem}.achievements-empty{color:var(--text-muted);grid-column:1/-1;padding:1rem;text-align:center}@media (max-width:500px){.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.leaderboard-container{display:flex;flex-direction:column;gap:1rem}.leaderboard-error,.leaderboard-loading{color:var(--text-muted);padding:2rem;text-align:center}.leaderboard-error{color:#c0392b}.leaderboard-error button{cursor:pointer;margin-left:.5rem}.leaderboard-header{text-align:center}.leaderboard-season{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.leaderboard-optin-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:.75rem;padding:2rem 1.5rem;text-align:center}.leaderboard-optin-title{color:var(--text-primary);font-size:1.2rem;font-weight:700;margin:0}.leaderboard-optin-desc{color:var(--text-muted);font-size:.9rem;line-height:1.5;margin:0;max-width:400px}.leaderboard-optin-btn{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.6rem 1.5rem;transition:opacity .2s}.leaderboard-optin-btn:disabled{cursor:default;opacity:.6}.leaderboard-tabs{display:flex;gap:.4rem;justify-content:center}.leaderboard-tab{background:#0000;border:1px solid var(--surface-border);border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .85rem;transition:all .2s}.leaderboard-tab.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.leaderboard-user-position{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);font-size:.9rem;padding:.5rem;text-align:center}.leaderboard-percentile{color:var(--primary-600);font-weight:600}.leaderboard-list{display:flex;flex-direction:column;gap:.35rem}.leaderboard-row{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;display:flex;gap:.75rem;padding:.6rem 1rem;transition:background .15s}.leaderboard-row.current-user{background:#eff6ff;border-color:var(--primary-600);font-weight:600}.leaderboard-row.medal-1 .leaderboard-rank{color:#ffc107;font-weight:800}.leaderboard-row.medal-2 .leaderboard-rank{color:#90a4ae;font-weight:800}.leaderboard-row.medal-3 .leaderboard-rank{color:#cd7f32;font-weight:800}.leaderboard-rank{color:var(--text-muted);flex-shrink:0;font-size:1rem;font-weight:700;text-align:center;width:2rem}.leaderboard-name{color:var(--text-primary);flex:1 1;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-xp{color:var(--primary-600);flex-shrink:0;font-size:.85rem;font-weight:700}.leaderboard-empty{color:var(--text-muted);padding:1rem;text-align:center}@media (max-width:500px){.leaderboard-row{padding:.5rem .75rem}}.bookdna-container{display:flex;flex-direction:column;gap:1rem}.bookdna-error,.bookdna-loading{color:var(--text-muted);padding:2rem;text-align:center}.bookdna-error{color:#c0392b}.bookdna-error button{cursor:pointer;margin-left:.5rem}.bookdna-not-ready{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;padding:2.5rem 1.5rem;text-align:center}.bookdna-not-ready-emoji{font-size:2.5rem}.bookdna-not-ready-title{color:var(--text-primary);font-size:1.2rem;font-weight:700;margin:0}.bookdna-not-ready-desc{color:var(--text-muted);font-size:.9rem;margin:0}.bookdna-card{background:var(--surface-card-alt);background-clip:padding-box;border:2px solid #0000;border-radius:14px;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;position:relative}.bookdna-card:before{background:linear-gradient(135deg,var(--primary-600),#9c27b0,#ff9800);border-radius:14px;content:"";inset:-2px;position:absolute;z-index:-1}.bookdna-header{align-items:center;display:flex;gap:.5rem;justify-content:center}.bookdna-emoji{font-size:1.75rem}.bookdna-reader-type{color:var(--text-primary);font-size:1.5rem;font-weight:800;margin:0}.bookdna-section{display:flex;flex-direction:column;gap:.5rem}.bookdna-section-title{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.bookdna-genre-bars{display:flex;flex-direction:column;gap:.4rem}.bookdna-genre-row{align-items:center;display:flex;gap:.5rem}.bookdna-genre-label{color:var(--text-primary);flex-shrink:0;font-size:.8rem;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:90px}.bookdna-genre-bar-track{background:var(--surface-border);border-radius:5px;flex:1 1;height:10px;overflow:hidden}.bookdna-genre-bar-fill{background:var(--primary-600);border-radius:5px;height:100%;transition:width .4s ease}.bookdna-stats-row{display:flex;gap:1rem;justify-content:space-around}.bookdna-stat{align-items:center;display:flex;flex-direction:column;gap:.25rem}.bookdna-stat-label{color:var(--text-muted);font-size:.78rem;font-weight:600;text-transform:uppercase}.bookdna-difficulty-stars{font-size:1.1rem}.bookdna-difficulty-stars .star-filled{color:#ffc107}.bookdna-difficulty-stars .star-empty{color:var(--surface-border)}.bookdna-pace-badge{background:var(--primary-600);border-radius:20px;color:#fff;display:inline-block;font-size:.8rem;font-weight:700;padding:.15rem .65rem}.bookdna-ratio-bar{border-radius:12px;color:#fff;display:flex;font-size:.72rem;font-weight:700;height:24px;overflow:hidden}.bookdna-ratio-fact{background:#1565c0}.bookdna-ratio-fact,.bookdna-ratio-fiction{align-items:center;display:flex;justify-content:center;transition:width .4s ease}.bookdna-ratio-fiction{background:#7b1fa2}.bookdna-ratio-labels{color:var(--text-muted);display:flex;font-size:.75rem;justify-content:space-between}.bookdna-mood{align-items:center;display:flex;gap:.5rem;justify-content:center}.bookdna-mood-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.bookdna-mood-tag{background:#fff3e0;border-radius:20px;color:#e65100;display:inline-block;font-size:.8rem;font-weight:700;padding:.2rem .75rem}.bookdna-evolve-note{color:var(--text-muted);font-size:.78rem;font-style:italic;margin:0;text-align:center}@media (max-width:500px){.bookdna-genre-label{font-size:.75rem;width:70px}}.buddy-container{display:flex;flex-direction:column;gap:1.25rem}.buddy-error,.buddy-loading{color:var(--text-muted);padding:2rem;text-align:center}.buddy-error{color:#c0392b}.buddy-error button{cursor:pointer;margin-left:.5rem}.buddy-header{align-items:center;display:flex;justify-content:space-between}.buddy-title{color:var(--text-primary);font-size:1.1rem;font-weight:700;margin:0}.buddy-invite-toggle{background:var(--primary-600);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .85rem}.buddy-invite-form{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.buddy-input{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);font-size:.9rem;padding:.5rem .75rem}.buddy-input:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.buddy-send-btn{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem}.buddy-send-btn:disabled{cursor:default;opacity:.6}.buddy-section{display:flex;flex-direction:column;gap:.5rem}.buddy-section-title{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.buddy-card{align-items:flex-start;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:.75rem;padding:.75rem 1rem}.buddy-card.completed{opacity:.65}.buddy-avatars{align-items:center;display:flex;flex-shrink:0;font-size:1.1rem;gap:.15rem}.buddy-avatar-connector{font-size:.8rem}.buddy-info{display:flex;flex:1 1;flex-direction:column;gap:.2rem;min-width:0}.buddy-partner{color:var(--text-primary);font-size:.9rem;font-weight:600}.buddy-book{color:var(--text-muted);font-size:.8rem}.buddy-progress-comparison{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem}.buddy-progress-row{align-items:center;display:flex;gap:.4rem}.buddy-progress-label{color:var(--text-muted);flex-shrink:0;font-size:.72rem;text-align:right;width:36px}.buddy-progress-bar-track{background:var(--surface-border);border-radius:4px;flex:1 1;height:8px;overflow:hidden}.buddy-progress-bar-fill{border-radius:4px;height:100%;transition:width .3s ease}.buddy-progress-bar-fill.mine{background:var(--primary-600)}.buddy-progress-bar-fill.partner{background:#9c27b0}.buddy-progress-pct{color:var(--text-muted);flex-shrink:0;font-size:.72rem;width:30px}.buddy-accept-btn,.buddy-complete-btn{align-self:flex-start;border:none;border-radius:6px;cursor:pointer;flex-shrink:0;font-size:.8rem;font-weight:600;padding:.3rem .75rem}.buddy-accept-btn{background:#4caf50;color:#fff}.buddy-complete-btn{background:var(--primary-600);color:#fff}.buddy-accept-btn:disabled,.buddy-complete-btn:disabled{cursor:default;opacity:.6}.buddy-empty{color:var(--text-muted);font-size:.9rem;padding:1rem;text-align:center}@media (max-width:500px){.buddy-card{flex-wrap:wrap}.buddy-progress-label{width:28px}}.qj-container{display:flex;flex-direction:column;gap:1.25rem}.qj-error,.qj-loading{color:var(--text-muted);padding:2rem;text-align:center}.qj-error{color:#c0392b}.qj-error button{cursor:pointer;margin-left:.5rem}.qj-daily-banner{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:.4rem;padding:1.25rem;text-align:center}.qj-daily-label{color:var(--primary-600);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.qj-daily-text{color:var(--text-primary);font-size:1.05rem;font-style:italic;line-height:1.5;margin:0}.qj-daily-author{color:var(--text-muted);font-size:.85rem}.qj-tabs{display:flex;gap:.4rem}.qj-tab{background:#0000;border:1px solid var(--surface-border);border-radius:8px;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:.5rem;text-align:center;transition:all .2s}.qj-tab.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.qj-section{display:flex;flex-direction:column;gap:.75rem}.qj-section-header{align-items:center;display:flex;gap:.5rem}.qj-section-label{color:var(--text-muted);flex:1 1;font-size:.85rem}.qj-filter-input{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.85rem;padding:.4rem .65rem}.qj-filter-input:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.qj-add-btn{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.8rem;font-weight:600;padding:.35rem .75rem}.qj-form{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;flex-direction:column;padding:1rem}.qj-form,.qj-form-row{display:flex;gap:.5rem}.qj-input{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.85rem;padding:.45rem .65rem}.qj-input:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.qj-textarea{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:.85rem;padding:.5rem .65rem;resize:vertical}.qj-textarea:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.qj-save-btn{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem}.qj-save-btn:disabled{cursor:default;opacity:.6}.qj-prompt-chip{background:#fff8e1;border-radius:8px;color:#795548;font-size:.85rem;line-height:1.4;padding:.5rem .75rem}.qj-quotes-list{display:flex;flex-direction:column;gap:.6rem}.qj-quote-card{background:var(--surface-card-alt);border-left:4px solid var(--primary-600);border-radius:0 8px 8px 0;padding:.75rem 1rem}.qj-quote-text{color:var(--text-primary);font-size:.92rem;font-style:italic;line-height:1.5;margin:0 0 .4rem}.qj-quote-meta{color:var(--text-muted);display:flex;font-size:.78rem;gap:.75rem;margin-bottom:.3rem}.qj-quote-book{font-weight:600}.qj-quote-tags{display:flex;flex-wrap:wrap;gap:.3rem}.qj-tag-chip{background:var(--surface-border);border-radius:12px;color:var(--text-muted);display:inline-block;font-size:.7rem;font-weight:600;padding:.1rem .5rem}.qj-journal-list{display:flex;flex-direction:column;gap:.75rem}.qj-journal-entry{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;padding:1rem;position:relative}.qj-journal-date{color:var(--text-muted);font-size:.72rem;font-weight:600;margin-bottom:.25rem}.qj-journal-book{color:var(--primary-600);font-size:.82rem;font-weight:700;margin-bottom:.35rem}.qj-journal-content{color:var(--text-primary);font-size:.88rem;line-height:1.6;white-space:pre-wrap}.qj-empty{color:var(--text-muted);font-size:.9rem;padding:1rem;text-align:center}@media (max-width:500px){.qj-form-row,.qj-section-header{flex-direction:column}.qj-section-header{align-items:stretch}}.timer-tbr-container{display:flex;flex-direction:column;gap:1.25rem}.timer-tbr-tabs{display:flex;gap:.4rem}.timer-tbr-tab{background:#0000;border:1px solid var(--surface-border);border-radius:8px;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;padding:.5rem;text-align:center;transition:all .2s}.timer-tbr-tab.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.timer-section{display:flex;flex-direction:column;gap:1rem}.timer-error,.timer-loading{color:var(--text-muted);padding:2rem;text-align:center}.timer-error{color:#c0392b}.timer-error button{cursor:pointer;margin-left:.5rem}.timer-display-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.timer-circle{align-items:center;border:4px solid var(--primary-600);border-radius:50%;display:flex;height:140px;justify-content:center;width:140px}.timer-time{font-feature-settings:"tnum";color:var(--text-primary);font-size:2rem;font-variant-numeric:tabular-nums;font-weight:800}.timer-book-input{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);font-size:.9rem;max-width:280px;padding:.5rem .75rem;text-align:center;width:100%}.timer-book-input:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.timer-book-input:disabled{opacity:.6}.timer-controls{display:flex;gap:.5rem}.timer-start-btn,.timer-stop-btn{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:700;padding:.6rem 1.5rem;transition:opacity .2s}.timer-start-btn{background:#4caf50;color:#fff}.timer-stop-btn{background:#e53935;color:#fff}.timer-stop-btn:disabled{cursor:default;opacity:.6}.timer-stats-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;justify-content:space-around;padding:.75rem 1rem}.timer-stat{align-items:center;display:flex;flex-direction:column;gap:.1rem}.timer-stat-value{color:var(--primary-600);font-size:1.3rem;font-weight:800}.timer-stat-label{color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase}.timer-history{display:flex;flex-direction:column;gap:.35rem}.timer-history-title{color:var(--text-primary);font-size:.9rem;font-weight:600;margin:0}.timer-history-row{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:6px;display:flex;font-size:.82rem;gap:.75rem;padding:.45rem .75rem}.timer-history-book{color:var(--text-primary);flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-history-duration{color:var(--primary-600);flex-shrink:0;font-weight:700}.timer-history-date{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.tbr-section{display:flex;flex-direction:column;gap:.75rem}.tbr-error,.tbr-loading{color:var(--text-muted);padding:2rem;text-align:center}.tbr-error{color:#c0392b}.tbr-error button{cursor:pointer;margin-left:.5rem}.tbr-add-form{display:flex;gap:.4rem}.tbr-input{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);flex:1 1;font-size:.85rem;padding:.45rem .65rem}.tbr-input:focus{outline:2px solid var(--primary-600);outline-offset:-1px}.tbr-add-btn{background:var(--primary-600);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .85rem}.tbr-add-btn:disabled{cursor:default;opacity:.6}.tbr-shuffle-btn{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:6px;cursor:pointer;font-size:1rem;padding:.45rem .65rem;transition:transform .4s ease}.tbr-shuffle-btn.shuffling{animation:tbr-shuffle-spin .4s ease}@keyframes tbr-shuffle-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.tbr-shuffle-btn:disabled{cursor:default;opacity:.5}.tbr-queue-list{display:flex;flex-direction:column;gap:.35rem}.tbr-queue-item{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;display:flex;gap:.6rem;padding:.55rem .75rem}.tbr-rank{color:var(--primary-600);flex-shrink:0;font-size:.9rem;font-weight:800;text-align:center;width:1.5rem}.tbr-item-info{display:flex;flex:1 1;flex-direction:column;gap:.1rem;min-width:0}.tbr-book-title{color:var(--text-primary);font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbr-waiting{color:var(--text-muted);font-size:.72rem;font-style:italic}.tbr-item-actions{display:flex;flex-shrink:0;gap:.2rem}.tbr-move-btn{background:#0000;border:1px solid var(--surface-border);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:.7rem;padding:.2rem .4rem;transition:color .15s}.tbr-move-btn:hover:not(:disabled){color:var(--text-primary)}.tbr-move-btn:disabled{cursor:default;opacity:.3}.tbr-remove-btn{background:#0000;border:1px solid var(--surface-border);border-radius:4px;color:#c0392b;cursor:pointer;font-size:.7rem;padding:.2rem .4rem}.tbr-remove-btn:disabled{cursor:default;opacity:.4}.tbr-empty{color:var(--text-muted);font-size:.9rem;padding:1rem;text-align:center}@media (max-width:500px){.tbr-add-form{flex-wrap:wrap}.tbr-input{flex:1 1 100%}}.mood-discovery-container{display:flex;gap:2rem;width:100%}.mood-discovery-main{flex:1 1;min-width:0}.mood-discovery-header{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}.mood-discovery-lang-hint{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;cursor:pointer;font-size:.85rem;margin-bottom:1rem;padding:.6rem 1rem;transition:background .2s}.mood-discovery-lang-hint:hover{background:#dbeafe}.mood-discovery-error{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-secondary);display:flex;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.mood-discovery-error button{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.8rem;margin-left:auto;padding:.35rem .75rem}.mood-discovery-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.mood-discovery-pill{align-items:center;border:2px solid #0000;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:.35rem;padding:.5rem 1rem;transition:transform .15s,box-shadow .15s,border-color .15s}.mood-discovery-pill:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.mood-discovery-pill--active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-600)}.mood-discovery-pill-emoji{font-size:1rem}.mood-discovery-pill--cozy{background:#e67e22}.mood-discovery-pill--thrilling{background:#e74c3c}.mood-discovery-pill--mindexpanding{background:#8e44ad}.mood-discovery-pill--funny{background:#f1c40f;color:#333}.mood-discovery-pill--emotional{background:#e91e8c}.mood-discovery-pill--dark{background:#4a4a4a}.mood-discovery-pill--inspiring{background:#1abc9c}.mood-discovery-pill--adventurous{background:#27ae60}.mood-discovery-pill--relaxing{background:#85c1e9;color:#1a3a4a}.mood-discovery-pill--intense{background:#c0392b}.mood-discovery-pill--thoughtprovoking{background:indigo}.mood-discovery-pill--heartwarming{background:#e8829b}.mood-discovery-difficulty{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:.75rem 1rem}.mood-discovery-difficulty-label{color:var(--text-secondary);font-size:.9rem;white-space:nowrap}.mood-discovery-slider{accent-color:var(--primary-600);cursor:pointer;flex:1 1}.mood-discovery-loading{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.mood-discovery-spinner{animation:mood-discovery-spin .8s linear infinite;border:3px solid var(--surface-border);border-radius:50%;border-top-color:var(--primary-600);height:36px;margin:0 auto 1rem;width:36px}.mood-discovery-spinner--small{height:24px;margin:1rem auto;width:24px}@keyframes mood-discovery-spin{to{transform:rotate(1turn)}}.mood-discovery-empty{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.mood-discovery-empty-icon{display:block;font-size:2.5rem;margin-bottom:.75rem}.mood-discovery-empty p{font-size:.95rem;margin:.35rem 0}.mood-discovery-results{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.mood-discovery-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:0;padding:0;transition:box-shadow .15s}.mood-discovery-card:hover{box-shadow:0 4px 12px #00000014}.mood-discovery-card-clickable{display:flex;gap:.75rem;padding:1rem;position:relative}.mood-discovery-card-chevron{color:#a8a29e;color:var(--text-muted,#a8a29e);font-size:.65rem;pointer-events:none;position:absolute;right:.6rem;top:.6rem}.mood-discovery-card-detail{border-top:1px solid var(--surface-border);padding:0 1rem .5rem}.mood-discovery-card-desc{color:var(--text-secondary);font-size:.8rem;line-height:1.45;margin:.5rem 0}.mood-discovery-card-desc--empty{color:#a8a29e;color:var(--text-muted,#a8a29e);font-style:italic}.mood-discovery-card-pages{color:#78716c;color:var(--text-muted,#78716c);display:inline-block;font-size:.72rem;margin-bottom:.4rem}.mood-discovery-card-actions{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 1rem .75rem}.mood-discovery-card-cover{border-radius:6px;flex-shrink:0;height:100px;object-fit:cover;width:70px}.mood-discovery-card-cover-placeholder{align-items:center;background:var(--surface-border);border-radius:6px;display:flex;flex-shrink:0;font-size:2rem;height:100px;justify-content:center;width:70px}.mood-discovery-card-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.mood-discovery-card-title{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mood-discovery-card-author{color:var(--text-secondary);font-size:.8rem;margin:0}.mood-discovery-card-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.mood-discovery-card-rating{color:#8b6914;font-size:.75rem;font-weight:500}.mood-discovery-badge-community{background:#faf6ef;border:1px solid #d4c5a9;border-radius:6px;color:#5a4a2f;font-size:.65rem;padding:.1rem .4rem}.mood-discovery-difficulty-dots{font-size:.75rem;letter-spacing:1px}.mood-discovery-dot-filled{color:var(--primary-600)}.mood-discovery-dot-empty{color:var(--surface-border)}.mood-discovery-card-social{color:var(--text-secondary);font-size:.75rem;font-style:italic;margin:.15rem 0 0}.mood-discovery-action-btn{background:#0000;border:1px solid var(--surface-border);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.72rem;padding:.3rem .55rem;transition:background .15s,border-color .15s;white-space:nowrap}.mood-discovery-action-btn:hover:not(:disabled){background:var(--surface-border)}.mood-discovery-action-btn:disabled{cursor:not-allowed;opacity:.5}.mood-discovery-action-btn--lib.success,.mood-discovery-action-btn--read.success,.mood-discovery-action-btn--wtr.success{background:#4caf5014;border-color:#4caf50;color:#4caf50}.mood-discovery-action-btn--wtr{border-color:#7b6b5a}.mood-discovery-action-btn--read{border-color:#6d8a6d}.mood-discovery-action-btn--lib{border-color:#8a7b6d}.mood-discovery-action-btn--tag{border-color:#7b7b8a}.mood-discovery-action-btn--dismiss{border-color:#e7e5e4;color:#a8a29e}.mood-discovery-action-btn--dismiss.success,.mood-discovery-action-btn--dismiss:hover:not(:disabled){background:#fef2f2;border-color:#fecaca;color:#b91c1c}.mood-discovery-action-btn--wish{background:#fffbeb;border-color:#fde68a;color:#92400e}.mood-discovery-action-btn--wish:hover:not(:disabled){background:#fef3c7;border-color:#f59e0b}.mood-discovery-action-btn--wish.success{background:#f59e0b;border-color:#f59e0b;color:#fff}.mood-discovery-load-more{display:flex;justify-content:center;margin-top:1.25rem}.mood-discovery-load-more-btn{align-items:center;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.5rem;padding:.65rem 1.5rem;transition:background .2s,border-color .2s}.mood-discovery-load-more-btn:hover:not(:disabled){background:#f0fdf4;background:var(--primary-50,#f0fdf4);border-color:#16a34a;border-color:var(--primary-600,#16a34a)}.mood-discovery-load-more-btn:disabled{cursor:default;opacity:.6}.mood-discovery-sidebar{flex-shrink:0;width:240px}.mood-discovery-sidebar-title{color:var(--text-primary);font-size:1rem;font-weight:700;margin:0 0 .75rem}.mood-discovery-sidebar-loading{text-align:center}.mood-discovery-sidebar-empty{color:var(--text-secondary);font-size:.85rem}.mood-discovery-trending-list{display:flex;flex-direction:column;gap:.35rem;list-style:none;margin:0;padding:0}.mood-discovery-trending-item{margin:0}.mood-discovery-trending-btn{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.82rem;justify-content:space-between;padding:.5rem .75rem;text-align:left;transition:background .15s;width:100%}.mood-discovery-trending-btn:hover{background:var(--surface-border)}.mood-discovery-trending-name{flex:1 1;min-width:0}.mood-discovery-trending-count{color:var(--text-secondary);font-size:.75rem;margin-left:.5rem}.mood-discovery-sidebar-subtitle{color:var(--text-secondary);font-size:.85rem;font-weight:600;margin:1.25rem 0 .5rem}.mood-discovery-sidebar-tags{display:flex;flex-wrap:wrap;gap:.35rem}.mood-discovery-sidebar-tag{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:999px;color:var(--text-secondary);font-size:.75rem;padding:.25rem .6rem}@media (max-width:768px){.mood-discovery-container{flex-direction:column}.mood-discovery-sidebar{order:-1;width:100%}.mood-discovery-results{grid-template-columns:1fr}}.wishlist-container{display:flex;flex-direction:column;gap:1.25rem;width:100%}.wishlist-header{margin-bottom:.25rem}.wishlist-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:1.25rem;font-weight:700;margin:0}.wishlist-subtitle{color:#78716c;color:var(--text-muted,#78716c);font-size:.85rem;margin:.25rem 0 0}.wishlist-filters{display:flex;flex-wrap:wrap;gap:.5rem}.wishlist-filter-btn{background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:20px;color:#57534e;color:var(--text-secondary,#57534e);cursor:pointer;font-size:.82rem;padding:.4rem .85rem;transition:all .2s}.wishlist-filter-btn.active,.wishlist-filter-btn:hover{border-color:#16a34a;border-color:var(--primary-600,#16a34a)}.wishlist-filter-btn.active{background:#16a34a;background:var(--primary-600,#16a34a);color:#fff}.wishlist-grid{display:flex;flex-direction:column;gap:.75rem}.wishlist-card{align-items:flex-start;background:#fff;background:var(--surface-card,#fff);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:10px;display:flex;gap:.75rem;padding:.85rem;transition:box-shadow .2s,opacity .5s}.wishlist-card:hover{box-shadow:0 2px 10px #0000000f}.wishlist-card--removed{opacity:.3;transform:scale(.97)}.wishlist-card-cover{object-fit:cover}.wishlist-card-cover,.wishlist-card-cover-placeholder{border-radius:5px;flex-shrink:0;height:85px;width:60px}.wishlist-card-cover-placeholder{align-items:center;background:#e7e5e4;background:var(--surface-border,#e7e5e4);display:flex;font-size:1.5rem;justify-content:center}.wishlist-card-info{display:flex;flex:1 1;flex-direction:column;gap:.15rem;min-width:0}.wishlist-card-title{color:#1c1917;color:var(--text-primary,#1c1917);font-size:.92rem;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wishlist-card-author{color:#57534e;color:var(--text-secondary,#57534e);font-size:.8rem;margin:0}.wishlist-card-badge{border-radius:10px;display:inline-block;font-size:.7rem;margin-top:.15rem;padding:.1rem .5rem;width:-webkit-fit-content;width:fit-content}.wishlist-badge--wantToRead{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.wishlist-badge--library{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.wishlist-card-desc{color:#78716c;color:var(--text-muted,#78716c);font-size:.75rem;line-height:1.4;margin:.2rem 0 0}.wishlist-card-actions{display:flex;flex-direction:column;flex-shrink:0;gap:.35rem}.wishlist-btn{background:#fafaf9;background:var(--surface-card-alt,#fafaf9);border:1px solid #e7e5e4;border:1px solid var(--surface-border,#e7e5e4);border-radius:6px;color:#1c1917;color:var(--text-primary,#1c1917);cursor:pointer;font-size:.75rem;padding:.3rem .6rem;transition:all .2s;white-space:nowrap}.wishlist-btn:hover:not(:disabled){border-color:#16a34a;border-color:var(--primary-600,#16a34a)}.wishlist-btn:disabled{cursor:default;opacity:.5}.wishlist-btn--bought.success{background:#16a34a;background:var(--primary-600,#16a34a);border-color:#16a34a;border-color:var(--primary-600,#16a34a);color:#fff}.wishlist-btn--read.success{background:#2563eb;border-color:#2563eb;color:#fff}.wishlist-btn--remove{background:#0000;border-color:#0000;color:#a8a29e;color:var(--text-muted,#a8a29e);padding:.3rem .4rem}.wishlist-btn--remove:hover:not(:disabled){background:#fef2f2;border-color:#fecaca;color:#b91c1c}.wishlist-btn--remove.success{color:#b91c1c}.wishlist-loading{align-items:center;color:#78716c;color:var(--text-muted,#78716c);display:flex;flex-direction:column;padding:2rem}.wishlist-spinner{animation:wishlist-spin .7s linear infinite;border:3px solid #e7e5e4;border-top-color:#16a34a;border:3px solid var(--surface-border,#e7e5e4);border-radius:50%;border-top-color:var(--primary-600,#16a34a);height:28px;margin-bottom:.5rem;width:28px}@keyframes wishlist-spin{to{transform:rotate(1turn)}}.wishlist-error{color:#dc2626;color:var(--danger-600,#dc2626);font-size:.9rem;text-align:center}.wishlist-empty{color:#78716c;color:var(--text-muted,#78716c);padding:2.5rem 1rem;text-align:center}.wishlist-empty-icon{display:block;font-size:2.5rem;margin-bottom:.5rem}.wishlist-empty p{font-size:.9rem;margin:.25rem 0}@media (max-width:480px){.wishlist-card{flex-wrap:wrap}.wishlist-card-actions{flex-direction:row;width:100%}}.reading-timeline-container{margin:0 auto;max-width:900px;padding:1.5rem 1rem}.reading-timeline-header{margin-bottom:1.5rem}.reading-timeline-title{font-size:1.5rem;margin:0 0 1rem}.reading-timeline-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.reading-timeline-view-toggles{display:flex;flex-wrap:wrap;gap:.25rem}.reading-timeline-toggle{background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:.85rem;padding:.35rem .75rem;transition:background .15s,border-color .15s}.reading-timeline-toggle:hover{background:#f1f5f9}.reading-timeline-toggle--active{background:#3b82f6;border-color:#3b82f6;color:#fff}.reading-timeline-btn{background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:.85rem;padding:.4rem .9rem;transition:background .15s}.reading-timeline-btn:hover{background:#f1f5f9}.reading-timeline-btn:disabled{cursor:default;opacity:.4}.reading-timeline-btn--memory{border-color:#a78bfa;color:#7c3aed}.reading-timeline-btn--active{background:#7c3aed;border-color:#7c3aed;color:#fff}.reading-timeline-memory-nav{align-items:center;background:#f5f3ff;border-radius:8px;display:flex;gap:1rem;justify-content:center;margin-bottom:1.25rem;padding:.5rem}.reading-timeline-memory-counter{color:#6b7280;font-size:.85rem}.reading-timeline-on-this-day{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:10px;margin-bottom:1.5rem;padding:1rem 1.25rem}.reading-timeline-on-this-day-title{font-size:1rem;margin:0 0 .75rem}.reading-timeline-on-this-day-card{align-items:center;display:flex;gap:.75rem;padding:.5rem 0}.reading-timeline-on-this-day-meta{color:#92400e;font-size:.8rem;margin-top:.2rem}.reading-timeline-line{padding-left:1px;position:relative}.reading-timeline-line:before{background:#e2e8f0;border-radius:2px;bottom:0;content:"";left:120px;position:absolute;top:0;width:3px}.reading-timeline-group{margin-bottom:2rem}.reading-timeline-year-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.6rem 0;position:relative}.reading-timeline-year-label{color:#1e293b;font-size:1.2rem;font-weight:700}.reading-timeline-year-count{background:#f1f5f9;border-radius:10px;color:#64748b;font-size:.8rem;padding:.15rem .5rem}.reading-timeline-year-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;padding-left:140px}.reading-timeline-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;font-size:.78rem;padding:.2rem .6rem}.reading-timeline-entry{align-items:flex-start;display:flex;gap:1rem;padding:.75rem 0;position:relative;transition:transform .3s ease,box-shadow .3s ease}.reading-timeline-entry--highlight{animation:reading-timeline-glow 2s ease-in-out infinite alternate}.reading-timeline-entry--memory-active{transform:scale(1.02)}@keyframes reading-timeline-glow{0%{background:#0000}to{background:#fbbf2414}}.reading-timeline-date-col{align-items:center;display:flex;flex:0 0 110px;gap:.5rem;padding-top:.75rem;position:relative;text-align:right}.reading-timeline-date{color:#64748b;font-size:.78rem;white-space:nowrap}.reading-timeline-dot{background:#3b82f6;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #3b82f6;flex-shrink:0;height:12px;position:relative;width:12px;z-index:1}.reading-timeline-dot--achievement{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b}.reading-timeline-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex:1 1;gap:.85rem;padding:.85rem;transition:box-shadow .15s}.reading-timeline-card:hover{box-shadow:0 2px 8px #00000012}.reading-timeline-card--achievement{align-items:center;background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fbbf24}.reading-timeline-achievement-icon{flex-shrink:0;font-size:1.8rem}.reading-timeline-achievement-info strong{color:#92400e;display:block;font-size:.9rem}.reading-timeline-achievement-desc{color:#a16207;font-size:.78rem;margin:.2rem 0 0}.reading-timeline-cover{border-radius:4px;flex-shrink:0;height:88px;object-fit:cover;width:60px}.reading-timeline-cover--small{height:58px;width:40px}.reading-timeline-card-body{flex:1 1;min-width:0}.reading-timeline-book-title{color:#1e293b;font-size:.95rem;font-weight:600;margin:0 0 .15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reading-timeline-book-author{color:#64748b;font-size:.82rem;margin:0 0 .4rem}.reading-timeline-difficulty,.reading-timeline-rating{align-items:center;display:flex;font-size:.8rem;gap:.3rem;margin-bottom:.25rem}.reading-timeline-difficulty-label,.reading-timeline-rating-label{color:#64748b;font-size:.75rem}.reading-timeline-stars{color:#f59e0b;letter-spacing:1px}.reading-timeline-moods{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem}.reading-timeline-mood-tag{background:#ede9fe;border-radius:10px;color:#6d28d9;font-size:.72rem;padding:.1rem .45rem}.reading-timeline-journal-snippet{color:#475569;font-size:.78rem;font-style:italic;line-height:1.4;margin:.35rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reading-timeline-empty{color:#64748b;padding:4rem 1rem;text-align:center}.reading-timeline-empty-icon{display:block;font-size:3rem;margin-bottom:1rem}.reading-timeline-empty p{font-size:1rem;margin:0 0 1rem}@media (max-width:640px){.reading-timeline-line:before{left:20px}.reading-timeline-entry{flex-direction:column;padding-left:40px}.reading-timeline-date-col{flex:none;padding-top:0;text-align:left}.reading-timeline-dot{left:-28px;position:absolute;top:4px}.reading-timeline-year-stats{padding-left:40px}.reading-timeline-card{flex-direction:column}.reading-timeline-cover{height:70px;width:48px}.reading-timeline-controls{align-items:flex-start;flex-direction:column}.reading-timeline-book-title,.reading-timeline-journal-snippet{white-space:normal}}.bookclub-app{margin:0 auto;max-width:900px;padding:0 1rem 2rem}.bookclub-invite-banner{align-items:center;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.bookclub-invite-banner.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.bookclub-invite-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.bookclub-invite-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;padding:0 .25rem}.bookclub-mode-toggle{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:24px;display:flex;gap:0;justify-content:center;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;padding:4px;width:-webkit-fit-content;width:fit-content}.bookclub-mode-btn{background:#0000;border:none;border-radius:20px;color:var(--text-muted);cursor:pointer;font-size:.95rem;font-weight:500;padding:.5rem 1.5rem;transition:all .25s ease}.bookclub-mode-btn:hover{color:var(--text-primary)}.bookclub-mode-btn.active{background:var(--primary-600);box-shadow:0 2px 8px #0000001f;color:#fff}.bookclub-tabs{border-bottom:2px solid var(--surface-border);display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;padding-bottom:.25rem}.bookclub-tab{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:1.5rem;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:.5rem .85rem;transition:all .2s;white-space:nowrap}.bookclub-tab:hover{background:var(--surface-card-alt);border-color:var(--text-muted);color:var(--text-primary)}.bookclub-tab.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff;font-weight:600}.bookclub-content{min-height:300px}.bookclub-tab-placeholder{color:var(--text-secondary);padding:4rem 1rem;text-align:center}.bookclub-tab-placeholder-icon{display:block;font-size:3rem;margin-bottom:.75rem}.bookclub-tab-placeholder h2{color:var(--text-primary);font-size:1.3rem;margin:0 0 .5rem}.bookclub-tab-placeholder-mode{color:var(--text-secondary);font-size:.9rem;margin:0 0 .25rem}.bookclub-tab-placeholder-hint{color:var(--text-muted);font-size:.85rem;margin:0}@media (max-width:768px){.bookclub-tabs{overflow-x:auto}.bookclub-tab{font-size:.85rem;padding:.6rem .8rem}.bookclub-mode-btn{font-size:.85rem;padding:.4rem 1rem}}.bookclub-nav-link{background:none;border:1px dashed #d4c5a9;border-radius:8px;color:#8b6914;cursor:pointer;display:inline-block;font-size:.85rem;font-weight:500;margin-top:.75rem;padding:.4rem 1rem;transition:all .15s}.bookclub-nav-link:hover{background:#faf6ef;border-color:#8b6914;border-style:solid}.user-admin{margin:0 auto;max-width:700px;padding:2rem}.user-admin-loading{color:var(--text-faint);padding:2rem;text-align:center}.user-admin-summary{margin:1.5rem 0 .75rem;text-align:center}.user-admin-count{color:var(--text-primary);font-size:3rem;font-weight:800}.user-admin-limit{color:var(--text-faint);font-size:1.2rem;margin-left:.3rem}.user-admin-bar{background:var(--surface-border);border-radius:4px;height:8px;margin-bottom:2rem;overflow:hidden}.user-admin-bar-fill{background:var(--primary-600);border-radius:4px;height:100%;transition:width .3s}.user-admin-list{display:flex;flex-direction:column;gap:.75rem}.user-admin-card{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:10px;display:flex;justify-content:space-between;padding:1rem 1.25rem}.user-admin-card-info{display:flex;flex-direction:column;gap:.15rem}.user-admin-card-info strong{color:var(--text-primary);font-size:1rem}.user-admin-email{color:var(--text-muted);font-size:.85rem}.user-admin-card-meta{color:var(--text-faint);font-size:.8rem}.profile-page{margin:0 auto;max-width:550px;padding:2rem}.profile-loading{color:var(--text-faint);padding:2rem;text-align:center}.profile-card{background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:16px;flex-direction:column;gap:1.5rem;margin-top:1.5rem;padding:2rem}.profile-avatar,.profile-card{align-items:center;display:flex}.profile-avatar{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;color:#fff;font-size:2.2rem;font-weight:700;height:80px;justify-content:center;width:80px}.profile-field{width:100%}.profile-field label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.05em;margin-bottom:.3rem;text-transform:uppercase}.profile-value{color:var(--text-primary);font-size:1.1rem;font-weight:500}.profile-value.muted{color:var(--text-secondary);font-weight:400}.profile-edit-row{align-items:center;display:flex;gap:.5rem}.profile-input{background:var(--input-bg);border:2px solid var(--input-border);border-radius:8px;color:var(--text-primary);flex:1 1;font-size:1rem;outline:none;padding:.5rem .75rem}.profile-input:focus{border-color:#3b82f6}.profile-btn{border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .9rem;white-space:nowrap}.profile-btn.primary{background:#16a34a;color:#fff}.profile-btn.secondary{background:var(--surface-border);color:var(--text-secondary)}.profile-btn:disabled{cursor:not-allowed;opacity:.5}.language-selector,.theme-selector{display:flex;gap:8px}.language-btn,.theme-btn{background:var(--surface-card);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s ease}.language-btn:hover,.theme-btn:hover{border-color:var(--text-muted)}.language-btn.active,.theme-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.hero-section{background:var(--hero-gradient);border-radius:24px;box-shadow:var(--shadow-md);margin-bottom:48px;padding:60px 20px;text-align:center}.hero-welcome{margin-bottom:16px}.hero-greeting{color:var(--hero-greeting);display:inline-block;font-size:18px;font-weight:600;margin-bottom:8px}.hero-title{color:var(--text-primary);font-size:48px;font-weight:800;letter-spacing:-.02em;margin:0 0 16px}.hero-subtitle{color:var(--text-secondary);font-size:20px;line-height:1.6;margin:0 auto;max-width:600px}.micro-apps-section{margin-bottom:60px}.section-title{color:var(--text-primary);font-size:24px;font-weight:700;margin:0 0 32px;text-align:center}.services-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin:0 auto;max-width:1200px}.service-card{background:var(--surface-card);border:2px solid var(--surface-border);border-radius:16px;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:16px;padding:32px;text-decoration:none;transition:all .3s ease}.service-card:hover{border-color:#22c55e;box-shadow:0 20px 25px -5px #0000001a;transform:translateY(-4px)}.service-card.coming-soon{border-style:dashed;cursor:not-allowed;opacity:.8}.service-card.coming-soon:hover{border-color:#eab308;transform:translateY(-2px)}.service-icon{font-size:48px;margin-bottom:8px}.service-content{display:flex;flex:1 1;flex-direction:column}.service-name{color:var(--text-primary);font-size:22px;font-weight:700;margin:0 0 8px}.service-description{color:var(--text-secondary);flex:1 1;font-size:15px;line-height:1.6;margin:0}.coming-soon-badge{align-self:flex-start;background:var(--accent-50);border-radius:999px;color:#92400e;color:var(--accent-700,#92400e);display:inline-block;font-size:13px;font-weight:600;margin-top:16px;padding:6px 14px}.coming-soon-section{margin-bottom:40px}.section-title-muted{color:var(--text-faint);font-size:18px;font-weight:600}.utility-bar{margin:0 auto 40px;max-width:1200px;padding:0 24px}.utility-link{align-items:center;background:var(--surface-card-alt);border:1px solid var(--surface-border);border-radius:12px;color:inherit;display:flex;gap:16px;padding:16px 20px;text-decoration:none;transition:all .2s ease}.utility-link:hover{background:var(--surface-hover);border-color:var(--input-border)}.utility-icon{flex-shrink:0;font-size:24px}.utility-name{color:var(--text-secondary);display:block;font-size:14px;font-weight:600}.utility-desc{color:var(--text-faint);display:block;font-size:13px;margin-top:2px}.utility-arrow{color:var(--input-border);flex-shrink:0;font-size:18px;margin-left:auto}.footer{border-top:1px solid var(--surface-border);color:var(--text-muted);font-size:14px;margin-top:60px;padding:40px 20px;text-align:center}.footer p{margin:0}@media (max-width:768px){.hero-title{font-size:36px}.hero-subtitle{font-size:18px}.services-grid{grid-template-columns:1fr}.hero-section{padding:40px 20px}}
/*# sourceMappingURL=main.0b15e212.css.map*/