.btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:11px;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;border-radius:2px;transition:all var(--transition-fast);border:none;font-weight:500}.btn__icon{display:inline-flex;align-items:center;justify-content:center}.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-color);border:1px solid var(--charcoal)}@media(hover:hover){.btn--primary:hover:not(:disabled){background:var(--btn-primary-hover-bg);transform:translateY(1px);box-shadow:var(--shadow-sm)}}.btn--primary:active:not(:disabled){transform:translateY(2px);box-shadow:none}.btn--secondary{background:var(--btn-secondary-bg);border:1px solid var(--muted-sage);color:var(--charcoal)}@media(hover:hover){.btn--secondary:hover:not(:disabled){background:var(--btn-secondary-hover-bg);border-color:var(--charcoal);transform:translateY(1px);box-shadow:var(--shadow-sm)}}.btn--secondary:active:not(:disabled){background:var(--btn-secondary-disabled-bg);transform:translateY(2px);box-shadow:none}.btn:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.btn:disabled:focus-visible{outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.card{background:var(--warm-white);border-radius:2px;padding:28px}.card--hoverable{cursor:pointer;transition:transform var(--transition-medium),box-shadow var(--transition-medium)}@media(hover:hover){.card--hoverable:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}}@media(hover:none){.card--hoverable:active{transform:translateY(-2px);box-shadow:0 8px 24px #0000000a}}.container{margin:0 auto;padding:0 var(--space-lg)}.container--default{max-width:var(--container-max-width)}.container--narrow{max-width:var(--container-narrow)}.container--wide{max-width:1800px;padding:0 var(--space-lg)}@media(min-width:768px){.container{padding:0 var(--space-4xl)}.container--wide{padding:0 var(--space-3xl)}}.avatar{border-radius:50%;background:var(--pale-blue);display:flex;align-items:center;justify-content:center;font-weight:500;color:var(--charcoal);font-family:var(--font-body)}.avatar--small{width:28px;height:28px;font-size:11px;min-width:44px;min-height:44px;padding:8px}.avatar--medium{width:36px;height:36px;font-size:14px}.avatar--large{width:48px;height:48px;font-size:18px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c2c2c80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .2s ease}.modal-overlay.open{opacity:1}.modal{position:relative;background:var(--warm-white);border-radius:var(--radius-sm);width:auto;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:scale(.95);opacity:0;transition:transform .2s ease,opacity .2s ease}.modal.open{transform:scale(1);opacity:1}.modal__header{display:flex;justify-content:flex-start;align-items:center;padding:var(--space-xl);border-bottom:1px solid var(--border)}.modal__title{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-light);color:var(--charcoal);margin:0;letter-spacing:var(--letter-spacing-tight)}.modal__close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:32px;line-height:1;color:var(--text-secondary);cursor:pointer;padding:8px;margin:0;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast);flex-shrink:0}.modal__close:hover{color:var(--charcoal)}.modal__close:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}.modal__body{padding:var(--space-xl);color:var(--charcoal);font-family:var(--font-body);font-size:var(--font-size-md);line-height:1.6}.modal__footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border)}@supports not (backdrop-filter: blur(4px)){.modal-overlay{background:#2c2c2c99}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal{transition:none}.modal-overlay.open{opacity:1}.modal.open{transform:scale(1);opacity:1}}.skeleton{background:linear-gradient(90deg,var(--bone) 0%,var(--warm-white) 50%,var(--bone) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:2px}.skeleton--text{height:16px;border-radius:2px}.skeleton--rectangular{border-radius:2px}.skeleton--circular{border-radius:50%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--bone)}}.breadcrumb{display:flex;align-items:center;font-size:12px;color:var(--text-secondary);margin-bottom:var(--space-2xl);flex-wrap:wrap;gap:4px}.breadcrumb__item{display:flex;align-items:center;gap:4px}.breadcrumb__link{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.breadcrumb__link:hover{color:var(--charcoal)}.breadcrumb__current{color:var(--charcoal);font-weight:500}.breadcrumb__separator{color:var(--text-secondary);margin:0 2px;-webkit-user-select:none;user-select:none}.number-input{display:flex;flex-direction:column;gap:var(--space-xs)}.number-input__label{display:block;font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-xs)}.number-input__required{color:var(--negative);margin-left:4px}.number-input__wrapper{position:relative;display:flex;align-items:center;gap:var(--space-sm)}.number-input__field{flex:1;min-width:0;width:100%;font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:var(--font-weight-regular);color:var(--charcoal);background:transparent;border:none;border-bottom:2px solid var(--border);border-radius:0;padding:var(--space-sm) 0;outline:none;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.number-input__field::placeholder{color:var(--text-secondary);opacity:var(--opacity-subtle)}.number-input__field:focus-visible{border-bottom-color:var(--focus-color);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.number-input__suffix{font-family:var(--font-body);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);color:var(--text-secondary);margin-left:var(--space-xs);flex-shrink:0}.number-input--error .number-input__field{border-bottom-color:var(--negative);color:var(--negative)}.number-input--error .number-input__field:focus-visible{border-bottom-color:var(--negative);box-shadow:0 0 0 2px var(--negative-light-2)}.number-input__error-message{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--negative);margin-top:var(--space-xs)}.number-input--disabled .number-input__field{color:var(--text-secondary);opacity:var(--opacity-subtle);cursor:not-allowed}.number-input--disabled .number-input__suffix{opacity:var(--opacity-subtle)}@media(max-width:768px){.number-input__field{font-size:var(--font-size-lg);width:100%}}.date-input{display:flex;flex-direction:column;gap:var(--space-xs)}.date-input__label{display:block;font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-xs)}.date-input__required{color:var(--negative);margin-left:4px}.date-input__field{width:100%;font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:var(--font-weight-regular);color:var(--charcoal);background:transparent;border:none;border-bottom:2px solid var(--border);padding:var(--space-sm) 0;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.date-input__field::placeholder{color:var(--text-secondary);opacity:var(--opacity-subtle)}.date-input__field:focus-visible{border-bottom-color:var(--focus-color);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.date-input--error .date-input__field{border-bottom-color:var(--negative);color:var(--negative)}.date-input--error .date-input__field:focus-visible{border-bottom-color:var(--negative);box-shadow:0 0 0 2px var(--negative-light-2)}.date-input__error-message{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--negative);margin-top:var(--space-xs)}.date-input--disabled .date-input__field{color:var(--text-secondary);opacity:var(--opacity-subtle);cursor:not-allowed}@media(max-width:768px){.date-input__field{font-size:var(--font-size-lg)}}.progress-bar-container{display:flex;flex-direction:column;width:100%;gap:var(--space-xs)}.progress-bar{position:relative;width:100%;height:var(--space-xs);background-color:#2c2c2c0f;overflow:hidden}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--muted-sage) 0%,var(--muted-sage) 100%);transition:width .6s ease-out}.progress-bar--default .progress-bar__fill{background:linear-gradient(90deg,var(--sage-dark) 0%,var(--muted-sage) 100%)}.progress-bar--gold .progress-bar__fill{background:linear-gradient(90deg,var(--gold-light) 0%,var(--gold) 100%)}.progress-bar--blue .progress-bar__fill{background:linear-gradient(90deg,var(--pale-blue) 0%,var(--pale-blue) 100%)}.progress-bar__labels{display:flex;justify-content:space-between;gap:var(--space-md)}.progress-bar__label-left,.progress-bar__label-right{font-size:12px;color:var(--text-secondary)}.progress-bar__label-right{font-family:var(--font-mono)}@media(prefers-reduced-motion:reduce){.progress-bar__fill{transition:none}}.breakdown-card{background:var(--card-bg);padding:var(--space-lg);border:var(--border-subtle);border-radius:2px;text-align:center;animation:fadeUp .5s ease both}.breakdown-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-sm);font-size:20px}.breakdown-card__icon--primary{background:var(--pale-blue-light-3)}.breakdown-card__icon--secondary{background:var(--terracotta-light)}.breakdown-card__value{font-family:var(--font-heading);font-size:36px;font-weight:400;margin-bottom:var(--space-xs)}.breakdown-card__label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.breakdown-card__percent{font-family:var(--font-mono);font-size:14px;color:var(--muted-sage)}.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--space-lg) var(--space-md);background:var(--card-bg);border:var(--border-subtle);border-radius:var(--radius-sm);text-decoration:none;color:inherit;min-height:var(--touch-target-min)}.stat-card__value{font-family:var(--font-heading);font-size:clamp(28px,6vw,32px);font-weight:var(--font-weight-regular);color:var(--charcoal);line-height:1.2}.stat-card__label{font-family:var(--font-body);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.stat-card--clickable{cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}@media(hover:hover){.stat-card--clickable:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}}.stat-card--clickable:active{transform:translateY(-1px)}.stat-card--clickable:focus{outline:2px solid var(--focus-color);outline-offset:2px}.calc-card{background:var(--card-bg);border:var(--border-subtle);padding:40px;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:transform var(--transition-fast),box-shadow var(--transition-fast);display:block}@media(hover:hover){.calc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}}@media(hover:none){.calc-card:active{transform:translateY(-2px);box-shadow:0 8px 24px #0000000a}}.calc-icon{width:100%;height:56px;border-radius:var(--radius-md);background:var(--bone);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:var(--space-lg)}.calc-title{font-family:var(--font-heading);font-size:24px;font-weight:400;margin-bottom:8px;color:var(--charcoal)}.calc-desc{font-size:13px;color:var(--text-secondary);line-height:1.6}@media(max-width:640px){.calc-card{padding:var(--space-xl)}.calc-title{font-size:20px}}.milestone-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-3xl);max-width:600px;background:linear-gradient(135deg,var(--charcoal) 0%,var(--charcoal-light) 100%);border-radius:2px;border:1px solid var(--bone-light)}.milestone-label{font-family:var(--font-body);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--bone-dark);font-weight:500}.milestone-target{font-family:var(--font-heading);font-size:48px;font-weight:400;color:var(--gold);line-height:1;letter-spacing:-.02em}.hero-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);text-align:center;margin-bottom:var(--space-5xl)}.hero-label{font-family:var(--font-body);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.hero-value{font-family:var(--font-heading);font-size:clamp(36px,10vw,84px);font-weight:var(--font-weight-light);color:var(--charcoal);line-height:1;letter-spacing:var(--letter-spacing-tight);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.hero-change{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-lg);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);background-color:var(--charcoal-light-dark);border-radius:var(--radius-sm);min-height:var(--touch-target-min)}.hero-change--positive{color:var(--positive);background-color:var(--positive-light)}.hero-change--negative{color:var(--negative);background-color:var(--negative-light-8)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}@media(max-width:768px){.stats-row{grid-template-columns:1fr;gap:var(--space-sm)}}.stats-row__item{background:var(--card-bg);border:var(--border-subtle);padding:var(--space-lg);border-radius:2px;text-align:center;animation:fadeUp .5s ease both}.stats-row__value{font-family:var(--font-mono);font-size:24px;font-weight:500;margin-bottom:var(--space-xs);color:var(--charcoal)}.stats-row__label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.spreadsheet{width:100%;border-collapse:collapse;font-size:12px;position:relative;transition:box-shadow var(--transition-fast)}.spreadsheet .group-header-row th{background:var(--charcoal);color:var(--warm-white);font-size:10px;letter-spacing:.12em;padding:var(--space-sm) var(--space-md);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s ease;border-right:1px solid var(--white-light);position:sticky;top:0;z-index:15;text-transform:uppercase;font-weight:500}.spreadsheet .group-header-row th:hover{background:var(--charcoal-light)}.spreadsheet .group-header-row th.group-sparing{background:var(--category-sparing);position:relative}.spreadsheet .group-header-row th.group-sparing:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--muted-sage-light-5);opacity:.6}.spreadsheet .group-header-row th.group-sparing:hover{background:var(--category-sparing-hover)}.spreadsheet .group-header-row th.group-gjeld{background:var(--category-gjeld);position:relative}.spreadsheet .group-header-row th.group-gjeld:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--soft-terracotta-light);opacity:.6}.spreadsheet .group-header-row th.group-gjeld:hover{background:var(--category-gjeld-hover)}.spreadsheet .group-header-row th.group-pensjon{background:var(--category-pensjon);position:relative}.spreadsheet .group-header-row th.group-pensjon:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--pale-blue-light-3);opacity:.6}.spreadsheet .group-header-row th.group-pensjon:hover{background:var(--category-pensjon-hover)}.spreadsheet .group-header-row th.date-header{cursor:default;position:sticky;left:0;z-index:25;border-right:2px solid var(--border-strong);width:100px}.spreadsheet .group-header-row th.date-header:hover{background:var(--bone)}.group-toggle{display:inline-block;margin-left:var(--space-xs);font-size:10px;opacity:.7;transition:transform .2s ease}.group-collapsed .group-toggle{transform:rotate(-90deg)}.spreadsheet .group-header-row th:focus-visible{outline:2px solid var(--focus-color);outline-offset:-2px}.spreadsheet th{position:sticky;top:0;background:var(--bone);text-align:right;padding:var(--space-sm) var(--space-md);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);border-bottom:2px solid var(--border-strong);white-space:nowrap;z-index:10}.spreadsheet th:first-child{text-align:left;position:sticky;left:0;z-index:20;border-right:2px solid var(--border-strong)}.spreadsheet th.col-sparing{background:var(--pale-blue-light-15)}.spreadsheet th.col-gjeld{background:var(--soft-terracotta-light-15)}.spreadsheet th.col-pensjon{background:var(--muted-sage-light-15)}.spreadsheet td{padding:var(--space-xs);text-align:right;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:11px;white-space:nowrap;transition:background .15s ease;height:32px;vertical-align:middle;box-sizing:border-box}.spreadsheet td:first-child{text-align:left;font-family:var(--font-body);font-weight:500;position:sticky;left:0;background:var(--warm-white);z-index:5;border-right:2px solid var(--border-strong)}.spreadsheet tbody tr{transition:background-color .15s ease,box-shadow .15s ease}.spreadsheet tbody tr:hover{box-shadow:inset 0 0 0 1px var(--border),0 2px 8px #0000000a}.spreadsheet tbody tr:hover td{background:var(--warm-white)}.spreadsheet tbody tr:hover td:first-child{background:var(--muted-sage-light-5)}.spreadsheet tbody tr:nth-child(2n) td{background:#f5f2ed80}.spreadsheet tbody tr:nth-child(2n) td:first-child{background:var(--bone)}.spreadsheet td.col-sparing{background:var(--pale-blue-light)}.spreadsheet td.col-gjeld{background:var(--soft-terracotta-light)}.spreadsheet td.col-pensjon{background:var(--muted-sage-light)}.col-group-end{border-right:2px solid var(--border-strong)}.col-total{font-weight:500;color:var(--charcoal)}.value-milestone{color:var(--gold);font-weight:600;position:relative;letter-spacing:.02em}.value-milestone:before{content:"★";position:absolute;left:-16px;font-size:10px;color:var(--gold);opacity:.9}.date-cell{font-family:var(--font-body);font-size:12px;font-weight:500}.cell-editable{cursor:pointer}.cell-editable:hover{background:var(--pale-blue-light-2)!important;outline:1px solid var(--pale-blue);outline-offset:-1px}.cell-editing{padding:2px!important;background:var(--warm-white)!important;position:relative}.cell-input{position:absolute;top:2px;left:2px;right:2px;bottom:2px;width:calc(100% - 4px);height:calc(100% - 4px);padding:0 var(--space-xs);font-family:var(--font-mono);font-size:11px;text-align:right;border:1px solid var(--pale-blue);border-radius:2px;background:var(--warm-white);color:var(--charcoal);outline:none;box-sizing:border-box}.cell-input:focus{border-color:var(--focus-color);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.cell-input::-webkit-outer-spin-button,.cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cell-input[type=number]{-moz-appearance:textfield}.col-hidden{display:none}.action-header{text-align:center;width:50px;border-right:2px solid var(--border-strong)}.action-cell{text-align:center;width:50px;padding:var(--space-xs);background:var(--warm-white);position:sticky;right:0;z-index:4;border-left:2px solid var(--border-strong);height:32px}.spreadsheet tr:hover .action-cell{background:var(--muted-sage-light)}.delete-button{background:none;border:none;cursor:pointer;padding:14px;font-size:16px;line-height:1;border-radius:2px;transition:background .15s ease,opacity .15s ease,color .15s ease;opacity:.3;visibility:hidden;color:var(--negative);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;margin:-14px}.delete-button:hover{opacity:1;background:var(--negative-light);color:var(--negative-dark)}.delete-button:active{background:var(--negative-light-2);color:var(--negative)}.spreadsheet tbody tr:hover .delete-button{opacity:.7;visibility:visible}.spreadsheet--mobile{display:none}.spreadsheet--desktop{display:table}@media(max-width:768px){.spreadsheet--desktop{display:none}.spreadsheet--mobile{display:block}}.portfolio-cards{display:flex;flex-direction:row;gap:var(--space-md);padding:var(--space-md);overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scroll-padding:0 var(--space-md)}.portfolio-card{flex:0 0 85%;min-width:280px;max-width:360px;background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:box-shadow var(--transition-fast);scroll-snap-align:start}.portfolio-card--milestone{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.portfolio-card__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--bone);border-bottom:1px solid var(--border)}.portfolio-card__date{font-family:var(--font-body);font-size:var(--font-size-md);font-weight:600;color:var(--charcoal);margin:0}.portfolio-card__delete{background:none;border:none;cursor:pointer;padding:var(--space-xs);font-size:18px;line-height:1;border-radius:var(--radius-sm);transition:background var(--transition-fast),opacity var(--transition-fast);opacity:.6;color:var(--negative);min-width:var(--touch-target-min);min-height:var(--touch-target-min);display:flex;align-items:center;justify-content:center}.portfolio-card__delete:hover,.portfolio-card__delete:active{opacity:1;background:var(--negative-light)}.portfolio-card__body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg)}.portfolio-card__group{display:flex;flex-direction:column;gap:var(--space-sm)}.portfolio-card__group-title{font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin:0 0 var(--space-xs) 0;padding:var(--space-sm);background:var(--charcoal);color:var(--warm-white);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);min-height:var(--touch-target-min);display:flex;align-items:center;justify-content:space-between}.portfolio-card__group-title:active{background:var(--charcoal-light)}.portfolio-card__group--sparing .portfolio-card__group-title{background:var(--category-sparing)}.portfolio-card__group--gjeld .portfolio-card__group-title{background:var(--category-gjeld)}.portfolio-card__group--pensjon .portfolio-card__group-title{background:var(--category-pensjon)}.portfolio-card__group-toggle{display:inline-block;margin-left:var(--space-xs);font-size:10px;opacity:.7;transition:transform .2s ease}.portfolio-card__group--collapsed .portfolio-card__group-toggle{transform:rotate(-90deg)}.portfolio-card__group--collapsed .portfolio-card__accounts{display:none}.portfolio-card__accounts{display:flex;flex-direction:column;gap:var(--space-xs)}.portfolio-card__account{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;min-height:var(--touch-target-min)}.portfolio-card__account--total{border-top:2px solid var(--border-strong);padding-top:var(--space-md);margin-top:var(--space-xs);font-weight:600}.portfolio-card__account-label{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-secondary);flex:1}.portfolio-card__account--total .portfolio-card__account-label{color:var(--charcoal);font-weight:600}.portfolio-card__account-value{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--charcoal);text-align:right;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);min-width:100px;display:flex;align-items:center;justify-content:flex-end;min-height:var(--touch-target-min);transition:background var(--transition-fast)}.portfolio-card__account-value--editable{cursor:pointer;background:var(--pale-blue-light)}.portfolio-card__account-value--editable:hover,.portfolio-card__account-value--editable:active{background:var(--pale-blue-light-2);outline:1px solid var(--pale-blue);outline-offset:-1px}.portfolio-card__input{width:100%;padding:var(--space-xs);font-family:var(--font-mono);font-size:var(--font-size-sm);text-align:right;border:1px solid var(--pale-blue);border-radius:var(--radius-sm);background:var(--warm-white);color:var(--charcoal);outline:none;box-sizing:border-box}.portfolio-card__input:focus{border-color:var(--focus-color);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.portfolio-card__input::-webkit-outer-spin-button,.portfolio-card__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.portfolio-card__input[type=number]{-moz-appearance:textfield}.table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl) var(--space-2xl);margin-bottom:0;gap:var(--space-lg)}.table-header__title{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-light);color:var(--charcoal);margin:0;line-height:1.2;flex:0 0 auto}.table-header__controls{display:flex;gap:var(--space-sm);align-items:center;flex:0 1 auto}.table-header__select{padding:8px 28px 8px 12px;font-size:var(--font-size-sm);font-family:var(--font-body);color:var(--charcoal);background-color:var(--warm-white);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%232C2C2C' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.table-header__select:hover{border-color:var(--charcoal);background-color:var(--bone)}.table-header__select:focus{outline:none;border-color:var(--charcoal);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.table-header__select:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.table-header__select:disabled{opacity:.5;cursor:not-allowed}.table-header__search{padding:8px 12px;font-size:var(--font-size-sm);font-family:var(--font-body);color:var(--charcoal);background-color:var(--warm-white);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:all var(--transition-fast);min-width:140px}.table-header__search::placeholder{color:var(--text-secondary)}.table-header__search:hover{border-color:var(--charcoal);background-color:var(--bone)}.table-header__search:focus{outline:none;border-color:var(--charcoal);background-color:var(--warm-white);box-shadow:0 0 0 2px var(--charcoal-light-dark)}.table-header__search:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.table-header{flex-direction:column;align-items:flex-start;margin-bottom:var(--space-xl)}.table-header__controls{width:100%}.table-header__select,.table-header__search{flex:1;width:100%}}@media(max-width:640px){.table-header{margin-bottom:var(--space-lg)}.table-header__title{font-size:18px}.table-header__controls{width:100%;flex-direction:column}.table-header__select,.table-header__search{width:100%}}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border);background:var(--bone);font-size:var(--font-size-xs);gap:var(--space-lg);flex-wrap:wrap}.table-footer__info{color:var(--text-secondary);font-family:var(--font-body)}.table-footer__toggles{display:flex;gap:var(--space-md);align-items:center}.table-footer__toggle{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-secondary);transition:color var(--transition-fast);-webkit-user-select:none;user-select:none;min-height:44px;padding:0 var(--space-xs)}.table-footer__toggle:hover{color:var(--charcoal)}.table-footer__checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--warm-white);cursor:pointer;position:relative;flex-shrink:0;transition:all var(--transition-fast)}.table-footer__checkbox:checked{background:var(--muted-sage);border-color:var(--muted-sage)}.table-footer__checkbox:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid var(--warm-white);border-width:0 2px 2px 0;transform:rotate(45deg)}.table-footer__checkbox:hover{border-color:var(--muted-sage)}.table-footer__toggle-label{font-family:var(--font-body);font-size:var(--font-size-xs)}.table-footer__pagination{display:flex;gap:6px;align-items:center}.table-footer__page-btn{padding:6px 12px;font-size:var(--font-size-xs);font-family:var(--font-body);border:1px solid var(--border-strong);background:var(--warm-white);color:var(--charcoal);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);font-weight:var(--font-weight-regular)}.table-footer__page-btn:hover:not(:disabled){background:var(--warm-white);border-color:var(--charcoal)}.table-footer__page-btn:disabled{opacity:.4;cursor:not-allowed}.table-footer__page-btn--active{background:var(--gold);color:var(--warm-white);border-color:var(--gold);font-weight:var(--font-weight-medium)}.table-footer__page-btn--active:hover{background:var(--gold);border-color:var(--gold);opacity:.9}.table-footer__ellipsis{padding:0 4px;color:var(--text-secondary);font-size:var(--font-size-xs);-webkit-user-select:none;user-select:none}@media(max-width:768px){.table-footer{flex-direction:column;align-items:stretch;gap:var(--space-md)}.table-footer__info,.table-footer__toggles,.table-footer__pagination{justify-content:center}.table-footer__pagination{flex-wrap:wrap}}.table-footer__checkbox:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.table-footer__page-btn:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.area-chart{background:var(--card-bg);border:var(--border-subtle);padding:var(--space-lg);border-radius:2px;animation:fadeUp .6s ease both}.area-chart__header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--space-md)}.area-chart__title{font-family:var(--font-heading);font-size:22px;font-weight:400}.area-chart__subtitle{font-family:var(--font-mono);font-size:14px;color:var(--muted-sage)}.area-chart__container{position:relative;overflow:hidden}.area-chart__svg{display:block;overflow:hidden}.area-chart__x-axis{display:flex;justify-content:space-between;margin-top:var(--space-sm);font-size:10px;color:var(--text-secondary)}@media(prefers-reduced-motion:reduce){.area-chart{animation:none;opacity:1}}.stacked-area-chart{background:var(--card-bg);border:var(--border-subtle);padding:var(--space-lg);border-radius:2px;animation:fadeUp .6s ease both}.stacked-area-chart__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-md)}.stacked-area-chart__title{font-family:var(--font-heading);font-size:22px;font-weight:400}.stacked-area-chart__container{position:relative;height:200px;overflow:hidden}.stacked-area-chart__svg{display:block;width:100%;height:100%;overflow:hidden}.stacked-area-chart__x-axis{display:flex;justify-content:space-between;margin-top:var(--space-sm);padding:0 10px;font-size:10px;color:var(--text-secondary)}.stacked-area-chart__legend{display:flex;gap:var(--space-md);margin-top:var(--space-sm)}.stacked-area-chart__legend-item{display:flex;align-items:center;gap:var(--space-xs);font-size:11px;color:var(--text-secondary)}.stacked-area-chart__legend-color{width:12px;height:4px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(prefers-reduced-motion:reduce){.stacked-area-chart{animation:none;opacity:1}}@media(max-width:768px){.stacked-area-chart{padding:var(--space-md)}}.donut-chart{border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;animation:fadeUp .6s ease both}.donut-chart__svg{position:absolute;top:0;left:0}.donut-chart__inner{position:relative;z-index:1;text-align:center}.donut-chart__value{font-family:var(--font-heading);font-size:42px;font-weight:400;line-height:1;color:var(--charcoal)}.donut-chart__label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-top:4px}@media(prefers-reduced-motion:reduce){.donut-chart{animation:none;opacity:1}}.section-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);padding:var(--space-2xl);background:var(--card-bg);border:var(--border-subtle);border-radius:var(--radius-sm);text-decoration:none;color:inherit;cursor:pointer;transition:transform var(--transition-medium),box-shadow var(--transition-medium)}.section-link__content{display:flex;flex-direction:column;gap:var(--space-xs);flex:1}.section-link__title{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--charcoal);line-height:1.2}.section-link__subtitle{font-family:var(--font-body);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.section-link__arrow{font-size:var(--font-size-lg);color:var(--muted-sage);font-weight:var(--font-weight-regular);flex-shrink:0;transition:transform var(--transition-medium)}@media(hover:hover){.section-link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.section-link:hover .section-link__arrow{transform:translate(4px)}}@media(hover:none){.section-link:active{transform:translateY(-2px);box-shadow:0 8px 24px #0000000a}.section-link:active .section-link__arrow{transform:translate(2px)}}.section-link:focus{outline:2px solid var(--focus-color);outline-offset:2px}.page-header{display:block;padding-bottom:var(--space-6xl);text-align:center}.page-header.reduced{padding-bottom:var(--space-3xl)}.page-header__title{font-family:var(--font-heading);font-size:var(--font-size-2xl);font-weight:var(--font-weight-light);color:var(--charcoal);line-height:1.2;margin-bottom:var(--space-sm)}.page-header__title.reduced{font-size:var(--font-size-xl)}.page-header__subtitle{color:var(--text-secondary);font-size:var(--font-size-md);line-height:1.4}@media(max-width:640px){.page-header__title{font-size:28px}.page-header__subtitle{font-size:var(--font-size-sm)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.skip-link{position:absolute;left:-9999px;background:var(--warm-white);color:var(--charcoal);padding:8px 16px;border-radius:4px;text-decoration:none;font-family:var(--font-body);z-index:9998}.skip-link:focus{left:16px;top:16px;z-index:9999;outline:2px solid var(--focus-color);outline-offset:2px}.page-skeleton{animation:fadeUp .35s ease-out both}.page-skeleton :is(.breadcrumb){animation:fadeUp .35s ease-out both;animation-delay:.05s}.page-skeleton :is(.page-header){animation:fadeUp .35s ease-out both;animation-delay:.1s}.page-skeleton__content{animation:fadeUp .35s ease-out both;animation-delay:.15s}@media(prefers-reduced-motion:reduce){.page-skeleton,.page-skeleton :is(.breadcrumb),.page-skeleton :is(.page-header),.page-skeleton__content{opacity:1;animation:none}}.toast-container{position:fixed;bottom:var(--space-xl);right:var(--space-xl);z-index:9999;max-width:400px;width:100%;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);color:var(--warm-white);font-family:var(--font-body);font-size:var(--font-size-sm);box-shadow:0 4px 16px #00000026;animation:toastSlideIn .3s ease-out}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast--error{background:var(--negative)}.toast--success{background:var(--positive)}.toast--warning{background:var(--gold);color:var(--charcoal)}.toast--info{background:var(--pale-blue);color:var(--charcoal)}.toast__icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast__icon svg{width:100%;height:100%}.toast__message{flex:1;line-height:1.4}.toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);border-radius:var(--radius-sm)}.toast__close:hover{opacity:1}.toast__close:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}@media(max-width:640px){.toast-container{left:var(--space-md);right:var(--space-md);bottom:var(--space-md);max-width:none}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:var(--space-xl)}.error-boundary__card{max-width:480px;width:100%;background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3xl);text-align:center;box-shadow:0 4px 16px #0000000f}.error-boundary__icon{width:64px;height:64px;margin:0 auto var(--space-lg);color:var(--negative)}.error-boundary__icon svg{width:100%;height:100%}.error-boundary__title{font-family:var(--font-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-regular);color:var(--charcoal);margin:0 0 var(--space-sm)}.error-boundary__message{font-family:var(--font-body);font-size:var(--font-size-md);color:var(--text-secondary);margin:0 0 var(--space-xl);line-height:1.5}.error-boundary__details{margin-top:var(--space-lg);text-align:left}.error-boundary__details summary{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;padding:var(--space-sm) 0}.error-boundary__details summary:hover{color:var(--charcoal)}.error-boundary__details pre{font-family:var(--font-mono);font-size:var(--font-size-xs);background:var(--bone);padding:var(--space-md);border-radius:var(--radius-sm);overflow:auto;max-height:200px;margin-top:var(--space-sm);color:var(--charcoal)}.error-boundary__btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--warm-white);background:var(--charcoal);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.error-boundary__btn:hover{background:var(--charcoal-hover);transform:translateY(-2px)}.error-boundary__btn:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.error-boundary__btn-icon{width:18px;height:18px}.error-boundary__btn-icon svg{width:100%;height:100%}.delete-account-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--charcoal-dark-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease-in-out}.delete-account-modal{background-color:var(--warm-white);border-radius:8px;box-shadow:0 10px 40px var(--black-15);max-width:400px;width:90%;max-height:80vh;overflow-y:auto;position:relative;animation:modalEnter .3s ease-out}.delete-account-modal__close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;font-size:28px;color:var(--charcoal);cursor:pointer;padding:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s ease;min-width:44px;min-height:44px;margin:-8px}.delete-account-modal__close:hover:not(:disabled){background-color:var(--border)}.delete-account-modal__close:disabled{opacity:.5;cursor:not-allowed}.delete-account-modal__content{padding:var(--space-2xl) var(--space-xl) var(--space-xl)}.delete-account-modal__title{font-size:20px;font-weight:600;color:var(--charcoal);margin:0 0 var(--space-md);font-family:var(--font-heading);letter-spacing:.3px}.delete-account-modal__warning{display:flex;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--bone);border-left:4px solid var(--negative);border-radius:4px;margin-bottom:var(--space-lg);align-items:flex-start}.delete-account-modal__warning-icon{color:var(--negative);flex-shrink:0;font-size:1.25rem;line-height:1.5;margin-top:2px}.delete-account-modal__warning-text{margin:0;font-size:14px;line-height:1.5;color:var(--charcoal)}.delete-account-modal__form{margin-bottom:var(--space-lg)}.delete-account-modal__label{display:block;font-size:13px;font-weight:500;color:var(--charcoal);margin-bottom:var(--space-xs);line-height:1.4}.delete-account-modal__label strong{font-weight:700;font-family:var(--font-mono);letter-spacing:.5px}.delete-account-modal__input{width:100%;padding:var(--space-sm) var(--space-sm);border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:14px;color:var(--charcoal);background-color:var(--warm-white);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.delete-account-modal__input:focus{outline:none;border-color:var(--soft-terracotta);box-shadow:0 0 0 3px var(--soft-terracotta-light-10)}.delete-account-modal__input:disabled{background-color:var(--bone);cursor:not-allowed;opacity:.6}.delete-account-modal__error{padding:var(--space-sm);background-color:var(--negative-light);border-left:4px solid var(--negative);border-radius:4px;font-size:13px;color:var(--negative);margin-bottom:var(--space-md);line-height:1.4}.delete-account-modal__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.delete-account-modal__btn{padding:var(--space-sm) var(--space-md);border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-body)}.delete-account-modal__btn:disabled{opacity:.5;cursor:not-allowed}.delete-account-modal__btn--cancel{background-color:var(--bone);color:var(--charcoal);border:1px solid var(--border)}.delete-account-modal__btn--cancel:hover:not(:disabled){background-color:var(--border)}.delete-account-modal__btn--delete{background-color:var(--negative);color:var(--warm-white)}.delete-account-modal__btn--delete:hover:not(:disabled){background-color:var(--negative-dark);box-shadow:0 4px 12px var(--negative-light-2)}.delete-account-modal__btn--delete:disabled{background-color:var(--text-secondary)}.avatar-menu{position:relative;z-index:var(--z-dropdown)}.avatar-menu__trigger{display:block;padding:0;border:none;background:none;cursor:pointer;border-radius:50%;transition:transform .15s ease}.avatar-menu__trigger:hover{transform:scale(1.05)}.avatar-menu__trigger:focus-visible{outline:2px solid var(--pale-blue);outline-offset:2px}.avatar-menu__dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--warm-white);border:1px solid var(--border);box-shadow:0 4px 16px var(--black-8);z-index:var(--z-overlay);padding:var(--space-xs) 0}.avatar-menu__dropdown .avatar-menu__item{display:block;width:200px;margin:var(--space-xs);padding:var(--space-sm) var(--space-md);border:none;border-radius:0;background:none;font-family:var(--font-body);font-size:14px;font-weight:400;color:var(--charcoal);text-align:left;text-transform:none;letter-spacing:normal;cursor:pointer;transition:background-color .15s ease;white-space:nowrap;box-sizing:border-box}.avatar-menu__item:hover{background-color:var(--charcoal-light-4)}.avatar-menu__item:focus-visible{outline:none;background-color:var(--charcoal-light-4)}.avatar-menu__item--danger{color:var(--negative)}.avatar-menu__item--danger:hover{background-color:var(--negative-light-8)}.avatar-menu__icon{display:inline-block;width:16px;height:16px;margin-right:var(--space-sm);vertical-align:middle;opacity:.7}.avatar-menu__icon svg{display:block}.avatar-menu__divider{height:1px;background-color:var(--border)}.skip-link{position:absolute;left:-9999px;top:0;z-index:999;padding:var(--space-sm) var(--space-md);background:var(--charcoal);color:var(--warm-white);text-decoration:none;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.skip-link:focus{left:0;outline:2px solid var(--gold);outline-offset:2px}.app-header{position:relative;z-index:50;padding:var(--space-2xl) 0;border-bottom:1px solid var(--border);background:var(--warm-white)}.app-header__container{margin:0 auto;padding:0 var(--space-4xl);display:flex;align-items:center;gap:48px;overflow:visible;width:100%;box-sizing:border-box}.app-header__logo{font-family:var(--font-heading);font-size:26px;font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing-extra);text-transform:lowercase;text-decoration:none;color:var(--charcoal);transition:opacity var(--transition-fast);white-space:pre;line-height:1.2;padding-left:32px}.app-header__logo:hover{opacity:.7}.app-header__logo:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}.app-header__nav{display:flex;flex:1;justify-content:center;gap:48px;align-items:center}.app-header__nav-item{text-decoration:none;color:var(--text-secondary);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;transition:color var(--transition-fast);font-weight:var(--font-weight-regular);position:relative}.app-header__nav-item:hover{color:var(--charcoal)}.app-header__nav-item:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}.app-header__nav-item.active{color:var(--charcoal)}.app-header__nav-item:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--charcoal);transition:width var(--transition-fast) ease;transform-origin:left}.app-header__nav-item:hover:after{width:100%}.app-header__nav-item.active:after{width:100%}.app-header__avatar{position:relative}.app-header__actions{margin-left:auto}.app-header__login-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;text-decoration:none;color:var(--warm-white);background:var(--charcoal);border:none;border-radius:2px;cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast)}.app-header__login-btn:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}@media(hover:hover){.app-header__login-btn:hover{opacity:.85;transform:translateY(1px)}}@media(max-width:1024px){.app-header__nav{gap:32px}}.app-header__hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;margin-left:auto;padding:8px;border:none;background:none;cursor:pointer;border-radius:4px;transition:background-color .15s ease;z-index:100;position:relative}.app-header__hamburger:hover{background-color:var(--charcoal-light-4)}.app-header__hamburger:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}.app-header__hamburger-line{display:block;width:20px;height:2px;background-color:var(--charcoal);border-radius:1px;transition:transform .2s ease,opacity .2s ease}@media(max-width:768px){.app-header{padding:var(--space-lg) 0;width:100%}.app-header__container{padding:0 var(--space-md)}.app-header__logo{font-size:20px;padding-left:0}.app-header__nav,.app-header__avatar{display:none}.app-header__hamburger{display:flex}}@media(max-width:640px){.app-header__logo{font-size:18px}}.app-header__mobile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--black-40);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:var(--z-overlay)}.app-header__mobile-overlay.open{opacity:1;visibility:visible}.app-header__mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--warm-white);transform:translate(100%);transition:transform .3s ease;z-index:var(--z-modal);display:flex;flex-direction:column;overflow-y:auto}.app-header__mobile-menu.open{transform:translate(0)}.app-header__mobile-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--border)}.app-header__mobile-nickname{flex:1;font-family:var(--font-body);font-size:15px;font-weight:var(--font-weight-medium);color:var(--charcoal)}.app-header__mobile-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:background-color .15s ease,color .15s ease}.app-header__mobile-close:hover{background-color:var(--charcoal-light-4);color:var(--charcoal)}.app-header__mobile-close:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px}.app-header__mobile-nav{flex:0 1 auto;display:flex;flex-direction:column;padding:12px 0}.app-header__mobile-nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;border:none;background:none;font-family:var(--font-body);font-size:15px;color:var(--text-secondary);text-align:left;cursor:pointer;transition:background-color .15s ease,color .15s ease;position:relative}.app-header__mobile-nav-item:hover{background-color:var(--charcoal-light-4);color:var(--charcoal)}.app-header__mobile-nav-item.active{color:var(--charcoal);font-weight:var(--font-weight-medium);background-color:var(--charcoal-light-4)}.app-header__mobile-nav-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--charcoal);transform:scaleY(0);transform-origin:top;transition:transform .2s ease}.app-header__mobile-nav-item.active:before{transform:scaleY(1)}.app-header__mobile-nav-item svg{opacity:.7;flex-shrink:0}.app-header__mobile-divider{height:1px;background-color:var(--border);margin:8px 20px}.app-header__mobile-footer{padding:12px 0;border-top:1px solid var(--border);margin-top:auto}.app-header__mobile-logout{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;border:none;background:none;font-family:var(--font-body);font-size:15px;color:var(--negative);text-align:left;cursor:pointer;transition:background-color .15s ease}.app-header__mobile-logout:hover{background-color:var(--negative-light-8)}.app-header__mobile-logout svg{opacity:.8;flex-shrink:0}body.mobile-menu-open{overflow:hidden}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bone)}.app-layout>main{flex:1;padding:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--space-lg)}.loading-container--inline{min-height:auto;padding:var(--space-4xl)}.loading-spinner{width:48px;height:48px;border:2px solid var(--border);border-top-color:var(--charcoal);border-radius:var(--radius-full);animation:spin .8s linear infinite}.loading-spinner--small{width:24px;height:24px}.loading-spinner--large{width:64px;height:64px;border-width:3px}.loading-text{font-size:var(--font-size-md);color:var(--text-secondary)}.feature-error-fallback{display:flex;align-items:center;justify-content:center;min-height:40vh;padding:var(--space-lg)}.feature-error-fallback__card{max-width:480px;width:100%;background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xl);text-align:center;box-shadow:0 2px 8px #0000000a}.feature-error-fallback__icon{width:48px;height:48px;margin:0 auto var(--space-md);color:var(--negative)}.feature-error-fallback__icon svg{width:100%;height:100%}.feature-error-fallback__title{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--charcoal);margin:0 0 var(--space-sm)}.feature-error-fallback__message{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--space-lg);line-height:1.5}.feature-error-fallback__details{margin-top:var(--space-md);text-align:left}.feature-error-fallback__details summary{font-family:var(--font-body);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;padding:var(--space-sm) 0}.feature-error-fallback__details summary:hover{color:var(--charcoal)}.feature-error-fallback__details pre{font-family:var(--font-mono);font-size:var(--font-size-xs);background:var(--bone);padding:var(--space-md);border-radius:var(--radius-sm);overflow:auto;max-height:150px;margin-top:var(--space-sm);color:var(--charcoal)}.feature-error-fallback__btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);margin-top:var(--space-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--warm-white);background:var(--charcoal);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.feature-error-fallback__btn:hover{background:var(--charcoal-hover);transform:translateY(-2px)}.feature-error-fallback__btn:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.feature-error-fallback__btn-icon{width:16px;height:16px}.feature-error-fallback__btn-icon svg{width:100%;height:100%}.skeleton-container{width:100%;display:flex;flex-direction:column;gap:32px}.skeleton-page-header{display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.skeleton-hero-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;border-bottom:1px solid var(--border);border-top:1px solid var(--border)}.skeleton-quick-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:24px}.skeleton-stat-card{padding:24px;background:var(--warm-white);border-radius:2px;display:flex;flex-direction:column;gap:8px}.skeleton-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:24px 0;border-bottom:1px solid var(--border)}.skeleton-milestone-section{padding:24px;background:var(--warm-white);border-radius:2px}.skeleton-section-links{display:flex;flex-direction:column;gap:16px;margin-top:24px}.skeleton-section-link{padding:20px 24px;background:var(--warm-white);border-radius:2px;display:flex;justify-content:space-between;align-items:center}.skeleton-breadcrumb{padding:16px 0}.skeleton-page-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.skeleton-table-header{padding:24px;background:var(--warm-white);border-radius:2px;margin-bottom:16px}.skeleton-table-body{background:var(--warm-white);border-radius:2px;overflow:hidden}.skeleton-table-row{padding:16px 24px;border-bottom:1px solid var(--border);display:flex;gap:16px;align-items:center}.skeleton-table-row:last-child{border-bottom:none}.skeleton-table-footer{padding:24px;background:var(--warm-white);border-radius:2px;margin-top:16px}.skeleton-dekning-section{padding:24px;background:var(--warm-white);border-radius:2px;margin-top:24px}.skeleton-loans-list{padding:24px 0}.skeleton-loan-item{padding:16px 0;border-bottom:1px solid var(--border)}.skeleton-loan-item:last-child{border-bottom:none}.skeleton-fire-section,.skeleton-otp-section{padding:24px;background:var(--warm-white);border-radius:2px;margin-top:24px}.skeleton-breakdown-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px}.skeleton-breakdown-card{padding:24px;background:var(--warm-white);border-radius:2px;display:flex;flex-direction:column}.skeleton-chart-section{padding:24px;background:var(--warm-white);border-radius:2px;margin-top:24px}@media(max-width:768px){.skeleton-quick-stats{grid-template-columns:repeat(2,1fr)}.skeleton-stats-row,.skeleton-breakdown-cards{grid-template-columns:1fr}}:root{--bone: #F5F2ED;--warm-white: #faf6f4;--charcoal: #1c1c1c;--text-secondary: #6B6B6B;--muted-sage: #8B9A7D;--soft-terracotta: #C4A484;--pale-blue: #B8C5D0;--gold: #C9A962;--positive: #5A7D5A;--negative: #9D6B5A;--charcoal-light: #3a3a3a;--charcoal-hover: #1a1a1a;--gold-light: #D4B876;--negative-dark: #8b5d4d;--category-sparing: #6a7a60;--category-sparing-hover: #7a8a70;--category-gjeld: #8a7060;--category-gjeld-hover: #9a8070;--category-pensjon: #5a6d7a;--category-pensjon-hover: #6a7d8a;--facebook-blue: #1877F2;--facebook-blue-hover: #166FE5;--orange: #D4956A;--sage-dark: #7A8A6D;--border: rgba(44, 44, 44, .08);--border-strong: rgba(44, 44, 44, .15);--border-subtle: .5px solid #E5E2DE;--surface: #faf6f4;--card-bg: #faf6f4;--btn-primary-bg: var(--charcoal);--btn-primary-color: var(--warm-white);--btn-primary-hover-bg: #444433;--btn-primary-disabled-bg: var(--charcoal-hover);--btn-secondary-bg: transparent;--btn-secondary-hover-bg: var(--bone);--btn-secondary-disabled-bg: transparent;--btn-secondary-color: var(--charcoal);--focus-color: var(--charcoal);--font-heading: "Cormorant Garamond", serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 22px;--font-size-xl: 32px;--font-size-2xl: 44px;--font-size-3xl: 48px;--font-size-hero: 84px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--letter-spacing-wider: .1em;--letter-spacing-widest: .12em;--letter-spacing-extra: .15em;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--space-5xl: 64px;--space-6xl: 80px;--touch-target-min: 44px;--container-max-width: 1200px;--container-narrow: 900px;--container-tight: 600px;--radius-sm: 2px;--radius-md: 4px;--radius-full: 50%;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1400px;--transition-fast: .2s ease;--transition-medium: .3s ease;--transition-slow: .6s ease;--shadow-sm: 0 8px 24px rgba(0, 0, 0, .04);--shadow-md: 0 16px 48px rgba(0, 0, 0, .06);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .08);--opacity-grain: .03;--opacity-muted: .5;--opacity-subtle: .6;--opacity-medium: .12;--opacity-strong: .15;--pale-blue-light-3: rgba(184, 197, 208, .3);--pale-blue-light-2: rgba(184, 197, 208, .2);--pale-blue-light-15: rgba(184, 197, 208, .15);--pale-blue-light: rgba(184, 197, 208, .06);--terracotta-light: rgba(212, 149, 106, .2);--soft-terracotta-light-15: rgba(196, 164, 132, .15);--soft-terracotta-light-10: rgba(196, 164, 132, .1);--soft-terracotta-light: rgba(196, 164, 132, .08);--muted-sage-light-3: rgba(139, 154, 125, .3);--muted-sage-light-2: rgba(139, 154, 125, .2);--muted-sage-light-15: rgba(139, 154, 125, .15);--muted-sage-light-12: rgba(139, 154, 125, .12);--muted-sage-light-10: rgba(139, 154, 125, .1);--muted-sage-light-5: rgba(139, 154, 125, .05);--muted-sage-light: rgba(139, 154, 125, .08);--muted-sage-light-4: rgba(139, 154, 125, .04);--bone-light: rgba(245, 242, 237, .1);--bone-dark: rgba(245, 242, 237, .6);--positive-light-2: rgba(90, 125, 90, .2);--positive-light: rgba(90, 125, 90, .08);--negative-light-2: rgba(157, 107, 90, .2);--negative-light-15: rgba(157, 107, 90, .15);--negative-light-12: rgba(157, 107, 90, .12);--negative-light: rgba(157, 107, 90, .1);--negative-light-8: rgba(157, 107, 90, .08);--white-light-6: rgba(255, 255, 255, .6);--white-light-15: rgba(255, 255, 255, .15);--white-light-8: rgba(255, 255, 255, .08);--white-light: rgba(255, 255, 255, .1);--charcoal-dark-overlay: rgba(44, 44, 44, .5);--charcoal-light-5: rgba(44, 44, 44, .05);--charcoal-light-4: rgba(44, 44, 44, .04);--charcoal-light-3: rgba(44, 44, 44, .03);--charcoal-light-2: rgba(44, 44, 44, .02);--charcoal-light-15: rgba(44, 44, 44, .015);--charcoal-light-15-percent: rgba(44, 44, 44, .15);--charcoal-light-1: rgba(44, 44, 44, .1);--charcoal-light-2-percent: rgba(44, 44, 44, .2);--charcoal-light-3-percent: rgba(44, 44, 44, .3);--charcoal-light-dark: rgba(0, 0, 0, .03);--black-40: rgba(0, 0, 0, .4);--black-15: rgba(0, 0, 0, .15);--black-8: rgba(0, 0, 0, .08);--black-6: rgba(0, 0, 0, .06);--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-grain: 500;--z-overlay: 900;--z-modal: 1000}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulse{0%,60%,to{opacity:.3;transform:scale(.9)}30%{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.page-enter{animation:fadeUp .25s ease-out both}.animate-fade-up{animation:fadeUp .35s ease both}.animate-fade-in{animation:fadeIn .35s ease both}.animate-scale-in{animation:scaleIn .25s ease-out both}.animate-duration-fast{animation-duration:.2s}.animate-duration-normal{animation-duration:.4s}.animate-duration-slow{animation-duration:.8s}.animate-delay-1{animation-delay:.03s}.animate-delay-2{animation-delay:.06s}.animate-delay-3{animation-delay:.09s}.animate-delay-4{animation-delay:.12s}.animate-delay-5{animation-delay:.15s}.animate-delay-6{animation-delay:.18s}.animate-delay-7{animation-delay:.21s}.animate-delay-8{animation-delay:.24s}.animate-delay-9{animation-delay:.27s}.animate-delay-10{animation-delay:.3s}.page-section-delay-0{animation-delay:0s}.page-section-delay-1{animation-delay:.03s}.page-section-delay-2{animation-delay:.06s}.page-section-delay-3{animation-delay:.09s}.page-section-delay-4{animation-delay:.12s}.page-section-delay-5{animation-delay:.15s}@media(min-width:768px){@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation-duration:.35s}.animate-fade-up,.animate-fade-in{animation-duration:.5s}.animate-scale-in{animation-duration:.3s}.animate-delay-1{animation-delay:.05s}.animate-delay-2{animation-delay:.1s}.animate-delay-3{animation-delay:.15s}.animate-delay-4{animation-delay:.2s}.animate-delay-5{animation-delay:.25s}.animate-delay-6{animation-delay:.3s}.animate-delay-7{animation-delay:.35s}.animate-delay-8{animation-delay:.4s}.animate-delay-9{animation-delay:.45s}.animate-delay-10{animation-delay:.5s}.page-section-delay-1{animation-delay:.05s}.page-section-delay-2{animation-delay:.1s}.page-section-delay-3{animation-delay:.15s}.page-section-delay-4{animation-delay:.2s}.page-section-delay-5{animation-delay:.25s}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.page-enter,.animate-fade-up,.animate-fade-in,.animate-scale-in{animation:none;opacity:1}*:hover{transform:none!important}}body{margin:0;padding:0;font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);color:var(--charcoal);background-color:var(--bone);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:var(--opacity-grain);pointer-events:none;z-index:var(--z-grain)}#root{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bone)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-light);color:var(--charcoal);margin:0;line-height:1.2}h1{font-size:var(--font-size-2xl);letter-spacing:var(--letter-spacing-tight)}h2{font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-tight)}h3{font-size:var(--font-size-lg)}h4,h5,h6{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}code,pre,kbd,samp,.mono{font-family:var(--font-mono);font-weight:var(--font-weight-regular)}code{background-color:var(--charcoal-light-5);padding:2px 6px;border-radius:var(--radius-sm);font-size:.9em}pre{background-color:var(--charcoal-light-5);padding:var(--space-md);border-radius:var(--radius-sm);overflow-x:auto}pre code{background-color:transparent;padding:0}.container{max-width:var(--container-max-width);margin:0 auto;padding:var(--space-lg)}.container--narrow{max-width:900px}.error-text{color:var(--negative)}.success-text{color:var(--positive)}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:16px;height:16px;border:1.5px solid var(--border-strong);border-radius:3px;background-color:var(--warm-white);cursor:pointer;transition:all .2s ease;flex-shrink:0;position:relative}input[type=checkbox]:hover{border-color:var(--muted-sage)}input[type=checkbox]:checked{background-color:var(--muted-sage);border-color:var(--muted-sage)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px var(--muted-sage-light-10)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=date],textarea,select{transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus-visible,input[type=email]:focus-visible,input[type=number]:focus-visible,input[type=password]:focus-visible,input[type=search]:focus-visible,input[type=tel]:focus-visible,input[type=url]:focus-visible,input[type=date]:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 2px var(--charcoal-light-1)}
