.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--color-bg-muted)}.auth-card{width:100%;max-width:36rem;background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-xl);box-shadow:0 .8rem 2.4rem #0000000f}.auth-header{text-align:center;margin-bottom:var(--space-xl)}.auth-logo{height:3.2rem;margin-bottom:var(--space-lg)}.auth-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}.auth-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-helper-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.auth-primary-btn{width:100%;margin-top:var(--space-sm)}.auth-secondary-btn{width:100%;background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);transition:background-color .2s,border-color .2s}.auth-secondary-btn:hover:not(:disabled){background:var(--color-bg-muted);border-color:var(--color-text-secondary)}.auth-secondary-btn:disabled{opacity:.5;cursor:not-allowed}.auth-error{font-size:var(--font-size-sm);color:var(--color-text-error);background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);text-align:left;line-height:1.5}.auth-success{font-size:var(--font-size-sm);color:var(--color-text-success);background:#16a34a1a;border:1px solid rgba(22,163,74,.2);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);text-align:left;line-height:1.5}.auth-alt-action{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.auth-text-link{background:none;border:none;padding:0;margin-left:.4rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer}.auth-text-link:hover{text-decoration:underline}.auth-consent{display:flex;align-items:flex-start;gap:.5rem;font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;line-height:1.4}.auth-consent input[type=checkbox]{margin-top:.15rem;flex-shrink:0}.auth-consent .auth-text-link{margin-left:0}.settings-container{display:flex;flex-direction:column;flex-grow:1;background:var(--color-surface-subtle, #f5f5f5);overflow-y:auto;overflow-x:hidden}.settings-close-btn{width:4.4rem;height:4.4rem;min-width:4.4rem;min-height:4.4rem;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;color:var(--color-text-secondary);transition:background-color .2s ease,color .2s ease}.settings-close-btn:hover{background:#0000000f;color:var(--color-text-primary)}.settings-close-btn:focus{outline:none;background:#0000000f;box-shadow:0 0 0 .2rem #0000001f}.settings-close-btn:active{background:#0000001a;color:var(--color-text-primary)}.settings-page{width:100%;max-width:96rem;margin:0 auto;padding:var(--space-xl) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg);box-sizing:border-box}.settings-page-header{display:flex;flex-direction:column;gap:.6rem;padding:0 .4rem var(--space-md)}.settings-page-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.settings-page-title{margin:0;font-size:3.2rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.15;letter-spacing:-.01em}.settings-page-subtitle{margin:0;font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:1.5;max-width:60rem}.settings-grid{display:grid;gap:var(--space-lg)}.settings-grid--two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-section{background:var(--color-surface, #ffffff);border:.1rem solid rgba(0,0,0,.06);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column}.settings-section h2{margin:0 0 var(--space-lg) 0;font-size:2rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.25}.settings-block{margin-bottom:var(--space-lg)}.settings-block:last-child{margin-bottom:0}.settings-block+.settings-block{margin-top:0}.settings-block-divider{padding-top:var(--space-lg);border-top:.1rem solid rgba(0,0,0,.06)}.settings-section>.settings-block-divider:first-child{padding-top:0;border-top:none}.settings-block h3{margin:0 0 .4rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.settings-hint{margin-bottom:var(--space-sm);font-size:var(--font-size-md);line-height:1.5;color:var(--color-text-secondary)}.settings-hint--error{color:var(--color-text-error)}.settings-section label:not(.preference-option){display:flex;flex-direction:column;gap:.4rem;margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.settings-section input{width:100%;max-width:100%;box-sizing:border-box}.settings-section .secondary-button{background:#0000000a;color:var(--color-text-primary)}.settings-section .secondary-button:hover{background:#00000014}.settings-section .success{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-success, #16a34a)}.settings-section .error{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-error)}.settings-section .plan-box{margin-bottom:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:.1rem solid rgba(0,0,0,.08);background:#00000005}.settings-section .subscription-status{margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.settings-section .subscription-card{display:flex;flex-direction:column;gap:var(--space-xl)}.settings-section .subscription-card-header{display:flex;flex-direction:column;gap:.6rem}.settings-section .subscription-eyebrow{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.settings-section .subscription-card-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.35}.settings-section .subscription-card-meta{margin:0;font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:1.5}.settings-section .subscription-status-line{display:inline-flex;align-items:center;gap:.6rem;margin:.4rem 0 0;padding:.4rem 1rem;align-self:flex-start;border-radius:999px;background:#15803d1a;font-size:var(--font-size-sm);color:#15803d}.settings-section .subscription-status-dot{width:.7rem;height:.7rem;border-radius:50%;background:#15803d;display:inline-block}.settings-section .subscription-status-line--cancelled{background:#b453091a;color:#b45309}.settings-section .subscription-status-dot--cancelled{background:#b45309}.settings-section .subscription-status-line--cancelled .subscription-status-label{color:#b45309}.settings-section .subscription-card-meta--warning{margin-top:.6rem;color:#b45309}.settings-section .subscription-status-label{font-weight:var(--font-weight-medium)}.settings-section .subscription-plans{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.settings-section .subscription-plan{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:var(--space-lg);border-radius:var(--radius-md);border:.1rem solid rgba(0,0,0,.08);background:#00000004}.settings-section .subscription-plan--featured{border-color:#0000002e}.settings-section .subscription-plan-tag{position:absolute;top:var(--space-md);right:var(--space-md);font-size:1.1rem;font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);background:#0000000d;padding:.3rem .7rem;border-radius:var(--radius-sm)}.settings-section .subscription-plan-name{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.settings-section .subscription-plan-price{margin:0;font-size:2.4rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.1}.settings-section .subscription-plan-cadence{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-left:.2rem}.settings-section .subscription-plan-blurb{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.settings-section .subscription-plan-btn{align-self:flex-start;margin-top:auto;padding:1.2rem 1.6rem;background:var(--color-action);color:#fff;font-weight:var(--font-weight-medium);transition:background-color .15s ease,opacity .15s ease}.settings-section .subscription-plan-btn:hover{background:var(--color-action-hover)}.settings-section .subscription-plan-btn:disabled{opacity:.6;cursor:not-allowed}.settings-section .subscription-card-actions{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center}.settings-section .subscription-manage-btn{padding:1rem 1.4rem;background:#0000000a;color:var(--color-text-primary);transition:background-color .15s ease,opacity .15s ease}.settings-section .subscription-manage-btn:hover{background:#00000014}@media(max-width:60rem){.settings-section .subscription-plans{grid-template-columns:1fr}}.settings-name-row{display:flex;gap:var(--space-md)}.settings-name-row input{flex:1;min-width:0}.invoice-table-wrapper{margin-top:var(--space-md);overflow-x:auto}.invoice-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.invoice-table th,.invoice-table td{text-align:left;padding:var(--space-md) var(--space-sm);border-bottom:.1rem solid rgba(0,0,0,.06);vertical-align:middle}.invoice-table th{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:1.2rem;padding-top:0}.invoice-table tbody tr:last-child td{border-bottom:none}.invoice-table td{color:var(--color-text-primary)}.invoice-table-action-col{text-align:right;width:1%;white-space:nowrap}.invoice-status-pill{display:inline-block;padding:.3rem .9rem;border-radius:999px;font-size:1.2rem;font-weight:var(--font-weight-medium);text-transform:capitalize;background:#0000000f;color:var(--color-text-secondary);letter-spacing:.02em}.invoice-status-pill--paid{background:#15803d1a;color:#15803d}.invoice-download-btn{display:inline-block;padding:.8rem 1.4rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:#0000000a;color:var(--color-text-primary);text-decoration:none;transition:background-color .15s ease}.invoice-download-btn:hover{background:#00000014}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:80rem){.settings-grid--two-col{grid-template-columns:1fr}}@media(max-width:72rem){.settings-page{padding:var(--space-lg) var(--space-md);gap:var(--space-md)}.settings-section{padding:var(--space-lg)}.settings-page-title{font-size:2.6rem}.settings-name-row{flex-direction:column}.invoice-table th,.invoice-table td{padding:var(--space-sm) .6rem}}.colour-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:var(--space-md);margin-top:var(--space-md)}.colour-swatch{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-md);border:.2rem solid transparent;cursor:pointer;transition:all .2s ease;display:flex;align-items:flex-end;padding:var(--space-sm);overflow:hidden}.colour-swatch:hover{transform:translateY(-.2rem);box-shadow:0 .4rem .8rem #0000001a}.colour-swatch.selected{border-color:var(--color-action);box-shadow:0 0 0 .2rem #3b82f640}.colour-swatch-default{background:var(--color-planner-bg);border:.2rem solid var(--color-border)}.colour-name{font-size:1.2rem;font-weight:var(--font-weight-medium);color:var(--color-text-primary);background:#ffffffe6;padding:.4rem .8rem;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem)}.toggle-container{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-container input[type=checkbox]{width:auto;max-width:none;cursor:pointer;margin:0}.toggle-label{font-size:var(--font-size-md);color:var(--color-text-primary)}.preference-option{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);margin:0 calc(-1 * var(--space-md));border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.preference-option:hover{background:#00000005}.preference-option input[type=checkbox]{width:auto;max-width:none;cursor:pointer;margin:0;margin-top:.2rem;flex-shrink:0}.preference-content{display:flex;flex-direction:column;gap:.4rem;flex:1}.preference-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:1.5;margin-top:-.2rem}.preference-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.legal-links{display:flex;flex-direction:column;gap:.5rem}.legal-link-btn{background:none;border:none;padding:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;text-align:left}.legal-link-btn:hover{text-decoration:underline}:root{--color-bg: #ffffff;--color-surface: #ffffff;--color-border: #d4d4d4;--color-border-focus: #3b82f6;--color-text-primary: #111111;--color-text-secondary: #666666;--color-bg-muted: #f5f5f5;--color-text-error: #c2410c;--color-text-success: #16a34a;--color-text-muted: #8a8a8a;--color-planner-bg: #ffffff;--color-surface-subtle: #f5f5f5;--color-action: #111111;--color-action-hover: #000000;--font-ui: "stevie-sans", sans-serif;--font-day-title: "stevie-sans", sans-serif;--font-size-sm: 1.4rem;--font-size-md: 1.6rem;--font-size-lg: 2.4rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-xs: .8rem;--space-sm: 1.2rem;--space-md: 1.6rem;--space-lg: 2.4rem;--space-xl: 3.2rem;--radius-sm: .6rem;--radius-md: .8rem;--radius-lg: 1.5rem;--focus-ring: 0 0 0 .2rem rgba(59, 130, 246, .25);--planner-row-height: 50px}html{font-size:62.5%}html,body{font-family:var(--font-ui),serif;font-synthesis:none;font-variation-settings:"slnt" 0,"ital" 0;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0}input[type=text],input[type=email],input[type=password],input[type=date]{font-family:inherit;font-size:var(--font-size-md);padding:1.2rem 1.4rem;background:var(--color-surface);border:.1rem solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary)}input::placeholder{color:var(--color-text-secondary)}input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--focus-ring)}select{font-family:inherit;font-size:var(--font-size-sm);padding:1.2rem 1.4rem;background:var(--color-surface);border:.1rem solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer}select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--focus-ring)}select:disabled{opacity:.6;cursor:not-allowed}button{font-family:inherit;font-size:var(--font-size-sm);border-radius:var(--radius-md);border:none;cursor:pointer}button.primary{padding:1.2rem 1.6rem;font-weight:var(--font-weight-medium);background:var(--color-action);color:#fff;transition:background-color .15s ease,opacity .15s ease}button.primary:hover{background:var(--color-action-hover)}button.primary:disabled{opacity:.6;cursor:not-allowed}button.secondary{padding:1.2rem 1.6rem;background:#0000000a;color:var(--color-text-primary)}button.secondary:hover{background:#00000014}input.task-input{width:100%;padding:.8rem 1rem;margin:0;font-family:inherit;font-size:1.6rem;line-height:1.4;color:#222;border:none;border-radius:0;background:transparent;outline:none;box-shadow:none;box-sizing:border-box;-webkit-appearance:none;appearance:none}input.task-input:focus{border:none;border-radius:0;outline:none;box-shadow:none;background:transparent}input.task-input.hidden{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;left:0;top:0;z-index:-1}
