@charset "UTF-8";:root{color-scheme:light;--space-3xs: 2px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--text-xs: .75rem;--text-sm: .875rem;--text-md: .984rem;--text-lg: 1.107rem;--text-xl: 1.245rem;--text-2xl: 1.4rem;--font-display: "Familjen Grotesk", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-outlier: "JetBrains Mono", ui-monospace, monospace;--tracking-display: -.02em;--display-weight: 600;--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-micro: .12s;--dur-short: .22s;--z-sticky: 200;--z-dropdown: 300;--z-drawer: 350;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--radius-card: 8px;--radius-input: 6px;--radius-part: 4px;--cut: 8px;--rule-hair: 1px;--control: 32px;--control-sm: 28px;--hit: 44px;--color-paper: oklch(98.6% .005 250);--color-paper-2: oklch(96.2% .008 252);--color-paper-3: oklch(93% .011 252);--color-ink: oklch(21% .028 262);--color-ink-2: oklch(36% .022 260);--color-muted: oklch(50% .018 258);--color-rule: oklch(90% .009 252);--color-rule-2: oklch(83% .012 252);--color-graphite: oklch(21% .024 262);--color-graphite-2: oklch(26.5% .026 262);--color-graphite-ink: oklch(93% .01 250);--color-graphite-muted: oklch(69% .022 256);--color-accent: oklch(52% .19 258);--color-accent-2: oklch(76% .13 254);--color-accent-wash: oklch(95% .028 256);--color-accent-ink: oklch(98.6% .005 250);--color-accent-deep: oklch(43% .2 262);--color-accent-edge: oklch(39% .16 260);--color-focus: oklch(52% .19 258);--color-key-face: oklch(99.4% .003 250);--color-key-edge: oklch(80% .016 254);--color-error: oklch(47% .17 27);--color-error-wash: oklch(96% .02 27);--color-warning: oklch(44% .1 65);--color-warning-wash: oklch(96.5% .03 85);--color-success: oklch(44% .1 155);--color-success-wash: oklch(96% .025 155);--color-info: oklch(46% .12 250);--color-info-wash: oklch(95.5% .02 250);--color-changed: oklch(90% .11 95);--shadow-card: 0 1px 2px oklch(21% .028 262 / .06);--shadow-pop: 0 8px 24px oklch(21% .028 262 / .16);--ring: none;--shadow-key: 0 2px 0 0 var(--color-key-edge);--shadow-key-accent: 0 2px 0 0 var(--color-accent-edge);--shadow-key-press: inset 0 1px 2px oklch(21% .028 262 / .14);--bg: var(--color-paper-2);--surface: var(--color-paper);--surface-2: var(--color-paper-2);--surface-3: var(--color-paper-3);--border: var(--color-rule);--border-strong: var(--color-rule-2);--text: var(--color-ink);--text-2: var(--color-ink-2);--text-3: var(--color-muted);--accent: var(--color-accent);--accent-2: var(--color-accent-wash);--accent-text: var(--color-accent-ink);--ok: var(--color-success);--ok-bg: var(--color-success-wash);--maybe: var(--color-warning);--maybe-bg: var(--color-warning-wash);--absent: var(--color-muted);--absent-bg: var(--color-paper-3);--error: var(--color-error);--error-bg: var(--color-error-wash);--warning: var(--color-warning);--warning-bg: var(--color-warning-wash);--info: var(--color-info);--info-bg: var(--color-info-wash);--changed: var(--color-changed);--shadow: var(--shadow-card);--shadow-lg: var(--shadow-pop);--radius: var(--radius-card);--radius-sm: var(--radius-input);--mono: var(--font-outlier);--sans: var(--font-body)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-paper: oklch(16% .012 258);--color-paper-2: oklch(19% .013 258);--color-paper-3: oklch(22% .014 258);--color-ink: oklch(94% .008 255);--color-ink-2: oklch(82% .012 256);--color-muted: oklch(70% .016 257);--color-rule: oklch(30% .014 258);--color-rule-2: oklch(38% .016 258);--color-graphite: oklch(13% .016 262);--color-graphite-2: oklch(21% .02 262);--color-accent: oklch(62% .16 258);--color-accent-2: oklch(76% .11 254);--color-accent-wash: oklch(26% .05 258);--color-accent-ink: oklch(14% .02 262);--color-accent-deep: oklch(70% .14 258);--color-accent-edge: oklch(48% .14 260);--color-focus: oklch(72% .14 258);--color-key-face: oklch(24% .014 258);--color-key-edge: oklch(13% .012 258);--color-error: oklch(74% .14 27);--color-error-wash: oklch(26% .05 27);--color-warning: oklch(80% .11 80);--color-warning-wash: oklch(27% .05 80);--color-success: oklch(76% .12 155);--color-success-wash: oklch(26% .045 155);--color-info: oklch(76% .11 250);--color-info-wash: oklch(26% .045 250);--color-changed: oklch(48% .1 90);--shadow-card: none;--shadow-pop: 0 0 0 1px var(--color-rule-2);--ring: inset 0 0 0 1px var(--color-rule);--shadow-key: 0 2px 0 0 var(--color-key-edge);--shadow-key-accent: 0 2px 0 0 var(--color-accent-edge);--shadow-key-press: inset 0 1px 2px oklch(10% .01 258 / .5)}}:root[data-theme=dark]{color-scheme:dark;--color-paper: oklch(16% .012 258);--color-paper-2: oklch(19% .013 258);--color-paper-3: oklch(22% .014 258);--color-ink: oklch(94% .008 255);--color-ink-2: oklch(82% .012 256);--color-muted: oklch(70% .016 257);--color-rule: oklch(30% .014 258);--color-rule-2: oklch(38% .016 258);--color-graphite: oklch(13% .016 262);--color-graphite-2: oklch(21% .02 262);--color-accent: oklch(62% .16 258);--color-accent-2: oklch(76% .11 254);--color-accent-wash: oklch(26% .05 258);--color-accent-ink: oklch(14% .02 262);--color-accent-deep: oklch(70% .14 258);--color-accent-edge: oklch(48% .14 260);--color-focus: oklch(72% .14 258);--color-key-face: oklch(24% .014 258);--color-key-edge: oklch(13% .012 258);--color-error: oklch(74% .14 27);--color-error-wash: oklch(26% .05 27);--color-warning: oklch(80% .11 80);--color-warning-wash: oklch(27% .05 80);--color-success: oklch(76% .12 155);--color-success-wash: oklch(26% .045 155);--color-info: oklch(76% .11 250);--color-info-wash: oklch(26% .045 250);--color-changed: oklch(48% .1 90);--shadow-card: none;--shadow-pop: 0 0 0 1px var(--color-rule-2);--ring: inset 0 0 0 1px var(--color-rule);--shadow-key: 0 2px 0 0 var(--color-key-edge);--shadow-key-accent: 0 2px 0 0 var(--color-accent-edge);--shadow-key-press: inset 0 1px 2px oklch(10% .01 258 / .5)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper)}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;-webkit-font-smoothing:antialiased;caret-color:var(--color-accent)}code,.mono{font-family:var(--font-outlier);font-size:var(--text-xs)}h1,h2,h3,h4{margin:0;color:var(--text);font-weight:600;text-wrap:balance}h1,h2{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--tracking-display);line-height:1.15}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-md)}h4{font-size:var(--text-sm);color:var(--text-2)}a{color:var(--color-accent);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--color-rule-2)}@media(hover:hover){a:hover{text-decoration-color:var(--color-accent)}}p{margin:0 0 var(--space-xs);text-wrap:pretty}::selection{background:color-mix(in oklab,var(--color-accent) 22%,transparent);color:var(--text)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.num{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*:not(.keep-motion),*:not(.keep-motion):before,*:not(.keep-motion):after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--control);padding:0 var(--space-sm);border:var(--rule-hair) solid var(--border-strong);border-radius:var(--radius-input);background:var(--color-key-face);color:var(--text);font:inherit;font-weight:500;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-key);transition:transform var(--dur-micro) var(--ease-out),opacity var(--dur-micro) var(--ease-out)}.btn:after{content:"";position:absolute;inset:calc((var(--control) - var(--hit)) / 2) 0}@media(hover:hover){.btn:hover:not(:disabled,[aria-disabled=true]){transform:translateY(-1px);background:var(--surface)}}.btn:active:not(:disabled,[aria-disabled=true]){transform:translateY(2px);box-shadow:var(--shadow-key-press)}.btn[aria-pressed=true],.btn.selected{background:var(--color-paper-3);border-color:var(--color-accent);color:var(--text);box-shadow:var(--shadow-key-press)}.btn:disabled,.btn[aria-disabled=true]{background:var(--color-paper-3);color:var(--text-3);border-color:var(--border);box-shadow:none;opacity:.7;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress;opacity:.7}.btn[aria-invalid=true]{border-color:var(--error);color:var(--error)}.btn.primary{background:var(--color-accent);border-color:var(--color-accent-edge);color:var(--color-accent-ink);box-shadow:var(--shadow-key-accent)}@media(hover:hover){.btn.primary:hover:not(:disabled,[aria-disabled=true]){background:var(--color-accent-deep)}}.btn.primary:disabled,.btn.primary[aria-disabled=true]{background:var(--color-paper-3);color:var(--text-3);border-color:var(--border);box-shadow:none}.btn.ghost{border-color:transparent;background:transparent;box-shadow:none}@media(hover:hover){.btn.ghost:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-3);transform:none}}.btn.ghost:active:not(:disabled,[aria-disabled=true]){transform:none;background:var(--border)}.btn.ghost[aria-pressed=true],.btn.ghost.selected{background:var(--color-paper-3);color:var(--text)}.btn.danger{color:var(--error)}.btn.sm{min-height:var(--control-sm);padding:0 var(--space-xs);font-size:var(--text-xs)}.btn.sm:after{inset:calc((var(--control-sm) - var(--hit)) / 2) 0}.btn.icon{width:var(--control);padding:0}.btn.icon.sm{width:var(--control-sm)}input[type=text],input[type=search],input[type=number],input:not([type]),select,textarea{min-height:var(--control);padding:0 var(--space-xs);border:var(--rule-hair) solid var(--color-muted);border-radius:var(--radius-input);background:var(--surface);color:var(--text);font:inherit;min-width:0;transition:opacity var(--dur-micro) var(--ease-out)}input[type=text]::placeholder,input[type=search]::placeholder,input[type=number]::placeholder,input:not([type])::placeholder,select::placeholder,textarea::placeholder{color:var(--text-3)}@media(hover:hover){input[type=text]:hover:not(:disabled),input[type=search]:hover:not(:disabled),input[type=number]:hover:not(:disabled),input:not([type]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--color-ink-2)}}input[type=text]:focus,input[type=search]:focus,input[type=number]:focus,input:not([type]):focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent-2)}input[type=text]:focus-visible,input[type=search]:focus-visible,input[type=number]:focus-visible,input:not([type]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}input[type=text]:disabled,input[type=search]:disabled,input[type=number]:disabled,input:not([type]):disabled,select:disabled,textarea:disabled{background:var(--color-paper-3);color:var(--text-3);border-color:var(--border);opacity:.7;cursor:not-allowed}input[type=text].invalid,input[type=text][aria-invalid=true],input[type=search].invalid,input[type=search][aria-invalid=true],input[type=number].invalid,input[type=number][aria-invalid=true],input:not([type]).invalid,input:not([type])[aria-invalid=true],select.invalid,select[aria-invalid=true],textarea.invalid,textarea[aria-invalid=true]{border-color:var(--error)}textarea{min-height:0;padding:var(--space-xs);resize:vertical}select{padding-right:var(--space-2xs)}input[type=checkbox],input[type=radio]{accent-color:var(--color-accent);width:16px;height:16px}.field{display:flex;flex-direction:column;gap:var(--space-2xs);margin-bottom:var(--space-sm)}.field>label,.field>.label{font-size:var(--text-xs);color:var(--text-2);font-weight:500}.field .hint{font-size:var(--text-xs);color:var(--text-3)}.field .err{font-size:var(--text-xs);color:var(--error)}.row{display:flex;align-items:center;gap:var(--space-xs)}.grow{flex:1 1 auto;min-width:0}.muted{color:var(--text-3)}.small{font-size:var(--text-xs)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spacer{flex:1}.seg{display:inline-flex;padding:var(--space-3xs);gap:var(--space-3xs);border-radius:var(--radius-input);background:var(--color-paper-3);border:var(--rule-hair) solid var(--border)}.seg>button{min-height:calc(var(--control) - 8px);padding:0 var(--space-sm);border:0;border-radius:var(--radius-part);background:transparent;color:var(--text-2);font:inherit;font-weight:500;cursor:pointer}@media(hover:hover){.seg>button:hover:not([aria-pressed=true],:disabled){color:var(--text);background:color-mix(in oklab,var(--surface) 60%,transparent)}}.seg>button:active:not(:disabled){background:var(--surface)}.seg>button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border-strong)}.seg>button:disabled{opacity:.6;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:var(--space-2xs);max-width:100%;min-height:20px;padding:0 var(--space-xs);border-radius:var(--radius-part);font-size:var(--text-xs);font-weight:500;background:transparent;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:var(--rule-hair) solid var(--border-strong)}.chip.ok{color:var(--ok)}.chip.maybe{color:var(--maybe)}.chip.absent{color:var(--text-2);border-style:dashed}.chip.error{color:var(--error)}.chip.warning{color:var(--warning)}.chip.info{color:var(--info)}.chip.skip{color:var(--text-2);border-style:dashed}.chip.accent{background:var(--accent-2);border-color:transparent;color:var(--color-accent-deep)}.chip.outline{border-color:var(--border)}.chip.clickable{cursor:pointer}@media(hover:hover){.chip.clickable:hover{border-color:var(--color-ink-2)}}.chip.clickable:active{background:var(--surface-3)}.layer{display:inline-flex;align-items:center;min-height:20px;padding:0 var(--space-xs);border-radius:var(--radius-part);font-size:var(--text-xs);font-weight:500;color:var(--text-2);border:var(--rule-hair) solid var(--border)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;border:1.5px solid currentcolor;box-sizing:border-box}.dot.ok{color:var(--ok);background:currentcolor}.dot.maybe{color:var(--maybe);background:linear-gradient(90deg,currentcolor 50%,transparent 50%)}.dot.absent{color:var(--absent);background:transparent}.dot.error{color:var(--error);background:currentcolor}.dot.warning{color:var(--warning);background:currentcolor}.dot.info{color:var(--info);background:currentcolor}.status{display:inline-flex;align-items:center;gap:var(--space-2xs);font-weight:500}.status.error{color:var(--error)}.status.warning{color:var(--warning)}.status.info{color:var(--info)}.status.ok{color:var(--ok)}.panel-header{display:flex;align-items:center;gap:var(--space-xs);min-height:40px;padding:0 var(--space-sm);border-bottom:var(--rule-hair) solid var(--border);background:var(--surface);color:var(--text);flex:none}.section{padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-hair) solid var(--border)}.section>h4{margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.list-item{display:flex;align-items:center;gap:var(--space-xs);min-height:var(--control);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-input);cursor:pointer;color:var(--text);min-width:0}@media(hover:hover){.list-item:hover{background:var(--surface-3)}}.list-item:active{background:var(--border)}.list-item.selected{background:var(--accent-2);color:var(--color-accent-deep)}table.grid{width:100%;border-collapse:collapse;font-size:var(--text-sm)}table.grid th{text-align:left;font-family:var(--font-display);font-weight:500;color:var(--text-3);font-size:var(--text-sm);padding:var(--space-xs);border-bottom:var(--rule-hair) solid var(--border-strong);position:sticky;top:0;background:var(--surface);z-index:1}table.grid td{padding:var(--space-2xs) var(--space-xs);border-bottom:var(--rule-hair) solid var(--border);vertical-align:middle}table.grid tr.clickable{cursor:pointer}@media(hover:hover){table.grid tr.clickable:hover td{background:var(--surface-2)}}table.grid tr.selected td{background:var(--accent-2)}table.grid input,table.grid select{width:100%;min-height:var(--control-sm)}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);max-width:48ch;padding:var(--space-lg);color:var(--text-2)}.empty .title{font-family:var(--font-display);font-weight:600;font-size:var(--text-md);color:var(--text)}.skeleton{display:block;border-radius:var(--radius-part);background:linear-gradient(90deg,var(--surface-3) 25%,var(--border) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:skeleton 1.4s linear infinite;min-height:12px}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.banner{display:flex;gap:var(--space-xs);align-items:flex-start;padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm);border:var(--rule-hair) solid var(--border-strong);border-radius:var(--radius-part);background:var(--surface-2);color:var(--text);flex-wrap:wrap}.banner>.grow{flex:1 1 240px}.banner>app-icon:first-child{color:var(--info);margin-top:var(--space-3xs)}.banner.warning>app-icon:first-child{color:var(--warning)}.banner.error>app-icon:first-child{color:var(--error)}.card{background:var(--surface);border:var(--rule-hair) solid var(--border);border-radius:var(--radius-card);color:var(--text);box-shadow:var(--shadow-card),var(--ring)}.kbd{font-family:var(--font-outlier);font-size:var(--text-xs);padding:0 var(--space-2xs);border:var(--rule-hair) solid var(--border-strong);border-bottom-width:2px;border-radius:var(--radius-part);color:var(--text-2)}.cdk-drag-preview{box-shadow:var(--shadow-pop);border-radius:var(--radius-card);opacity:.95}.cdk-drag-placeholder{opacity:.35}.cdk-drag-animating,.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}.cm-editor{height:100%;font-size:var(--text-xs);background:var(--color-graphite);color:var(--color-graphite-ink)}.cm-editor .cm-content{font-family:var(--font-outlier)}.cm-editor .cm-gutters{background:var(--color-graphite-2);border-right:var(--rule-hair) solid var(--color-graphite);color:var(--color-graphite-muted)}.cm-editor .cm-activeLine,.cm-editor .cm-activeLineGutter{background:var(--color-graphite-2)}.cm-editor.cm-focused{outline:none}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground{background:color-mix(in oklab,var(--color-accent-2) 30%,transparent)!important}.cm-editor .cm-cursor{border-left-color:var(--color-graphite-ink)}.cm-tooltip{background:var(--surface)!important;color:var(--text);border:var(--rule-hair) solid var(--border)!important}.cm-editor .cm-reveal{background:color-mix(in oklab,var(--changed) 45%,transparent)}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url("./media/ibm-plex-sans-latin-400-normal-COQVXTP6.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-400-normal-JC3YNCCZ.woff") format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url("./media/ibm-plex-sans-latin-500-normal-JTONHBWS.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-500-normal-7DOULDHV.woff") format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url("./media/ibm-plex-sans-latin-600-normal-DTNZULF4.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-600-normal-B3O423MA.woff") format("woff")}@font-face{font-family:Familjen Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url("./media/familjen-grotesk-latin-500-normal-2UTAJZ4F.woff2") format("woff2"),url("./media/familjen-grotesk-latin-500-normal-REQWBG7X.woff") format("woff")}@font-face{font-family:Familjen Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url("./media/familjen-grotesk-latin-600-normal-PCTEBP7S.woff2") format("woff2"),url("./media/familjen-grotesk-latin-600-normal-WPQVNP6V.woff") format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./media/jetbrains-mono-latin-400-normal-3OOWLGQ2.woff2") format("woff2"),url("./media/jetbrains-mono-latin-400-normal-WDD34GPP.woff") format("woff")}
