.df-app{--app-bg:#fbfbfa;--app-panel:#f2f2ef;--app-ink:#23272c;--app-charcoal:#323335;--app-muted:#70757c;--app-line:#e0e0db;--app-line-strong:#c9c9c2;--app-accent:#2a9d8f;--app-accent-ink:#fff;--app-danger:#a33b32;--app-danger-soft:#f7e9e7;--app-success:#2f6f4e;--app-success-soft:#e8f2ec;--app-warning:#8a6a1f;--app-warning-soft:#f7f1e2;--app-info:#2a4a5c;--app-info-soft:#e8eef2;--app-focus:var(--app-accent);--app-radius:0;--app-density:.875rem;--app-transition:.14s ease;--app-transition-backdrop:.14s ease;--color-bg:var(--app-bg);--color-surface:var(--app-panel);--color-ink:var(--app-ink);--color-accent:var(--app-accent);--color-accent-2:var(--app-charcoal);--color-muted:var(--app-muted);--color-line:var(--app-line);--font-display:var(--font-source-serif), Georgia, "Times New Roman", serif;--font-body:var(--font-plex-sans), system-ui, sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, SFMono-Regular, monospace;background-color:var(--app-bg);color:var(--app-ink);font-family:var(--font-body);font-size:var(--app-density);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45}.df-app ::selection{background-color:var(--app-accent);color:#fff}.df-app :focus-visible{outline:2px solid var(--app-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.df-app{--app-transition:0s;--app-transition-backdrop:0s}.df-app *,.df-app :before,.df-app :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.df-app .app-font-display{font-family:var(--font-display)}.df-app .app-font-body{font-family:var(--font-body)}.df-app .app-font-mono{font-family:var(--font-mono)}.df-app .app-shell{background:var(--app-bg);min-height:100vh;color:var(--app-ink);flex-direction:column;display:flex}.df-app .app-shell__chrome{border-bottom:1px solid var(--app-line);background:var(--app-bg)}.df-app .app-shell__body{flex:1;min-height:0;display:flex}.df-app .app-shell__aside{border-right:1px solid var(--app-line);background:var(--app-panel);flex-shrink:0;width:14.5rem;padding:1rem .75rem}.df-app .app-shell__main{flex:1;min-width:0;padding:1.25rem 1.25rem 2rem}.df-app .app-shell__main--narrow{width:100%;max-width:42rem;margin-inline:auto}.df-app .app-shell__main--wide{width:100%;max-width:72rem;margin-inline:auto}.df-app .app-shell__footer{border-top:1px solid var(--app-line);background:var(--app-bg);align-items:center;min-height:3.5rem;padding:.75rem 1.25rem;display:flex}@media (max-width:767px){.df-app .app-shell__body{flex-direction:column}.df-app .app-shell__aside{border-right:none;border-bottom:1px solid var(--app-line);width:100%;padding:.75rem}}.df-app .app-page-header{border-bottom:1px solid var(--app-line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:1.25rem;padding-bottom:.875rem;display:flex}.df-app .app-page-header__kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--app-muted);margin:0 0 .25rem;font-size:.6875rem;font-weight:500}.df-app .app-page-header__title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--app-ink);margin:0;font-size:1.5rem;font-weight:600;line-height:1.25}.df-app .app-page-header__description{max-width:40rem;color:var(--app-muted);margin:.35rem 0 0;font-size:.875rem}.df-app .app-page-header__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.df-app .app-nav{flex-wrap:wrap;gap:.15rem .25rem;display:flex}.df-app .app-nav--vertical{flex-direction:column;gap:.15rem}.df-app .app-nav__link{border-radius:var(--app-radius);color:var(--app-muted);transition:color var(--app-transition), background-color var(--app-transition), border-color var(--app-transition);border:1px solid #0000;align-items:center;gap:.4rem;padding:.4rem .65rem;font-size:.8125rem;font-weight:500;line-height:1.3;text-decoration:none;display:inline-flex}.df-app .app-nav__link:hover{color:var(--app-ink);background:color-mix(in srgb, var(--app-panel) 70%, transparent)}.df-app .app-nav__link[aria-current=page]{color:var(--app-ink);background:var(--app-bg);border-color:var(--app-line-strong);box-shadow:inset 2px 0 0 var(--app-accent)}.df-app .app-nav--horizontal .app-nav__link[aria-current=page]{box-shadow:inset 0 -2px 0 var(--app-accent);background:0 0;border-color:#0000}.df-app .app-field{flex-direction:column;gap:.35rem;display:flex}.df-app .app-field__label{color:var(--app-ink);font-size:.8125rem;font-weight:500}.df-app .app-field__required{color:var(--app-danger);margin-left:.15rem}.df-app .app-field__control{border:1px solid var(--app-line-strong);border-radius:var(--app-radius);background:var(--app-bg);width:100%;min-height:2.25rem;color:var(--app-ink);transition:border-color var(--app-transition), background-color var(--app-transition);padding:.4rem .65rem;font-family:inherit;font-size:.875rem;line-height:1.4}.df-app .app-field__control::placeholder{color:var(--app-muted)}.df-app .app-field__control:hover:not(:disabled){border-color:var(--app-charcoal)}.df-app .app-field__control:focus{border-color:var(--app-accent);outline:none}.df-app .app-field__control:focus-visible{outline:2px solid var(--app-focus);outline-offset:2px}.df-app .app-field__control:disabled{opacity:.55;cursor:not-allowed;background:var(--app-panel)}.df-app .app-field__control--mono{font-family:var(--font-mono);font-size:.8125rem}.df-app .app-field__control--invalid{border-color:var(--app-danger)}.df-app textarea.app-field__control{resize:vertical;min-height:5.5rem}.df-app select.app-field__control{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--app-muted) 50%), linear-gradient(135deg, var(--app-muted) 50%, transparent 50%);background-position:calc(100% - 1rem) calc(50% - .15rem),calc(100% - .7rem) calc(50% - .15rem);background-repeat:no-repeat;background-size:.3rem .3rem,.3rem .3rem;padding-right:1.75rem}.df-app .app-field__hint,.df-app .app-field__error{margin:0;font-size:.75rem;line-height:1.35}.df-app .app-field__hint{color:var(--app-muted)}.df-app .app-field__error{color:var(--app-danger)}.df-app .app-btn{border-radius:var(--app-radius);font-family:var(--font-body);cursor:pointer;transition:background-color var(--app-transition), border-color var(--app-transition), color var(--app-transition), opacity var(--app-transition);border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.df-app .app-btn:disabled{cursor:not-allowed;opacity:.55}.df-app .app-btn--sm{min-height:1.875rem;padding:.3rem .65rem;font-size:.75rem}.df-app .app-btn--md{min-height:2.25rem;padding:.45rem .9rem;font-size:.8125rem}.df-app .app-btn--block{width:100%}.df-app .app-btn--primary{background:var(--app-accent);color:var(--app-accent-ink)}.df-app .app-btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--app-accent) 88%, var(--app-ink))}.df-app .app-btn--secondary{background:var(--app-bg);border-color:var(--app-line-strong);color:var(--app-ink)}.df-app .app-btn--secondary:hover:not(:disabled){border-color:var(--app-charcoal);background:var(--app-panel)}.df-app .app-btn--ghost{color:var(--app-ink);background:0 0}.df-app .app-btn--ghost:hover:not(:disabled){background:var(--app-panel)}.df-app .app-btn--danger{background:var(--app-danger);color:#fff;transition:none}.df-app .app-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--app-danger) 88%, #000)}.df-app .app-btn[aria-busy=true],.df-app .app-btn--pending{cursor:wait}.df-app .app-btn:active:not(:disabled){transform:translateY(1px)}.df-app .app-btn--success{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--app-success) 55%, transparent)}.df-app .app-btn__spinner{flex:none;justify-content:center;align-items:center;width:.85rem;height:.85rem;display:inline-flex}.df-app .app-btn__spinner-dot{border:1.5px solid color-mix(in srgb, currentColor 35%, transparent);border-top-color:currentColor;border-radius:50%;width:.7rem;height:.7rem;animation:.7s linear infinite app-btn-spin;display:block}.df-app .app-btn__label{min-width:0}.df-app .app-btn__success-mark{color:inherit;opacity:.9;font-size:.85em;line-height:1}@keyframes app-btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.df-app .app-btn:active:not(:disabled){transform:none}.df-app .app-btn__spinner-dot{opacity:.75;border-color:currentColor;animation:none}}.df-app .auth-password__row{align-items:stretch;gap:0;display:flex}.df-app .auth-password__input{border-right:none;flex:auto;min-width:0}.df-app .auth-password__toggle{border:1px solid var(--app-line-strong);background:var(--app-panel);width:2.5rem;color:var(--app-charcoal);cursor:pointer;transition:background-color var(--app-transition), border-color var(--app-transition), color var(--app-transition);flex:none;justify-content:center;align-items:center;display:inline-flex}.df-app .auth-password__toggle:hover:not(:disabled){background:var(--app-bg);color:var(--app-ink)}.df-app .auth-password__toggle:disabled{cursor:not-allowed;opacity:.55}.df-app .auth-password__toggle[aria-pressed=true]{color:var(--app-accent)}.df-app .auth-status{min-height:0}.df-app .auth-status:not(:empty){margin-bottom:.85rem}.df-app .auth-status__text{color:var(--app-muted);align-items:center;gap:.45rem;margin:0;font-size:.8125rem;display:flex}.df-app .auth-status__spinner{border:1.5px solid color-mix(in srgb, var(--app-muted) 40%, transparent);border-top-color:var(--app-accent);border-radius:50%;flex:none;width:.7rem;height:.7rem;animation:.7s linear infinite app-btn-spin;display:inline-block}@media (prefers-reduced-motion:reduce){.df-app .auth-status__spinner{border-color:var(--app-accent);opacity:.8;animation:none}}.df-app .app-alert{border:1px solid var(--app-line);background:var(--app-panel);border-left-width:3px;gap:.65rem;padding:.65rem .75rem;font-size:.8125rem;line-height:1.4;transition:none;animation:none;display:flex}.df-app .app-alert__title{color:var(--app-ink);margin:0 0 .15rem;font-weight:600}.df-app .app-alert__body{color:var(--app-charcoal);margin:0}.df-app .app-alert--info{border-left-color:var(--app-info);background:var(--app-info-soft)}.df-app .app-alert--success{border-left-color:var(--app-success);background:var(--app-success-soft)}.df-app .app-alert--warning{border-left-color:var(--app-warning);background:var(--app-warning-soft)}.df-app .app-alert--danger{border-left-color:var(--app-danger);background:var(--app-danger-soft)}.df-app .app-table-wrap{border:1px solid var(--app-line);background:var(--app-bg);width:100%;overflow-x:auto}.df-app .app-table{border-collapse:collapse;width:100%;font-size:.8125rem}.df-app .app-table th,.df-app .app-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--app-line);padding:.5rem .75rem}.df-app .app-table th{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--app-muted);background:var(--app-panel);white-space:nowrap;font-size:.6875rem;font-weight:500}.df-app .app-table td{color:var(--app-ink)}.df-app .app-table tbody tr:last-child th,.df-app .app-table tbody tr:last-child td{border-bottom:none}.df-app .app-table tbody tr,.df-app .app-table tbody tr th,.df-app .app-table tbody tr td{transition:none;animation:none}.df-app .app-table tbody tr:hover td{background:color-mix(in srgb, var(--app-panel) 55%, transparent)}.df-app .app-table__empty{text-align:center;color:var(--app-muted);padding:1.25rem .75rem}.df-app .app-table__mono{font-family:var(--font-mono);font-size:.75rem}.df-app .app-list{border:1px solid var(--app-line);background:var(--app-bg);margin:0;padding:0;list-style:none}.df-app .app-list__item{border-bottom:1px solid var(--app-line);transition:background-color var(--app-transition);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem .75rem;display:flex}.df-app .app-list__item:hover{background:color-mix(in srgb, var(--app-panel) 55%, transparent)}.df-app .app-list__item:last-child{border-bottom:none}.df-app .app-list__title{color:var(--app-ink);margin:0;font-size:.8125rem;font-weight:500}.df-app .app-list__description{color:var(--app-muted);margin:.15rem 0 0;font-size:.75rem}.df-app .app-list__meta{font-family:var(--font-mono);color:var(--app-muted);margin:.15rem 0 0;font-size:.6875rem}.df-app .app-list__empty{border:1px solid var(--app-line);background:var(--app-panel);text-align:left;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1.15rem .9rem;display:flex}.df-app .app-list__empty-title{color:var(--app-ink);margin:0;font-size:.875rem;font-weight:500}.df-app .app-list__empty-desc{max-width:32rem;color:var(--app-muted);margin:0;font-size:.8125rem}.df-app .app-list__empty-action{margin-top:.25rem}.df-app .app-skeleton{border-radius:var(--app-radius);background:color-mix(in srgb, var(--app-panel) 55%, var(--app-line));background-image:linear-gradient(90deg, color-mix(in srgb, var(--app-panel) 55%, var(--app-line)) 0%, color-mix(in srgb, var(--app-bg) 70%, var(--app-line)) 45%, color-mix(in srgb, var(--app-panel) 55%, var(--app-line)) 100%);background-size:200% 100%;min-height:.75rem;animation:1.35s ease-in-out infinite app-skeleton-shimmer;display:block}.df-app .app-skeleton--line{min-height:.7rem}.df-app .app-skeleton--circle{border-radius:999px}.df-app .app-skeleton-list{border:1px solid var(--app-line);background:var(--app-bg)}.df-app .app-skeleton-list__row{justify-content:space-between;align-items:center;gap:1rem;padding:.85rem .9rem;display:flex}.df-app .app-skeleton-list__row+.app-skeleton-list__row{border-top:1px solid var(--app-line)}.df-app .app-skeleton-list__copy{flex-direction:column;flex:1;gap:.45rem;min-width:0;display:flex}.df-app .app-skeleton-list__actions{flex-shrink:0;gap:.35rem;display:flex}@keyframes app-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.df-app .app-file{flex-direction:column;gap:.35rem;display:flex}.df-app .app-file__drop{border:1px dashed var(--app-line-strong);background:var(--app-panel);transition:border-color var(--app-transition), background-color var(--app-transition);flex-direction:column;gap:.35rem;padding:.85rem .75rem;display:flex}.df-app .app-file__drop:hover{border-color:var(--app-accent);background:color-mix(in srgb, var(--app-panel) 80%, var(--app-bg))}.df-app .app-file__drop:focus-within{border-color:var(--app-accent);border-style:solid}.df-app .app-file__input{color:var(--app-ink);font-size:.8125rem}.df-app .app-file__input::file-selector-button{border:1px solid var(--app-line-strong);border-radius:var(--app-radius);background:var(--app-bg);color:var(--app-ink);font-family:var(--font-body);cursor:pointer;transition:border-color var(--app-transition), background-color var(--app-transition);margin-right:.65rem;padding:.3rem .65rem;font-size:.75rem;font-weight:500}.df-app .app-file__input::file-selector-button:hover{border-color:var(--app-charcoal);background:var(--app-panel)}.df-app .app-file__hint,.df-app .app-file__error{margin:0;font-size:.75rem;line-height:1.35}.df-app .app-file__hint{color:var(--app-muted)}.df-app .app-file__error{color:var(--app-danger)}
