:root{--tf-color-primary: #3b82f6;--tf-color-primary-ink: #1d4ed8;--tf-color-primary-hover: #06b6d4;--tf-color-primary-soft: #def3ff;--tf-color-brand-green: #22c55e;--tf-color-brand-green-soft:#e8f8ef;--tf-color-secondary: #1d4ed8;--tf-color-ink: #171614;--tf-color-ink-soft: #3a3834;--tf-color-ink-mute: #6b6761;--tf-color-ink-faint: #9a968c;--tf-color-rule: #d8e8f5;--tf-color-rule-strong: #c1d8ea;--tf-color-black: #000000;--tf-color-white: #ffffff;--tf-color-bg: #f5f7fa;--tf-color-surface: #ffffff;--tf-color-surface-alt: #edf4fb;--tf-color-bg-warm: #faf9f5;--tf-color-text: #171614;--tf-color-text-muted: #6b6761;--tf-color-text-on-primary:#ffffff;--tf-color-success: #22c55e;--tf-color-success-soft: #e8f8ef;--tf-color-warning: #f59e0b;--tf-color-warning-soft: #fff4d6;--tf-color-success-ink: #15803d;--tf-color-warning-ink: #b45309;--tf-color-error: #b23a1f;--tf-color-error-soft: #f7e2d8;--tf-color-info: #3b82f6;--tf-color-info-soft: #def3ff;--tf-font-display: "Fraunces", "Fraunces Fallback", ui-serif, Georgia, serif;--tf-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--tf-font-mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, "Liberation Mono", monospace;--tf-font-weight-regular: 400;--tf-font-weight-medium: 500;--tf-font-weight-semibold: 600;--tf-font-weight-bold: 700;--tf-text-xs: .75rem;--tf-text-sm: .875rem;--tf-text-base: 1rem;--tf-text-lg: 1.125rem;--tf-text-xl: 1.25rem;--tf-text-2xl: 1.5rem;--tf-text-3xl: 1.875rem;--tf-text-4xl: 2.25rem;--tf-leading-tight: 1.25;--tf-leading-snug: 1.375;--tf-leading-normal: 1.5;--tf-leading-relaxed: 1.625;--tf-tracking-normal: 0;--tf-tracking-wide: .025em;--tf-tracking-wider: .05em;--tf-space-unit: .25rem;--tf-space-1: .25rem;--tf-space-2: .5rem;--tf-space-3: .75rem;--tf-space-4: 1rem;--tf-space-5: 1.25rem;--tf-space-6: 1.5rem;--tf-space-8: 2rem;--tf-space-10: 2.5rem;--tf-space-12: 3rem;--tf-space-16: 4rem;--tf-radius-sm: 3px;--tf-radius-base: 5px;--tf-radius-lg: 8px;--tf-radius-xl: 12px;--tf-radius-2xl: 20px;--tf-radius-full: 9999px;--tf-shadow-sm: 0 1px 0 #1716140a, 0 1px 2px #1716140a;--tf-shadow-md: 0 2px 4px #1716140f, 0 10px 30px -12px #1716141f;--tf-shadow-lg: 0 25px 25px #00000026;--tf-blur-sm: 8px;--tf-transition-duration: .15s;--tf-transition-ease: cubic-bezier(.4, 0, .2, 1);--tf-content-max: 1400px;--tf-shell-sidebar-width: 240px;--tf-shell-topbar-height: 56px}.page{width:100%;max-width:var(--tf-content-max);margin:0 auto;padding:1.5rem;box-sizing:border-box;font-family:var(--tf-font-sans)}.page-section{margin-bottom:2rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.action-cluster{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.page h1,.page-title{font-family:var(--tf-font-display);font-weight:var(--tf-font-weight-regular);font-size:clamp(1.4rem,2.6vw,1.8rem);line-height:1.2;letter-spacing:-.02em;color:var(--tf-color-ink);margin:0;word-break:break-word}.page h2,.card-title{font-family:var(--tf-font-display);font-weight:var(--tf-font-weight-medium);font-size:1.375rem;line-height:1.25;color:var(--tf-color-ink);margin:0}.page h3{font-family:var(--tf-font-display);font-weight:var(--tf-font-weight-medium);font-size:1.125rem;line-height:1.3;color:var(--tf-color-ink);margin:0}.section-label{font-family:var(--tf-font-mono);font-size:var(--tf-text-xs);font-weight:var(--tf-font-weight-semibold);letter-spacing:var(--tf-tracking-wider);text-transform:uppercase;color:var(--tf-color-primary-ink);margin:0 0 .75rem}.metric-label{font-size:var(--tf-text-xs);font-weight:var(--tf-font-weight-medium);letter-spacing:var(--tf-tracking-wide);text-transform:uppercase;color:var(--tf-color-ink-mute)}.page .metric-label{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-family:var(--tf-font-mono)}.page .subtitle{font-family:var(--tf-font-sans);font-size:var(--tf-text-sm);color:var(--tf-color-ink-soft);margin:.25rem 0 0}.muted{color:var(--tf-color-ink-mute)}.figure{text-align:right;font-variant-numeric:tabular-nums}.error{color:var(--tf-color-error)}.ok{color:var(--tf-color-success-ink)}.page .error,.page .ok{margin:.5rem 0}.card{background:var(--tf-color-surface);border:1px solid var(--tf-color-rule);border-radius:var(--tf-radius-lg);box-shadow:var(--tf-shadow-sm)}.page .card{padding:1.25rem}.card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}.page .card-body{display:block}.card-foot{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.card-divider{border:0;border-top:1px dashed var(--tf-color-rule);margin:1rem 0}.card-media{display:block;width:100%;border-radius:var(--tf-radius-base)}.callout{display:flex;align-items:flex-start;gap:.625rem;padding:.875rem 1rem;border:1px solid var(--tf-color-rule);border-radius:var(--tf-radius-lg);background:var(--tf-color-surface-alt);color:var(--tf-color-ink-soft);font-size:var(--tf-text-sm)}.callout.success{background:var(--tf-color-success-soft);border-color:var(--tf-color-success-soft);color:var(--tf-color-success-ink)}.callout.warning{background:var(--tf-color-warning-soft);border-color:var(--tf-color-warning-soft);color:var(--tf-color-warning-ink)}.callout.error{background:var(--tf-color-error-soft);border-color:var(--tf-color-error-soft);color:var(--tf-color-error)}.callout.info{background:var(--tf-color-info-soft);border-color:var(--tf-color-info-soft);color:var(--tf-color-primary-ink)}.page .item-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.625rem 0;border-bottom:1px dashed var(--tf-color-rule)}.page .item-row:last-child{border-bottom:none}.page .item-row .label{color:var(--tf-color-ink-mute);font-size:var(--tf-text-sm)}.page .item-row .value{color:var(--tf-color-ink);font-weight:var(--tf-font-weight-semibold);text-align:right;font-variant-numeric:tabular-nums}.page .item-row.total{border-bottom:none;border-top:1px solid var(--tf-color-rule-strong);margin-top:.25rem;padding-top:.875rem}.page .item-row.total .label,.page .item-row.total .value{color:var(--tf-color-ink);font-weight:var(--tf-font-weight-bold)}.btn{padding:0 1.5rem;border:1px solid transparent;border-radius:var(--tf-radius-base);background:var(--tf-color-primary-ink);color:var(--tf-color-text-on-primary);font-size:var(--tf-text-sm);font-weight:var(--tf-font-weight-semibold);cursor:pointer;transition:background var(--tf-transition-duration) var(--tf-transition-ease),border-color var(--tf-transition-duration) var(--tf-transition-ease),color var(--tf-transition-duration) var(--tf-transition-ease),transform var(--tf-transition-duration) var(--tf-transition-ease)}.page .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:44px;font-family:var(--tf-font-sans);white-space:nowrap}.btn:hover:not(:disabled){background:var(--tf-color-primary)}.page .btn:hover:not(:disabled){transform:translateY(-1px)}.page .btn:active:not(:disabled){transform:translateY(0)}.btn[disabled],.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.ghost{height:42px;background:transparent;border-color:var(--tf-color-rule-strong);color:var(--tf-color-ink-soft)}.btn.ghost:hover:not(:disabled){background:var(--tf-color-primary-soft);border-color:var(--tf-color-primary);color:var(--tf-color-primary-ink)}.btn.danger{background:transparent;border-color:var(--tf-color-error);color:var(--tf-color-error)}.btn.danger:hover:not(:disabled){background:var(--tf-color-error);color:var(--tf-color-text-on-primary)}.btn.small{height:32px;padding:0 .875rem;font-size:var(--tf-text-xs)}.btn.icon-only{width:36px;height:36px;padding:0}.btn .spinner{width:16px;height:16px;flex-shrink:0;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--tf-radius-full);animation:tfSpin 1s linear infinite}.linklike{background:none;border:none;padding:0;font:inherit;color:var(--tf-color-primary-ink);text-decoration:underline;cursor:pointer}@keyframes tfSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input,select.input,.page .field{box-sizing:border-box;padding:.75rem 1rem;border:1px solid var(--tf-color-rule-strong);border-radius:var(--tf-radius-base);background:var(--tf-color-surface);color:var(--tf-color-ink);font-family:var(--tf-font-sans);font-size:var(--tf-text-sm);transition:border-color var(--tf-transition-duration) var(--tf-transition-ease),box-shadow var(--tf-transition-duration) var(--tf-transition-ease)}.input,select.input{min-width:160px}.page .field{width:100%}.input::placeholder,.page .field::placeholder{color:var(--tf-color-ink-mute)}.page .field.ng-invalid{border-left-width:1px}.field-label,label.f{display:block;margin:.625rem 0 .25rem;font-family:var(--tf-font-sans);font-size:var(--tf-text-sm);color:var(--tf-color-ink-soft)}.search-box{position:relative}.page .search-box{display:inline-flex;align-items:center}.search-box .search-icon{position:absolute;left:1rem;width:20px;height:20px;color:var(--tf-color-ink-mute);pointer-events:none}.search-box .input{padding-left:2.75rem}.checkbox{width:18px;height:18px;accent-color:var(--tf-color-primary-ink);cursor:pointer}.segmented{display:inline-flex;border:1px solid var(--tf-color-rule-strong);border-radius:var(--tf-radius-base)}.segmented>:first-child{border-top-left-radius:var(--tf-radius-base);border-bottom-left-radius:var(--tf-radius-base)}.segmented>:last-child{border-top-right-radius:var(--tf-radius-base);border-bottom-right-radius:var(--tf-radius-base)}.segmented button:focus-visible{position:relative;z-index:1}.segmented button{height:36px;padding:0 .875rem;border:0;background:var(--tf-color-surface);color:var(--tf-color-ink-soft);font-family:var(--tf-font-sans);font-size:var(--tf-text-sm);cursor:pointer;transition:background var(--tf-transition-duration) var(--tf-transition-ease)}.segmented button+button{border-left:1px solid var(--tf-color-rule)}.segmented button[aria-pressed=true]{background:var(--tf-color-primary-ink);color:var(--tf-color-text-on-primary)}:focus-visible{outline:none;border-color:var(--tf-color-primary);box-shadow:0 0 0 3px var(--tf-color-primary-soft)}@media (min-width: 1025px){.shell .content .store-header{left:var(--tf-shell-sidebar-width);right:0;width:auto}}@media (max-width: 1024px){.shell .content .store-header{top:var(--tf-shell-topbar-height)}.shell .content .main-content{padding-top:calc(var(--header-height) + var(--tf-shell-topbar-height))}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.table-wrap{overflow-x:auto;background:var(--tf-color-surface);border:1px solid var(--tf-color-rule);border-radius:var(--tf-radius-xl)}.table-wrap table{width:100%;border-collapse:collapse;font-family:var(--tf-font-sans);font-size:var(--tf-text-sm)}.table-wrap th,.table-wrap td{padding:.625rem .75rem;border-bottom:1px solid var(--tf-color-rule);text-align:left}.table-wrap th{position:sticky;top:0;z-index:1;background:var(--tf-color-surface);font-size:var(--tf-text-xs);font-weight:var(--tf-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-color-ink-mute)}.table-wrap tbody tr{transition:background var(--tf-transition-duration) var(--tf-transition-ease)}.table-wrap tbody tr:hover{background:var(--tf-color-surface-alt)}.table-wrap tbody tr:last-child td{border-bottom:none}.table-wrap .num,.table-wrap th.num,.table-wrap td.num{text-align:right;font-variant-numeric:tabular-nums}.th-sort{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.th-sort .sort-icon{opacity:0;transition:opacity var(--tf-transition-duration) var(--tf-transition-ease)}.th-sort:hover .sort-icon{opacity:.4}th[aria-sort=ascending] .th-sort .sort-icon,th[aria-sort=descending] .th-sort .sort-icon{opacity:1;animation:tfSortArrowFadeIn .2s ease-out}.table-wrap td.row-actions,.table-wrap th.row-actions{position:sticky;right:0;background:var(--tf-color-surface);text-align:right;white-space:nowrap}.tf-skeleton{background-image:linear-gradient(90deg,var(--tf-color-surface-alt) 25%,var(--tf-color-rule) 37%,var(--tf-color-surface-alt) 63%);background-size:400% 100%;animation:tfSkeletonShimmer 1.4s ease-in-out infinite;border-radius:var(--tf-radius-base)}.tf-skeleton-line{height:.875rem;margin-bottom:.625rem}.tf-skeleton-line:last-child{margin-bottom:0;width:60%}.tf-skeleton-card{height:140px;border-radius:var(--tf-radius-lg)}@keyframes tfSortArrowFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes tfModalOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tfModalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes tfNotificationSlideIn{0%{opacity:0;transform:translate(100%) translateY(-20px)}to{opacity:1;transform:translate(0) translateY(0)}}@keyframes tfProgressBar{0%{width:100%}to{width:0%}}@keyframes tfSkeletonShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width: 1024px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}body.tf-sheet-open{overflow:hidden}}@media (max-width: 799px){.page{padding:1rem}.grid,.grid-2,.grid-3{grid-template-columns:1fr}.table-wrap{overflow-x:visible;border:0;border-radius:0;background:transparent}.table-wrap thead{display:none}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block}.table-wrap tr{margin-bottom:1rem;padding:1rem;border:1px solid var(--tf-color-rule);border-radius:var(--tf-radius-lg);background:var(--tf-color-surface);box-shadow:var(--tf-shadow-sm)}.table-wrap td{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px dashed var(--tf-color-rule);text-align:right}.table-wrap td:last-child{border-bottom:none;padding-bottom:0}.table-wrap td:before{content:attr(data-label);margin-right:1rem;color:var(--tf-color-ink-soft);font-weight:var(--tf-font-weight-semibold);text-align:left}.table-wrap td:not([data-label]):before{content:none}.table-wrap td.row-actions,.table-wrap th.row-actions{position:static;justify-content:flex-end}.table-wrap td.hide-799{display:none}}@media (max-width: 480px){.toolbar,.action-cluster{flex-direction:column;align-items:stretch}.toolbar>*,.action-cluster>*{width:100%}.toolbar .btn,.action-cluster .btn{width:100%}.toolbar .input,.toolbar select.input{min-width:0;width:100%}.table-wrap td.hide-480{display:none}}@media (prefers-reduced-motion: reduce){.btn,.card,.input,select.input,.page .field,.segmented button,.table-wrap tbody tr,.th-sort .sort-icon{transition:none!important}.page .btn:hover:not(:disabled),.page .btn:active:not(:disabled){transform:none}.btn .spinner,.tf-skeleton,th[aria-sort=ascending] .th-sort .sort-icon,th[aria-sort=descending] .th-sort .sort-icon{animation:none!important}.tf-skeleton{background-image:none;background-color:var(--tf-color-surface-alt)}}@media print{.page .toolbar,.page .action-cluster,.page .btn,.page .linklike,.page .row-actions{display:none!important}.card,.table-wrap{box-shadow:none;border-color:var(--tf-color-rule-strong);break-inside:avoid}.table-wrap{overflow:visible;border-radius:0}.table-wrap thead{display:table-header-group}.table-wrap th{position:static}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--tf-font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--tf-color-bg);color:var(--tf-color-text);min-height:100vh}html,body{height:100%}.ng-valid[required],.ng-valid.required{border-left:5px solid var(--tf-color-success)}.ng-invalid:not(form){border-left:5px solid var(--tf-color-error)}@media (max-width: 768px){.auth-card,.home-card{margin:10px;padding:30px 20px}}
