:root{--ut-burnt-orange: #bf5700;--ut-charcoal: #333f48;--ut-white: #ffffff;--ut-bluebonnet: #005f86;--ut-limestone: #d6d2c4;--ut-shade: #9cadb7;--color-destructive: var(--ut-bluebonnet);--focus-ring-color: #005f86;--focus-ring-width: 3px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Open Sans,Arial,sans-serif;color:var(--ut-charcoal);background:var(--ut-white);line-height:1.5}:focus{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.site-header :focus,.site-header :focus-visible{outline-color:var(--ut-white)}.skip-link{position:absolute;top:-100%;left:0;padding:.5rem 1rem;background:var(--ut-charcoal);color:var(--ut-white);font-weight:600;z-index:9999;text-decoration:none}.skip-link:focus,.skip-link:focus-visible{top:0;outline-color:var(--ut-white)}.site-header{background:var(--ut-charcoal);color:var(--ut-white);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem}.site-header__wordmark{display:block}.site-header__title{font-size:1.125rem;font-weight:600;letter-spacing:.01em}.site-main{padding:2rem 1.5rem;max-width:900px;margin:0 auto}.site-footer{border-top:1px solid var(--ut-limestone);padding:1rem 1.5rem;font-size:.875rem;color:var(--ut-charcoal)}.site-footer a{color:var(--ut-charcoal);text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.25rem;font-size:1rem;font-family:inherit;font-weight:600;border:2px solid transparent;border-radius:4px;cursor:pointer;min-height:44px;min-width:44px;text-decoration:none;white-space:nowrap}@media (prefers-reduced-motion: no-preference){.btn{transition:opacity .15s}}.btn:disabled,.btn[aria-disabled=true]{background-color:var(--ut-limestone);color:var(--ut-charcoal);border-color:var(--ut-limestone);cursor:not-allowed;pointer-events:none}.btn--primary{background-color:var(--ut-burnt-orange);color:var(--ut-white);border-color:var(--ut-burnt-orange)}.btn--primary:hover:not(:disabled):not([aria-disabled=true]){opacity:.88}.btn--secondary{background-color:transparent;color:var(--ut-charcoal);border-color:var(--ut-charcoal)}.btn--secondary:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--ut-limestone)}.site-header__user{display:flex;align-items:center;gap:.75rem;margin-left:auto}.site-header__user-name{font-size:.875rem;white-space:nowrap}.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}.skeleton{display:block;background:linear-gradient(90deg,var(--ut-limestone) 25%,var(--ut-white) 50%,var(--ut-limestone) 75%);background-size:200% 100%;border-radius:4px;height:1em}@media (prefers-reduced-motion: no-preference){.skeleton{animation:skeleton-pulse 1.5s ease-in-out infinite}}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton--heading{height:1.75rem;width:280px;max-width:100%;margin-bottom:1.5rem}.skeleton--line{height:2.5rem;width:100%;margin-bottom:.5rem}.skeleton--form{height:8rem;width:100%;margin-top:1.5rem}.error-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border:1px solid var(--color-destructive);border-radius:4px;color:var(--color-destructive);background:var(--ut-white);margin-bottom:1.5rem}.timesheet-header-band{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--ut-limestone);flex-wrap:wrap;gap:.5rem}.timesheet-period-label{font-size:1.125rem;font-weight:600;margin:0}.timesheet-totals-chip{font-size:.875rem;padding:.25rem .75rem;border-radius:999px;background:var(--ut-white);border:1px solid var(--ut-limestone);white-space:nowrap}.empty-state{padding:2rem 0;text-align:center;font-style:italic;color:var(--ut-charcoal)}.lines-list{list-style:none;padding:0;margin:0 0 2rem}.line-row{display:flex;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--ut-limestone);align-items:center;flex-wrap:wrap}.line-row__meta{flex:1;min-width:160px}.line-row__category{font-weight:600;display:block}.line-row__description{font-size:.875rem;color:var(--ut-charcoal);opacity:.8}.weekly-strip{display:flex;gap:.25rem}.week-cell{display:flex;flex-direction:column;align-items:center;gap:.125rem;min-width:36px}.week-cell__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7785}.week-cell__value{font-size:.875rem;font-weight:600}.line-row__total{font-weight:600;min-width:48px;text-align:right}.add-line-form{background:var(--ut-white);padding:1.5rem;border-radius:4px;border:1px solid var(--ut-limestone);margin-top:2rem}.add-line-form__title{font-size:1rem;font-weight:600;margin:0 0 .5rem}.add-line-form__required-note{font-size:.875rem;margin:0 0 1rem;color:var(--ut-charcoal)}.add-line-form__row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;align-items:flex-end}.add-line-form__field{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:160px}.add-line-form__label{font-size:.875rem;font-weight:600}.add-line-form__select,.add-line-form__input{padding:.375rem .625rem;border:1px solid var(--ut-charcoal);border-radius:4px;font-family:inherit;font-size:1rem;min-height:44px;background:var(--ut-white);color:var(--ut-charcoal)}.add-line-form__select:focus-visible,.add-line-form__input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.add-line-form__hours-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.add-line-form__day{display:flex;flex-direction:column;align-items:center;gap:.25rem}.add-line-form__day-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.add-line-form__day-input{width:60px;padding:.375rem .25rem;text-align:center;border:1px solid var(--ut-charcoal);border-radius:4px;font-family:inherit;font-size:1rem;min-height:44px;background:var(--ut-white);color:var(--ut-charcoal)}.add-line-form__day-input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.add-line-form__error{color:var(--color-destructive);font-size:.875rem;margin-top:.5rem}.add-line-form__empty-categories{font-size:.875rem;color:var(--ut-charcoal);font-style:italic;margin:0}.add-line-form__error{display:flex;align-items:center;gap:.375rem}.error-banner__icon{flex-shrink:0;font-size:1.25rem}.add-line-form__submit{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
