.password-field{display:grid}.password-field label{color:var(--color-text-secondary);font-size:var(--type-control-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight)}.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}.rannu-logo{display:inline-flex;min-width:0;line-height:1}.rannu-logo__mark{display:block;width:auto;height:2.75rem;object-fit:contain}.rannu-logo--stacked .rannu-logo__mark{height:8rem}.rannu-logo--mark .rannu-logo__mark{width:100%;height:100%}.rannu-logo__accessible-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.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:var(--type-control-weight);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:transparent;border-color:var(--selected-border-color);box-shadow:var(--selected-shadow)}.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:var(--type-control-weight);text-align:left;white-space:normal;overflow-wrap:anywhere}.themed-select__option:focus-visible{outline:2px solid var(--selected-border-color);outline-offset:-2px;box-shadow:var(--selected-shadow)}.themed-select__option.selected,.themed-select__option.highlighted{background:var(--color-bg-primary-subtle);color:var(--color-primary);box-shadow:var(--selected-shadow)}.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:var(--type-control-weight);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:var(--type-label-weight)}.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:var(--type-caption-weight)}.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:var(--type-control-weight);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:var(--type-label-weight)}.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:var(--type-body-weight);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:999px;font:inherit;font-size:var(--control-font-size);font-weight:var(--type-button-weight);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);font-weight:var(--type-button-small-weight);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-caption-size);line-height:var(--type-caption-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:var(--type-emphasis-weight)}.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:var(--type-emphasis-weight)}.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)}}.rannu-field{display:grid;min-width:0;gap:var(--space-2)}.rannu-field__label{display:inline;gap:0;color:var(--color-text-secondary);font-size:var(--type-label-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight)}.rannu-field__label span{color:var(--color-error);white-space:nowrap}.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:var(--type-caption-weight);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:var(--type-caption-weight);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:var(--type-label-weight)}.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:var(--type-caption-weight);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:var(--type-caption-weight)}.rannu-stepper strong{min-width:0;font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);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);overflow-x:auto;-webkit-overflow-scrolling:touch}.rannu-stepper button{grid-template-columns:1fr;justify-items:center;text-align:center;min-width:0}.rannu-stepper strong{font-size:var(--type-micro-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.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-mesh{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.rannu-login-card{position:relative;z-index:1;width:min(100%,var(--login-card-width));margin:auto;padding:var(--login-card-padding);overflow:hidden;border:var(--login-card-border);border-radius:var(--login-card-radius);background:var(--login-card-surface);box-shadow:var(--login-card-elevation)}.rannu-login-card__logo{display:flex;justify-content:center;width:100%}.rannu-login-card__logo .rannu-logo__mark{width:auto;height:clamp(2cm,6vw,2.5cm)}.rannu-login-card h1{margin:var(--space-6) 0 var(--space-2);color:var(--color-text-heading);font-size:var(--type-title-size);line-height:var(--type-title-line);font-weight:var(--type-title-weight);text-align:center}.rannu-login-card__description{max-width:40ch;margin:0 auto;color:var(--color-text-muted);font-size:var(--type-body-size);line-height:var(--type-body-line);text-align:center}.rannu-login-card form{display:grid;gap:var(--space-4);margin-top:var(--space-6)}.rannu-login-card form label,.rannu-login-card .password-field label,.rannu-login-card .rannu-pin-field__label{font-size:var(--type-control-size);line-height:var(--type-label-line);font-weight:var(--type-label-weight)}.rannu-login-card form label{display:grid;gap:var(--space-2);color:var(--color-text-heading)}.rannu-login-card form input,.rannu-login-card .rannu-pin-field__input{font-weight:var(--type-body-weight)}.rannu-login-card form input{width:100%;background:var(--login-card-input-surface);border-color:var(--login-card-input-border)}.rannu-login-card form input:focus{border-color:var(--color-focus-ring);box-shadow:var(--selected-shadow)}.rannu-login-card .rannu-button{height:var(--login-card-control-height);min-height:var(--login-card-control-height);margin-top:var(--space-1);border-radius:var(--login-card-control-radius);font-size:var(--type-label-size)}.rannu-login-card .rannu-button:not(:disabled){background:linear-gradient(180deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);box-shadow:var(--login-card-button-shadow)}.rannu-login-card .rannu-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--login-card-button-shadow-hover)}.rannu-login-card .rannu-button:active:not(:disabled){transform:none}.rannu-login-card__footnote{margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:var(--type-caption-size);line-height:1.5;text-align:center}.rannu-login-card__footnote--offline{margin-top:var(--space-2);color:var(--color-warning-text);font-weight:var(--type-label-weight)}.rannu-login-card__notice{margin-top:var(--space-6)}@media(max-width:480px){.rannu-login-card{padding:var(--login-card-padding-mobile);border-radius:var(--login-card-radius-mobile)}.rannu-login-card__logo .rannu-logo__mark{height:2cm}}.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:var(--type-label-weight)}.rannu-pin-field__container{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2)}.rannu-pin-field__input{width:100%;min-height:0;aspect-ratio:1;padding:0;text-align:center;font-size:var(--type-title-size);font-weight:var(--type-title-weight);border:1px solid var(--color-border);border-radius:var(--control-radius-sm);background:var(--color-bg-control);color:var(--color-text-primary);outline:2px solid transparent;outline-offset:1px;transition:border-color var(--duration-short) var(--ease-out),box-shadow var(--duration-short) var(--ease-out)}.rannu-pin-field__input:focus-visible{outline-color:transparent;border-color:var(--selected-border-color);box-shadow:var(--selected-shadow)}.rannu-pin-field__error{color:var(--color-error);font-size:var(--type-caption-size)}@media(max-width:380px){.rannu-pin-field__container{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-1)}.rannu-pin-field__input{font-size:var(--type-subtitle-size)}}.rannu-back-button{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;margin:0;border:0;border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-primary);font:inherit;font-size:var(--type-label-size, .8125rem);font-weight:600;line-height:1;cursor:pointer;min-height:36px;transition:background var(--duration-short, .15s) var(--ease-out, ease)}.rannu-back-button:focus-visible{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:2px}.rannu-back-button:not(:disabled):hover{background:var(--color-bg-primary-subtle)}.rannu-back-button:not(:disabled):active{transform:translateY(1px)}.rannu-back-button .rannu-icon{flex-shrink:0}.rannu-toast-container{position:fixed;top:var(--feedback-offset-block);left:50%;transform:translate(-50%);z-index:var(--feedback-layer);display:flex;flex-direction:column;gap:var(--space-2);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:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--feedback-radius);font-size:var(--type-label-size);font-weight:var(--type-label-weight);width:max-content;max-width:100%;cursor:pointer;box-sizing:border-box;box-shadow:var(--shadow-toast);border:1px solid var(--color-border-subtle)}.rannu-toast--success{background:var(--toast-success-surface);border-color:var(--toast-success-border);color:var(--toast-success-text)}.rannu-toast--warning{background:var(--toast-warning-surface);border-color:var(--toast-warning-border);color:var(--toast-warning-text)}.rannu-toast--error{background:var(--toast-error-surface);border-color:var(--toast-error-border);color:var(--toast-error-text)}.rannu-toast-message{min-width:0;overflow-wrap:anywhere}.rannu-toast-icon{font-size:var(--type-body-size);flex-shrink:0;font-weight:var(--type-title-weight)}.toast-slide-enter-active{animation:toast-slide-in var(--duration-medium) var(--ease-out)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(var(--feedback-enter-distance)) scale(var(--feedback-enter-scale))}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.toast-slide-enter-active{animation-duration:var(--duration-instant)}}.drawer-tagline{align-self:flex-start;margin-top:var(--space-1)}:root{--font-family-base: "Montserrat", 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;--type-control-weight: var(--type-body-weight);--type-button-weight: var(--type-label-weight);--type-button-small-weight: var(--type-label-weight);--type-emphasis-weight: 600;--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;--feedback-offset-block: 4.25rem;--feedback-layer: 9999;--feedback-radius: var(--control-radius-lg);--feedback-icon-size: var(--space-5);--feedback-blur: .625rem;--feedback-enter-distance: -1rem;--feedback-enter-scale: .92;--color-brand-ink: #1f2a2b;--color-primary: #017374;--color-primary-hover: #005e5f;--color-primary-active: #014b4c;--color-primary-light: #02999a;--color-primary-lighter: #35b5b3;--color-primary-emphasis: #02999a;--color-primary-subtle: #005e5f;--color-primary-deep: #1f2a2b;--color-text: #2f3b3a;--color-text-manage: #273334;--color-text-secondary: #546160;--color-text-muted: #687574;--color-text-subtle: #687574;--color-text-placeholder: #7a8887;--color-text-eyebrow: #384443;--color-text-heading: #1f2a2b;--color-text-faint: #687574;--color-text-disabled: #9aa7a6;--color-text-neutral: #4a5756;--color-bg: #f8fffe;--color-bg-surface: #ffffff;--color-bg-control: #ffffff;--color-bg-overlay-soft: rgba(255, 255, 255, .94);--color-bg-overlay-strong: rgba(255, 255, 255, .98);--color-primary-soft-bg: rgba(1, 115, 116, .1);--color-primary-medium-bg: rgba(1, 115, 116, .24);--login-page-background: linear-gradient(180deg, #ffffff 0%, #eff9f5 100%);--login-card-shadow: 0 20px 56px rgba(16, 35, 58, .1);--login-card-width: 366px;--login-card-padding: 26px 22px 18px;--login-card-padding-mobile: 22px 18px 16px;--login-card-radius: 22px;--login-card-radius-mobile: 20px;--login-card-border: 1px solid rgba(255, 255, 255, .72);--login-card-border-strong: 1px solid rgba(255, 255, 255, .82);--login-card-surface: rgba(255, 255, 255, .98);--login-card-elevation: 0 24px 48px -16px rgba(4, 32, 42, .5);--login-card-input-surface: #f9fafb;--login-card-input-border: #e5e7eb;--login-card-control-height: 52px;--login-card-control-radius: 14px;--login-card-button-shadow: 0 8px 16px -8px rgba(1, 115, 116, .6);--login-card-button-shadow-hover: 0 12px 22px -8px rgba(1, 115, 116, .65);--color-bg-subtle: #eaf6f0;--color-bg-muted: #f2faf8;--color-bg-primary-subtle: #eafbf5;--color-bg-primary-muted: #f2fbf7;--color-bg-primary-tint: #f5fdf9;--color-bg-panel: #ffffff;--color-bg-neutral: #f1f5f4;--color-bg-disabled: #f1f5f4;--color-bg-brand-soft: #b4e6d4;--color-bg-teal-soft: var(--color-bg-brand-soft);--color-border: #d3dbe2;--color-border-light: #dfe5ea;--color-border-subtle: #e8edf1;--color-border-neutral: #e2e8f0;--color-border-soft: #dfe5ea;--color-border-row: #edf0f3;--color-border-hover: #017374;--color-border-active: #7fd6c8;--color-border-teal: #c2ece2;--color-border-slate: #cbd5e1;--color-border-divider: #dfe5ea;--color-border-input: #dce3e9;--color-border-panel: #e7ebef;--color-border-panel-soft: #eaeff2;--color-border-panel-row: #edf0f3;--color-border-calendar-muted: #b9c4cd;--color-focus-ring: #017374;--color-focus-shadow: rgba(1, 115, 116, .2);--selected-border-color: var(--color-focus-ring);--selected-shadow: 0 0 0 3px var(--color-focus-shadow);--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;--toast-success-surface: rgba(194, 236, 226, .95);--toast-success-border: rgba(1, 115, 116, .22);--toast-success-text: #015556;--toast-warning-surface: rgba(214, 240, 232, .95);--toast-warning-border: rgba(1, 115, 116, .16);--toast-warning-text: #015556;--toast-error-surface: rgba(194, 236, 226, .95);--toast-error-border: rgba(1, 115, 116, .22);--toast-error-text: #015556;--color-overlay: #0f172a66;--color-shadow: #0f172a0d;--color-shadow-strong: #0f172a33;--color-shadow-menu: #0f172a1c;--color-shadow-brand: #0173740a;--color-shadow-brand-soft: #01737412;--color-shadow-brand-card: #0173741f;--shadow-card: 0 12px 34px rgba(16, 35, 58, .08);--shadow-card-hover: 0 16px 42px rgba(16, 35, 58, .12);--shadow-overlay: 0 20px 60px rgba(16, 35, 58, .16);--shadow-subtle: 0 8px 24px rgba(16, 35, 58, .055);--shadow-toast: 0 2px 12px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .04);--gradient-page: var(--color-bg);--gradient-hero: linear-gradient(135deg, #c2ece2 0%, #effaf6 58%, #ffffff 100%);--gradient-primary: linear-gradient(135deg, #017374 0%, #02999a 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-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: #93a3b1;--color-progress-dot: #8fa0ad;--color-progress-ring: #c2ece2;--color-border-sync: #cfe8df;--color-module-completed-bg: #f2fcf8;--color-teal-deep: #005e5f;--color-teal-border-bright: #9fe0d0;--color-teal-border-soft: #c2ece2;--color-timeline-surface: #eafbf5;--color-pin-error-border: #fecaca;--color-pin-error-text: #dc2626;--color-pin-error-bg: #fee2e2;--color-toolbar-bg: #f0f8f4;--color-registry-bg: #f5fbf8;--color-accent-warm: #e07a5f;--color-accent-warm-hover: #c9684f;--color-accent-warm-text: #b5543e;--color-accent-warm-soft: #f4ddd6;--color-accent-warm-border: #e8c0b0;--color-stat-mint-bg: #b4e6d4;--color-stat-mint-text: #017374;--color-stat-warm-bg: #f4ddd6;--color-stat-warm-text: #b5543e;--color-hero-circle-a: #b4e6d4;--color-hero-circle-b: #f4ddd6;--color-login-page-bg: linear-gradient(160deg, #f8fffe 0%, #eaf6f0 55%, #f2faf8 100%);--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:var(--type-control-weight)}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(--selected-border-color);outline-offset:2px;box-shadow:var(--selected-shadow)}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 .rannu-logo__mark{width:auto;height:44px}.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 .rannu-logo__mark{width:72px;height: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:transparent;border-color:var(--selected-border-color);box-shadow:var(--selected-shadow)}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 .rannu-logo__mark{width:auto;height:38px}.login-brand .rannu-logo__mark{width:72px;height: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:0;display:grid;gap:var(--space-3)}.modules h2{margin:0 0 var(--space-3);font-size:var(--type-section-size)}.module{border:1px solid var(--color-border);border-radius:12px;padding:13px;margin:0}.module.locked{opacity:.65}.module div{display:flex;justify-content:space-between;gap:var(--space-3);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:var(--space-2) 0}.sync-status{margin:14px 0;color:var(--color-text-muted);font-size:var(--type-label-size)}.progress{margin:var(--space-4) 0 var(--space-6);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 var(--space-2);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:var(--space-4)}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:var(--space-2);font-weight:400}.choice input{width:auto;margin: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:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--type-control-size);line-height:1.45}.quiz-explanation-box{margin:var(--space-3);padding:14px var(--space-4);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:var(--space-3);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-runner{display:grid;gap:var(--space-5);width:min(100%,720px);margin:auto;padding-inline:var(--space-4);box-sizing:border-box}.module-runner__header{display:grid;gap:6px;padding:18px var(--space-5);border:1px solid var(--color-border-subtle);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-bg-primary-subtle),var(--color-bg-surface) 72%)}.module-runner__header .eyebrow,.module-runner__header h1,.module-objective,.module-stage>h2,.module-stage>p,.quiz-score,.module-stage-caption{margin:0}.module-runner__header h1{font-size:var(--type-title-size);line-height:1.3}.module-stage{display:grid;gap:var(--space-3)}.module-stage>h2{font-size:var(--type-section-size);line-height:1.4}.module-stage>h2+p,.module-objective{color:var(--color-text-secondary);line-height:1.55}.module-stage .question{display:grid;gap:var(--space-1);margin:0;padding:14px var(--space-4)}.module-stage .question label{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;min-height:36px;padding:3px;line-height:1.4;cursor:pointer}.module-stage .question input[type=radio]{width:18px;height:18px;min-height:18px;margin:0;padding:0}.module-stage .question.invalid{border-color:var(--color-error-border-input);background:var(--color-error-bg-input)}.module-stage .field-error{margin:0}.module-stage .answer-correct,.module-stage .answer-wrong{display:block;margin:var(--space-1);padding:var(--space-3);border-radius:10px;line-height:1.5}.module-stage .answer-correct{background:var(--color-success-bg-soft);color:var(--color-success-strong)}.module-stage .answer-wrong{background:var(--color-error-bg-soft);color:var(--color-error-strong)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.quiz-score{padding:var(--space-3) var(--space-4);border-radius:12px;background:var(--color-bg-primary-subtle);color:var(--color-primary);font-weight:600;text-align:center}.feedback-stage{padding:18px;border:1px solid var(--color-border-input);border-radius:14px;background:var(--color-bg-surface)}.module-stage-caption{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--type-caption-size);line-height:1.5;text-align:center}@media(max-width:480px){.module-runner{gap:14px}.module-runner__header{gap:var(--space-1);padding:14px;border-radius:16px}.module-runner__header h1{font-size:var(--type-section-size)}.module-stage{gap:10px}.module-stage .question{padding:var(--space-3) 14px}.action-grid{grid-template-columns:1fr;gap:14px}.feedback-stage{padding:14px}}.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}.material-stage{gap:18px}.material-card{overflow:hidden;border:1px solid var(--color-teal-border-soft);border-radius:22px;background:#fff;box-shadow:0 8px 24px var(--color-shadow-brand)}.material-card__banner{padding:var(--space-3) var(--space-5);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;font-size:var(--type-label-size);font-weight:700;letter-spacing:.02em;text-transform:uppercase}.material-card__heading{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-4);padding:var(--space-5)}.material-card__heading h2{margin:3px 0 0;color:var(--color-primary-hover);font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.15}.material-card__number{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-warm),var(--color-accent-warm-hover));color:#fff;font-size:var(--type-title-size);font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.18)}.material-progress{margin:0;color:var(--color-text-secondary);font-size:var(--type-caption-size);font-weight:600}.material-illustration{display:block;width:calc(100% - 40px);aspect-ratio:40 / 21;margin:0 var(--space-5);border-radius:16px;object-fit:cover;background:var(--color-bg-muted)}.material-content{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;margin:var(--space-5);padding:var(--space-4) 18px;border:1px solid var(--color-teal-border-soft);border-radius:16px;background:#fffffff5}.material-content__icon{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff;font-family:serif;font-size:var(--type-section-size);font-weight:700}.material-content p{margin:0;color:var(--color-text-heading);font-size:var(--type-control-size);line-height:1.6}.material-takeaway{display:flex;align-items:center;gap:var(--space-3);margin:0 var(--space-5) var(--space-5);padding:14px 18px;border-radius:14px;background:var(--color-bg-primary-subtle);color:var(--color-text-heading);line-height:1.5}.material-takeaway span{color:var(--color-primary-light);font-size:var(--type-subtitle-size)}.material-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.material-navigation>:only-child{grid-column:1 / -1}@media(max-width:480px){.module-illustration img{max-height:250px;border-radius:14px}.material-card{border-radius:16px}.material-card__banner{padding:10px 14px;font-size:var(--type-caption-size)}.material-card__heading{align-items:start;gap:10px;padding:14px}.material-card__heading h2{margin:2px;font-size:var(--type-subtitle-size);line-height:1.25}.material-card__number{width:44px;height:44px;font-size:var(--type-section-size)}.material-illustration{width:calc(100% - 28px);margin:14px;border-radius:12px}.material-content{gap:10px;margin:14px;padding:14px}.material-content__icon{width:32px;height:32px}.material-takeaway{align-items:flex-start;margin:0 14px 14px;padding:var(--space-3) 14px}.material-navigation{grid-template-columns:1fr}.material-navigation>:only-child{grid-column:auto}}.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:var(--space-2);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:var(--space-4)}.module-dashboard-head .eyebrow,.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:1px}}.progress{margin:var(--space-3) 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: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:var(--space-1) 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:var(--selected-shadow)}@media(max-width:480px){.progress{gap:2px}.progress__dot{width:20px;height:20px;font-size:var(--type-micro-size);padding: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:var(--space-1)}}.material-counter{margin:0 0 var(--space-2)!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:var(--space-3)}.material-actions button:last-child{margin:auto}.confirmation-panel{display:grid;gap:14px;padding:var(--space-4);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: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:var(--space-2);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{padding:22px;border:1px solid var(--color-border-neutral);border-radius:18px;background:var(--color-bg-surface);box-shadow:0 4px 16px var(--color-shadow);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:var(--space-2);display:grid;gap:10px}.support-panel label{gap:var(--space-1);font-size:var(--type-label-size)}.support-panel textarea{width:100%;padding:9px var(--space-3);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 var(--space-4);padding:10px var(--space-3);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 var(--space-4);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:var(--space-3)}.drawer-toggle-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-1);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-title .rannu-logo__mark{width:auto;height:28px}.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:var(--space-4)}.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:var(--space-8) var(--space-8) var(--space-6);text-align:center}.consent-header h2{font-size:var(--type-title-size);font-weight:600;margin:0 0 var(--space-2);color:var(--color-text-primary)}.consent-header p{font-size:var(--type-label-size);color:var(--color-text-secondary);margin:0 0 var(--space-6)}.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:var(--space-1) 10px;border-radius:4px}.consent-scroll-area{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-8);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 var(--space-4)}.consent-content p{font-size:var(--type-caption-size);line-height:1.6;color:var(--color-text-secondary);margin:var(--space-4)}.consent-content p:last-child{margin:0}.consent-content strong{color:var(--color-text-primary)}.consent-actions-area{padding:var(--space-6) var(--space-8)}.consent-toggle-row{display:flex;align-items:center;padding:var(--space-4);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:var(--space-2);flex:1 1 auto;width:100%}.toggle-control-group{display:flex;align-items:center;gap:var(--space-3);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:var(--space-1) var(--space-2);border-radius:12px;letter-spacing:.05em;white-space:nowrap}@media(max-width:480px){.consent-toggle-row{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.toggle-label{padding: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:var(--color-border);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 var(--space-8) var(--space-8);display:flex;justify-content:flex-end}.drawer-header{padding:var(--space-6) var(--space-5) var(--space-5);background:var(--color-primary);color:var(--color-bg-surface);display:flex;flex-direction:column;gap:var(--space-3);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:var(--space-3)}.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:var(--space-1);overflow-y:auto}.drawer-nav-item{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3) 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:var(--space-4);border-top:1px solid var(--color-bg-neutral)}.drawer-logout-btn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);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:0}.drawer-logout-btn:hover{background:var(--color-pin-error-bg)}.main-scroll-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:var(--space-4);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{display:grid;gap:var(--space-3);animation:fadeIn .2s ease-out}.tab-panel>*{margin:0}.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:var(--space-4)}.profile-card-header{display:flex;align-items:center;gap:14px;padding:var(--space-4);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:var(--space-3)}.profile-info-item{display:flex;justify-content:space-between;padding:10px var(--space-3);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:var(--space-2)}.tagline-badge{display:inline-block;padding:3px var(--space-2);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-text);border-radius:20px;padding:18px;box-shadow:0 8px 24px var(--color-shadow-brand-card);display:grid;gap:var(--space-4)}.dashboard-hero-card .eyebrow{color:var(--color-primary)}.dashboard-hero-card .muted{color:var(--color-text-muted)}.dashboard-hero-card h1,.hero-greeting-box h2{margin:0;font-size:var(--type-title-size);font-weight:600;color:var(--color-text-heading)}.hero-greeting-box p{margin:var(--space-1) 0 0;font-size:var(--type-label-size);color:var(--color-text-muted)}.dashboard-hero-card .profile-card-header{padding:0;border-bottom:none}.dashboard-hero-card .profile-card-header h2{color:var(--color-text-heading)}.dashboard-hero-card .profile-card-header p{color:var(--color-text-muted)}.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:var(--space-4);border:1px solid var(--color-on-primary-border);display:grid;gap:var(--space-2)}.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:var(--space-2);width:100%;padding:var(--space-3);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:14px;display:grid;gap:var(--space-3)}.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:var(--space-2)}.action-plan-details{display:grid;gap:var(--space-2);padding:var(--space-3);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}.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:14px;display:grid;gap:10px;box-shadow:0 4px 12px var(--color-shadow);margin:0}.tips-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);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:0;position:relative;padding: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: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 var(--space-3);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:var(--space-2);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:var(--space-2);flex-wrap:wrap;margin: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:var(--space-2);padding:var(--space-2);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:var(--space-4);display:grid;gap:var(--space-2)}.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:var(--space-2);flex-wrap:wrap;padding:var(--space-2);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:0}img,svg{max-width:100%}.main-scroll-content>.card{margin:auto}.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:60px var(--space-6) 92px}.main-scroll-content.in-module{max-width:808px}.app-header{max-width:948px;padding:0 var(--space-6);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 var(--space-6);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:20px}.respondent-dashboard-card .stat-summary-grid{gap:14px}.respondent-dashboard-card .stat-box{padding:12px 10px}.respondent-module-card{width:100%}}@media(min-width:481px)and (max-width:767px){.main-scroll-content{max-width:720px;padding:60px var(--space-5) 88px}.app-header{max-width:720px;padding:0 var(--space-5);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 var(--space-5);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:max(12px,env(safe-area-inset-right));padding:max(12px,env(safe-area-inset-left))}.pwa-install-banner{top:calc(58px + env(safe-area-inset-top,0px))}.header-right{min-width:0}.header-right .sync-status{max-width:132px;margin:0;white-space:nowrap}.main-scroll-content{padding:60px max(10px,env(safe-area-inset-right)) calc(80px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.card,.card.wide{width:100%;padding:18px;border-radius:18px}.card.wide.respondent-dashboard-card{padding:0;border:none;background:transparent;box-shadow:none}.bottom-nav{height:calc(64px + env(safe-area-inset-bottom));padding:env(safe-area-inset-bottom)}.bottom-nav-item{min-width:0;padding:2px}.bottom-nav-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-hero-card,.profile-card,.support-panel{padding:var(--space-4);border-radius:16px}.stat-summary-grid{gap:6px}.stat-box{min-width:0;padding:10px 5px}.stat-box span{font-size:var(--type-micro-size);line-height:1.25}.action-plan-widget,.tips-card,.intervention-progress-card,.support-panel{padding:14px}.action-plan-widget-header,.intervention-progress-header{align-items:flex-start;flex-wrap:wrap}.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:var(--space-1)}.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-content-card{padding:10px}.material,.feedback,fieldset{padding:14px}.module-illustration img{max-height:min(250px,42vh)}}@media(max-width:360px){.header-right .sync-status{max-width:105px;font-size:var(--type-micro-size)}.card,.card.wide{padding:15px}.card.wide.respondent-dashboard-card{padding:0;border:none;background:transparent;box-shadow:none}.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{position:relative;isolation:isolate;overflow:hidden;display:grid;min-height:100dvh;max-width:none;place-items:center;padding:calc(var(--space-8) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px));background-color:var(--color-bg-muted);background-image:var(--color-login-page-bg)}@media(max-width:480px){.main-scroll-content.login-mode{padding-top:calc(var(--space-6) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px))}}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:2px solid var(--selected-border-color);outline-offset:2px;box-shadow:var(--selected-shadow)}.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:calc(64px + .3cm) var(--space-4) calc(68px + env(safe-area-inset-bottom) + .3cm)}.main-scroll-content.in-module{max-width:820px;padding-bottom:calc(68px + env(safe-area-inset-bottom) + .3cm)}.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)}.card.wide.respondent-dashboard-card{max-width:none;padding:0;border:none;background:transparent;box-shadow:none}.respondent-module-card{max-width:820px;padding:var(--space-6)}.dashboard-hero-card{padding:var(--space-4);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)}.stat-box,.tips-card,.action-plan-widget,.profile-card,.timeline-content-card,.intervention-progress-card,.support-panel{border-color:var(--color-border-subtle);box-shadow:none}.stat-box,.tips-card,.action-plan-widget,.profile-card,.intervention-progress-card,.support-panel{border-radius:var(--radius-md);background:var(--color-bg-surface)}.action-plan-widget,.tips-card{padding:var(--space-4)}.action-plan-widget-header h3,.tips-card-title,.progress-detail-row span,.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: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)}.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}@media(max-width:599px){.app-header{height:60px;padding-inline:max(var(--space-3),env(safe-area-inset-left))}.pwa-install-banner{top:calc(60px + env(safe-area-inset-top,0px))}.header-left{min-width:0;gap:var(--space-2)}.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:calc(60px + .3cm) max(var(--space-3),env(safe-area-inset-right)) calc(68px + env(safe-area-inset-bottom) + .3cm) max(var(--space-3),env(safe-area-inset-left))}.main-scroll-content.in-module{padding-inline:max(var(--space-3),env(safe-area-inset-left));padding-block:calc(60px + .3cm);padding-bottom:calc(68px + env(safe-area-inset-bottom) + .3cm)}.module-runner .rannu-stepper{gap:2px;margin:0;padding:var(--space-2) var(--space-1);border-radius:var(--radius-md)}.module-runner .rannu-stepper button{min-height:50px;gap:var(--space-1)}.module-runner .rannu-stepper button>span{width:24px;height:24px}.module-runner .rannu-stepper strong{font-size:var(--type-micro-size);line-height:1.15;overflow-wrap:normal}.card,.card.wide,.respondent-module-card{padding:var(--space-4);border-radius:var(--radius-lg)}.dashboard-hero-card,.profile-card,.support-panel{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:calc(64px + .3cm) var(--space-6) calc(68px + env(safe-area-inset-bottom) + .3cm)}.main-scroll-content.in-module{max-width:820px}.card.wide.respondent-dashboard-card{padding:0;border:none;background:transparent;box-shadow:none}.modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.module{display:flex;min-height:136px;flex-direction:column}.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:calc(64px + .3cm) var(--space-8) calc(86px + .3cm)}.app-header{max-width:1180px;padding:0 var(--space-8)}.main-scroll-content.in-module{max-width:900px;padding:calc(64px + .3cm) 120px calc(86px + .3cm)}.card.wide.respondent-dashboard-card{max-width:1120px;padding:0;border:none;background:transparent;box-shadow:none}.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: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}.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.module{display:flex;min-height:148px;flex-direction:column}.module button{margin:auto}.bottom-nav{bottom:var(--space-4);max-width:660px;height:70px;padding:0;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}}.dashboard-hero-card{position:relative;overflow:hidden;isolation:isolate}.dashboard-hero-card:before,.dashboard-hero-card:after{position:absolute;z-index:-1;aspect-ratio:1;border-radius:50%;content:"";opacity:.72}.dashboard-hero-card:before{top:-74px;right:96px;width:180px;background:var(--color-hero-circle-a)}.dashboard-hero-card:after{top:-88px;right:-72px;width:210px;background:var(--color-hero-circle-b)}.hero-greeting-box,.hero-progress-block,.hero-active-module{position:relative}.hero-progress-block{align-content:center;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-overlay-soft)}.hero-progress-track{height:8px}.hero-active-module{padding:var(--space-4);border-left:4px solid var(--color-primary)}.hero-active-module small{color:var(--color-primary)!important;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hero-action-btn{gap:var(--space-1)}.stat-box{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);text-align:left}.stat-box-icon{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:var(--radius-sm);background:var(--color-bg-primary-subtle);color:var(--color-primary)}.stat-box:nth-child(2) .stat-box-icon{background:var(--color-stat-mint-bg);color:var(--color-stat-mint-text)}.stat-box:nth-child(3) .stat-box-icon{background:var(--color-stat-warm-bg);color:var(--color-stat-warm-text)}.stat-box-content{display:grid;min-width:0;gap:var(--space-1)}.stat-box-content>strong,.stat-box-content>span{display:block}.tips-card{position:relative;overflow:hidden;border-top:3px solid var(--color-primary)}.tips-card-title{color:var(--color-primary)}.bottom-nav-item{margin:var(--space-2) var(--space-1);border-radius:var(--radius-md)}.bottom-nav-item.active{background:var(--color-bg-primary-subtle);font-weight:600}@media(max-width:599px){.dashboard-hero-card:before{top:-48px;right:54px;width:112px}.dashboard-hero-card:after{top:-54px;right:-42px;width:132px}.hero-progress-block,.hero-active-module{padding:var(--space-3)}.stat-box{flex-direction:column;gap:var(--space-1);text-align:center}.stat-box-icon{width:34px;height:34px;flex-basis:34px}.stat-box-content{gap:0}.bottom-nav-item{margin:2px}}@media(min-width:600px)and (max-width:1023px){.dashboard-hero-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:var(--space-4)}.hero-active-module{grid-column:1 / -1}.stat-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.home-tab-panel>.action-plan-widget,.home-tab-panel>.tips-card{height:100%}.hero-action-btn{width:fit-content;min-width:180px}}@media(hover:hover)and (pointer:fine){.module:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-subtle)}.bottom-nav-item:hover{background:var(--color-bg-primary-muted);color:var(--color-primary)}}@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)}.pwa-install-banner{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:10000;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:min(100% - 24px,480px);margin:8px auto 0;padding:10px 36px 10px 14px;border-radius:12px;background:var(--color-bg-brand-soft);border:1px solid var(--color-teal-border-soft);color:#015556;font-size:var(--type-label-size);box-shadow:0 2px 12px #0173741f;animation:pwa-banner-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes pwa-banner-pop{0%{opacity:0;transform:translate(-50%) translateY(-16px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.pwa-install-banner-text{flex:1;text-align:left;line-height:1.4;letter-spacing:.01em}.pwa-install-banner-text b{font-weight:700;letter-spacing:.02em}.pwa-install-banner .rannu-button{background:#017374;color:#fff;font-weight:600;border:none}.pwa-install-banner .rannu-button:hover:not(:disabled){background:#005e5f}.pwa-install-banner-close{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-height:0;aspect-ratio:1;padding:0;border:none;background:#0173741a;color:#017374;border-radius:999px;cursor:pointer;line-height:1;flex:none}.pwa-install-banner-close:hover{background:#0173743d;color:#017374}.dashboard-hero-card{background:linear-gradient(135deg,var(--color-bg-primary-subtle),var(--color-bg-surface) 68%)}.hero-greeting-box h2{font-size:clamp(var(--type-subtitle-size),2vw,var(--type-title-size));letter-spacing:-.02em}.hero-active-module{box-shadow:0 8px 24px color-mix(in srgb,var(--color-primary) 8%,transparent)}.stat-box{background:linear-gradient(145deg,var(--color-bg-surface),var(--color-bg-primary-subtle));transition:border-color .2s ease,transform .2s ease}.tips-card{background:linear-gradient(135deg,var(--color-bg-brand-soft),var(--color-bg-surface) 58%)}.tips-card-title{color:var(--color-stat-mint-text)}.tips-card-title .rannu-icon{color:var(--color-primary-light)}.action-plan-widget-header .rannu-icon{color:var(--color-accent-warm-text)}.bottom-nav-item:not(.active) svg{color:var(--color-text-muted)}.bottom-nav-item.active svg{color:var(--color-primary)}@media(max-width:599px){.home-tab-panel{display:grid;gap:var(--space-3)}.dashboard-hero-card{gap:var(--space-3)}.hero-action-btn{width:100%}.tips-card-footer{align-items:center;gap:var(--space-2)}}@media(min-width:600px)and (max-width:1023px){.home-tab-panel{display:grid;gap:var(--space-4)}.home-tab-panel>*{margin:0}.tips-card,.action-plan-widget{min-height:190px}}@media(min-width:1024px){.home-tab-panel{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start}.home-tab-panel>.dashboard-hero-card,.home-tab-panel>.stat-summary-grid{grid-column:1 / -1}.home-tab-panel>.stat-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-tab-panel>.tips-card:last-child{grid-column:1 / -1}.home-tab-panel>.action-plan-widget+.tips-card{grid-column:auto}.home-tab-panel>.action-plan-widget,.home-tab-panel>.tips-card{min-height:210px}}@media(hover:hover)and (pointer:fine){.stat-box:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}}.module-runner{gap:var(--space-5)}.module-runner__header{gap:var(--space-1);padding:0 0 var(--space-4);border:0;border-bottom:1px solid var(--color-border-subtle);border-radius:0;background:transparent}.module-runner__header .eyebrow{color:var(--color-text-muted);font-size:var(--type-caption-size);font-weight:500}.module-runner .rannu-stepper{margin:0;padding:var(--space-2) 0;border:0;border-radius:0;background:transparent}.module-runner .rannu-stepper li{min-width:0}.module-runner .rannu-stepper strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-runner .rannu-stepper li:not(.current):not(.complete){opacity:.68}.module-runner .rannu-stepper li.current button>span{box-shadow:none}.material-card{border-color:var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle)}.material-card__banner{padding:var(--space-3) var(--space-5) 0;background:transparent;color:var(--color-text-muted);font-size:var(--type-caption-size);font-weight:500;letter-spacing:.03em}.material-card__heading{gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-4)}.material-card__heading h2{color:var(--color-text-heading);font-size:var(--type-subtitle-size);line-height:1.35}.material-card__number{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--color-bg-primary-subtle);color:var(--color-primary);font-size:var(--type-section-size);text-shadow:none}.material-illustration{width:calc(100% - 40px);margin-inline:var(--space-5)}.material-content{display:block;margin:var(--space-5);padding:0;border:0;border-radius:0;background:transparent}.material-content__icon{display:none}.material-content p{color:var(--color-text-secondary)}.material-takeaway{margin:0 var(--space-5) var(--space-5);padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-bg-primary-subtle);color:var(--color-text-secondary)}.material-takeaway span{display:none}@media(max-width:599px){.module-runner{gap:var(--space-3)}.module-runner__header{padding-bottom:var(--space-3)}.module-runner .rannu-stepper{padding-block:var(--space-1)}.material-card__banner{padding:var(--space-3) var(--space-4) 0}.material-card__heading{padding:var(--space-2) var(--space-4) var(--space-3)}.material-card__number{width:36px;height:36px}.material-illustration{width:calc(100% - 32px);margin-inline:var(--space-4)}.material-content{margin:var(--space-4)}.material-takeaway{margin:0 var(--space-4) var(--space-4)}}.drawer-nav-item:focus-visible,.hero-action-btn:focus-visible,.respondent-actions button:focus-visible,.material-actions button:focus-visible,.sync-status-group button:focus-visible,.confirmation-panel button:focus-visible{outline:2px solid var(--selected-border-color);outline-offset:2px;box-shadow:var(--selected-shadow)}
