@font-face{font-family:Familjen Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/familjen-grotesk-latin-wght-normal-CfZa4wxB.woff2) format("woff2-variations")}@font-face{font-family:Familjen Grotesk;font-style:italic;font-weight:400 700;font-display:swap;src:url(/assets/familjen-grotesk-latin-wght-italic-Uc4KRZYH.woff2) format("woff2-variations")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations")}:root{--surface-page: var(--color-bg-base);--surface-card: var(--color-surface-white);--surface-mist: var(--color-bg-mist);--surface-ink: var(--color-brand-ink);--accent-primary: var(--color-brand-blue);--text-body: var(--color-text-primary);--text-on-dark: var(--color-text-inverse);--text-on-accent: var(--color-text-inverse);--focus-ring: var(--color-focus-ring);--tap-min: 44px;--border-subtle: 1px solid var(--color-border-subtle);--border-strong: 1px solid var(--color-border-strong);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:var(--type-body);background:var(--surface-page);color:var(--text-body);-webkit-font-smoothing:antialiased;font-kerning:normal}::selection{background:var(--color-brand-blue);color:var(--text-on-accent)}a{color:var(--color-brand-blue);text-decoration:none;transition:color var(--duration-fast) var(--ease-enter)}a:hover{color:var(--text-body)}h1,h2,h3{text-wrap:balance}h1{font:var(--type-hero);letter-spacing:var(--tracking-display);margin:0 0 var(--space-4)}h2{font:var(--type-h2);letter-spacing:-.02em;margin:0 0 var(--space-3)}h3{font:var(--type-title);letter-spacing:var(--tracking-title);margin:0 0 var(--space-2)}h1 em,h2 em,h3 em,.it{font-style:italic;font-weight:var(--font-weight-regular)}.lbl{font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.px{display:inline-block;width:.22em;height:.22em;margin-left:.04em;background:var(--color-brand-blue);vertical-align:baseline}.app-shell{min-height:100%;display:flex;flex-direction:column}.container{width:100%;max-width:1180px;margin:0 auto;padding:var(--space-8) var(--space-6)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);background:#ffffffeb;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-bottom:var(--border-subtle);position:sticky;top:0;z-index:10}.brand{display:inline-flex;align-items:center;gap:10px;flex:none;font-family:var(--font-display);font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;line-height:1;color:var(--text-body)}.brand-mark{display:block;width:40px;height:20px;flex:none}.brand.large{font-size:28px;gap:14px}.brand.large .brand-mark{width:56px;height:28px}.topbar-nav{display:flex;align-items:center;gap:var(--space-1)}.topbar-nav a{position:relative;display:inline-flex;align-items:center;min-height:var(--tap-min);padding:var(--space-3);font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);color:var(--color-text-secondary);white-space:nowrap}.topbar-nav a:hover{color:var(--color-brand-blue)}.topbar-nav a:before{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:6px;height:2px;background:var(--color-brand-blue);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--duration-base) var(--ease-enter)}.topbar-nav a.active{color:var(--text-body)}.topbar-nav a.active:before{transform:none}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:var(--space-4);background:var(--surface-mist)}.card{background:var(--surface-card);border:var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6);box-shadow:var(--shadow-card)}.auth-card{width:100%;max-width:420px;padding:var(--space-7);border-color:transparent;box-shadow:var(--shadow-float)}.auth-card .brand{margin-bottom:var(--space-7)}.auth-card h2{font-size:40px;letter-spacing:var(--tracking-display);margin-bottom:var(--space-6)}label{display:block;font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.field{margin-bottom:var(--space-5)}input,select,textarea{width:100%;min-height:var(--tap-min);padding:var(--space-3) var(--space-4);background:var(--surface-card);border:var(--border-subtle);border-bottom-color:var(--color-border-strong);border-radius:var(--radius-control);color:var(--text-body);font:var(--type-body);transition:border-color var(--duration-fast) var(--ease-enter),box-shadow var(--duration-fast) var(--ease-enter)}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--color-brand-blue)}input::placeholder,textarea::placeholder{color:var(--color-text-secondary);opacity:.8}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.btn:focus-visible,.icon-btn:focus-visible,.link-btn:focus-visible,.tabs button:focus-visible,.bottom-nav a:focus-visible,.topbar a:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role=tab]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--focus-ring)}input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--color-brand-blue);box-shadow:inset 0 -1px 0 var(--color-brand-blue)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid var(--color-brand-blue);border-radius:var(--radius-pill);background:var(--accent-primary);color:var(--text-on-accent);font-family:var(--font-sans);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;line-height:1.2;cursor:pointer;position:relative;min-height:40px;transition:background-color var(--duration-fast) var(--ease-enter),border-color var(--duration-fast) var(--ease-enter),color var(--duration-fast) var(--ease-enter),transform var(--duration-fast) var(--ease-spring),opacity var(--duration-fast) var(--ease-enter)}.btn:hover:not(:disabled){background:var(--surface-ink);border-color:var(--surface-ink);color:var(--text-on-dark)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.btn.ghost{background:transparent;border-color:var(--color-border-strong);color:var(--text-body)}.btn.ghost:hover:not(:disabled){background:var(--surface-ink);color:var(--text-on-dark)}.btn.danger{background:var(--color-negative);border-color:var(--color-negative);color:var(--text-on-dark)}.btn.danger:hover:not(:disabled){background:var(--surface-ink);border-color:var(--surface-ink)}.btn.small{padding:var(--space-2) var(--space-4);font-size:11px;min-height:32px}.btn:after,.icon-btn:after,.tabs button:after,.link-btn:after{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:var(--tap-min);min-width:var(--tap-min);margin-inline:auto;pointer-events:auto}.btn.quiet{background:transparent;border-color:transparent;color:var(--text-body)}.btn.quiet:hover:not(:disabled){background:var(--surface-mist);border-color:transparent;color:var(--text-body)}.btn.danger-quiet{background:transparent;border-color:transparent;color:var(--color-negative)}.btn.danger-quiet:hover:not(:disabled){background:#c8233a14;border-color:transparent;color:var(--color-negative)}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:var(--radius-inner);background:transparent;color:var(--text-body);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-enter)}.icon-btn:hover{background:var(--surface-mist)}.muted{color:var(--color-text-secondary)}.error{color:var(--color-negative);font:var(--type-label);margin:var(--space-2) 0}.notice{color:var(--color-brand-blue);font:var(--type-label);margin:var(--space-2) 0}.meter{height:4px;background:var(--surface-mist);overflow:hidden;margin-top:var(--space-2)}.meter>span{display:block;height:100%;transition:width var(--duration-base) var(--ease-enter)}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.disc-card h3{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.tag{display:inline-block;font:var(--type-caption);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-caption);font-variant-numeric:tabular-nums;padding:var(--space-1) var(--space-2);border-radius:var(--radius-inner);background:var(--surface-mist);color:var(--color-text-secondary)}.stat-row{display:flex;gap:var(--space-5);margin:var(--space-5) 0}.stat{flex:1;min-width:0}.stat .value{font:var(--type-big-number);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat .label{font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);color:var(--color-text-secondary);margin-top:var(--space-1)}.bar{height:6px;background:var(--surface-mist);overflow:hidden}.bar>span{display:block;height:100%;background:var(--color-brand-blue);transition:width var(--duration-slow) var(--ease-enter)}.pill{display:inline-block;padding:3px var(--space-2);border-radius:var(--radius-inner);font:var(--type-caption);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-caption)}.pill.ok{background:var(--color-brand-blue);color:var(--text-on-accent)}.pill.warn{background:var(--color-warning);color:var(--color-text-primary)}.pill.bad{background:var(--color-negative);color:var(--text-on-dark)}.table{width:100%;border-collapse:collapse;font:var(--type-label);font-variant-numeric:tabular-nums}.table th,.table td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:var(--border-subtle)}.table th{font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);color:var(--color-text-secondary);border-bottom:var(--border-strong)}.table tbody tr{transition:background-color var(--duration-fast) var(--ease-enter)}.table tbody tr:hover,.table tbody tr.selected{background:var(--surface-mist)}.table .select-cell{width:1%;padding-right:0}.bulk-bar{position:sticky;bottom:var(--space-4);z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-card);border:var(--border-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.row-actions{display:flex;flex-direction:row;gap:var(--space-2);flex-wrap:wrap}.section-title{display:flex;align-items:center;justify-content:space-between;margin:var(--space-8) 0 var(--space-4);padding-top:var(--space-3);border-top:2px solid var(--color-border-strong)}.section-title h2{margin:0}.inline-form{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));align-items:start}.inline-form>*:not(button):not(.btn):not(.row-actions):not(.form-actions){display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-width:0}.inline-form label{display:flex;align-items:flex-end;min-height:2.8em;margin-bottom:var(--space-1)}.field-hint{margin:var(--space-1) 0 0;font:var(--type-label);font-size:12.5px;line-height:1.4;color:var(--color-text-secondary)}.inline-form .self-end{justify-content:flex-end}.tabs{display:flex;flex-wrap:wrap;gap:var(--space-6);border-bottom:var(--border-subtle);margin-bottom:var(--space-6)}.tabs button{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:0;padding:var(--space-3) 0;min-height:var(--tap-min);font-family:var(--font-sans);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-enter)}.tabs button:hover{color:var(--color-brand-blue)}.tabs button:before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--color-brand-blue);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--duration-base) var(--ease-enter)}.tabs button[aria-selected=true]{color:var(--text-body);font-weight:var(--font-weight-semibold)}.tabs button[aria-selected=true]:before{transform:none}.tabs button:focus-visible{outline-offset:-2px}.link-btn{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:var(--space-2) 0;min-height:32px;font-family:var(--font-sans);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);color:var(--color-brand-blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer}.link-btn:hover{color:var(--text-body)}.link-btn.danger-quiet{color:var(--color-negative)}.link-btn.small{font-size:var(--font-size-caption);padding:var(--space-1) 0;min-height:28px;text-decoration:none;border-bottom:1px solid currentColor}.icon-btn.danger-quiet{color:var(--color-negative)}.icon-btn.danger-quiet:hover{background:#c8233a14}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center;padding:var(--space-8) var(--space-5)}.empty-state:before{content:"";width:12px;height:12px;background:var(--color-brand-blue)}.empty-state-text{margin:0;max-width:44ch;font:var(--type-body);color:var(--color-text-secondary)}.empty-state .btn{flex:none}.empty-state-reason{margin:0;font:var(--type-label);color:var(--color-text-secondary);max-width:44ch}.empty-state.compact{padding:var(--space-5) var(--space-4);gap:var(--space-3)}.empty-state.compact:before{width:8px;height:8px}.form-actions{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:var(--border-subtle)}.form-actions .form-actions-aside{margin-right:auto;font:var(--type-label);color:var(--color-text-secondary)}.span-all{grid-column:1 / -1}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0b0b128c;display:grid;place-items:center;padding:var(--space-4);animation:dialog-fade var(--duration-base) var(--ease-enter)}.dialog{width:100%;max-width:440px;background:var(--surface-card);border-radius:var(--radius-card);border-top:4px solid var(--color-brand-blue);padding:var(--space-6);box-shadow:var(--shadow-float);animation:dialog-rise var(--duration-slow) var(--ease-enter)}.dialog h3{margin:0 0 var(--space-2);font-size:24px}.dialog .dialog-body{color:var(--color-text-secondary);font:var(--type-body);margin:0 0 var(--space-6)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-rise{0%{opacity:0;transform:translateY(24px)}}.bottom-nav{display:none}.topbar-user{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-label)}.avatar{display:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-inner);background:var(--color-brand-blue);color:var(--text-on-accent);font-family:var(--font-display);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);letter-spacing:.02em;flex:none}.topbar-account{display:inline-flex;align-items:center;min-height:var(--tap-min);color:var(--color-text-secondary)}.topbar-account:hover{color:var(--color-brand-blue)}code,.code-block{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}code{padding:1px var(--space-1);border-radius:var(--radius-inner);background:var(--surface-mist);overflow-wrap:anywhere}.code-block{resize:none;white-space:pre;overflow-x:auto}.steps{margin:0;padding-left:var(--space-5)}.steps li+li{margin-top:var(--space-3)}@media (max-width: 768px){h1{font:var(--type-hero);font-size:40px;letter-spacing:var(--tracking-display)}h2{font-size:26px}.container{padding:var(--space-6) var(--space-4);max-width:100%}.topbar{padding:var(--space-2) var(--space-4);gap:var(--space-3)}.topbar-nav{display:none!important}.topbar-user{display:none}.avatar{display:inline-flex}.app-shell{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.bulk-bar{bottom:calc(64px + env(safe-area-inset-bottom,0px) + var(--space-2))}.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fffffff0;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-top:var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav a{display:flex;align-items:center;justify-content:center;min-height:56px;padding:var(--space-3) var(--space-1);font:var(--type-caption);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);text-align:center;border-top:3px solid transparent;margin-top:-1px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav a.active{color:var(--text-body);border-top-color:var(--color-brand-blue)}.bottom-nav a:hover{color:var(--color-brand-blue)}.inline-form{grid-template-columns:1fr!important}.inline-form>*{width:100%;min-width:0}.inline-form>.btn,.inline-form>button{width:100%}.inline-form label{min-height:0}.grid{grid-template-columns:1fr;gap:var(--space-4)}.card{padding:var(--space-5)}.auth-card{padding:var(--space-6) var(--space-5)}.auth-card h2{font-size:34px}.section-title{flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-7)}.btn,.btn.small,.icon-btn,.link-btn{min-height:var(--tap-min)}.icon-btn{width:var(--tap-min)}.btn.small{padding:var(--space-3) var(--space-4);font-size:var(--font-size-caption)}.row-actions{flex-wrap:wrap!important}.tabs{gap:var(--space-5);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.table{display:block;overflow-x:auto;white-space:nowrap}.stat-row{gap:var(--space-4)}.stat .value{font:var(--type-h2);letter-spacing:-.03em}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .btn{width:100%}.form-actions .form-actions-aside{margin-right:0;text-align:center}.empty-state{padding:var(--space-6) var(--space-4)}.empty-state .btn{width:100%}.dialog{padding:var(--space-5)}.dialog-actions .btn{flex:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
