.password-field{display:grid}.password-field label{color:var(--color-text-secondary);font-size:var(--type-control-size);line-height:1.5;font-weight:500}.password-control{position:relative}.password-control input{padding-right:48px}.password-toggle{position:absolute;top:50%;right:10px;display:grid;place-items:center;width:32px;height:32px;padding:5px;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer}.password-toggle:hover,.password-toggle:focus-visible{background:var(--color-bg-primary-subtle);color:var(--color-primary)}.password-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.password-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.themed-select{position:relative;width:100%;font-family:var(--font-family-base)}.themed-select__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--color-border);border-radius:var(--control-radius);outline:2px solid transparent;outline-offset:1px;background:var(--color-bg-control);color:var(--color-text-secondary);font-family:inherit;font-size:var(--type-control-size);font-weight:300;text-align:left;transition:background-color var(--duration-short) var(--ease-out),border-color var(--duration-short) var(--ease-out)}.themed-select__trigger:focus-visible{outline-color:var(--color-focus-ring);border-color:var(--color-primary)}.themed-select__trigger.invalid{border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.themed-select__trigger.invalid:focus-visible{outline-color:var(--color-error-shadow);border-color:var(--color-error-border-strong)}.themed-select__trigger:disabled{opacity:.55;background:var(--color-bg-disabled);cursor:not-allowed}.themed-select__trigger>span:first-child{flex:1;min-width:0;text-align:left}.themed-select__chevron{display:block;width:7px;height:7px;flex:0 0 7px;margin-inline-end:var(--space-1);border-inline-end:1.5px solid var(--color-text-subtle);border-block-end:1.5px solid var(--color-text-subtle);transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--duration-short) var(--ease-out)}.themed-select__chevron.rotated{transform:rotate(225deg) translate(-2px,-2px)}.themed-select__menu{position:absolute;inset-block-start:calc(100% + var(--space-2));inset-inline:0;z-index:40;display:grid;gap:var(--space-1);max-height:min(280px,45dvh);overflow-y:auto;padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-control);box-shadow:var(--shadow-overlay);overscroll-behavior:contain}.themed-select__option{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:var(--type-control-size);font-weight:300;text-align:left;white-space:normal;overflow-wrap:anywhere}.themed-select__option:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.themed-select__option.selected,.themed-select__option.highlighted{background:var(--color-bg-primary-subtle);color:var(--color-primary)}.themed-select__option.highlighted{box-shadow:inset 3px 0 0 var(--color-primary)}.themed-select__option:active{background:var(--color-bg-brand-soft)}@media(hover:hover)and (pointer:fine){.themed-select__trigger:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-bg-subtle)}.themed-select__option:hover{background:var(--color-bg-primary-subtle);color:var(--color-primary)}}@media(pointer:coarse){.themed-select__trigger{min-height:var(--control-height)}.themed-select__option{min-height:44px}}@media(prefers-reduced-motion:reduce){.themed-select__trigger,.themed-select__chevron{transition-duration:.01ms}}.themed-date{position:relative;width:100%;font-family:var(--font-family-base)}.themed-date__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--color-border);border-radius:var(--control-radius);outline:2px solid transparent;outline-offset:1px;background:var(--color-bg-control);color:var(--color-text-secondary);font-family:inherit;font-size:var(--type-control-size);font-weight:300;text-align:left;transition:background-color var(--duration-short) var(--ease-out),border-color var(--duration-short) var(--ease-out)}.themed-date__trigger:focus-visible{outline-color:var(--color-focus-ring);border-color:var(--color-primary)}.themed-date__trigger.invalid{border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.themed-date__trigger.invalid:focus-visible{outline-color:var(--color-error-shadow);border-color:var(--color-error-border-strong)}.themed-date__trigger:disabled{opacity:.55;background:var(--color-bg-disabled);cursor:not-allowed}.themed-date__icon{display:flex;align-items:center;color:var(--color-text-muted);flex:0 0 auto}.themed-date__popup{position:absolute;inset-block-start:calc(100% + var(--space-2));inset-inline-start:0;z-index:40;width:min(100%,320px);padding:var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-control);box-shadow:var(--shadow-overlay)}.themed-date__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-block-end:var(--space-3);color:var(--color-text-secondary);text-transform:capitalize}.themed-date__header strong{font-size:var(--type-control-size);font-weight:500}.themed-date__nav{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:var(--radius-sm);background:var(--color-bg-primary-muted);color:var(--color-primary);cursor:pointer}.themed-date__nav:focus-visible,.themed-date__day:focus-visible,.themed-date__today:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.themed-date__weekdays,.themed-date__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);text-align:center}.themed-date__weekdays{margin-block-end:var(--space-1);color:var(--color-text-subtle);font-size:var(--type-micro-size);font-weight:500}.themed-date__day{min-height:40px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--type-caption-size);font-weight:300;cursor:pointer}.themed-date__day.muted{color:var(--color-border-calendar-muted)}.themed-date__day.selected{background:var(--color-primary);color:var(--color-accent-ink);font-weight:500}.themed-date__day:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}.themed-date__today{width:100%;min-height:44px;margin-block-start:var(--space-3);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-control);color:var(--color-primary);font-size:var(--type-caption-size);font-weight:400;cursor:pointer}.themed-date__today:disabled{opacity:.55;cursor:not-allowed}@media(hover:hover)and (pointer:fine){.themed-date__trigger:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-bg-subtle)}.themed-date__nav:hover,.themed-date__day:hover:not(:disabled),.themed-date__today:hover:not(:disabled){background:var(--color-bg-primary-subtle);color:var(--color-primary)}}@media(pointer:coarse){.themed-date__trigger{min-height:var(--control-height)}.themed-date__nav,.themed-date__today{min-height:44px}.themed-date__day{min-height:40px}.themed-date__nav{width:44px;height:44px}}@media(max-width:37.4375rem){.themed-date__popup{position:fixed;inset:50% auto auto 50%;width:min(320px,calc(100% - var(--space-6)));max-height:calc(100dvh - var(--space-6));overflow-y:auto;transform:translate(-50%,-50%);overscroll-behavior:contain}}.rannu-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid transparent;border-radius:var(--control-radius);font:inherit;font-size:var(--control-font-size);font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color var(--duration-short) var(--ease-out),border-color var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out)}.rannu-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.rannu-button:not(:disabled):active{transform:translateY(1px)!important;box-shadow:none!important}.rannu-button:disabled{opacity:.55;cursor:not-allowed}.rannu-button--primary{background:var(--color-primary);color:var(--color-accent-ink)}.rannu-button--secondary{border-color:var(--color-border);background:var(--color-bg-control);color:var(--color-primary)}.rannu-button--ghost{border-color:transparent;background:transparent;color:var(--color-primary)}.rannu-button--danger,.rannu-button--status-error{border-color:var(--color-error-danger-border);background:var(--color-error-danger-bg);color:var(--color-error-danger)}.rannu-button--status-success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.rannu-button--small{height:var(--control-height-sm);min-height:var(--control-height-sm);padding-inline:var(--space-3);font-size:var(--control-font-sm);border-radius:var(--control-radius-sm)}.rannu-button--full{width:100%}.rannu-button__spinner{width:16px;height:16px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:rannu-spin .7s linear infinite}@media(hover:hover)and (pointer:fine){.rannu-button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.rannu-button--secondary:hover:not(:disabled),.rannu-button--ghost:hover:not(:disabled){border-color:var(--color-border-active);background:var(--color-bg-primary-subtle)}}@media(pointer:coarse){.rannu-button:not(.rannu-button--small){min-height:var(--control-height)}}@keyframes rannu-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.rannu-button{transition-duration:.01ms}.rannu-button__spinner{animation-duration:1.4s}}.rannu-icon{display:block;flex:0 0 auto}.rannu-action-menu{position:relative}.rannu-action-menu__panel{position:absolute;z-index:40;inset-block-start:calc(100% + var(--space-2));inset-inline-end:0;display:grid;min-width:190px;padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-control);box-shadow:var(--shadow-overlay)}.rannu-action-menu__panel button{justify-content:flex-start;width:100%;min-height:44px;padding-inline:var(--space-3);border:0;background:transparent;color:var(--color-text-secondary);text-align:start}.rannu-action-menu__panel button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.rannu-action-menu__panel button:active:not(:disabled){background:var(--color-bg-primary-subtle)}@media(hover:hover)and (pointer:fine){.rannu-action-menu__panel button:hover:not(:disabled){background:var(--color-bg-primary-subtle);color:var(--color-primary)}}@media(max-width:37.4375rem){.rannu-action-menu,.rannu-action-menu>:deep(button){width:100%}.rannu-action-menu__panel{inset-inline:0}}.rannu-icon-button{display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-short) var(--ease-out),border-color var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out),transform var(--duration-short) var(--ease-out)}.rannu-icon-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.rannu-icon-button:active:not(:disabled){transform:translateY(1px)}.rannu-icon-button--secondary{border-color:var(--color-border);background:var(--color-bg-control)}.rannu-icon-button--danger{border-color:var(--color-error-danger-border);background:var(--color-error-danger-bg);color:var(--color-error-danger)}.rannu-icon-button:disabled{opacity:.55;cursor:not-allowed}.rannu-icon-button :global(svg){width:19px;height:19px}.rannu-icon-button__spinner{width:16px;height:16px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:rannu-icon-spin .7s linear infinite}@media(hover:hover)and (pointer:fine){.rannu-icon-button:hover:not(:disabled){background:var(--color-bg-primary-subtle);color:var(--color-primary)}}@media(pointer:coarse){.rannu-icon-button{flex-basis:48px;width:48px;height:48px;min-height:48px}}@keyframes rannu-icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.rannu-icon-button{transition-duration:.01ms}.rannu-icon-button__spinner{animation-duration:1.4s}}.rannu-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid;border-radius:var(--control-radius);font-size:var(--type-label-size);line-height:var(--type-body-line)}.rannu-alert--compact{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.rannu-alert__icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;color:var(--color-on-primary);font-size:var(--type-caption-size);font-weight:600}.rannu-alert__content{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-2);min-width:0;overflow-wrap:anywhere}.rannu-alert__content strong{display:inline;margin:0;font-weight:600}.rannu-alert--error{border-color:var(--color-error-border);background:var(--color-error-bg);color:var(--color-error-text)}.rannu-alert--error .rannu-alert__icon{background:var(--color-error)}.rannu-alert--success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.rannu-alert--success .rannu-alert__icon{background:var(--color-success-strong)}.rannu-alert--warning{border-color:var(--color-warning-border);background:var(--color-warning-bg);color:var(--color-warning-text)}.rannu-alert--warning .rannu-alert__icon{background:var(--color-warning-text)}.rannu-alert--info{border-color:var(--color-border-active);background:var(--color-bg-primary-tint);color:var(--color-primary-deep)}.rannu-alert--info .rannu-alert__icon{background:var(--color-primary)}@media(max-width:480px){.rannu-alert{gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--type-caption-size)}}.rannu-field{display:grid;min-width:0;gap:var(--space-2)}.rannu-field__label{color:var(--color-text-secondary);font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:500}.rannu-field__label span{color:var(--color-error)}.rannu-field__error,.rannu-field__hint{margin:0;font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.rannu-field__error{color:var(--color-error)}.rannu-field__hint{color:var(--color-text-subtle)}.rannu-field--invalid :global(input),.rannu-field--invalid :global(textarea){border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.rannu-badge{display:inline-flex;align-items:center;gap:var(--space-1);width:fit-content;padding:var(--space-1) var(--space-2);border-radius:999px;font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:500;white-space:nowrap}.rannu-badge i{width:7px;height:7px;border-radius:50%;background:currentColor}.rannu-badge--neutral{background:var(--color-bg-neutral);color:var(--color-text-muted)}.rannu-badge--primary{background:var(--color-bg-primary-subtle);color:var(--color-primary)}.rannu-badge--success{background:var(--color-success-bg-soft);color:var(--color-success)}.rannu-badge--warning{background:var(--color-warning-surface);color:var(--color-warning-text)}.rannu-badge--error{background:var(--color-error-bg-soft);color:var(--color-error)}.rannu-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--space-5);background:var(--color-overlay)}.rannu-dialog__panel{width:min(100%,680px);max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:var(--shadow-overlay);overscroll-behavior:contain;scrollbar-gutter:stable}.rannu-dialog__panel--small{max-width:480px}.rannu-dialog__panel--medium{max-width:680px}.rannu-dialog__panel--large{max-width:1040px}.rannu-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-4)}.rannu-dialog__header p{margin:0 0 var(--space-2);color:var(--color-primary);font-size:var(--type-caption-size);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.rannu-dialog__header h2{margin:0;color:var(--color-text-heading);font-size:var(--type-section-size)}.rannu-dialog__body{padding:0 var(--space-6) var(--space-6)}.rannu-dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--color-border-subtle)}@media(max-width:760px){.rannu-dialog{display:block;padding:0}.rannu-dialog__panel{width:100%;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0}.rannu-dialog__header{position:sticky;top:0;z-index:5;padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-surface)}.rannu-dialog__body{padding:var(--space-4)}.rannu-dialog__footer{position:sticky;bottom:0;display:grid;padding:var(--space-3) var(--space-4);background:var(--color-bg-surface)}.rannu-dialog__footer :deep(button){width:100%}}.rannu-empty{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);color:var(--color-text-muted);text-align:center}.rannu-empty strong{color:var(--color-text-secondary);font-size:var(--type-body-size);font-weight:500}.rannu-empty p{max-width:44ch;margin:0;font-size:var(--type-label-size);line-height:var(--type-body-line)}.rannu-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:96px;color:var(--color-text-muted);font-size:var(--type-label-size)}.rannu-loading span{width:18px;height:18px;border:2px solid var(--color-border);border-right-color:var(--color-primary);border-radius:50%;animation:rannu-loading-spin .75s linear infinite}@keyframes rannu-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.rannu-loading span{animation-duration:1.5s}}.rannu-section-header{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);min-width:0;margin-block-end:var(--space-4)}.rannu-section-header>div:first-child{min-width:0}.rannu-section-header__eyebrow{margin:0 0 var(--space-2);color:var(--color-primary);font-size:var(--type-caption-size);font-weight:500;letter-spacing:.06em;text-transform:uppercase}.rannu-section-header h2{margin:0;color:var(--color-text-heading);font-size:var(--type-section-size)}.rannu-section-header__description{max-width:70ch;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--type-label-size);line-height:var(--type-body-line)}.rannu-section-header__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.rannu-section-header__actions :global(button){width:100%;white-space:nowrap}@media(min-width:37.5rem){.rannu-section-header{grid-template-columns:minmax(0,1fr) auto;align-items:end}.rannu-section-header__actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}.rannu-section-header__actions :global(button){width:auto}}.rannu-toolbar{display:grid;gap:var(--space-4);padding:var(--space-4);border-block:1px solid var(--color-border-subtle);background:var(--color-bg-primary-muted)}.rannu-toolbar__filters{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;gap:var(--space-3)}.rannu-toolbar__filters>*{min-width:0}.rannu-toolbar__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2);padding-block-start:var(--space-3);border-block-start:1px solid var(--color-border-subtle)}.rannu-toolbar__actions button{width:100%;white-space:nowrap}@media(min-width:37.5rem){.rannu-toolbar{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md)}.rannu-toolbar__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.rannu-toolbar__filters>:first-child{grid-column:1 / -1}.rannu-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}.rannu-toolbar__actions button{width:auto}}@media(min-width:64rem){.rannu-toolbar__filters{grid-template-columns:minmax(240px,1.35fr) repeat(2,minmax(170px,.8fr))}.rannu-toolbar__filters>:first-child{grid-column:auto}}.rannu-stepper{display:grid;grid-template-columns:repeat(var(--rannu-step-count),minmax(0,1fr));gap:var(--space-2);margin:var(--space-4) 0;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-primary-muted);list-style:none}.rannu-stepper li{min-width:0}.rannu-stepper button{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:var(--space-2);width:100%;min-height:34px;padding:0;border:0;background:transparent;color:var(--color-text-muted);text-align:left;cursor:default}.rannu-stepper button:not(:disabled){cursor:pointer}.rannu-stepper button>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-bg-surface);font-size:var(--type-caption-size);font-weight:500}.rannu-stepper strong{min-width:0;font-size:var(--type-caption-size);font-weight:500;overflow-wrap:anywhere}.rannu-stepper li.current button{color:var(--color-primary)}.rannu-stepper li.current button>span{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 3px var(--color-focus-shadow)}.rannu-stepper li.complete button>span{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.rannu-stepper li.disabled{opacity:.6}@media(max-width:600px){.rannu-stepper{padding:var(--space-2)}.rannu-stepper button{grid-template-columns:1fr;justify-items:center;text-align:center}.rannu-stepper strong{font-size:var(--type-micro-size)}}.rannu-notice-enter-active,.rannu-notice-leave-active{transition:opacity .16s ease,transform .16s ease;animation:rannu-notice-in .16s ease-out}.rannu-notice-enter-from,.rannu-notice-leave-to{opacity:0;transform:translateY(-4px)}@keyframes rannu-notice-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.rannu-login-card{width:min(100%,520px);margin:auto;padding:var(--space-8);overflow:hidden;border:1px solid var(--color-border-neutral);border-radius:var(--radius-xl);background:var(--color-bg-surface);box-shadow:var(--login-card-shadow)}.rannu-login-card:before{display:block;width:72px;height:4px;margin:calc(var(--space-4) * -1) auto var(--space-5);border-radius:999px;background:linear-gradient(90deg,var(--color-brand-logo),var(--color-brand-coral));content:""}.rannu-login-card .brand-lockup{flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.rannu-login-card .brand-lockup img{width:72px;height:72px;flex-basis:72px}.rannu-login-card .brand-lockup strong{font-size:var(--type-title-size);line-height:var(--type-title-line)}.rannu-login-card .brand-lockup small{margin-top:var(--space-1);font-size:var(--type-body-size);line-height:var(--type-body-line)}.rannu-login-card h1{margin:0 0 var(--space-3);color:var(--color-text-heading)}.rannu-login-card__description{margin:0;color:var(--color-text-muted);font-size:var(--type-body-size);line-height:var(--type-body-line)}.rannu-login-card__notice{margin-top:var(--space-6)}@media(max-width:480px){.rannu-login-card{padding:var(--space-5);border-radius:var(--radius-lg)}}.rannu-surface{min-width:0;padding:var(--space-5)}.rannu-surface--plain{padding-inline:0;border-block-start:1px solid var(--color-border-subtle)}.rannu-surface--default,.rannu-surface--subtle,.rannu-surface--elevated{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface)}.rannu-surface--subtle{background:var(--color-bg-subtle)}.rannu-surface--elevated{box-shadow:var(--shadow-card)}@media(max-width:37.4375rem){.rannu-surface{padding:var(--space-4)}.rannu-surface--plain{padding-inline:0}.rannu-surface--default,.rannu-surface--subtle,.rannu-surface--elevated{border-radius:var(--radius-md)}}.rannu-pin-field{display:grid;gap:var(--space-2)}.rannu-pin-field__label{color:var(--color-text-secondary);font-size:var(--type-control-size);font-weight:500}.rannu-pin-field__container{display:flex;justify-content:space-between;gap:var(--space-2)}.rannu-pin-field__input{width:48px;height:48px;text-align:center;font-size:var(--type-title-size);font-weight:600;border:1px solid var(--color-border);border-radius:var(--control-radius-sm);background:var(--color-bg-control);outline:none;transition:border-color var(--duration-short) var(--ease-out),box-shadow var(--duration-short) var(--ease-out)}.rannu-pin-field__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-shadow)}.rannu-pin-field__error{color:var(--color-error);font-size:var(--type-caption-size)}@media(max-width:380px){.rannu-pin-field__container{gap:var(--space-1)}.rannu-pin-field__input{width:36px;height:36px;font-size:var(--type-subtitle-size)}}.rannu-toast-container{position:fixed;top:68px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:min(calc(100vw - (var(--space-4) * 2)),var(--notice-max-width));max-width:none;padding:0;align-items:center;box-sizing:border-box}.rannu-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;font-size:.875rem;font-weight:500;width:max-content;max-width:100%;cursor:pointer;box-sizing:border-box;box-shadow:0 8px 24px #00000026,0 2px 8px #00000014;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid transparent}.rannu-toast--success{background:#dcfce7eb;border-color:#86efac99;color:#166534}.rannu-toast--warning{background:#fef9c3eb;border-color:#fde04799;color:#854d0e}.rannu-toast--error{background:#fee2e2eb;border-color:#fca5a599;color:#991b1b}.rannu-toast-message{min-width:0;overflow-wrap:anywhere}.rannu-toast-icon{font-size:1rem;flex-shrink:0;font-weight:700}.toast-slide-enter-active{animation:toast-slide-in .3s cubic-bezier(.16,1,.3,1)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-16px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.drawer-tagline{align-self:flex-start;margin-top:var(--space-1)}:root{--font-family-base: Poppins, sans-serif;--control-height-sm: 34px;--control-height-md: 40px;--control-height-lg: 46px;--control-radius-sm: 8px;--control-radius-md: 10px;--control-radius-lg: 12px;--control-font-sm: var(--type-micro-size);--control-font-md: var(--type-caption-size);--control-font-lg: var(--type-control-size);--control-padding-sm: 0 10px;--control-padding-md: 0 14px;--control-padding-lg: 0 18px;--control-height: var(--control-height-lg);--control-radius: var(--control-radius-lg);--control-font-size: var(--control-font-lg);--control-padding-x: 14px;--text-primary: var(--color-text);--text-secondary: var(--color-text-secondary);--text-muted: var(--color-text-muted);--surface-default: var(--color-bg-surface);--surface-subtle: var(--color-bg-subtle);--border-control: var(--color-border);--action-primary: var(--color-primary);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--type-micro-size: .75rem;--type-caption-size: .8125rem;--type-label-size: .875rem;--type-control-size: .875rem;--type-body-size: .9375rem;--type-section-size: 1.0625rem;--type-subtitle-size: 1.125rem;--type-title-size: 1.25rem;--type-page-title-size: 1.5rem;--type-stat-size: 1.5rem;--type-display-size: 1.75rem;--type-icon-size: 1.25rem;--type-display-line: 1.25;--type-display-weight: 600;--type-title-line: 1.333;--type-title-weight: 600;--type-section-line: 1.444;--type-section-weight: 500;--type-body-line: 1.5;--type-body-weight: 400;--type-label-line: 1.5;--type-label-weight: 500;--type-caption-line: 1.333;--type-caption-weight: 500;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--notice-max-width: 72rem;--color-brand-logo: #2f80ed;--color-brand-coral: #ff7a59;--color-primary: #2764b0;--color-primary-hover: #1f548f;--color-primary-active: #194675;--color-primary-light: #2f80ed;--color-primary-lighter: #5a9cf2;--color-primary-emphasis: #2f80ed;--color-primary-subtle: #234a73;--color-primary-deep: #17324d;--color-text: #20364f;--color-text-manage: #1e293b;--color-text-secondary: #3d536b;--color-text-muted: #60758b;--color-text-subtle: #60758b;--color-text-placeholder: #64748b;--color-text-eyebrow: #334155;--color-text-heading: #17324d;--color-text-faint: #60758b;--color-text-disabled: #94a3b8;--color-text-neutral: #475569;--color-bg: #f3f7fb;--color-bg-surface: #fbfdff;--color-bg-control: #ffffff;--color-bg-overlay-soft: rgba(251, 253, 255, .94);--color-bg-overlay-strong: rgba(251, 253, 255, .98);--login-page-background: linear-gradient(180deg, #f7fafe 0%, #eef4fa 100%);--login-card-shadow: 0 20px 56px rgba(23, 50, 77, .1);--color-bg-subtle: #f8fbff;--color-bg-muted: #f8fafc;--color-bg-primary-subtle: #eaf3ff;--color-bg-primary-muted: #f3f7fc;--color-bg-primary-tint: #f6f9ff;--color-bg-panel: #fbfdff;--color-bg-neutral: #f1f5f9;--color-bg-disabled: #f1f5f9;--color-bg-brand-soft: #d9eaff;--color-bg-teal-soft: var(--color-bg-brand-soft);--color-border: #c9d9ea;--color-border-light: #d9e5f2;--color-border-subtle: #e4ecf5;--color-border-neutral: #e2e8f0;--color-border-soft: #dce6f1;--color-border-row: #edf2f8;--color-border-hover: #82aee0;--color-border-active: #a9c8ea;--color-border-teal: #c4d8ed;--color-border-slate: #cbd5e1;--color-border-divider: #dce6f1;--color-border-input: #d5e1ee;--color-border-panel: #e1e9f3;--color-border-panel-soft: #e6edf5;--color-border-panel-row: #edf2f7;--color-border-calendar-muted: #b7c5d4;--color-focus-ring: #2f80ed;--color-focus-shadow: rgba(47, 128, 237, .2);--color-success: #146c52;--color-success-strong: #15803d;--color-success-badge: #166534;--color-success-bg: #f1fbf7;--color-success-bg-soft: #f0fdf4;--color-success-border: #a8d8c9;--color-success-border-soft: #86efac;--color-success-border-light: #bbf7d0;--color-success-surface: #dcfce7;--color-error: #b42318;--color-error-text: #8f2118;--color-error-strong: #991b1b;--color-error-bg: #fff6f5;--color-error-bg-soft: #fff1f2;--color-error-bg-input: #fff8f7;--color-error-border: #f0b8b2;--color-error-border-soft: #fecdd3;--color-error-border-input: #d9655a;--color-error-border-strong: #c2413b;--color-error-shadow: #f6c7c2;--color-error-surface: #ffe4e6;--color-error-accent: #be123c;--color-error-outline: #f87171;--color-error-danger: #9a2c22;--color-error-danger-bg: #fff7f6;--color-error-danger-border: #e8b6b0;--color-error-old-bg: #fff1f0;--color-error-old-border: #fca5a5;--color-warning-bg: #fff8e6;--color-warning-text: #7a5700;--color-warning-surface: #fffbeb;--color-warning-border: #fde047;--color-warning-credential-bg: #fff7e8;--color-warning-credential-text: #7a4c00;--color-overlay: #0f172a66;--color-shadow: #0f172a0d;--color-shadow-strong: #0f172a33;--color-shadow-menu: #0f172a1c;--color-shadow-brand: #2764b00a;--color-shadow-brand-soft: #2764b012;--color-shadow-brand-card: #2764b01f;--shadow-card: 0 12px 34px rgba(23, 50, 77, .08);--shadow-card-hover: 0 16px 42px rgba(23, 50, 77, .12);--shadow-overlay: 0 20px 60px rgba(23, 50, 77, .16);--shadow-subtle: 0 8px 24px rgba(23, 50, 77, .055);--gradient-page: var(--color-bg);--gradient-hero: linear-gradient(135deg, #eaf3ff 0%, #f6f9ff 58%, #fbfdff 100%);--gradient-primary: linear-gradient(135deg, #2764b0 0%, #2f80ed 100%);--color-on-primary: #ffffff;--color-on-primary-soft: rgba(255, 255, 255, .12);--color-on-primary-muted: rgba(255, 255, 255, .2);--color-on-primary-border: rgba(255, 255, 255, .3);--color-brand-logo-muted: rgba(47, 128, 237, .55);--color-accent-ink: var(--color-on-primary);--color-sync-online: #22a06b;--color-sync-online-ring: #22a06b1c;--color-sync-pending: #d9941e;--color-sync-pending-ring: #d9941e1c;--color-progress-muted: #9babc0;--color-progress-dot: #8fa2b7;--color-progress-ring: #d9eaff;--color-border-sync: #c7d8e9;--color-module-completed-bg: #f5fbf8;--color-teal-deep: #234a73;--color-teal-border-bright: #b9d3ef;--color-teal-border-soft: #c9dcee;--color-timeline-surface: #eaf3ff;--color-pin-error-border: #fecaca;--color-pin-error-text: #dc2626;--color-pin-error-bg: #fee2e2;--color-toolbar-bg: #f3f7fc;--color-registry-bg: #f8fbff;--duration-instant: 0ms;--duration-short: .16s;--duration-medium: .22s;--ease-out: cubic-bezier(.16, 1, .3, 1)}@media(max-width:600px){:root{--control-height: 38px;--control-height-sm: 28px;--control-radius: var(--control-radius-md);--control-font-size: var(--control-font-md);--control-padding-x: 12px}}:root{font-family:var(--font-family-base);color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}html,body{min-height:100%;max-width:100%;overflow-x:clip}body{margin:0;min-width:320px;font-family:var(--font-family-base);font-size:var(--type-body-size);line-height:var(--type-body-line);font-weight:var(--type-body-weight)}h1{margin:0 0 12px;font-size:var(--type-page-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}h2{font-size:var(--type-section-size);line-height:var(--type-section-line);font-weight:var(--type-section-weight)}h2,h3{font-weight:500}h1,h2,h3,h4,h5,h6{min-width:0;overflow-wrap:anywhere;font-style:normal}strong{font-weight:600}.text-display{font-size:var(--type-display-size);line-height:var(--type-display-line);font-weight:var(--type-display-weight)}.text-page-title{font-size:var(--type-page-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.text-title{font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.text-section{font-size:var(--type-section-size);line-height:var(--type-section-line);font-weight:var(--type-section-weight)}.text-body{font-size:var(--type-body-size);line-height:var(--type-body-line);font-weight:var(--type-body-weight)}.text-label{font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight)}.text-caption{font-size:var(--type-caption-size);line-height:var(--type-caption-line);font-weight:var(--type-caption-weight)}.text-micro{font-size:var(--type-micro-size);line-height:var(--type-caption-line);font-weight:var(--type-caption-weight)}.text-stat{font-size:var(--type-stat-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight)}.text-eyebrow{letter-spacing:.08em;text-transform:uppercase}.text-meta{color:var(--color-text-muted)}.stack-xs{display:grid;gap:var(--space-1)}.stack-sm{display:grid;gap:var(--space-2)}.stack-md{display:grid;gap:var(--space-3)}.stack-lg{display:grid;gap:var(--space-4)}.stack-xl{display:grid;gap:var(--space-6)}.cluster-xs{display:flex;align-items:center;gap:var(--space-1)}.cluster-sm{display:flex;align-items:center;gap:var(--space-2)}.cluster-md{display:flex;align-items:center;gap:var(--space-3)}.cluster-lg{display:flex;align-items:center;gap:var(--space-4)}.surface-pad-sm{padding:var(--space-3)}.surface-pad-md{padding:var(--space-4)}.surface-pad-lg{padding:var(--space-6)}.surface-pad-xl{padding:var(--space-8)}.shell{min-height:100dvh;display:grid;place-items:center;padding:var(--space-6);background:var(--login-page-background)}.card{width:min(100%,520px);padding:32px;border-radius:24px;background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);box-shadow:var(--login-card-shadow)}.eyebrow{margin:0 0 12px;color:var(--color-primary);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.muted{color:var(--color-text-muted);line-height:1.6}.status{display:flex;align-items:center;gap:8px;margin-top:24px;color:var(--color-text-muted);font-size:var(--type-control-size)}.dot{width:9px;height:9px;border-radius:50%;background:var(--color-primary)}form{display:grid;gap:16px;margin-top:24px}label{display:grid;gap:7px;color:var(--color-text-secondary);font-size:var(--type-control-size);font-weight:500}input,select,textarea{width:100%;font-family:var(--font-family-base);font-size:var(--type-control-size);line-height:var(--type-body-line);font-weight:300}input,select,textarea{border:1px solid var(--color-border);outline:2px solid transparent;outline-offset:1px;background:var(--color-bg-control);color:inherit}input{min-height:var(--control-height);border-radius:var(--control-radius);padding:0 var(--control-padding-x)}textarea{min-height:6rem;border-radius:var(--control-radius);padding:var(--space-3) var(--control-padding-x);resize:vertical}input::placeholder,textarea::placeholder{font-weight:300;opacity:.7}button{display:inline-flex;align-items:center;justify-content:center;height:var(--control-height);min-height:var(--control-height);border:0;border-radius:var(--control-radius);padding:0 var(--control-padding-x);background:var(--color-primary);color:var(--color-accent-ink);font:inherit;font-size:var(--control-font-size);font-weight:500;cursor:pointer;box-sizing:border-box;white-space:nowrap;transition:background-color var(--duration-short) var(--ease-out),border-color var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out)}.button-sm,.table-action{height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 10px;font-size:var(--control-font-sm);border-radius:var(--control-radius-sm)}button:focus-visible,a:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--color-bg-disabled);color:var(--color-text-disabled)}.message{margin:18px 0 0;color:var(--color-text-muted);line-height:1.5}.brand-lockup{display:flex;align-items:center;gap:11px;margin-bottom:24px}.brand-lockup>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--color-primary);color:var(--color-bg-surface);font-weight:600}.brand-lockup strong,.brand-lockup small{display:block}.brand-lockup strong{letter-spacing:.06em}.brand-lockup small{margin-top:2px;color:var(--color-text-subtle);font-size:var(--type-caption-size)}.brand-lockup img{width:44px;height:44px;flex:0 0 44px;object-fit:contain}.login-brand{flex-direction:column;justify-content:center;gap:var(--space-1);margin-bottom:28px;text-align:center;width:min(100%,210px);margin-left:auto;margin-right:auto;align-items:center}.login-brand>div{max-width:210px;text-align:center}.login-brand img{width:72px;height:72px;flex-basis:72px}.form-error{margin:0;color:var(--color-error);font-size:var(--type-control-size);line-height:1.45}.sync-note{margin:0;padding:11px 13px;border-radius:10px;background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--type-control-size);line-height:1.45}.form-alert{display:flex;width:100%;box-sizing:border-box;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border:1px solid;border-radius:12px;font-size:var(--type-control-size);line-height:1.5}.form-alert>span{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;font-size:var(--type-caption-size);font-weight:600}.form-alert--error{border-color:var(--color-error-border);background:var(--color-error-bg);color:var(--color-error-text)}.form-alert--error>span{background:var(--color-error);color:var(--color-on-primary)}.form-hint{margin:-6px 0 0;color:var(--color-text-subtle);font-size:var(--type-caption-size);line-height:1.5;text-align:center}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--color-focus-ring);border-color:var(--color-primary)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.return-button{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:42px;background-color:var(--color-bg-control);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2352706e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:17px}.secondary{background:var(--color-bg-control);color:var(--color-primary);border:1px solid var(--color-border)}@media(max-width:480px){.brand-lockup img{width:38px;height:38px;flex-basis:38px}.login-brand img{width:72px;height:72px;flex-basis:72px}.form-alert,.sync-note{gap:8px;padding:9px 11px;font-size:var(--type-label-size);line-height:1.4}.form-alert>span{flex-basis:18px;width:18px;height:18px;font-size:var(--type-micro-size)}.form-hint{font-size:var(--type-micro-size)}}.modules{margin-top:28px}.modules h2{margin:0 0 12px;font-size:var(--type-section-size)}.module{border:1px solid var(--color-border);border-radius:12px;padding:13px;margin-top:9px}.module.locked{opacity:.65}.module div{display:flex;justify-content:space-between;gap:12px;font-size:var(--type-label-size)}.module span{color:var(--color-primary)}.module p{margin:7px 0 0;color:var(--color-text-secondary);line-height:1.4}.module button{margin-top:12px}.sync-status{margin:14px 0;color:var(--color-text-muted);font-size:var(--type-label-size)}.back{border:0;background:transparent;color:var(--color-primary);padding:0;margin-bottom:18px;cursor:pointer;font:inherit}.progress{margin:16px 0 24px;color:var(--color-text-muted);font-size:var(--type-control-size);text-transform:capitalize}.content-section{display:grid;gap:18px}.material,.feedback{border:1px solid var(--color-border-input);border-radius:14px;padding:18px;background:var(--color-bg);box-shadow:0 3px 12px var(--color-shadow-brand)}.material h2{margin:0 0 8px;font-size:var(--type-section-size)}.material p,.feedback p{margin:0;color:var(--color-text-secondary);line-height:1.6}fieldset{display:grid;gap:9px;border:1px solid var(--color-border-input);border-radius:12px;padding:16px}legend{padding:0 5px;color:var(--color-text-heading);font-weight:600;line-height:1.45}.choice{display:flex;grid-template-columns:auto 1fr;align-items:start;gap:8px;font-weight:400}.choice input{width:auto;margin-top:3px}.fieldset-invalid{border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.fieldset-invalid legend{color:var(--color-error)}.explanation{margin:8px 0 0;color:var(--color-text-muted);font-size:var(--type-control-size);line-height:1.45}.quiz-explanation-box{margin-top:12px;padding:14px 16px;border-radius:14px;font-size:var(--type-control-size);line-height:1.5;display:grid;gap:6px}.quiz-explanation--correct{background:var(--color-success-bg-soft);border:1px solid var(--color-success-border-light);color:var(--color-success-badge)}.quiz-explanation--incorrect{background:var(--color-error-bg-soft);border:1px solid var(--color-error-border-soft);color:var(--color-error-strong)}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:var(--type-label-size);font-weight:600}.status-pill--correct{background:var(--color-success-surface);color:var(--color-success-strong)}.status-pill--incorrect{background:var(--color-error-surface);color:var(--color-error-accent)}.correct-answer-text{margin:2px 0 0;font-weight:600;color:var(--color-error-strong)}.explanation-body-text{margin:2px 0 0;opacity:.95}select{width:100%;border:1px solid var(--color-border);border-radius:10px;padding:12px;background:var(--color-bg-surface);font:inherit;color:inherit}.wide{width:min(100%,720px)}.secondary{background:var(--color-bg-surface);color:var(--color-primary);border:1px solid var(--color-border)}.secondary:hover:not(:disabled){background:var(--color-bg)}.module.completed{border-color:var(--color-success-border);background:var(--color-module-completed-bg)}.module.completed span{color:var(--color-success-strong)}.sync-note--error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}input:disabled,select:disabled,textarea:disabled{opacity:.78;background:var(--color-bg-disabled);cursor:not-allowed}.module-illustration{margin:0 0 2px;overflow:hidden;border-radius:16px;background:transparent}.module-illustration img{display:block;width:100%;height:auto;max-height:340px;object-fit:contain;object-position:center;border-radius:16px}@media(max-width:480px){.module-illustration img{max-height:250px;border-radius:14px}}.content-section{font-size:var(--type-control-size)}.material h2{font-size:var(--type-section-size);line-height:1.45}.material p,.feedback p{font-size:var(--type-control-size);line-height:1.55}fieldset legend,.choice{font-size:var(--type-control-size);line-height:1.5}.explanation{font-size:var(--type-control-size)}.content-section>.muted{font-size:var(--type-control-size)}.session-loading{color:var(--color-text-muted);font-size:var(--type-control-size)}.sync-status{display:inline-flex;align-items:center;gap:7px;width:fit-content;margin:14px 0;font-size:var(--type-label-size);font-weight:400}.sync-status__dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--color-sync-online);box-shadow:0 0 0 3px var(--color-sync-online-ring)}.sync-status--online .sync-status__dot,.sync-status--synced .sync-status__dot{background:var(--color-sync-online);box-shadow:0 0 0 3px var(--color-sync-online-ring)}.sync-status--pending .sync-status__dot,.sync-status--syncing .sync-status__dot{background:var(--color-sync-pending);box-shadow:0 0 0 3px var(--color-sync-pending-ring)}.sync-status--failed .sync-status__dot{background:var(--color-error-border-strong);box-shadow:0 0 0 3px var(--color-error-shadow)}.sync-status--offline .sync-status__dot{background:var(--color-text-faint);box-shadow:0 0 0 3px var(--color-text-faint) 1c}.field-error{margin:-10px 0 0;color:var(--color-error);font-size:var(--type-caption-size);line-height:1.4;font-weight:400}@media(max-width:480px){.form-alert,.sync-note{gap:8px;padding:9px 11px;font-size:var(--type-label-size);line-height:1.4}.form-alert>span{flex-basis:18px;width:18px;height:18px;font-size:var(--type-micro-size)}.field-error{font-size:var(--type-micro-size)}}.module-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.module-dashboard-head .eyebrow{margin-bottom:0}.module-dashboard-head .sync-status{margin:0}@media(max-width:480px){.module-dashboard-head{align-items:flex-start;gap:10px}.module-dashboard-head .sync-status{margin-top:1px}}.progress{margin:12px 0 0;font-family:var(--font-family-base);font-size:var(--type-caption-size);line-height:1.4;font-weight:300;text-align:center}.progress{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%;margin:22px 0 0;text-align:center}.progress__step{display:grid;justify-items:center;gap:5px;min-width:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--color-progress-muted);font-family:var(--font-family-base);font-size:var(--type-micro-size);font-weight:300}.progress__step:not(:disabled){cursor:pointer}.progress__step:disabled{opacity:1;cursor:not-allowed}.progress__dot{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border-light);border-radius:50%;background:var(--color-bg-surface);color:var(--color-progress-dot);font-size:var(--type-micro-size);font-weight:500;line-height:1;text-align:center;padding-top:1px;box-sizing:border-box}.progress__step.current{color:var(--color-primary)}.progress__step.current .progress__dot{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 3px var(--color-progress-ring)}.progress__step.current .progress__label{color:var(--color-primary);font-weight:500;position:relative}.progress__step.current .progress__label:after{content:"";display:block;width:22px;height:2px;margin:4px auto 0;border-radius:2px;background:var(--color-primary)}.progress__step.completed{color:var(--color-text-muted)}.progress__step.completed .progress__dot{border-color:var(--color-focus-ring);background:var(--color-bg-primary-subtle);color:var(--color-primary)}.progress__step:not(:disabled):hover .progress__dot{box-shadow:0 0 0 3px var(--color-focus-shadow)}@media(max-width:480px){.progress{gap:2px}.progress__step{font-size:var(--type-micro-size)}.progress__dot{width:20px;height:20px;font-size:var(--type-micro-size);padding-top:1px}}.sync-status-group{display:flex;align-items:center;gap:10px}.sync-now-button{height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--space-3);border:1px solid var(--color-border-sync);border-radius:var(--control-radius-sm);background:var(--color-bg-surface);color:var(--color-primary);font-size:var(--control-font-sm);font-weight:400}.sync-now-button:disabled{opacity:.6}@media(max-width:480px){.sync-status-group{align-items:flex-end;flex-direction:column;gap:4px}}.material-counter{margin:0 0 8px!important;color:var(--color-primary)!important;font-size:var(--type-caption-size)!important;font-weight:400}.material-actions{display:flex;justify-content:space-between;gap:12px}.material-actions button:last-child{margin-left:auto}.confirmation-panel{display:grid;gap:14px;padding:16px;border:1px solid var(--color-success-border);border-radius:14px;background:var(--color-success-bg)}.confirmation-panel p{margin:0;color:var(--color-text-heading);line-height:1.55}.confirmation-panel>div{display:flex;justify-content:flex-end;gap:10px}.confirmation-panel .secondary{margin-top:0}.quiz-check-button{justify-self:start;height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--control-radius-sm);background:var(--color-bg-surface);color:var(--color-primary);border:1px solid var(--color-border);font-size:var(--control-font-sm);font-weight:400}@media(max-width:480px){.material-actions button{flex:1}.confirmation-panel>div{display:grid;grid-template-columns:1fr 1fr}}.respondent-actions{display:flex;justify-content:flex-end;gap:8px;margin:2px 0 14px}.compact-button{width:auto;margin:0;height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--control-radius-sm);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-primary);font-size:var(--control-font-sm);font-weight:400}.support-panel{margin:14px 0 0;padding:14px 16px;border:1px solid var(--color-border-light);border-radius:14px;background:var(--color-bg-panel);display:grid;gap:6px}.support-panel h2{margin:0;font-size:var(--type-section-size)}.support-panel .muted{margin:0;font-size:var(--type-label-size);line-height:1.4}.support-panel form{margin-top:8px;display:grid;gap:10px}.support-panel label{gap:4px;font-size:var(--type-label-size)}.support-panel textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:10px;color:inherit;font:inherit;font-weight:300;resize:vertical}.form-alert--success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.form-alert--success>span{background:var(--color-success-strong);color:var(--color-on-primary)}@media(max-width:480px){.respondent-actions{justify-content:stretch}.respondent-actions button{flex:1}}.history-note{margin:10px 0 16px;padding:10px 12px;border:1px solid var(--color-border-teal);border-radius:12px;background:var(--color-bg-primary-tint);color:var(--color-text-secondary);font-size:var(--type-label-size);line-height:1.5}html,body{overflow-x:hidden;max-width:100vw}.native-app-shell{min-height:100dvh;background:var(--color-bg);display:flex;flex-direction:column;overflow-x:hidden;max-width:100vw}.app-header{position:fixed;top:0;left:0;right:0;z-index:100;height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--color-bg-overlay-soft);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-neutral);box-shadow:0 2px 8px var(--color-shadow);max-width:640px;margin:0 auto}.header-left{display:flex;align-items:center;gap:12px}.drawer-toggle-btn{display:flex;align-items:center;justify-content:center;padding:4px;border:0;border-radius:6px;background:transparent;color:var(--color-primary);cursor:pointer;box-shadow:none;transition:opacity var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out)}.drawer-toggle-btn svg{stroke-width:2.2px}.drawer-toggle-btn:hover{background:transparent;color:var(--color-primary-light);opacity:.85}.header-logo{width:28px;height:28px;object-fit:contain}.header-right{display:flex;align-items:center;gap:10px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;background:var(--color-overlay);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.nav-drawer{position:fixed;top:0;left:0;bottom:0;width:290px;max-width:82vw;z-index:200;background:var(--color-bg-surface);box-shadow:6px 0 28px var(--color-shadow-strong);display:flex;flex-direction:column;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1)}.nav-drawer.open{transform:translate(0)}.consent-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px}.consent-modal-card{background:#fff;width:100%;max-width:600px;border-radius:20px;box-shadow:0 24px 48px #0000001f;display:flex;flex-direction:column;max-height:85vh;overflow:hidden}.consent-header{padding:32px 32px 24px;text-align:center}.consent-header h2{font-size:var(--type-title-size);font-weight:600;margin:0 0 8px;color:var(--color-text-primary)}.consent-header p{font-size:var(--type-label-size);color:var(--color-text-secondary);margin:0 0 24px}.consent-step-indicator{display:flex;align-items:center;justify-content:space-between}.consent-step-indicator .dots{display:flex;gap:6px}.consent-step-indicator .dot{width:24px;height:6px;border-radius:4px;background:var(--color-border-subtle)}.consent-step-indicator .dot.filled{background:var(--color-primary)}.consent-step-indicator .step-text{font-size:var(--type-micro-size);font-weight:600;letter-spacing:.05em;color:var(--color-text-placeholder);background:var(--color-bg-subtle);padding:4px 10px;border-radius:4px}.consent-scroll-area{flex:1;overflow-y:auto;padding:24px 32px;background:var(--color-bg-subtle);border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle)}.consent-content h4{font-size:var(--type-caption-size);color:var(--color-text-secondary);margin:0 0 16px}.consent-content p{font-size:var(--type-caption-size);line-height:1.6;color:var(--color-text-secondary);margin-bottom:16px}.consent-content p:last-child{margin-bottom:0}.consent-content strong{color:var(--color-text-primary)}.consent-actions-area{padding:24px 32px}.consent-toggle-row{display:flex;align-items:center;padding:16px;border:1px solid var(--color-border-subtle);border-radius:12px;cursor:pointer;transition:opacity .2s}.consent-toggle-row.disabled{opacity:.6;cursor:not-allowed}.toggle-label{font-size:var(--type-caption-size);font-weight:500;color:var(--color-text-primary);padding-right:8px;flex:1 1 auto;width:100%}.toggle-control-group{display:flex;align-items:center;gap:12px;flex:0 0 auto}.scroll-badge{font-size:var(--type-micro-size);font-weight:600;color:var(--color-text-secondary);background:var(--color-border-subtle);padding:4px 8px;border-radius:12px;letter-spacing:.05em;white-space:nowrap}@media(max-width:480px){.consent-toggle-row{flex-direction:column;align-items:flex-start;gap:12px}.toggle-label{padding-right:0}.toggle-control-group{align-self:flex-end}}.custom-toggle-wrapper{position:relative;width:36px;height:20px;flex-shrink:0;display:inline-block;vertical-align:middle}.consent-checkbox-hidden{position:absolute;opacity:0!important;width:100%;height:100%;margin:0;cursor:inherit;z-index:2;-webkit-appearance:none;-moz-appearance:none;appearance:none}.consent-toggle-visual{position:absolute;top:0;left:0;right:0;bottom:0;background:#cbd5e1;border-radius:20px;transition:background-color .25s ease-in-out;pointer-events:none}.consent-toggle-visual:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000026;transition:transform .25s ease-in-out}.consent-checkbox-hidden:checked+.consent-toggle-visual{background:var(--color-primary)}.consent-checkbox-hidden:checked+.consent-toggle-visual:after{transform:translate(16px)}.consent-checkbox-hidden:disabled+.consent-toggle-visual{background:var(--color-bg-subtle);opacity:.8}.consent-footer{padding:0 32px 32px;display:flex;justify-content:flex-end}.drawer-header{padding:24px 20px 20px;background:var(--color-primary);color:var(--color-bg-surface);display:flex;flex-direction:column;gap:12px;position:relative}.drawer-close-btn{position:absolute;top:14px;right:14px;width:28px;height:28px;min-height:0;border:0;border-radius:50%;background:var(--color-on-primary-soft);color:var(--color-bg-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.drawer-user-info{display:flex;align-items:center;gap:12px}.drawer-user-avatar{width:44px;height:44px;border-radius:50%;background:var(--color-on-primary-muted);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--type-section-size);color:var(--color-bg-surface);border:2px solid var(--color-on-primary-border)}.drawer-user-details strong{display:block;font-size:var(--type-section-size);font-weight:600}.drawer-user-details small{display:block;font-size:var(--type-caption-size);opacity:.85}.drawer-nav-list{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.drawer-nav-item{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;padding:12px 14px;border:0;border-radius:10px;background:transparent;color:var(--color-text-eyebrow);font-family:inherit;font-size:var(--type-control-size);font-weight:400;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease;height:auto;min-height:0}.drawer-nav-item:hover,.drawer-nav-item.active{background:var(--color-bg-primary-subtle);color:var(--color-primary);font-weight:500}.drawer-nav-item svg{width:20px;height:20px;stroke:currentColor;flex-shrink:0}.drawer-footer{padding:16px;border-top:1px solid var(--color-bg-neutral)}.drawer-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:1px solid var(--color-pin-error-border);border-radius:10px;background:var(--color-error-bg-soft);color:var(--color-pin-error-text);font-family:inherit;font-size:var(--type-label-size);font-weight:500;cursor:pointer}.drawer-logout-btn--spaced{margin-top:var(--space-5)}.drawer-logout-btn:hover{background:var(--color-pin-error-bg)}.main-scroll-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:74px 16px 84px;box-sizing:border-box}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;height:64px;display:flex;align-items:center;justify-content:space-around;background:var(--color-bg-overlay-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-border-neutral);box-shadow:0 -4px 18px var(--color-shadow);max-width:640px;margin:0 auto}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;height:100%;border:0;background:transparent;color:var(--color-text-placeholder);font-family:inherit;font-size:var(--type-micro-size);font-weight:400;padding:6px 0;cursor:pointer;transition:color .16s ease,transform .1s ease}.bottom-nav-item svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;transition:stroke .16s ease,transform .16s ease}.bottom-nav-item.active{color:var(--color-primary);font-weight:600}.bottom-nav-item.active svg{stroke:var(--color-primary);transform:translateY(-1px)}.tab-panel{animation:fadeIn .2s ease-out}.profile-card{background:var(--color-bg-surface);border:1px solid var(--color-border-neutral);border-radius:18px;padding:22px;box-shadow:0 4px 16px var(--color-shadow);display:grid;gap:16px}.profile-card-header{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--color-bg-neutral)}.profile-avatar-large{width:54px;height:54px;border-radius:50%;background:var(--color-bg-primary-subtle);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:var(--type-title-size);font-weight:600}.profile-card-header h2{margin:0;font-size:var(--type-subtitle-size);color:var(--color-text-manage)}.profile-card-header p{margin:2px 0 0;font-size:var(--type-label-size);color:var(--color-text-placeholder)}.profile-info-grid{display:grid;gap:12px}.profile-info-item{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;background:var(--color-bg-muted);font-size:var(--type-label-size)}.profile-info-item span{color:var(--color-text-placeholder)}.profile-info-item strong{color:var(--color-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.header-title{display:flex;align-items:center;gap:8px}.header-brand-text{display:flex;flex-direction:column;line-height:1.1}.header-brand-name{font-weight:600;font-size:var(--type-section-size);color:var(--color-primary);letter-spacing:.04em}.header-tagline{font-size:var(--type-micro-size);color:var(--color-text-placeholder);font-weight:300;letter-spacing:.03em}.tagline-badge{display:inline-block;padding:3px 8px;border-radius:99px;background:var(--color-bg-primary-subtle);color:var(--color-primary);font-size:var(--type-micro-size);font-weight:500}.dashboard-hero-card{background:var(--gradient-hero);color:var(--color-bg-surface);border-radius:20px;padding:22px;box-shadow:0 8px 24px var(--color-shadow-brand-card);display:grid;gap:16px;margin-bottom:18px}.hero-greeting-box h2{margin:0;font-size:var(--type-title-size);font-weight:600;color:var(--color-bg-surface)}.hero-greeting-box p{margin:4px 0 0;font-size:var(--type-label-size);opacity:.9}.hero-progress-block{display:grid;gap:var(--space-2)}.hero-progress-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.hero-progress-heading strong{text-align:end}.hero-progress-track{height:6px;overflow:hidden;border-radius:999px}.hero-progress-track span{display:block;height:100%;border-radius:inherit}.hero-active-module{background:var(--color-on-primary-soft);border-radius:14px;padding:16px;border:1px solid var(--color-on-primary-border);display:grid;gap:8px}.hero-active-module small{font-size:var(--type-caption-size);text-transform:uppercase;letter-spacing:.06em;opacity:.85}.hero-active-module strong{font-size:var(--type-section-size);font-weight:600}.hero-action-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:0;border-radius:12px;background:var(--color-bg-surface);color:var(--color-primary);font-family:inherit;font-size:var(--type-control-size);font-weight:600;cursor:pointer;box-shadow:0 4px 12px var(--color-shadow-strong);transition:background-color var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out)}.hero-action-btn--compact{margin-top:var(--space-2);padding:var(--space-2) var(--space-3)}.hero-action-btn:hover{background:var(--color-primary-hover)}.action-plan-widget{background:var(--color-bg);border:1px solid var(--color-teal-border-bright);border-radius:18px;padding:18px;display:grid;gap:12px;margin-bottom:18px}.action-plan-widget-header{display:flex;align-items:center;justify-content:space-between}.action-plan-widget-header h3{margin:0;color:var(--color-primary);font-size:var(--type-body-size);font-weight:600;display:flex;align-items:center;gap:8px}.action-plan-details{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--color-bg-surface);border:1px solid var(--color-bg-teal-soft);font-size:var(--type-label-size);color:var(--color-teal-deep)}.action-plan-details strong{color:var(--color-primary)}.stat-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.stat-box{background:var(--color-bg-surface);border:1px solid var(--color-border-neutral);border-radius:14px;padding:14px 10px;text-align:center;display:grid;gap:3px;box-shadow:0 2px 6px var(--color-shadow)}.stat-box strong{font-size:var(--type-icon-size);font-weight:600;color:var(--color-primary)}.stat-box span{font-size:var(--type-caption-size);color:var(--color-text-placeholder)}.tips-card{background:var(--color-bg-surface);border:1px solid var(--color-border-neutral);border-radius:18px;padding:18px;display:grid;gap:10px;box-shadow:0 4px 12px var(--color-shadow);margin-bottom:18px}.tips-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--color-primary-light);font-weight:600;font-size:var(--type-control-size)}.tips-card-title{display:flex;align-items:center;gap:6px}.tips-card-copy{margin-top:var(--space-1)}.tips-card h4{margin:0;font-size:var(--type-body-size);color:var(--color-text-manage);font-weight:600}.tips-card p{margin:0;font-size:var(--type-label-size);color:var(--color-text-neutral);line-height:1.55}.timeline-container{display:grid;gap:10px;margin-top:14px;position:relative;padding-left:2px}.timeline-track-line{position:absolute;left:17px;top:14px;bottom:14px;width:2px;background:var(--color-border-slate);border-radius:99px;z-index:0}.timeline-item{display:flex;gap:10px;align-items:flex-start;position:relative;z-index:1}.timeline-badge{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--type-label-size);flex-shrink:0;box-shadow:0 0 0 2px var(--color-bg-surface);margin-top:2px}.timeline-badge--completed{background:var(--color-primary-emphasis);color:var(--color-bg-surface)}.timeline-badge--active{background:var(--color-primary-light);color:var(--color-bg-surface);box-shadow:0 0 0 3px var(--color-bg-teal-soft)}.timeline-badge--locked{background:var(--color-bg-neutral);color:var(--color-text-disabled);border:1px solid var(--color-border-slate)}.timeline-content-card{flex:1;background:var(--color-bg-surface);border:1px solid var(--color-border-neutral);border-radius:12px;padding:10px 12px;display:grid;gap:2px;box-shadow:0 1px 3px var(--color-shadow);min-width:0}.timeline-content-card--completed{border-color:var(--color-teal-border-soft);background:var(--color-success-bg-soft)}.timeline-content-card--active{border-color:var(--color-teal-border-bright);background:var(--color-bg)}.timeline-card-header{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.timeline-card-main{display:grid;gap:2px;flex:1;min-width:0}.timeline-card-title-row strong{font-size:var(--type-control-size);color:var(--color-text-manage);line-height:1.3;display:block}.timeline-card-sub-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.sub-text{font-size:var(--type-caption-size);color:var(--color-text-placeholder)}.score-pill-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:99px;font-size:var(--type-caption-size);font-weight:600;white-space:nowrap;background:var(--color-success-surface);color:var(--color-success-strong);border:1px solid var(--color-success-border-light)}.toggle-chevron{display:flex;align-items:center;justify-content:center;width:20px;height:20px;min-height:0;border-radius:50%;background:var(--color-timeline-surface);color:var(--color-primary-light);border:0;cursor:pointer;flex-shrink:0;transition:transform .2s ease,background .2s ease;padding:0}.toggle-chevron:hover{background:var(--color-bg-teal-soft)}.timeline-card-body{margin-top:8px;padding-top:8px;border-top:1px dashed var(--color-border-slate);display:grid;gap:6px;font-size:var(--type-label-size);animation:fadeIn .2s ease}.timeline-completed-detail{display:grid;gap:var(--space-2)}.progress-detail-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-surface);border-radius:8px;border:1px solid var(--color-border-neutral);font-size:var(--type-caption-size)}.progress-detail-row span{color:var(--color-text-placeholder)}.progress-detail-row strong{color:var(--color-primary)}.intervention-progress-card{background:var(--color-bg-muted);border:1px solid var(--color-border-neutral);border-radius:16px;padding:16px;margin-top:14px;display:grid;gap:8px}.intervention-progress-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--type-control-size)}.intervention-progress-title{color:var(--color-primary)}.intervention-progress-percent{font-weight:600;color:var(--color-primary-light)}.intervention-progress-track{height:10px;background:var(--color-border-slate);border-radius:99px;overflow:hidden}.intervention-progress-fill{height:100%;background:var(--color-primary)}.intervention-progress-caption{color:var(--color-text-placeholder)}.timeline-status-success{color:var(--color-success-strong)}.timeline-module-active-text{margin:0;color:var(--color-primary-light);font-weight:500}.timeline-module-locked-text{margin:0;color:var(--color-text-placeholder)}.profile-notification-row{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--color-bg-neutral)}.profile-notification-label{display:block;font-size:var(--type-caption-size);color:var(--color-text-placeholder)}.profile-notification-status{font-size:var(--type-label-size)}.profile-notification-status--granted{color:var(--color-success-strong)}.profile-notification-status--denied,.profile-notification-status--default{color:var(--color-error)}.notification-test-feedback{grid-column:1 / -1;margin:2px 0 0;font-size:var(--type-caption-size);font-weight:600;color:var(--color-primary-light)}.support-panel-spaced{margin-top:14px}img,svg{max-width:100%}.main-scroll-content>.card{margin-inline:auto}.respondent-login-card{max-width:520px}.respondent-dashboard-card{max-width:900px}.respondent-module-card{max-width:760px}.progress__label,.timeline-card-title-row strong,.action-plan-details,.profile-card{overflow-wrap:anywhere}@media(min-width:768px){.main-scroll-content{max-width:948px;padding:86px 24px 92px}.main-scroll-content.in-module{max-width:808px}.app-header{max-width:948px;padding:0 24px;border-left:1px solid var(--color-border-neutral);border-right:1px solid var(--color-border-neutral);border-radius:0 0 16px 16px}.bottom-nav{max-width:948px;padding:0 24px;border-left:1px solid var(--color-border-neutral);border-right:1px solid var(--color-border-neutral);border-radius:16px 16px 0 0}.respondent-dashboard-card{width:100%}.respondent-dashboard-card .dashboard-hero-card{padding:26px}.respondent-dashboard-card .stat-summary-grid{gap:14px}.respondent-dashboard-card .stat-box{padding:18px 14px}.respondent-module-card{width:100%}}@media(min-width:481px)and (max-width:767px){.main-scroll-content{max-width:720px;padding:78px 20px 88px}.app-header{max-width:720px;padding:0 20px;border-left:1px solid var(--color-border-neutral);border-right:1px solid var(--color-border-neutral);border-radius:0 0 16px 16px}.card{padding:28px}.bottom-nav{max-width:720px;padding:0 20px;border-left:1px solid var(--color-border-neutral);border-right:1px solid var(--color-border-neutral);border-radius:16px 16px 0 0}}@media(max-width:480px){.app-header{height:58px;padding-right:max(12px,env(safe-area-inset-right));padding-left:max(12px,env(safe-area-inset-left))}.header-left{gap:8px;min-width:0}.header-tagline{display:none}.header-right{min-width:0}.header-right .sync-status{max-width:132px;margin:0;white-space:nowrap}.main-scroll-content{padding-top:70px;padding-right:max(10px,env(safe-area-inset-right));padding-bottom:calc(80px + env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left))}.card,.card.wide{width:100%;padding:18px;border-radius:18px}.respondent-login-card{margin-block:auto}.bottom-nav{height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{min-width:0;padding-inline:2px}.bottom-nav-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-hero-card,.profile-card{padding:16px;border-radius:16px}.hero-greeting-box h2{font-size:var(--type-subtitle-size)}.stat-summary-grid{gap:6px}.stat-box{min-width:0;padding:10px 5px}.stat-box strong{font-size:var(--type-section-size)}.stat-box span{font-size:var(--type-micro-size);line-height:1.25}.action-plan-widget,.tips-card,.intervention-progress-card{padding:14px}.action-plan-widget-header,.intervention-progress-header{align-items:flex-start;flex-wrap:wrap}.profile-card-header{align-items:flex-start}.profile-card-header>div:last-child{min-width:0}.profile-card-header h2{font-size:var(--type-section-size);overflow-wrap:anywhere}.profile-info-item{align-items:flex-start;flex-direction:column;gap:4px}.profile-notification-row>div:last-child{width:100%;flex-wrap:wrap}.profile-notification-row button{flex:1}.progress-detail-row{align-items:flex-start;flex-direction:column;gap:3px}.progress-detail-row strong{overflow-wrap:anywhere}.timeline-item{gap:8px}.timeline-content-card{padding:10px}.material,.feedback,fieldset{padding:14px}.module-illustration img{max-height:min(250px,42vh)}}@media(max-width:360px){.header-brand-name{font-size:var(--type-body-size)}.header-right .sync-status{max-width:105px;font-size:var(--type-micro-size)}.card,.card.wide{padding:15px}.material-actions{flex-direction:column}.material-actions button,.confirmation-panel>div button{width:100%}.confirmation-panel>div{grid-template-columns:1fr}.progress__step{font-size:var(--type-micro-size)}}.main-scroll-content.login-mode{display:grid;min-height:100dvh;max-width:none;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.main-scroll-content.login-mode .respondent-login-card{width:min(100%,520px);margin:0}@media(max-width:480px){.main-scroll-content.login-mode{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.main-scroll-content.login-mode .respondent-login-card{padding:18px}}.main-scroll-content.login-mode{background:var(--login-page-background)}.main-scroll-content.login-mode .respondent-login-card{border:1px solid var(--color-border-neutral);background:var(--color-bg-surface);box-shadow:var(--login-card-shadow)}html,body,#app{min-height:100%}html,body{max-width:100%;overflow-x:clip}body,.native-app-shell{background:var(--color-bg)}.native-app-shell{min-height:100dvh}.app-header{height:64px;padding-inline:max(var(--space-4),env(safe-area-inset-left));border-color:var(--color-border-subtle);background:var(--color-bg-overlay-soft);box-shadow:var(--shadow-subtle)}.drawer-toggle-btn,.drawer-close-btn,.toggle-chevron,.tips-next-button{min-width:44px;min-height:44px}.drawer-toggle-btn{padding:var(--space-2);border-radius:var(--radius-sm)}.drawer-toggle-btn:focus-visible,.drawer-close-btn:focus-visible,.toggle-chevron:focus-visible,.tips-next-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.nav-drawer{width:min(86vw,310px);background:var(--color-bg-surface);box-shadow:var(--shadow-overlay);transition:transform var(--duration-medium) var(--ease-out)}.drawer-backdrop{background:var(--color-overlay)}.drawer-header{padding:var(--space-8) var(--space-5) var(--space-5);background:var(--color-primary)}.drawer-close-btn{top:var(--space-3);right:var(--space-3);width:44px;height:44px;border-radius:var(--radius-sm)}.drawer-nav-item{min-height:48px;border-radius:var(--radius-sm);transition:background-color var(--duration-short) var(--ease-out),color var(--duration-short) var(--ease-out)}.drawer-nav-item.active{background:var(--color-bg-primary-subtle);color:var(--color-primary)}.main-scroll-content{width:100%;max-width:680px;padding:80px var(--space-4) calc(82px + env(safe-area-inset-bottom))}.main-scroll-content.in-module{max-width:820px;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.card,.card.wide{width:100%;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:var(--shadow-card)}.respondent-dashboard-card{max-width:none;padding:var(--space-5)}.respondent-module-card{max-width:820px;padding:var(--space-6)}.dashboard-hero-card{margin-bottom:var(--space-4);padding:var(--space-5);border:0;border-radius:var(--radius-lg);background:var(--gradient-hero);box-shadow:var(--shadow-card)}.hero-action-btn{min-height:46px;box-shadow:none;transition:background-color var(--duration-short) var(--ease-out),transform var(--duration-short) var(--ease-out)}.hero-active-module{border-radius:var(--radius-md);background:var(--color-on-primary-soft)}.stat-summary-grid{gap:var(--space-2);margin-bottom:var(--space-4)}.stat-box,.tips-card,.action-plan-widget,.profile-card,.timeline-content-card,.intervention-progress-card{border-color:var(--color-border-subtle);box-shadow:none}.stat-box,.tips-card,.action-plan-widget,.profile-card,.intervention-progress-card{border-radius:var(--radius-md);background:var(--color-bg-surface)}.action-plan-widget,.tips-card{margin-bottom:var(--space-4);padding:var(--space-4)}.action-plan-widget-header h3,.tips-card-title,.progress-detail-row span,.back,.profile-notification-status,.profile-notification-action{display:inline-flex;align-items:center;gap:var(--space-2)}.action-plan-details{border-color:var(--color-border-subtle);background:var(--color-bg-subtle);color:var(--color-text-secondary)}.tips-card-header{min-height:44px}.tips-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-size:var(--type-caption-size)}.tips-next-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:40px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-control);color:var(--color-primary);box-shadow:none}.bottom-nav{height:calc(68px + env(safe-area-inset-bottom));max-width:680px;padding-bottom:env(safe-area-inset-bottom);border-color:var(--color-border-subtle);background:var(--color-bg-overlay-strong);box-shadow:0 -8px 24px var(--color-shadow-brand-card)}.bottom-nav-item{min-width:0;min-height:48px;color:var(--color-text-muted);transition:color var(--duration-short) var(--ease-out)}.bottom-nav-item.active{color:var(--color-primary)}.module,.material,.feedback,fieldset{border-color:var(--color-border-subtle);background:var(--color-bg-surface);box-shadow:none}.module{border-radius:var(--radius-md)}.back{min-height:44px;margin:0 0 var(--space-3);padding:0 var(--space-2) 0 0;border-radius:var(--radius-sm)}.toggle-chevron{width:44px;height:44px;padding:0;border-radius:var(--radius-sm);background:var(--color-bg-primary-subtle)}.toggle-chevron .rannu-icon{transition:transform var(--duration-short) var(--ease-out)}.toggle-chevron .rannu-icon.rotated{transform:rotate(90deg)}.progress-detail-row span{color:var(--color-text-muted)}.profile-notification-status{color:var(--color-text-secondary)}.profile-notification-dot{width:9px;height:9px;border-radius:50%;background:var(--color-sync-pending)}.profile-notification-status--granted .profile-notification-dot{background:var(--color-sync-online)}.profile-notification-status--denied .profile-notification-dot{background:var(--color-error)}.profile-notification-actions{display:flex;align-items:center;gap:var(--space-2)}.profile-notification-action{min-height:44px;margin:0;padding-inline:var(--space-3)}.status-pill{min-height:32px}.main-scroll-content.login-mode{display:grid;min-height:100dvh;max-width:none;place-items:center;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-4),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));background:var(--login-page-background)}.main-scroll-content.login-mode .respondent-login-card{width:min(100%,520px);margin:0;border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);box-shadow:var(--login-card-shadow)}@media(max-width:599px){.app-header{height:60px;padding-inline:max(var(--space-3),env(safe-area-inset-left))}.header-left{min-width:0;gap:var(--space-2)}.header-tagline{display:none}.header-right .sync-status{max-width:118px;margin:0;overflow:hidden;font-size:var(--type-caption-size);text-overflow:ellipsis;white-space:nowrap}.main-scroll-content{padding:72px max(var(--space-3),env(safe-area-inset-right)) calc(80px + env(safe-area-inset-bottom)) max(var(--space-3),env(safe-area-inset-left))}.main-scroll-content.in-module{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.card,.card.wide,.respondent-dashboard-card,.respondent-module-card{padding:var(--space-4);border-radius:var(--radius-lg)}.dashboard-hero-card,.profile-card{padding:var(--space-4)}.hero-greeting-box h2{font-size:var(--type-subtitle-size)}.hero-progress-heading,.profile-info-item,.progress-detail-row{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.stat-summary-grid{gap:var(--space-1)}.stat-box{min-width:0;padding:var(--space-3) var(--space-1)}.stat-box strong{font-size:var(--type-section-size)}.stat-box span{font-size:var(--type-caption-size);line-height:var(--type-caption-line)}.action-plan-widget-header,.profile-notification-row,.profile-card-header{align-items:flex-start}.profile-notification-row,.profile-notification-actions{width:100%}.profile-notification-actions{flex-wrap:wrap}.profile-notification-action{flex:1}.timeline-item{gap:var(--space-2)}.timeline-content-card,.material,.feedback,fieldset{padding:var(--space-3)}.material-actions{flex-wrap:wrap}.module-illustration img{max-height:min(260px,42dvh)}}@media(min-width:600px)and (max-width:1023px){.main-scroll-content{max-width:920px;padding:84px var(--space-6) 94px}.main-scroll-content.in-module{max-width:820px}.respondent-dashboard-card{padding:var(--space-6)}.modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.module{display:flex;min-height:136px;flex-direction:column}.module button{margin-top:auto}.bottom-nav{max-width:860px;border-inline:1px solid var(--color-border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0}}@media(min-width:1024px){.main-scroll-content{max-width:1180px;padding:92px var(--space-8) 106px}.app-header{max-width:1180px;padding:0 var(--space-8)}.main-scroll-content.in-module{max-width:900px;padding-bottom:120px}.respondent-dashboard-card{max-width:1120px;padding:var(--space-8)}.home-tab-panel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:var(--space-5);align-items:stretch}.home-tab-panel>.dashboard-hero-card,.home-tab-panel>.stat-summary-grid,.home-tab-panel>.action-plan-widget,.home-tab-panel>.tips-card{margin-bottom:0}.home-tab-panel>.stat-summary-grid{grid-template-columns:1fr}.dashboard-hero-card{grid-template-columns:minmax(0,1fr) minmax(260px,.75fr);align-content:start}.hero-active-module{grid-column:1 / -1}.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.module{display:flex;min-height:148px;flex-direction:column}.module button{margin-top:auto}.bottom-nav{bottom:var(--space-4);max-width:660px;height:70px;padding-bottom:0;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}}@media(hover:hover)and (pointer:fine){.module:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-subtle)}}@media(pointer:coarse){button,.choice{min-height:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dashboard-hero-card,.hero-greeting-box h2{color:var(--color-text-heading)}.hero-greeting-box p,.hero-progress-heading span,.hero-progress-heading strong,.hero-active-module>span,.hero-active-module small{color:var(--color-text-secondary);opacity:1}.hero-progress-track{background:var(--color-border-light)}.hero-progress-track span{background:var(--color-primary);box-shadow:none}.hero-active-module{border-color:var(--color-border-active);background:var(--color-bg-overlay-soft)}.hero-action-btn{background:var(--color-primary);color:var(--color-accent-ink)}
