:root{--tfc-black: #1A1A1A;--tfc-white: #FFFFFF;--tfc-green: #34C369;--tfc-surface-background: #F5F5F7;--tfc-surface-card: #FFFFFF;--tfc-surface-muted: #FAFAFA;--tfc-text-primary: #1A1A1A;--tfc-text-secondary: #666666;--tfc-text-muted: #888888;--tfc-text-on-brand: #FFFFFF;--tfc-border-default: #E8E8EA;--tfc-border-strong: #1A1A1A;--tfc-state-hover: #2BA858;--tfc-state-active: #249A4E;--tfc-state-focus: #34C369;--tfc-state-success: #34C369;--tfc-state-warning: #F5A524;--tfc-state-error: #E5484D;--tfc-state-info: #0091FF;--tfc-neutral-50: #FAFAFA;--tfc-neutral-100: #F5F5F7;--tfc-neutral-200: #E8E8EA;--tfc-neutral-300: #D4D4D8;--tfc-neutral-400: #A1A1AA;--tfc-neutral-500: #888888;--tfc-neutral-600: #666666;--tfc-neutral-700: #52525B;--tfc-neutral-800: #27272A;--tfc-neutral-900: #1A1A1A;--color-primary: var(--tfc-green);--color-on-primary: var(--tfc-white);--color-secondary: var(--tfc-black);--color-background: var(--tfc-surface-background);--color-surface: var(--tfc-surface-card);--color-text: var(--tfc-text-primary);--color-text-secondary: var(--tfc-text-secondary);--color-border: var(--tfc-border-default);--tfc-font-logo: "Bebas Neue", "Oswald", Impact, "Haettenschweiler", "Arial Narrow Bold", sans-serif;--tfc-font-heading: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--tfc-font-body: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--tfc-font-mono: "JetBrains Mono", "Fira Code", Menlo, Consolas, ui-monospace, monospace;--tfc-font-print: "Inter", Arial, "Helvetica Neue", sans-serif;--font-family-base: var(--tfc-font-body);--font-family-heading: var(--tfc-font-heading);--font-family-mono: var(--tfc-font-mono);--tfc-fw-regular: 400;--tfc-fw-medium: 500;--tfc-fw-semibold: 600;--tfc-fw-bold: 700;--tfc-fw-black: 900;--tfc-text-xs: .75rem;--tfc-text-sm: .875rem;--tfc-text-base: 1rem;--tfc-text-lg: 1.125rem;--tfc-text-xl: 1.25rem;--tfc-text-2xl: 1.5rem;--tfc-text-3xl: 1.875rem;--tfc-text-4xl: 2.25rem;--tfc-text-5xl: 3rem;--tfc-text-6xl: 3.75rem;--tfc-text-7xl: 4.5rem;--tfc-lh-tight: 1.1;--tfc-lh-snug: 1.25;--tfc-lh-normal: 1.5;--tfc-lh-relaxed: 1.75;--tfc-ls-tight: -.025em;--tfc-ls-normal: 0em;--tfc-ls-wide: .05em;--tfc-ls-wider: .1em;--tfc-space-0: 0;--tfc-space-1: .25rem;--tfc-space-2: .5rem;--tfc-space-3: .75rem;--tfc-space-4: 1rem;--tfc-space-5: 1.25rem;--tfc-space-6: 1.5rem;--tfc-space-8: 2rem;--tfc-space-10: 2.5rem;--tfc-space-12: 3rem;--tfc-space-16: 4rem;--tfc-space-20: 5rem;--tfc-space-24: 6rem;--tfc-radius-none: 0;--tfc-radius-sm: .25rem;--tfc-radius-md: .5rem;--tfc-radius-lg: .75rem;--tfc-radius-xl: 1rem;--tfc-radius-2xl: 1.5rem;--tfc-radius-full: 9999px;--tfc-shadow-none: none;--tfc-shadow-sm: 0 1px 2px 0 rgba(26, 26, 26, .05);--tfc-shadow-md: 0 4px 12px 0 rgba(26, 26, 26, .06);--tfc-shadow-lg: 0 8px 24px 0 rgba(26, 26, 26, .08);--tfc-shadow-xl: 0 16px 48px 0 rgba(26, 26, 26, .12);--tfc-shadow-card: 0 0 30px 0 rgba(26, 26, 26, .06);--tfc-shadow-button: 0 4px 16px 0 rgba(52, 195, 105, .2);--tfc-nav-bg: rgba(255, 255, 255, .82);--tfc-nav-backdrop: blur(20px);--tfc-bp-sm: 640px;--tfc-bp-md: 768px;--tfc-bp-lg: 1024px;--tfc-bp-xl: 1280px;--tfc-bp-2xl: 1536px;--tfc-duration-fast: .15s;--tfc-duration-normal: .2s;--tfc-duration-slow: .4s;--tfc-ease-default: cubic-bezier(.4, 0, .2, 1);--tfc-ease-in: cubic-bezier(.4, 0, 1, 1);--tfc-ease-out: cubic-bezier(0, 0, .2, 1);--tfc-ease-in-out: cubic-bezier(.4, 0, .2, 1)}.tfc,.tfc *{box-sizing:border-box}.tfc{font-family:var(--tfc-font-body);font-size:var(--tfc-text-base);line-height:var(--tfc-lh-normal);color:var(--tfc-text-primary);background:var(--tfc-surface-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tfc h1,.tfc h2,.tfc h3,.tfc h4,.tfc h5,.tfc h6{font-family:var(--tfc-font-heading);font-weight:var(--tfc-fw-bold);line-height:var(--tfc-lh-tight);letter-spacing:var(--tfc-ls-tight);color:var(--tfc-text-primary);margin:0}.tfc code,.tfc pre,.tfc kbd,.tfc samp{font-family:var(--tfc-font-mono)}.tfc-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--tfc-space-2);padding:var(--tfc-space-3) var(--tfc-space-6);font-family:var(--tfc-font-body);font-size:var(--tfc-text-sm);font-weight:var(--tfc-fw-bold);letter-spacing:var(--tfc-ls-wide);border-radius:var(--tfc-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color var(--tfc-duration-normal) var(--tfc-ease-default),border-color var(--tfc-duration-normal) var(--tfc-ease-default),color var(--tfc-duration-normal) var(--tfc-ease-default),box-shadow var(--tfc-duration-normal) var(--tfc-ease-default)}.tfc-btn-primary{background:var(--tfc-green);color:var(--tfc-white);box-shadow:var(--tfc-shadow-button)}.tfc-btn-primary:hover{background:var(--tfc-state-hover)}.tfc-btn-primary:active{background:var(--tfc-state-active)}.tfc-btn-secondary{background:transparent;color:var(--tfc-text-primary);border-color:var(--tfc-border-strong)}.tfc-btn-secondary:hover{background:var(--tfc-black);color:var(--tfc-white)}.tfc-btn-ghost{background:transparent;color:var(--tfc-text-primary)}.tfc-btn-ghost:hover{background:var(--tfc-neutral-100)}.tfc-card{background:var(--tfc-surface-card);border:1px solid var(--tfc-border-default);border-radius:var(--tfc-radius-xl);padding:var(--tfc-space-6);box-shadow:var(--tfc-shadow-card)}.tfc-badge{display:inline-flex;align-items:center;padding:var(--tfc-space-1) var(--tfc-space-3);font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);font-weight:var(--tfc-fw-semibold);letter-spacing:var(--tfc-ls-wider);text-transform:uppercase;background:var(--tfc-green);color:var(--tfc-white);border-radius:var(--tfc-radius-full)}.tfc-spec{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-sm);color:var(--tfc-text-secondary)}.tfc-nav{background:var(--tfc-nav-bg);backdrop-filter:var(--tfc-nav-backdrop);-webkit-backdrop-filter:var(--tfc-nav-backdrop);border-bottom:1px solid var(--tfc-border-default)}.tfc :focus-visible{outline:2px solid var(--tfc-state-focus);outline-offset:2px;border-radius:var(--tfc-radius-sm)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:var(--tfc-font-body);color:var(--tfc-text-primary);background:var(--tfc-surface-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh}a{color:inherit;text-decoration:none}input,button,select,textarea{font:inherit}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:var(--tfc-space-6) var(--tfc-space-4);background:var(--tfc-surface-background)}.auth-card{width:100%;max-width:460px;background:var(--tfc-surface-card);border:1px solid var(--tfc-border-default);border-radius:var(--tfc-radius-xl);padding:var(--tfc-space-10) var(--tfc-space-8);box-shadow:var(--tfc-shadow-card);display:grid;gap:var(--tfc-space-6);text-align:center}.auth-brand-img{display:block;max-width:280px;width:100%;height:auto;margin:0 auto}.auth-title{font-family:var(--tfc-font-logo);font-weight:400;font-size:clamp(2.25rem,8vw,3.5rem);letter-spacing:var(--tfc-ls-wide);line-height:1;margin:0}.auth-title--small{font-size:clamp(1.5rem,5vw,2.25rem)}.auth-claim{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);text-transform:uppercase;color:var(--tfc-text-secondary);margin:0}.auth-form{display:grid;gap:var(--tfc-space-4);text-align:left}.auth-field{display:grid;gap:var(--tfc-space-2)}.auth-field__label{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-text-secondary)}.auth-input{font-family:var(--tfc-font-body);font-size:var(--tfc-text-base);padding:12px 14px;border:1px solid var(--tfc-border-default);border-radius:var(--tfc-radius-md);background:var(--tfc-white);color:var(--tfc-text-primary);transition:border-color var(--tfc-duration-fast) var(--tfc-ease-default);width:100%}.auth-input:focus{outline:2px solid var(--tfc-state-focus);outline-offset:2px;border-color:var(--tfc-state-focus)}.auth-error{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wide);color:var(--tfc-state-error);background:#e5484d0f;border:1px solid rgba(229,72,77,.2);padding:10px 12px;border-radius:var(--tfc-radius-md)}.auth-submit{background:var(--tfc-green);color:var(--tfc-white);font-family:var(--tfc-font-body);font-weight:var(--tfc-fw-bold);font-size:var(--tfc-text-sm);letter-spacing:var(--tfc-ls-wide);padding:14px 20px;border:1px solid var(--tfc-green);border-radius:var(--tfc-radius-md);cursor:pointer;box-shadow:var(--tfc-shadow-button);transition:background-color var(--tfc-duration-normal) var(--tfc-ease-default)}.auth-submit:hover:not(:disabled){background:var(--tfc-state-hover);border-color:var(--tfc-state-hover)}.auth-submit:active:not(:disabled){background:var(--tfc-state-active)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wide);color:var(--tfc-text-muted);margin:0}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr}.app-shell__header{display:flex;align-items:center;justify-content:space-between;padding:var(--tfc-space-4) var(--tfc-space-6);background:var(--tfc-nav-bg);backdrop-filter:var(--tfc-nav-backdrop);-webkit-backdrop-filter:var(--tfc-nav-backdrop);border-bottom:1px solid var(--tfc-border-default);position:sticky;top:0;z-index:10}.app-shell__brand{font-family:var(--tfc-font-logo);letter-spacing:var(--tfc-ls-wide);font-size:var(--tfc-text-xl);color:var(--tfc-text-primary)}.app-shell__user{display:flex;align-items:center;gap:var(--tfc-space-4)}.app-shell__user-name{font-family:var(--tfc-font-body);font-weight:var(--tfc-fw-medium);color:var(--tfc-text-primary)}.app-shell__user-role{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-text-secondary)}.app-shell__logout{font-family:var(--tfc-font-body);font-size:var(--tfc-text-xs);font-weight:var(--tfc-fw-bold);letter-spacing:var(--tfc-ls-wide);background:transparent;border:1px solid var(--tfc-border-strong);color:var(--tfc-text-primary);padding:8px 14px;border-radius:var(--tfc-radius-md);cursor:pointer}.app-shell__logout:hover{background:var(--tfc-black);color:var(--tfc-white)}.app-shell__main{padding:var(--tfc-space-8) var(--tfc-space-6);display:grid;place-items:start center}.app-shell__card{width:100%;max-width:920px;background:var(--tfc-surface-card);border:1px solid var(--tfc-border-default);border-radius:var(--tfc-radius-xl);padding:var(--tfc-space-8);box-shadow:var(--tfc-shadow-card);display:grid;gap:var(--tfc-space-4)}.app-shell__card-label{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-green)}.app-shell__card-title{font-family:var(--tfc-font-heading);font-weight:var(--tfc-fw-bold);font-size:var(--tfc-text-3xl);margin:0;letter-spacing:var(--tfc-ls-tight)}.app-shell__card-meta{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wide);color:var(--tfc-text-secondary);margin:0}.app-shell__card-text{font-family:var(--tfc-font-body);color:var(--tfc-text-secondary);line-height:var(--tfc-lh-relaxed);margin:0}.admin-table{width:100%;border-collapse:collapse;margin-top:var(--tfc-space-4)}.admin-table th{text-align:left;font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-text-secondary);padding:var(--tfc-space-3) var(--tfc-space-2);border-bottom:1px solid var(--tfc-border-default)}.admin-table td{padding:var(--tfc-space-4) var(--tfc-space-2);border-bottom:1px solid var(--tfc-border-default)}.admin-table__mono{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-sm)}.admin-table__swatch{display:inline-block;width:12px;height:12px;border-radius:var(--tfc-radius-sm);margin-right:var(--tfc-space-2);vertical-align:middle;border:1px solid var(--tfc-border-default)}.dashboard-grid{width:100%;max-width:920px;display:grid;gap:var(--tfc-space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.dashboard-greeting{grid-column:1 / -1}.dashboard-tile{display:grid;gap:var(--tfc-space-2);background:var(--tfc-surface-card);border:1px solid var(--tfc-border-default);border-radius:var(--tfc-radius-xl);padding:var(--tfc-space-6);box-shadow:var(--tfc-shadow-card);text-decoration:none;color:inherit;transition:border-color var(--tfc-duration-normal) var(--tfc-ease-default),transform var(--tfc-duration-fast) var(--tfc-ease-default)}.dashboard-tile:hover{border-color:var(--tfc-green);transform:translateY(-2px)}.dashboard-tile--primary{background:var(--tfc-black);color:var(--tfc-white);border-color:var(--tfc-black)}.dashboard-tile--primary:hover{border-color:var(--tfc-green)}.dashboard-tile__label{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-green)}.dashboard-tile--primary .dashboard-tile__label{color:var(--tfc-green)}.dashboard-tile__title{font-family:var(--tfc-font-heading);font-weight:var(--tfc-fw-bold);font-size:var(--tfc-text-xl);letter-spacing:var(--tfc-ls-tight)}.dashboard-tile__arrow{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-2xl);color:var(--tfc-green);text-align:right}.dashboard-todo{grid-column:1 / -1}.dashboard-todo__list{margin:0;padding-left:var(--tfc-space-5);font-family:var(--tfc-font-body);color:var(--tfc-text-secondary);line-height:var(--tfc-lh-relaxed)}.capture-card{max-width:760px}.capture-form{margin-top:var(--tfc-space-4)}.form-renderer{display:grid;gap:var(--tfc-space-5)}.form-field{display:grid;gap:var(--tfc-space-2)}.form-field__label{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);letter-spacing:var(--tfc-ls-wider);color:var(--tfc-text-secondary)}.form-field__hint{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-xs);color:var(--tfc-text-muted);margin:0}.form-field__textarea{resize:vertical;min-height:96px}.form-field__checkboxes{display:grid;gap:var(--tfc-space-2)}.form-field__check{display:inline-flex;align-items:center;gap:var(--tfc-space-2);font-family:var(--tfc-font-body);font-size:var(--tfc-text-sm);color:var(--tfc-text-primary)}.form-field--inline{flex-direction:row}.capture-success{background:#34c3690f;border:1px solid rgba(52,195,105,.3);border-radius:var(--tfc-radius-md);padding:var(--tfc-space-4);display:grid;gap:var(--tfc-space-3)}.auth-success{font-family:var(--tfc-font-mono);font-size:var(--tfc-text-sm);color:var(--tfc-text-primary);margin:0}
