html{color-scheme:light;height:100%;--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html.app-dark{color-scheme:dark}:root{--app-space-xs: 4px;--app-space-sm: 8px;--app-space-md: 12px;--app-space-lg: 16px;--app-radius: 8px;--app-content-max-width: 1400px;--app-login-width: 440px;--app-dialog-width: 480px;--app-drawer-width: 256px;--app-drawer-collapsed-width: 72px;--app-card-min-width: 220px;--app-form-group-min-width: 352px;--app-side-panel-width: 520px;--app-side-panel-wide-width: 960px;--app-chart-height: 320px;--app-logo-color: light-dark(#1f2d5c, #b4c2ea);--app-status-warning: #fab219;--app-change-good: light-dark(#006e2c, #0ca30c);--app-chart-1: light-dark(#2a78d6, #3987e5);--app-chart-2: light-dark(#eb6834, #d95926);--app-chart-3: light-dark(#1baf7a, #199e70);--app-chart-4: light-dark(#eda100, #c98500);--app-chart-5: light-dark(#e87ba4, #d55181);--app-chart-6: light-dark(#008300, #008300);--app-chart-7: light-dark(#6250d6, #9085e9);--app-chart-8: light-dark(#e34948, #e66767)}body{background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0;height:100%}.spacer{flex:1}.hint{color:var(--mat-sys-on-surface-variant)}.error-text{color:var(--mat-sys-error)}.page-header{display:flex;align-items:center;gap:var(--app-space-sm)}.table-scroll{overflow-x:auto}.data-table{width:100%}.data-table .data-table-number{text-align:right}.data-table .data-table-empty td{padding:var(--app-space-lg);color:var(--mat-sys-on-surface-variant)}.data-table .data-table-highlight>td{background-color:#8080801f}.data-table .data-table-actions{display:flex;flex-wrap:wrap;gap:var(--app-space-xs)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--app-card-min-width)),1fr));grid-auto-rows:1fr;gap:var(--app-space-lg);margin:var(--app-space-lg) 0}.card-grid>app-numeric-card{display:block;min-width:0}.card-grid .numeric-card{height:100%;box-sizing:border-box}.numeric-card-label{font:var(--mat-sys-label-large);color:var(--mat-sys-on-surface-variant)}.numeric-card-value{font:var(--mat-sys-headline-medium);margin:var(--app-space-xs) 0}.numeric-card-change{display:flex;align-items:center;gap:var(--app-space-xs);font:var(--mat-sys-body-medium)}.numeric-card-change mat-icon{font-size:18px;width:18px;height:18px}.numeric-card-change-good{color:var(--app-change-good)}.numeric-card-change-bad{color:var(--mat-sys-error)}.numeric-card-change-neutral{color:var(--mat-sys-on-surface-variant)}.numeric-card-hint{margin-top:var(--app-space-xs);font:var(--mat-sys-body-small)}.app-chart{display:block;width:100%;min-width:0}.app-chart-canvas{display:block;width:100%;height:var(--app-chart-height)}.period-selector{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-md);margin:var(--app-space-sm) 0}.period-selector mat-form-field{width:11rem}.load-state{margin:var(--app-space-lg) 0}.load-state-error{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-sm);color:var(--mat-sys-error)}@media(max-width:959.98px){.data-table,.data-table tbody,.data-table .mat-mdc-row{display:block}.data-table .mat-mdc-header-row{display:none}.data-table .mat-mdc-row{height:auto;padding:var(--app-space-sm) 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.data-table .mat-mdc-cell{display:flex;gap:var(--app-space-sm);padding:var(--app-space-xs) var(--app-space-lg);border-bottom:none;overflow-wrap:anywhere}.data-table .mat-mdc-cell[data-label]:before{content:attr(data-label);flex:0 0 7rem;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-label-large)}.data-table .data-table-number{text-align:left}}.shell-toolbar{gap:var(--app-space-sm);--mat-toolbar-container-background-color: var(--mat-sys-primary-container);--mat-toolbar-container-text-color: var(--mat-sys-on-primary-container)}.shell-title{font:var(--mat-sys-title-large);color:inherit;text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-shell{display:flex;flex-direction:column;height:100%}.shell-container{flex:1}.shell-drawer{--mat-sidenav-container-width: var(--app-drawer-width);transition:width .15s ease}.shell-drawer .mat-divider{margin:2px 0}.shell-drawer.shell-drawer-collapsed{--mat-sidenav-container-width: var(--app-drawer-collapsed-width)}.shell-drawer.shell-drawer-collapsed .mat-mdc-list-item{padding-left:0;padding-right:0}.shell-drawer.shell-drawer-collapsed .mat-mdc-list-item .mdc-list-item__start{margin-left:auto;margin-right:auto}.shell-drawer.shell-drawer-collapsed .mat-mdc-list-item .mdc-list-item__content{display:none}.shell-user{font:var(--mat-sys-body-medium)}.shell-content{padding:var(--app-space-lg);max-width:var(--app-content-max-width);margin:0 auto}@media print{.shell-drawer{display:none}html,body,app-shell,.shell-container,.shell-container .mat-drawer-content{height:auto;overflow:visible}app-shell{display:block}.shell-container .mat-drawer-content{margin-left:0!important}}.section-header{flex-wrap:wrap;column-gap:var(--app-space-lg)}.section-header h1{margin-bottom:0}.section-updated{margin:var(--app-space-sm) 0 0}.section-refresh{margin-top:var(--app-space-sm)}.home-hero{display:flex;align-items:center;gap:calc(var(--app-space-lg) * 2);margin:var(--app-space-lg) 0 calc(var(--app-space-lg) * 2)}.home-logo{display:block;flex:0 0 auto;width:132px}.home-welcome{animation:home-rise .6s ease-out .2s both}.home-greeting{font:var(--mat-sys-display-small);margin:0 0 var(--app-space-sm)}.home-intro{font:var(--mat-sys-body-large);color:var(--mat-sys-on-surface-variant);max-width:60ch;margin:0}.home-heading{font:var(--mat-sys-title-medium);margin:calc(var(--app-space-lg) * 2) 0 var(--app-space-md)}.home-sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--app-space-md)}.home-section{display:flex;align-items:flex-start;gap:var(--app-space-md);padding:var(--app-space-lg);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);background-color:var(--mat-sys-surface);color:inherit;text-decoration:none;transition:border-color .15s ease-out,background-color .15s ease-out}.home-section:hover,.home-section:focus-visible{border-color:var(--mat-sys-primary);background-color:var(--mat-sys-surface-container-low)}.home-section:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:2px}.home-section-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:50%;background-color:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container)}.home-section-text{display:flex;flex-direction:column;gap:var(--app-space-xs)}.home-section-name{font:var(--mat-sys-title-medium)}.home-section-description{font:var(--mat-sys-body-medium);color:var(--mat-sys-on-surface-variant)}.home-notes{max-width:75ch;margin:0;padding-left:1.25rem;color:var(--mat-sys-on-surface-variant)}.home-notes li{margin-bottom:var(--app-space-xs)}.home-empty{font:var(--mat-sys-body-large);max-width:60ch}@media(max-width:599.98px){.home-hero{flex-direction:column;align-items:flex-start;gap:var(--app-space-lg)}.home-logo{width:96px}.home-greeting{font:var(--mat-sys-headline-medium)}}.logo{display:block;width:100%;height:auto;overflow:visible;color:var(--app-logo-color)}.logo-c,.logo-arrow path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.logo-c{stroke-width:16}.logo-arrow path{stroke-width:5}.logo-name{fill:currentColor;font:800 15px/1 Roboto,sans-serif;letter-spacing:.5px}.logo-animated .logo-c{stroke-dasharray:100;stroke-dashoffset:100;animation:logo-draw 1s cubic-bezier(.65,0,.35,1) .1s forwards}.logo-animated .logo-name{opacity:0;animation:logo-appear .6s ease-out .7s forwards}.logo-animated .logo-arrow{opacity:0}.logo-animated .logo-arrow-in{animation:logo-arrow-in .55s cubic-bezier(.2,.8,.2,1) 1s forwards}.logo-animated .logo-arrow-out{animation:logo-arrow-out .55s cubic-bezier(.2,.8,.2,1) 1.15s forwards}@keyframes logo-draw{to{stroke-dashoffset:0}}@keyframes logo-appear{to{opacity:1}}@keyframes logo-arrow-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes logo-arrow-out{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}@keyframes home-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.home-welcome,.logo-animated .logo-c,.logo-animated .logo-name,.logo-animated .logo-arrow{animation:none;opacity:1;stroke-dashoffset:0}.home-section{transition:none}}.cost-report-note,.api-usage-note,.ga-note,.jira-note{margin:0}.cost-report-panel,.api-usage-panel,.ga-panel,.jira-panel{margin:var(--app-space-lg) 0 calc(var(--app-space-lg) * 2)}.cost-report-panel h2,.api-usage-panel h2,.ga-panel h2,.jira-panel h2{font:var(--mat-sys-title-medium);margin:0}.cost-report-panel>h2,.api-usage-panel>h2,.ga-panel>h2,.jira-panel>h2{margin-bottom:var(--app-space-md)}.cost-report-panel-header,.api-usage-panel-header,.ga-panel-header,.jira-panel-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--app-space-md);margin-bottom:var(--app-space-md)}.cost-report-panel-controls,.api-usage-panel-controls,.ga-panel-controls,.jira-panel-controls{display:flex;flex-wrap:wrap;gap:var(--app-space-sm)}.cost-report-search,.api-usage-search,.ga-search{width:16rem;max-width:100%}.api-usage-controls{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--app-space-md)}.api-usage-filters{display:flex;flex-wrap:wrap;gap:var(--app-space-md);margin:var(--app-space-sm) 0}.api-usage-filter{width:14rem;max-width:100%}.api-usage-consumer-filter{width:22rem}.api-usage-refreshing{margin-bottom:var(--app-space-sm)}.ga-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--app-space-lg)}@media(max-width:599.98px){.ga-feature-grid{grid-template-columns:minmax(0,1fr)}}.ga-choice{width:11rem;max-width:100%}.ga-table-header{margin-top:var(--app-space-lg)}.ga-about{margin:var(--app-space-sm) 0 var(--app-space-lg)}.ga-about summary{cursor:pointer;color:var(--mat-sys-primary);font:var(--mat-sys-label-large)}.ga-about dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--app-space-xs) var(--app-space-md);margin:var(--app-space-md) 0 var(--app-space-sm)}.ga-about dt{font-weight:500}.ga-about dd{margin:0}@media(max-width:599.98px){.ga-about dl{grid-template-columns:1fr}.ga-about dd{margin-bottom:var(--app-space-sm)}}.ga-bars-few{--app-chart-height: 200px}.ga-bars-many{--app-chart-height: 420px}.ga-subtitle{font:var(--mat-sys-title-small);margin:0 0 var(--app-space-sm)}.jira-tabs{margin-top:var(--app-space-lg)}.jira-tab{padding-top:var(--app-space-lg)}.jira-panel:focus:not(:focus-visible){outline:none}.jira-drill-hint{display:flex;align-items:center;gap:var(--app-space-xs);margin:calc(var(--app-space-xs) * -1) 0 var(--app-space-sm);color:var(--mat-sys-primary);font:var(--mat-sys-label-medium)}.jira-drill-hint .mat-icon{font-size:18px;width:18px;height:18px}.jira-placeholder{margin:var(--app-space-lg) 0}.jira-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--app-space-lg)}@media(max-width:959.98px){.jira-grid{grid-template-columns:minmax(0,1fr)}}.jira-subtitle{font:var(--mat-sys-title-small);margin:0 0 var(--app-space-sm)}.jira-jobs-summary{margin:0 0 var(--app-space-md)}.jira-jobs-search{width:16rem;max-width:100%;margin-bottom:var(--app-space-sm)}.jira-timesheet-controls{display:flex;flex-wrap:wrap;gap:var(--app-space-md);margin-bottom:var(--app-space-md)}.jira-timesheet-choice{width:9rem}.jira-timesheet-person{display:inline-flex;align-items:center;gap:var(--app-space-xs);padding:0;border:none;background:none;color:var(--mat-sys-primary);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.jira-timesheet-person .mat-icon{font-size:16px;width:16px;height:16px}.jira-timesheet-people{display:none;flex-wrap:wrap;gap:var(--app-space-sm);margin-bottom:var(--app-space-md)}@media(max-width:959.98px){.jira-timesheet-people{display:flex}}.jira-timesheet-all{border-bottom:1px solid var(--mat-sys-outline-variant)}.jira-timesheet-all .mat-pseudo-checkbox{display:none}.jira-timesheet-staff{width:18rem;max-width:100%}.jira-timesheet-legend{display:flex;flex-wrap:wrap;gap:var(--app-space-xs) var(--app-space-sm);margin:var(--app-space-md) 0;padding:0;list-style:none;font:var(--mat-sys-label-medium)}.jira-timesheet-legend li{display:inline-flex;align-items:center;gap:var(--app-space-xs);padding:2px var(--app-space-sm);border-radius:var(--app-radius);border:1px solid var(--mat-sys-outline-variant)}.jira-timesheet-legend .mat-icon{font-size:16px;width:16px;height:16px}.jira-timesheet{width:100%;border-collapse:collapse;font:var(--mat-sys-body-medium)}.jira-timesheet th,.jira-timesheet td{height:2.25rem;padding:0 var(--app-space-sm);border-bottom:1px solid var(--mat-sys-outline-variant);text-align:left;vertical-align:middle;white-space:nowrap}.jira-timesheet thead th{font:var(--mat-sys-label-large);color:var(--mat-sys-on-surface-variant);white-space:nowrap}.jira-timesheet tbody th{font-weight:500;white-space:nowrap}.jira-timesheet .ts-row-note{margin-left:var(--app-space-sm);font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant);display:inline-block;max-width:8rem;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.jira-timesheet .ts-time{vertical-align:middle}.jira-timesheet .ts-flag{display:inline-flex;align-items:center;margin-left:var(--app-space-xs);vertical-align:middle}.jira-timesheet .ts-flag .mat-icon{font-size:16px;width:16px;height:16px}.jira-timesheet .ts-flag-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ts-tooFew{background:color-mix(in srgb,#d03b3b 16%,transparent)}.ts-tooMany{background:color-mix(in srgb,#fab219 28%,transparent)}.ts-wfh{background:color-mix(in srgb,var(--app-chart-1) 12%,transparent)}.ts-rdo,.ts-inactive{background:color-mix(in srgb,var(--mat-sys-on-surface) 8%,transparent);color:var(--mat-sys-on-surface-variant)}tr.ts-row-weekend,.jira-timesheet-legend .ts-row-weekend{background:color-mix(in srgb,var(--mat-sys-on-surface) 6%,transparent)}tr.ts-row-future,.jira-timesheet-legend .ts-row-future{background:color-mix(in srgb,var(--app-chart-7) 9%,transparent);color:var(--mat-sys-on-surface-variant);font-style:italic}tr.ts-row-holiday,.jira-timesheet-legend .ts-row-holiday{background:color-mix(in srgb,var(--app-chart-3) 16%,transparent)}tr.ts-row-today,.jira-timesheet-legend .ts-row-today{background:color-mix(in srgb,var(--mat-sys-primary) 14%,transparent)}tr.ts-row-today>*{border-top:2px solid var(--mat-sys-primary);border-bottom:2px solid var(--mat-sys-primary)}.jira-timesheet-legend .ts-row-today{border:2px solid var(--mat-sys-primary)}@media(max-width:959.98px){.jira-timesheet,.jira-timesheet tbody,.jira-timesheet tr{display:block}.jira-timesheet thead{display:none}.jira-timesheet tr{padding:var(--app-space-sm) 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.jira-timesheet tbody th{display:block;border:none;padding:var(--app-space-xs) var(--app-space-sm)}.jira-timesheet td{display:flex;flex-wrap:wrap;gap:var(--app-space-sm);border:none}.jira-timesheet td:before{content:attr(data-label);flex:0 0 9rem;color:var(--mat-sys-on-surface-variant);font:var(--mat-sys-label-large)}.jira-timesheet tr.ts-row-today{border:2px solid var(--mat-sys-primary);border-radius:var(--app-radius)}.jira-timesheet tr.ts-row-today>*{border-top:none;border-bottom:none}}.jira-leave-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-md);margin-bottom:var(--app-space-md)}.jira-leave-staff{width:14rem;max-width:100%}.jira-leave-divider{margin:var(--app-space-xs) 0}.jira-leave-date{width:11rem}.jira-leave-search{width:14rem;max-width:100%}.jira-leave-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--app-space-md)}@media(max-width:599.98px){.jira-leave-dates{grid-template-columns:minmax(0,1fr)}}.jira-leave-results{margin:0;padding:0;list-style:none}.jira-leave-results li{display:flex;gap:var(--app-space-sm);padding:var(--app-space-xs) 0}.jira-leave-results .mat-icon{color:var(--app-change-good);flex:none}.jira-leave-results .jira-leave-skipped .mat-icon{color:var(--mat-sys-on-surface-variant)}.jira-leave-viewbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-sm);min-height:40px;margin-bottom:var(--app-space-md)}.jira-leave-selected{margin-left:var(--app-space-sm);font:var(--mat-sys-label-large)}.jira-cal-nav{display:flex;align-items:center;gap:var(--app-space-sm);margin-bottom:var(--app-space-sm)}.jira-cal-title{min-width:10rem;margin:0;text-align:center;font:var(--mat-sys-title-medium)}.jira-cal{display:grid;gap:2px}.jira-cal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.jira-cal-weekday{padding:var(--app-space-xs);text-align:center;font:var(--mat-sys-label-medium);color:var(--mat-sys-on-surface-variant)}.jira-cal-cell{min-width:0}.jira-cal-day{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;height:100%;min-height:6.5rem;padding:var(--app-space-xs);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);background:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-small);text-align:left;cursor:pointer}.jira-cal-day:hover:not(:disabled){border-color:var(--mat-sys-primary)}.jira-cal-day:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:1px}.jira-cal-day:disabled{cursor:default;color:var(--mat-sys-on-surface-variant);opacity:.5}.jira-cal-day.is-weekend{background:color-mix(in srgb,var(--mat-sys-on-surface) 6%,var(--mat-sys-surface))}.jira-cal-day.is-holiday{background:color-mix(in srgb,var(--app-chart-3) 16%,var(--mat-sys-surface))}.jira-cal-day.is-today{border:2px solid var(--mat-sys-primary)}.jira-cal-day.is-selected{background:color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-surface));border-color:var(--mat-sys-primary)}.jira-cal-number{font:var(--mat-sys-label-large)}.jira-cal-holiday,.jira-cal-entry,.jira-cal-more{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.jira-cal-holiday,.jira-cal-more{font:var(--mat-sys-label-small);color:var(--mat-sys-on-surface-variant)}.jira-cal-entries{display:flex;flex-direction:column;gap:2px;min-width:0}.jira-cal-entry{padding:0 var(--app-space-xs);border-left:3px solid var(--app-chart-4);border-radius:2px;background:color-mix(in srgb,var(--app-chart-4) 12%,transparent)}.jira-cal-count{display:none}@media(max-width:599.98px){.jira-cal-day{align-items:center;min-height:3.25rem;padding:2px}.jira-cal-entries,.jira-cal-holiday{display:none}.jira-cal-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 4px;border-radius:999px;background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);font:var(--mat-sys-label-small)}}.jira-cal-selection{margin-top:var(--app-space-md);padding:var(--app-space-sm) var(--app-space-md);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius)}.jira-cal-selection-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--app-space-sm)}.jira-cal-list{margin:0;padding:0;list-style:none}.jira-cal-list-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-xs) var(--app-space-md);width:100%;padding:var(--app-space-sm);border:none;border-top:1px solid var(--mat-sys-outline-variant);background:none;color:inherit;font:var(--mat-sys-body-medium);text-align:left;cursor:pointer}.jira-cal-list-item:hover{background:color-mix(in srgb,var(--mat-sys-on-surface) 6%,transparent)}.jira-cal-list-item:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:-2px}.jira-cal-list-item .mat-icon{margin-left:auto;color:var(--mat-sys-on-surface-variant)}.jira-cal-list-comments{color:var(--mat-sys-on-surface-variant)}.jira-staff-section{margin-bottom:var(--app-space-lg)}.jira-staff-section h3{margin:0 0 var(--app-space-sm);font:var(--mat-sys-title-medium)}.jira-staff-section h4{margin:0 0 var(--app-space-sm);font:var(--mat-sys-title-small)}.jira-staff-show{width:11rem}.jira-staff-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--app-space-sm);margin-bottom:var(--app-space-sm)}.jira-staff-heading h3{margin:0}.jira-staff-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--app-space-md)}.jira-staff-details .jira-staff-flags,.jira-staff-details .jira-staff-actions,.jira-staff-details .error-text{grid-column:1/-1}@media(max-width:599.98px){.jira-staff-details{grid-template-columns:minmax(0,1fr)}}.jira-staff-flags{display:flex;flex-wrap:wrap;gap:var(--app-space-lg);margin:var(--app-space-sm) 0}.jira-staff-actions{display:flex;justify-content:flex-end;gap:var(--app-space-sm)}.jira-staff-row-form{margin-top:var(--app-space-md);padding:var(--app-space-md);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius)}.jira-staff-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 var(--app-space-sm)}@media(max-width:599.98px){.jira-staff-days{grid-template-columns:repeat(3,minmax(0,1fr))}}.jira-staff-expiry{display:flex;align-items:center;gap:var(--app-space-xs)}.jira-staff-expiry .mat-icon{flex:none;color:var(--app-status-warning)}.jira-staff-expiry.is-ended,.jira-staff-expiry.is-ended .mat-icon{color:var(--mat-sys-error)}.data-table-icon{vertical-align:middle;margin-right:var(--app-space-xs);font-size:18px;width:18px;height:18px;color:var(--app-status-warning)}.data-table-icon.data-table-icon-error{color:var(--mat-sys-error)}.jira-staff-warning{display:flex;align-items:center;gap:var(--app-space-xs);color:var(--mat-sys-error)}.jira-staff-warning .mat-icon{flex:none}.jira-bars-few{--app-chart-height: 200px}.jira-bars-many{--app-chart-height: 420px}.invoice-settings{padding:var(--app-space-lg) 0}.invoice-settings-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--app-space-md);margin-bottom:var(--app-space-lg)}.invoice-settings-toolbar .hint{flex:1 1 24rem;margin:0}.invoice-settings-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--app-form-group-min-width)),1fr));gap:var(--app-space-lg)}.invoice-settings-group{min-width:0;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);padding:var(--app-space-md) var(--app-space-lg)}.invoice-settings-legend{font:var(--mat-sys-title-small);margin:0 0 var(--app-space-sm)}.invoice-settings-values{display:grid;grid-template-columns:max-content 1fr;gap:var(--app-space-xs) var(--app-space-lg);margin:0}.invoice-settings-values dt{color:var(--mat-sys-on-surface-variant)}.invoice-settings-values dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}@media(max-width:599.98px){.invoice-settings-values{grid-template-columns:1fr;gap:0}.invoice-settings-values dd{margin-bottom:var(--app-space-sm)}}.invoice-template{padding:var(--app-space-lg) 0}.invoice-template>.hint{margin:0 0 var(--app-space-lg)}.invoice-template-file{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-md);border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);padding:var(--app-space-md) var(--app-space-lg)}.invoice-template-icon{color:var(--mat-sys-primary)}.invoice-template-details{flex:1 1 16rem;min-width:0}.invoice-template-details .hint{margin:0}.invoice-template-name{font:var(--mat-sys-title-small);margin:0;overflow-wrap:anywhere}.invoice-template-actions{display:flex;flex-wrap:wrap;gap:var(--app-space-sm)}.invoice-template-picker{display:none}.data-table .data-table-clickable{cursor:pointer}.data-table .data-table-clickable:hover,.data-table .data-table-clickable:focus-visible{background:var(--mat-sys-surface-container-high)}.data-table .data-table-clickable:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:-2px}.data-table-link{margin-right:var(--app-space-sm);white-space:nowrap;color:var(--mat-sys-primary)}.side-panel{--mat-dialog-container-shape: 0;--mat-dialog-container-max-width: 100vw;--mat-dialog-container-small-max-width: 100vw;animation:side-panel-in .2s ease-out}.side-panel .mat-mdc-dialog-surface{display:flex;flex-direction:column}.side-panel .mat-mdc-dialog-content{flex:1;max-height:none}@keyframes side-panel-in{0%{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.side-panel{animation:none}}.side-panel-header{display:flex;align-items:center;padding-right:var(--app-space-sm)}.side-panel-header .mat-mdc-dialog-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-panel-form{display:flex;flex-direction:column;gap:var(--app-space-sm);padding-top:var(--app-space-xs)}.side-panel-group{display:flex;flex-direction:column;min-width:0;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);padding:var(--app-space-sm) var(--app-space-md)}.side-panel-actions{border-top:1px solid var(--mat-sys-outline-variant)}.app-destructive{--mat-button-filled-container-color: var(--mat-sys-error);--mat-button-filled-label-text-color: var(--mat-sys-on-error);--mat-button-filled-state-layer-color: var(--mat-sys-on-error)}.side-panel-delete{--mat-button-text-label-text-color: var(--mat-sys-error)}.registrations-overview{--app-card-min-width: 150px;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--app-card-min-width)),1fr))}.registrations-tabs{margin-top:var(--app-space-lg)}@media(min-width:960px){.registrations-tabs .data-table .mat-mdc-header-cell,.registrations-tabs .data-table .mat-mdc-cell{padding:0 var(--app-space-sm)}}.registrations-list{margin-top:calc(var(--app-space-lg) * 2)}.registrations-list h2{font:var(--mat-sys-title-medium);margin:0 0 var(--app-space-xs)}.registrations-list>.hint{margin:0 0 var(--app-space-md)}.registrations-list .registrations-toolbar{padding-top:0}.registrations-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-md);padding:var(--app-space-lg) 0}.registrations-search{flex:1 1 var(--app-card-min-width)}.user-panel-reminder{display:flex;align-items:center;gap:var(--app-space-xs);margin:0 0 var(--app-space-sm)}@media(max-width:599.98px){.shell-toolbar{padding-inline:var(--app-space-sm)}.shell-title{font:var(--mat-sys-title-medium)}.shell-user{display:none}.shell-content{padding:var(--app-space-md)}}.login{position:relative;min-height:100%;display:grid;place-items:center;padding:var(--app-space-lg);box-sizing:border-box;overflow:hidden;isolation:isolate;background:linear-gradient(150deg,#101a3a 0%,var(--app-logo-color) 45%,#1d4f9a 100%)}.login-backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none}.login-backdrop:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.5px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to top,black 20%,transparent 85%);mask-image:linear-gradient(to top,black 20%,transparent 85%)}.login-glow{position:absolute;width:55vmax;height:55vmax;border-radius:50%;filter:blur(40px);opacity:.5;animation:login-drift 22s ease-in-out infinite alternate}.login-glow-1{top:-25vmax;left:-15vmax;background:radial-gradient(circle,#3987e5 0%,transparent 65%)}.login-glow-2{bottom:-30vmax;right:-20vmax;background:radial-gradient(circle,#1baf7a 0%,transparent 60%);opacity:.35;animation-duration:28s;animation-direction:alternate-reverse}.login-glow-3{top:30%;right:10%;width:30vmax;height:30vmax;background:radial-gradient(circle,#9085e9 0%,transparent 65%);opacity:.3;animation-duration:18s}.login-chart{position:absolute;left:0;right:0;bottom:0;width:100%;height:45%}.login-chart-bars rect{fill:#ffffff12;transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);animation:login-bar .9s cubic-bezier(.2,.8,.2,1) forwards}.login-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:logo-draw 2.4s cubic-bezier(.65,0,.35,1) 1.2s forwards}.login-chart-line-1{stroke:#3987e5cc}.login-chart-line-2{stroke:#1baf7a99;animation-delay:1.6s}.login-stack{width:min(100%,var(--app-login-width));display:flex;flex-direction:column;align-items:center;gap:var(--app-space-lg)}.login-card{width:100%;overflow:hidden;position:relative;box-shadow:0 24px 60px #00000059;animation:login-rise .6s cubic-bezier(.2,.8,.2,1) both}.login-progress{position:absolute;top:0;left:0;right:0}.login-brand{display:flex;align-items:center;gap:var(--app-space-md);padding:var(--app-space-lg) var(--app-space-lg) var(--app-space-sm)}.login-logo{flex:none;width:72px}.login-title{margin:0;font:var(--mat-sys-title-large);color:var(--app-logo-color)}.login-subtitle{margin:2px 0 0;font:var(--mat-sys-body-medium);color:var(--mat-sys-on-surface-variant)}.login-form{display:flex;flex-direction:column;gap:var(--app-space-sm)}.login-form mat-form-field{width:100%}.login-form .mat-icon{color:var(--mat-sys-on-surface-variant)}.login-step{animation:login-step .35s ease-out both}.login-actions{display:flex;flex-wrap:wrap;gap:var(--app-space-sm)}.login-tagline{margin:0;text-align:center;font:var(--mat-sys-body-medium);color:#fffc;animation:login-rise .6s cubic-bezier(.2,.8,.2,1) .4s both}@keyframes login-drift{0%{transform:translate(0) scale(1)}to{transform:translate(8vmax,6vmax) scale(1.15)}}@keyframes login-bar{to{transform:scaleY(1)}}@keyframes login-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes login-step{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.login-glow,.login-card,.login-step,.login-tagline{animation:none}.login-chart-bars rect{animation:none;transform:none}.login-chart-line{animation:none;stroke-dashoffset:0}}.admin-toolbar{padding:var(--app-space-lg) 0}.admin-row-actions{white-space:nowrap;text-align:right}@media(max-width:959.98px){.data-table .admin-row-actions{justify-content:flex-end}}.admin-log-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--app-space-md);margin:var(--app-space-lg) 0 var(--app-space-sm)}.admin-log-email{width:18rem;max-width:100%}.admin-log-date{width:11rem}.user-form{display:flex;flex-direction:column;gap:var(--app-space-md);width:var(--app-dialog-width);max-width:100%;padding:var(--app-space-xs) 0 var(--app-space-sm)}.user-form .hint{margin:0}.user-sections{display:flex;flex-direction:column;border:1px solid var(--mat-sys-outline-variant);border-radius:var(--app-radius);padding:var(--app-space-sm) var(--app-space-md)}.user-section-level{margin:0 0 var(--app-space-sm) calc(var(--app-space-lg) * 2);max-width:calc(100% - var(--app-space-lg) * 2)}
