html,body,#root{height:100%;margin:0}@font-face{font-family:RyoGothic;src:url(/RyoGothicPlusN-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--font-ja:"RyoGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#00479d;--color-primary-light:#3370b8;--color-primary-dark:#003877;--color-accent:#10b981;--color-accent-light:#34d399;--color-text:#2d3748;--color-text-secondary:#718096;--color-text-muted:#a0aec0;--color-background:#fff;--color-surface:#fff;--color-surface-alt:#f7f7fc;--color-elev:#fff;--color-border:#e2e8f0;--color-border-light:#edf2f7;--color-hover:#0f172a0d;--color-primary-soft:#00479d14;--color-focus-ring:#00479d59;--color-btn-bg:var(--color-primary);--color-btn-bg-hover:var(--color-primary-light);--color-success:#00c853;--color-success-bg:#00c85314;--color-success-border:#00c85340;--color-success-text:#166534;--color-danger:#e53935;--color-danger-strong:#dc2626;--color-danger-strong-hover:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fee2e2;--color-danger-text:#991b1b;--color-badge-bg:#fffbeb;--color-badge-border:#fde68a;--color-badge-icon-bg:#fde68a;--color-badge-fg:#b45309;--grad-brand-a:var(--color-primary-dark);--grad-brand-b:var(--color-primary);--shadow-sm:0 1px 3px #00479d0f, 0 1px 2px #00479d14;--shadow-md:0 4px 12px #00479d1a, 0 2px 4px #00479d0f;--shadow-lg:0 12px 40px #00479d24, 0 4px 12px #00479d14}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#5b9bd8;--color-primary-light:#7ab3e8;--color-primary-dark:#2b5d96;--color-accent:#2fc79a;--color-accent-light:#57d9b0;--color-text:#e6ebf2;--color-text-secondary:#a3b1c2;--color-text-muted:#74839a;--color-background:#0f1520;--color-surface:#171f2b;--color-surface-alt:#0f1520;--color-elev:#1f2937;--color-border:#2c3a4d;--color-border-light:#223043;--color-hover:#ffffff0f;--color-primary-soft:#5b9bd824;--color-focus-ring:#5b9bd873;--color-btn-bg:#2f6ec7;--color-btn-bg-hover:#3f7ed6;--color-success:#22c55e;--color-success-bg:#22c55e1f;--color-success-border:#22c55e4d;--color-success-text:#7fd8a2;--color-danger:#ef5350;--color-danger-strong:#e05252;--color-danger-strong-hover:#c73e3e;--color-danger-bg:#ef53501f;--color-danger-border:#ef53504d;--color-danger-text:#f2a09e;--color-badge-bg:#facc151a;--color-badge-border:#facc1540;--color-badge-icon-bg:#facc152e;--color-badge-fg:#e8c35a;--grad-brand-a:#0d1826;--grad-brand-b:#14304f;--shadow-sm:0 1px 3px #0006, 0 1px 2px #00000080;--shadow-md:0 4px 12px #00000073, 0 2px 4px #0006;--shadow-lg:0 12px 40px #0000008c, 0 4px 12px #00000073}*{box-sizing:border-box}body,#root{font-family:var(--font-ja);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;line-height:1.7}*{font-weight:400}button{font-family:inherit}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-light)}.loading-screen{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.auth-page{background:linear-gradient(135deg, var(--grad-brand-a) 0%, var(--grad-brand-b) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--color-surface);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:1rem;padding:2.5rem 2rem}.auth-logo{width:auto;height:40px;margin:0 auto .75rem;display:block}.auth-subtitle{text-align:center;color:var(--color-text-muted);margin:0 0 2rem;font-size:.9rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-label{color:var(--color-text-secondary);flex-direction:column;gap:.375rem;font-size:.85rem;display:flex}.auth-label input{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.5rem;padding:.75rem .875rem;font-size:1rem;transition:border-color .2s}.auth-label input:focus{border-color:var(--color-primary);outline:none}.auth-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:.5rem;margin:0;padding:.75rem .875rem;font-size:.85rem}.auth-submit{background:var(--color-btn-bg);color:#fff;cursor:pointer;border:none;border-radius:.5rem;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:400;transition:background .2s}.auth-submit:hover:not(:disabled){background:var(--color-btn-bg-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{width:100%;color:var(--color-primary);cursor:pointer;background:0 0;border:none;margin-top:1.5rem;padding:.5rem;font-size:.85rem}.auth-toggle:hover{color:var(--color-primary-light);text-decoration:underline}.home-page{flex-direction:column;min-height:100vh;display:flex}.home-header{background:var(--color-surface);border-bottom:1px solid var(--color-border-light);z-index:10;-webkit-backdrop-filter:blur(20px);padding:1rem 1.5rem;position:sticky;top:0}.home-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1120px;margin:0 auto;display:flex}.home-logo{color:var(--color-text);margin:0;font-size:1.125rem;font-weight:400}.home-logo-link{align-items:center;transition:opacity .2s;display:flex}.home-logo-link:hover{opacity:.8}.home-logo-image{width:auto;height:36px;display:block}.home-header-left{align-items:center;gap:2rem;display:flex}.home-nav{gap:1.25rem;display:flex}.home-nav-link{color:var(--color-text-secondary);border-bottom:2px solid #0000;padding:.25rem 0;font-size:.9rem;transition:color .2s,border-color .2s}.home-nav-link:hover{color:var(--color-primary)}.home-nav-link-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.home-user{align-items:center;gap:1rem;display:flex}.home-settings-link{color:var(--color-text-secondary);border-bottom:2px solid #0000;padding:.25rem 0;font-size:.85rem;transition:color .2s,border-color .2s}.home-settings-link:hover{color:var(--color-primary)}.home-settings-link-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.home-signout{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;padding:.4rem .875rem;font-size:.85rem;transition:border-color .2s,color .2s}.home-signout:hover{border-color:var(--color-primary);color:var(--color-primary)}.home-main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:2.5rem 1.5rem}.home-placeholder{background:var(--color-surface);border:1px solid var(--color-border-light);text-align:center;border-radius:1rem;padding:3rem 2rem}.home-placeholder h2{margin:0 0 .75rem;font-size:1.375rem;font-weight:400}.home-placeholder p{color:var(--color-text-secondary);margin:0 0 .5rem}.home-placeholder-note{color:var(--color-text-muted);font-size:.85rem}.home-main>*{margin-bottom:1.25rem}.home-loading{text-align:center;color:var(--color-text-muted);padding:3rem 1rem}.home-last-update{text-align:right;color:var(--color-text-muted);margin-top:-.5rem;font-size:.8rem}.modal-overlay{z-index:100;background:#0f1f338c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--color-surface);width:100%;max-width:480px;max-height:85vh;box-shadow:var(--shadow-lg);border-radius:1rem;flex-direction:column;display:flex;overflow:hidden}.modal-header{background:linear-gradient(135deg, var(--grad-brand-a) 0%, var(--grad-brand-b) 100%);color:#fff;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 1.5rem 1.25rem;display:flex}.modal-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:400}.modal-subtitle{color:#ffffffbf;margin:0;font-size:.8rem}.modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;flex-shrink:0;width:32px;height:32px;font-size:.9rem}.modal-close:hover{background:#ffffff40}.modal-body{padding:1.5rem;overflow-y:auto}.modal-section{margin-bottom:1.5rem}.modal-section:last-child{margin-bottom:0}.modal-section-title{color:var(--color-text-secondary);margin:0 0 .75rem;font-size:.85rem;font-weight:400}.modal-grid{grid-template-columns:1fr 1fr;gap:1rem;margin:0;display:grid}.modal-grid div{min-width:0}.modal-grid dt{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.75rem}.modal-grid dd{color:var(--color-text);margin:0;font-size:.95rem;font-weight:400}.modal-accent{color:var(--color-accent)!important}.modal-profit-row{border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;display:flex}.modal-profit-label{color:var(--color-text-muted);font-size:.8rem}.modal-profit-value{font-size:1rem;font-weight:400}.modal-profit-rate{font-size:.8rem;font-weight:400}.profit-positive{color:var(--color-success)}.profit-negative{color:var(--color-danger)}.summary-card{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.5rem}.summary-filter{justify-content:flex-end;margin-bottom:1rem;display:flex}.summary-filter-item{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.summary-filter-item input{cursor:pointer}.summary-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:.5rem 0 1rem;display:grid}.summary-divider{background:var(--color-border-light);width:1px;height:60px}.summary-item{text-align:center}.summary-label{color:var(--color-text-muted);margin:0 0 .4rem;font-size:.8rem}.summary-label-with-toggle{align-items:center;gap:.35rem;display:inline-flex}.summary-visibility-toggle{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.summary-visibility-toggle:hover{color:var(--color-text-secondary)}.summary-value{color:var(--color-text);margin:0;font-size:1.5rem;font-weight:400;line-height:1.3}.summary-value-accent{color:var(--color-accent)}.summary-sub{color:var(--color-text-muted);margin:.4rem 0 0;font-size:.8rem}.summary-toggle{justify-content:center;margin-top:.5rem;display:flex}.pie-chart-wrap{width:100%}.contribution-total-block{justify-content:space-between;align-items:flex-end;gap:1rem;margin:.25rem 0 1rem;display:flex}.contribution-total-label{color:var(--color-text-muted);font-size:.7rem}.contribution-yield{flex-direction:column;align-items:flex-end;padding-bottom:.35rem;display:flex}.contribution-yield-label{color:var(--color-text-muted);font-size:.7rem}.contribution-yield-value{color:var(--color-text);letter-spacing:-.3px;font-size:1.15rem;font-weight:700}.contribution-yield-caption{color:var(--color-text-muted);margin-top:.05rem;font-size:.6rem}.contribution-total{color:var(--color-primary);letter-spacing:-1px;margin:0;font-size:2.25rem;font-weight:700;line-height:1.1}.contribution-total-currency{margin-right:.15rem;font-size:1.2rem;font-weight:700}.contribution-list-heading{color:var(--color-text-secondary);margin:0 0 .5rem;font-size:.8rem;font-weight:600}.pie-legend{grid-template-columns:1fr 1fr;gap:.4rem 1rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.pie-legend-item{align-items:center;gap:.5rem;min-width:0;font-size:.8rem;display:flex}.pie-legend-swatch{border-radius:.2rem;flex-shrink:0;width:.7rem;height:.7rem}.pie-legend-name{min-width:0;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pie-legend-share{color:var(--color-text-muted);flex-shrink:0}@media (width<=768px){.pie-legend{grid-template-columns:1fr}}.seg-toggle{background:var(--color-surface-alt);border-radius:.5rem;padding:2px;display:inline-flex}.seg-toggle-small .seg-item{padding:.4rem .75rem;font-size:.75rem}.seg-item{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem;transition:background .2s,color .2s}.seg-item-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.list-card,.chart-card{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.5rem}.list-title,.chart-title{color:var(--color-text);letter-spacing:.01em;margin:0 0 1.125rem;font-size:1.0625rem;font-weight:400}.list-empty{text-align:center;color:var(--color-text-muted);padding:2.75rem 2rem;font-size:.9rem;line-height:1.7}.holding-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.holding-item{border:1px solid var(--color-border-light);border-radius:.75rem;padding:1rem 1.25rem}.holding-item-button{background:var(--color-surface);text-align:left;cursor:pointer;width:100%;font-family:inherit;transition:border-color .2s,box-shadow .2s}.holding-item-button:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm)}.holding-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.holding-name-block{flex:1;min-width:0}.holding-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .2rem;font-size:.95rem;font-weight:400;overflow:hidden}.holding-account{color:var(--color-text-muted);margin:0;font-size:.75rem}.holding-yield-block{text-align:right;flex-shrink:0}.holding-yield-label{color:var(--color-text-muted);margin:0;font-size:.7rem}.holding-yield-value{margin:.1rem 0 0;font-size:1.125rem;font-weight:400}.yield-positive{color:var(--color-accent)}.yield-zero{color:var(--color-text-muted)}.holding-details{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;display:grid}.holding-details div{font-size:.8rem}.holding-details dt{color:var(--color-text-muted);margin-bottom:.2rem}.holding-details dd{color:var(--color-text);margin:0}.holding-details dd.holding-detail-dividend{color:var(--color-accent)}.chart-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.chart-header .chart-title{margin:0}.chart-wrap{width:100%}.chart-legend{flex-wrap:wrap;gap:.5rem .875rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.chart-legend-item{align-items:center;gap:.3rem;min-width:0;display:flex}.chart-legend-swatch{border-radius:2px;flex-shrink:0;width:.6rem;height:.6rem}.chart-legend-name{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:9rem;font-size:.72rem;overflow:hidden}.stack-tooltip{background:var(--color-elev);border:1px solid var(--color-border);border-radius:8px;min-width:160px;padding:.5rem .625rem;font-size:.72rem;box-shadow:0 4px 12px #00000014}.stack-tooltip-title{color:var(--color-text-muted);font-size:.7rem}.stack-tooltip-total{color:var(--color-text);margin-bottom:.25rem;font-weight:700}.stack-tooltip-row{align-items:center;gap:.35rem;margin-top:.15rem;display:flex}.stack-tooltip-dot{border-radius:2px;flex-shrink:0;width:.55rem;height:.55rem}.stack-tooltip-name{min-width:0;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.stack-tooltip-amount{color:var(--color-text);font-weight:600}.dividend-list{margin:0;padding:0;list-style:none}.dividend-item{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 0;display:flex}.dividend-item:last-child{border-bottom:none}.dividend-info{flex:1;min-width:0}.dividend-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-size:.9rem;font-weight:400;overflow:hidden}.dividend-content{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-size:.75rem;overflow:hidden}.dividend-meta{align-items:center;gap:.5rem;display:flex}.dividend-date{color:var(--color-text-muted);font-size:.75rem}.dividend-account{color:var(--color-text-secondary);background:var(--color-surface-alt);border-radius:.75rem;padding:.1rem .5rem;font-size:.7rem}.dividend-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dividend-list-header .list-title{margin:0}.dividend-filters{flex-wrap:wrap;gap:.5rem;display:flex}.dividend-filter-name,.dividend-filter-year{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:.5rem;padding:.4rem .625rem;font-family:inherit;font-size:.8rem}.dividend-filter-name{width:160px;max-width:45vw}.dividend-filter-name:focus,.dividend-filter-year:focus{border-color:var(--color-primary);outline:none}.dividend-pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.dividend-page-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;padding:.4rem .875rem;font-size:.8rem;transition:border-color .2s,color .2s}.dividend-page-button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.dividend-page-button:disabled{opacity:.45;cursor:not-allowed}.dividend-page-indicator{color:var(--color-text-muted);font-size:.8rem}.dividend-right{flex-shrink:0;align-items:center;gap:.875rem;display:flex}.dividend-amount{color:var(--color-text);font-size:1rem;font-weight:400}.toast{z-index:1000;color:#fff;text-align:center;border-radius:.625rem;max-width:min(92vw,28rem);padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;animation:.25s toast-in;position:fixed;top:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.toast-success{background:#10b981}.toast-error{background:var(--color-danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-.75rem)}to{opacity:1;transform:translate(-50%)}}.confirm-overlay{z-index:200}.confirm-dialog{background:var(--color-surface);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:1rem;padding:1.5rem;animation:.2s toast-in}.confirm-dialog-title{color:var(--color-text);margin:0 0 .5rem;font-size:1.05rem;font-weight:700}.confirm-dialog-message{color:var(--color-text-secondary);white-space:pre-line;margin:0 0 1.25rem;font-size:.9rem;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:.625rem;display:flex}.confirm-dialog-cancel,.confirm-dialog-ok{cursor:pointer;border-radius:.5rem;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600;transition:opacity .15s,background .15s}.confirm-dialog-cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary)}.confirm-dialog-cancel:hover{background:var(--color-surface-alt)}.confirm-dialog-ok{border:1px solid var(--color-btn-bg);background:var(--color-btn-bg);color:#fff}.confirm-dialog-ok-danger{border-color:var(--color-danger);background:var(--color-danger)}.confirm-dialog-ok:hover{opacity:.9}.dividend-edit{border:1px solid var(--color-border);background:var(--color-surface);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;padding:0;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.dividend-edit:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.dividend-edit:disabled{opacity:.5;cursor:not-allowed}.dividend-edit-icon{display:block}.dividend-delete{border:1px solid var(--color-danger);background:var(--color-surface);width:2rem;height:2rem;color:var(--color-danger);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;padding:0;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.dividend-delete:hover:not(:disabled){background:var(--color-danger);color:var(--color-surface)}.dividend-delete:disabled{opacity:.5;cursor:not-allowed}.dividend-delete-icon{display:block}.dividend-delete-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:.875rem;height:.875rem;animation:.8s linear infinite dividend-delete-spin}@keyframes dividend-delete-spin{to{transform:rotate(360deg)}}.settings-card{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.75rem}.settings-card-title{color:var(--color-text);margin:0 0 .5rem;font-size:1rem;font-weight:400}.settings-card-note{color:var(--color-text-muted);margin:0 0 1.25rem;font-size:.8rem;line-height:1.7}.settings-form{flex-direction:column;gap:1rem;max-width:420px;display:flex}.settings-feedback{border-radius:.5rem;margin:0;padding:.75rem .875rem;font-size:.85rem;line-height:1.7}.settings-feedback-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.settings-feedback-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.settings-submit{background:var(--color-btn-bg);color:#fff;cursor:pointer;border:none;border-radius:.5rem;align-self:flex-start;padding:.75rem 1.5rem;font-size:.9rem;transition:background .2s}.settings-submit:hover:not(:disabled){background:var(--color-btn-bg-hover)}.settings-submit:disabled{opacity:.6;cursor:not-allowed}.settings-support-list{margin:.5rem 0 0;padding:0;list-style:none}.settings-support-list li+li{border-top:1px solid var(--color-border-light)}.settings-support-list a{color:var(--color-text);padding:.75rem .25rem;font-size:.9rem;text-decoration:none;display:block}.settings-support-list a:hover{color:var(--color-primary)}.settings-danger-link-wrap{text-align:center;margin:1.5rem 0 0}.settings-danger-link{color:var(--color-danger-strong);font-size:.85rem;text-decoration:underline}.settings-danger-link:hover{color:var(--color-danger-strong-hover)}.settings-danger-warning{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger-text);border-radius:.5rem;margin-bottom:1rem;padding:1rem;font-size:.9rem;line-height:1.7}.settings-danger-warning ul{margin:.5rem 0;padding-left:1.25rem}.settings-danger-submit{background:var(--color-danger-strong);color:#fff;cursor:pointer;border:none;border-radius:.5rem;align-self:flex-start;padding:.75rem 1.5rem;font-size:.9rem;transition:background .2s}.settings-danger-submit:hover:not(:disabled){background:var(--color-danger-strong-hover)}.settings-danger-submit:disabled{opacity:.6;cursor:not-allowed}.settings-back-link{color:var(--color-text-secondary);text-decoration:none}.settings-back-link:hover{text-decoration:underline}.page-intro{margin-bottom:.5rem}.page-intro-title{color:var(--color-text);margin:0 0 .5rem;font-size:1.25rem;font-weight:400}.page-intro-desc{color:var(--color-text-secondary);margin:0;font-size:.9rem}.page-note{color:var(--color-text-secondary);margin:0;font-size:.78rem;line-height:1.5}.page-actions{justify-content:center;display:flex}.back-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;padding:.6rem 1.25rem;font-size:.875rem;transition:border-color .2s,color .2s}.back-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.section-actions{justify-content:flex-end;margin-bottom:.75rem;display:flex}.add-button{background:var(--color-btn-bg);color:#fff;cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:background .2s;display:inline-flex}.add-button:hover:not(:disabled){background:var(--color-btn-bg-hover)}.add-button:disabled{opacity:.6;cursor:not-allowed}.add-button-icon{font-size:1rem;line-height:1}.modal-form{flex-direction:column;gap:1rem;display:flex}.form-row{flex-direction:column;display:flex}.form-row-double{grid-template-columns:1fr 1fr;gap:.875rem;display:grid}.form-field{flex-direction:column;gap:.375rem;display:flex}.form-label{color:var(--color-text-secondary);font-size:.75rem}.form-hint{color:var(--color-text-secondary);opacity:.8;margin-top:.375rem;font-size:.7rem;line-height:1.4}.form-input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);box-sizing:border-box;border-radius:.5rem;padding:.55rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}.form-input:focus{border-color:var(--color-primary);outline:none}.modal-add-actions{gap:.625rem;display:flex}.modal-add-actions .form-button{flex:1}.ticker-suggest{position:relative}.ticker-suggest-list{z-index:20;background:var(--color-elev);border:1px solid var(--color-border);border-radius:.5rem;max-height:16rem;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.ticker-suggest-option{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:.5rem;padding:.5rem .625rem;font-family:inherit;font-size:.9rem;display:flex}.ticker-suggest-option:hover{background:var(--color-hover)}.ticker-suggest-code{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);flex-shrink:0;min-width:3.25rem}.ticker-suggest-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ticker-suggest-held{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;flex-shrink:0;padding:.1rem .375rem;font-size:.65rem}.ticker-picker-chip{border:1px solid var(--color-primary);background:var(--color-primary-soft);color:var(--color-text);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .5rem .45rem .75rem;font-size:.95rem;display:flex}.ticker-picker-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ticker-picker-chip-clear{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;padding:.1rem .45rem;font-size:1.05rem;line-height:1}.ticker-picker-chip-clear:hover{background:var(--color-hover);color:var(--color-text)}.ticker-suggest-input-invalid,.ticker-suggest-input-invalid:focus{border-color:var(--color-danger)}.ticker-picker-error{color:var(--color-danger);margin:.375rem 0 0;font-size:.75rem;line-height:1.5}.ticker-code-toggle{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;align-self:flex-start;margin-top:.5rem;padding:.4rem .875rem;font-size:.8rem;transition:border-color .15s,color .15s}.ticker-code-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.ticker-code-field{margin-top:.5rem}.form-error{color:var(--color-danger);background:var(--color-danger-bg);border-left:3px solid var(--color-danger);border-radius:.5rem;margin:0;padding:.625rem .875rem;font-size:.85rem}.form-actions{border-top:1px solid var(--color-border-light,#0000000f);justify-content:flex-end;gap:.625rem;margin-top:.5rem;padding-top:.5rem;display:flex}.form-button{cursor:pointer;border:1px solid #0000;border-radius:.5rem;padding:.6rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s}.form-button-secondary{background:var(--color-surface);color:var(--color-text-secondary);border-color:var(--color-border)}.form-button-secondary:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text)}.form-button-primary{background:var(--color-btn-bg);color:#fff}.form-button-primary:hover:not(:disabled){background:var(--color-btn-bg-hover)}.form-button:disabled{opacity:.6;cursor:not-allowed}.modal-delete-action{border-top:1px solid var(--color-border-light,#0000000f);justify-content:flex-end;margin-top:1.5rem;padding-top:1.25rem;display:flex}.modal-detail-actions{border-top:1px solid var(--color-border-light,#0000000f);justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.modal-edit-button{border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:.5rem;padding:.5rem 1rem;font-size:.85rem;transition:all .2s}.modal-edit-button:hover:not(:disabled){background:var(--color-primary);color:#fff}.modal-edit-button:disabled{opacity:.6;cursor:not-allowed}.modal-edit-form{flex-direction:column;gap:.25rem;display:flex}.modal-delete-button{border:1px solid var(--color-danger);color:var(--color-danger);cursor:pointer;background:0 0;border-radius:.5rem;padding:.5rem 1rem;font-size:.85rem;transition:all .2s}.modal-delete-button:hover:not(:disabled){background:var(--color-danger);color:#fff}.modal-delete-button:disabled{opacity:.6;cursor:not-allowed}@media (width<=640px){.home-header-left{gap:1rem}.home-nav{gap:.875rem}.home-logo{font-size:1rem}.summary-grid{grid-template-columns:1fr;gap:1rem}.summary-divider{justify-self:center;width:60%;height:1px}.holding-details{grid-template-columns:1fr;gap:.4rem}.holding-details div{justify-content:space-between;display:flex}.holding-details dd{text-align:right}}.contribution-section-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.contribution-title{margin:0}.contribution-title-row{align-items:center;gap:.4rem;display:flex}.contribution-tag{color:var(--color-text-secondary);background:var(--color-surface-alt);border-radius:.4rem;padding:.1rem .4rem;font-size:.65rem}.contribution-caption{color:var(--color-text-muted);margin:.25rem 0 1rem;font-size:.75rem}.contribution-sold-badge{color:var(--color-text-muted);background:var(--color-surface-alt);vertical-align:middle;border-radius:.75rem;margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem;display:inline-block}.contribution-list{flex-direction:column;gap:.6rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.contribution-rank{background:var(--color-surface-alt);width:1.5rem;height:1.5rem;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.contribution-name{min-width:0;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:.9rem;overflow:hidden}.contribution-amount{color:var(--color-accent);flex-shrink:0;margin:0;font-size:.9rem}.contribution-legend-item{align-items:center;gap:.6rem;display:flex}.contribution-swatch{border-radius:50%;flex-shrink:0;width:.7rem;height:.7rem}.contribution-share{color:var(--color-text-muted);text-align:right;flex-shrink:0;min-width:3rem;font-size:.75rem}.policy-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.policy-edit{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;align-items:center;gap:.25rem;padding:.25rem .4rem;font-size:.8rem;display:inline-flex}.policy-edit:hover{color:var(--color-text)}.policy-text{color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.95rem;line-height:1.8}.policy-textarea{box-sizing:border-box;border:1px solid var(--color-border);width:100%;color:var(--color-text);resize:vertical;border-radius:.625rem;min-height:8rem;padding:.875rem;font-family:inherit;font-size:.95rem;line-height:1.7}.policy-textarea:focus{border-color:var(--color-primary);outline:none}.policy-actions{justify-content:flex-end;gap:.625rem;margin-top:.875rem;display:flex}.policy-cancel,.policy-save{cursor:pointer;border-radius:.5rem;padding:.55rem 1.25rem;font-size:.9rem}.policy-cancel{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.policy-save{background:var(--color-btn-bg);border:1px solid var(--color-btn-bg);color:#fff;font-weight:600}.policy-cancel:disabled,.policy-save:disabled{opacity:.6;cursor:default}.policy-empty{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:0;display:block}.policy-empty-text{color:var(--color-text-secondary);font-size:.875rem;line-height:1.7;display:block}.policy-empty-action{color:var(--color-primary);margin-top:.875rem;font-size:.9rem;font-weight:600;display:inline-block}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.app-shell{min-height:100vh}.app-main{background:var(--color-surface-alt);min-height:100vh;margin-left:240px}.app-content{max-width:1200px;margin:0 auto;padding:2.5rem 2rem 4rem}.app-content>*{margin-bottom:1.5rem}.app-content>:last-child{margin-bottom:0}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border-light);z-index:20;flex-direction:column;gap:.25rem;width:240px;padding:1.5rem .875rem;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{align-items:center;padding:.25rem .625rem 1.25rem;display:flex}.sidebar-logo img{width:auto;height:34px}.sidebar-nav{flex-direction:column;gap:.125rem;display:flex}.sidebar-link{color:var(--color-text-secondary);border-radius:.625rem;align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.95rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{background:var(--color-surface-alt);color:var(--color-text)}.sidebar-link svg{opacity:.85;flex-shrink:0}.sidebar-link-active{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar-link-active svg{opacity:1}.sidebar-footer{border-top:1px solid var(--color-border-light);flex-direction:column;gap:.125rem;margin-top:auto;padding-top:.75rem;display:flex}.sidebar-signout{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.625rem;align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.95rem;transition:background .15s,color .15s;display:flex}.sidebar-signout:hover{background:var(--color-surface-alt);color:var(--color-danger)}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border-light);z-index:20;align-items:center;gap:.75rem;padding:.625rem 1rem;display:none;position:sticky;top:0}.topbar-menu{border:1px solid var(--color-border);background:var(--color-surface);width:2.5rem;height:2.5rem;color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;display:inline-flex}.topbar-logo img{width:auto;height:30px;display:block}.drawer-overlay{z-index:90;background:#0f1f3373;display:flex;position:fixed;inset:0}.drawer{background:var(--color-surface);flex-direction:column;gap:.25rem;width:min(80vw,300px);height:100%;padding:1.25rem .875rem;animation:.2s drawer-in;display:flex}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-head{justify-content:space-between;align-items:center;padding:.25rem .375rem 1rem;display:flex}.drawer-head img{width:auto;height:30px}.drawer-close{width:2.25rem;height:2.25rem;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;display:inline-flex}.drawer-close:hover{background:var(--color-surface-alt)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.page-title{color:var(--color-text);margin:0 0 .375rem;font-size:1.5rem}.page-head .add-button{flex-shrink:0;margin-top:.25rem}.stat-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;display:grid}.stat-section{flex-direction:column;gap:1rem;display:flex}.stat-filter{flex-wrap:wrap;gap:1.5rem;display:flex}.stat-filter-item{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.stat-label-with-toggle{align-items:center;gap:.4rem;display:inline-flex}.stat-visibility-toggle{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.stat-visibility-toggle:hover{color:var(--color-text-secondary)}.stat-tile{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.25rem 1.375rem}.stat-tile-hero{background:linear-gradient(135deg, var(--grad-brand-a) 0%, var(--grad-brand-b) 100%);border-color:#0000}.stat-label{color:var(--color-text-secondary);margin:0 0 .5rem;font-size:.85rem}.stat-tile-hero .stat-label{color:#ffffffd9}.stat-value{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.9rem;line-height:1.15}.stat-value-accent{color:var(--color-accent)}.stat-tile-hero .stat-value,.stat-tile-hero .stat-value-accent{color:#fff}.stat-unit{color:var(--color-text-secondary);margin-left:.25rem;font-size:.95rem}.stat-tile-hero .stat-unit{color:#ffffffd9}.stat-sub{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.8rem}.stat-tile-hero .stat-sub{color:#ffffffbf}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.925rem}.data-table thead th{text-align:left;color:var(--color-text-secondary);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.625rem .875rem;font-size:.8rem}.data-table thead th:first-child{border-top-left-radius:.5rem}.data-table thead th:last-child{border-top-right-radius:.5rem}.data-table tbody td{border-bottom:1px solid var(--color-border-light);color:var(--color-text);vertical-align:middle;padding:.75rem .875rem}.data-table tbody tr:hover td{background:var(--color-surface-alt)}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .cell-strong{color:var(--color-text)}.data-table .col-actions{width:1%}.data-table .cell-actions{white-space:nowrap;text-align:right}.data-table tr.row-clickable{cursor:pointer}.holding-name-button{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;gap:.2rem;padding:0;display:flex}.holding-name-text{color:var(--color-text);font-size:.95rem}.holding-name-button:hover .holding-name-text{color:var(--color-primary)}.holding-code-text{color:var(--color-text-muted);font-size:.78rem}.row-action{border:1px solid var(--color-border);background:var(--color-surface);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.row-action+.row-action{margin-left:.375rem}.row-action:hover:not(:disabled){background:var(--color-surface-alt);color:var(--color-primary);border-color:var(--color-primary-light)}.row-action-danger:hover:not(:disabled){color:var(--color-danger);border-color:var(--color-danger)}.row-action:disabled{opacity:.5;cursor:default}.row-action-spinner{border:2px solid var(--color-border);border-top-color:var(--color-danger);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings-page{max-width:620px}.settings-page>*{margin-bottom:1.5rem}@media (width<=900px){.sidebar{display:none}.topbar{display:flex}.app-main{margin-left:0}.app-content{padding:1.5rem 1rem 3rem}.stat-row{grid-template-columns:repeat(2,1fr)}.dash-charts{grid-template-columns:1fr}}@media (width<=640px){.page-head .add-button{justify-content:center;width:100%}.stat-row{grid-template-columns:1fr}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{width:100%;display:block}.data-table tr{border:1px solid var(--color-border-light);background:var(--color-surface);border-radius:.75rem;margin-bottom:.625rem;padding:.375rem .875rem}.data-table tbody td{border-bottom:1px solid var(--color-border-light);text-align:right;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0;display:flex}.data-table tbody tr td:last-child{border-bottom:none}.data-table tbody td:before{content:attr(data-label);color:var(--color-text-secondary);text-align:left;font-size:.8rem}.data-table tbody tr:hover td{background:0 0}.data-table .num{text-align:right}.data-table .cell-actions{justify-content:flex-end}.data-table .cell-actions:before{content:none}}.longterm-page>*,.achievements-page>*{margin-bottom:1.5rem}.longterm-page>:last-child,.achievements-page>:last-child{margin-bottom:0}.longterm-page,.achievements-page{max-width:760px}.longterm-hero{background:var(--color-surface);border:1px solid var(--color-border-light);text-align:center;box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.75rem 1.5rem}.longterm-hero-icon{background:var(--color-surface-alt);width:56px;height:56px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.75rem;display:inline-flex}.longterm-hero-title{color:var(--color-text);margin:0 0 .5rem;font-size:1.15rem}.longterm-hero-body{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.9}.achievement-entry{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);color:inherit;border-radius:1rem;padding:1.5rem;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.achievement-entry:hover{border-color:var(--color-border);box-shadow:var(--shadow-md)}.achievement-entry-head{align-items:center;gap:.625rem;display:flex}.achievement-entry-icon{background:var(--color-badge-icon-bg);width:32px;height:32px;color:var(--color-badge-fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.achievement-entry-title{flex:1;margin:0}.achievement-entry-chevron{color:var(--color-text-muted);flex-shrink:0}.achievement-entry-summary{color:var(--color-text);margin:.75rem 0 0;font-size:.95rem}.achievement-entry-hint{color:var(--color-text-secondary);margin:.375rem 0 0;font-size:.85rem;line-height:1.6}.achievement-summary{background:var(--color-surface);border:1px solid var(--color-border-light);text-align:center;box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.75rem 1.5rem}.achievement-summary-trophy{background:var(--color-badge-icon-bg);width:56px;height:56px;color:var(--color-badge-fg);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;display:inline-flex}.achievement-summary-count{color:var(--color-text);margin:0;font-size:1.25rem}.achievement-summary-next{color:var(--color-text-secondary);margin:.375rem 0 0;font-size:.85rem}.achievement-section-label{color:var(--color-text-secondary);margin:0 0 .75rem;font-size:.9rem;font-weight:400}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.badge{border:1px solid var(--color-border-light);text-align:center;border-radius:.875rem;flex-direction:column;align-items:center;gap:.375rem;padding:1.125rem .75rem;display:flex}.badge-achieved{background:var(--color-badge-bg);border-color:var(--color-badge-border)}.badge-locked{background:var(--color-surface);opacity:.8}.badge-icon{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.25rem;display:inline-flex}.badge-achieved .badge-icon{background:var(--color-badge-icon-bg);color:var(--color-badge-fg)}.badge-locked .badge-icon{background:var(--color-surface-alt);color:var(--color-text-muted)}.badge-title{color:var(--color-text);font-size:.85rem}.badge-locked .badge-title{color:var(--color-text-secondary)}.badge-sub{color:var(--color-text-secondary);min-height:2em;font-size:.72rem;line-height:1.4}.celebration-overlay{z-index:300;background:#0f1f338c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.celebration-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece{border-radius:2px;width:9px;height:14px;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:forwards;position:absolute;top:-14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.85;transform:translateY(105vh)rotate(720deg)}}.celebration-card{z-index:1;background:var(--color-surface);text-align:center;width:100%;max-width:360px;box-shadow:var(--shadow-lg);border-radius:1.25rem;padding:2rem 1.75rem;animation:.3s celebration-pop;position:relative}@keyframes celebration-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.celebration-badge{background:var(--color-badge-icon-bg);width:72px;height:72px;color:var(--color-badge-fg);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.75rem;display:inline-flex}.celebration-congrats{color:var(--color-accent);margin:0 0 .25rem;font-size:.95rem}.celebration-title{color:var(--color-text);margin:0 0 .375rem;font-size:1.3rem}.celebration-desc{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.6}.celebration-more{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.8rem}.celebration-close{border:1px solid var(--color-btn-bg);background:var(--color-btn-bg);color:#fff;cursor:pointer;border-radius:.5rem;margin-top:1.25rem;padding:.5rem 1.5rem;font-size:.9rem}.celebration-close:hover{opacity:.9}@media (prefers-reduced-motion:reduce){.confetti-piece{display:none}.celebration-card{animation:none}}.page-head .page-intro{flex:420px;min-width:240px;max-width:680px}.auth-forgot{width:100%;color:var(--color-primary);cursor:pointer;background:0 0;border:none;margin-top:1.25rem;padding:.25rem;font-size:.85rem}.auth-forgot:hover{color:var(--color-primary-light);text-decoration:underline}.auth-reset-lead{color:var(--color-text-secondary);margin:0 0 .25rem;font-size:.85rem;line-height:1.7}.auth-reset-done{background:var(--color-primary-soft);border-radius:.625rem;padding:1rem 1.125rem}.auth-reset-done p{color:var(--color-text);margin:0;font-size:.9rem;line-height:1.8}.auth-reset-done .auth-reset-note{color:var(--color-text-secondary);margin-top:.75rem;font-size:.8rem}.onboarding-card{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);border-radius:1rem;padding:2rem 1.75rem}.onboarding-title{color:var(--color-text);margin:0 0 .5rem;font-size:1.25rem}.onboarding-lead{color:var(--color-text-secondary);margin:0 0 1.5rem;font-size:.9rem;line-height:1.8}.onboarding-steps{flex-direction:column;gap:.875rem;margin:0;padding:0;list-style:none;display:flex}.onboarding-step{border:1px solid var(--color-border-light);border-radius:.875rem;align-items:center;gap:1rem;padding:1.125rem 1.25rem;display:flex}.onboarding-step-num{background:var(--color-primary-soft);width:2rem;height:2rem;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.onboarding-step-body{flex:1;min-width:0}.onboarding-step-title{color:var(--color-text);margin:0 0 .2rem;font-size:.95rem}.onboarding-step-desc{color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.6}.onboarding-action{background:var(--color-btn-bg);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-family:inherit;font-size:.85rem;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.onboarding-action:hover{background:var(--color-btn-bg-hover);color:#fff}.onboarding-action-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.onboarding-action-secondary:hover{background:var(--color-primary-soft);color:var(--color-primary)}.page-skeleton>*{margin-bottom:1.5rem}.skeleton-line{background:linear-gradient(90deg, var(--color-border-light) 25%, var(--color-border) 50%, var(--color-border-light) 75%);background-size:200% 100%;border-radius:.4rem;height:.8rem;margin:.6rem 0;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-line-xs{width:30%}.skeleton-line-sm{width:45%}.skeleton-line-md{width:25%;height:.95rem}.skeleton-line-lg{width:60%;height:1.6rem}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.th-sort-button{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.3rem;padding:0;display:inline-flex}.th-sort-button:hover,.data-table thead th[aria-sort] .th-sort-button{color:var(--color-primary)}.th-sort-arrow{opacity:.35;letter-spacing:-.05em;font-size:.5rem;line-height:1}.th-sort-arrow-active{opacity:1}.data-table .col-chevron{width:1%}.data-table .cell-chevron{color:var(--color-text-muted);text-align:right}.data-table .cell-chevron svg{margin-left:auto;display:block}.data-table tr.row-clickable:hover .cell-chevron{color:var(--color-primary)}.list-empty-text{margin:0 0 1.125rem}.pie-label{fill:var(--color-text-secondary)}@media (hover:hover) and (pointer:fine){.data-table .row-action{opacity:0;transition:opacity .12s}.data-table tr:hover .row-action,.data-table tr:focus-within .row-action{opacity:1}}@media (width<=640px){.stat-row{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-tile{border-radius:.875rem;padding:1rem 1.125rem}.stat-value{font-size:1.45rem}.stat-sub{font-size:.72rem}.data-table-compact tbody tr{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.15rem .75rem;padding:.625rem .875rem;display:grid}.data-table-compact tbody td{text-align:left;border-bottom:none;padding:0;display:block}.data-table-compact tbody td:before{content:none}.data-table-compact td[data-label=銘柄]{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1/auto/3;font-size:.9rem;overflow:hidden}.data-table-compact td[data-label=金額],.data-table-compact td[data-label=価値]{text-align:right;grid-area:1/3;font-size:.95rem}.data-table-compact td[data-label=受取日]{color:var(--color-text-muted);grid-area:2/1;font-size:.75rem}.data-table-compact td[data-label=口座],.data-table-compact td[data-label=内容]{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;grid-area:2/2;font-size:.75rem;overflow:hidden}.data-table-compact .cell-actions{text-align:right;grid-area:2/3}.data-table-compact .row-action{width:1.75rem;height:1.75rem}.data-table-holdings tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem 1rem;padding:.875rem;display:grid}.data-table-holdings tbody td{text-align:left;border-bottom:none;padding:0;display:block}.data-table-holdings tbody td:before{content:none}.data-table-holdings td[data-label=銘柄]{grid-area:1/1;min-width:0}.data-table-holdings td[data-label*=利回り]{text-align:right;grid-area:1/2;font-size:1.05rem}.data-table-holdings td[data-label*=利回り]:before,.data-table-holdings td.num:not([data-label*=利回り]):before{content:attr(data-label);color:var(--color-text-muted);margin-bottom:.1rem;font-size:.68rem;display:block}.data-table-holdings .cell-chevron{display:none}.onboarding-step{flex-wrap:wrap}.onboarding-action{width:100%}}.brand-logo-dark{display:none}:root[data-theme=dark] .brand-logo-dark{display:block}:root[data-theme=dark] .brand-logo-light{display:none}
