@import"https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Condensed:wght@500;600;700&display=swap";:root{color-scheme:light;--color-bg: #f2f2f3;--color-surface: #e9e9ea;--color-border: color-mix(in srgb, #1d1f20 14%, transparent);--color-border-strong: color-mix(in srgb, #1d1f20 28%, transparent);--color-text: #1d1f20;--color-text-muted: color-mix(in srgb, #1d1f20 55%, transparent);--color-primary: #5980a6;--color-primary-hover: #416180;--color-primary-contrast: #f2f2f3;--color-accent: #597ea3;--color-accent-tint: #eef6ff;--color-accent-tint-strong: #d6ebff;--color-accent-text: #2c455d;--color-danger: #9c5245;--color-danger-bg: color-mix(in srgb, #9c5245 12%, var(--color-bg));--color-warning-bg: color-mix(in srgb, #a9803a 14%, var(--color-bg));--color-warning-text: #7a5b1e;--color-success-bg: color-mix(in srgb, #4f7f5c 14%, var(--color-bg));--color-success-text: #3d6b49;--color-focus: var(--color-primary);--radius: 0px;--radius-lg: 0px;--space-1: .2rem;--space-2: .4rem;--space-3: .65rem;--space-4: .85rem;--space-5: 1.25rem;--space-6: 1.7rem;--space-8: 2.4rem;--font-sans: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading: "Barlow Condensed", var(--font-sans);--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow-sm: 0 1px 2px color-mix(in srgb, #1d1f20 14%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, #1d1f20 16%, transparent)}.card,.btn-primary{background-repeat:no-repeat;background-image:linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong)),linear-gradient(var(--color-border-strong),var(--color-border-strong));background-size:1px 9px,9px 1px,1px 9px,9px 1px,1px 9px,9px 1px,1px 9px,9px 1px;background-position:left 6px top 2px,left 2px top 6px,right 6px top 2px,right 2px top 6px,left 6px bottom 2px,left 2px bottom 6px,right 6px bottom 2px,right 2px bottom 6px}.btn-primary{background-image:linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent)),linear-gradient(color-mix(in srgb,var(--color-primary-contrast) 70%,transparent),color-mix(in srgb,var(--color-primary-contrast) 70%,transparent))}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.15;font-weight:600;letter-spacing:-.01em;margin:0 0 var(--space-3)}h1{font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.2rem}p{margin:0 0 var(--space-3)}a{color:var(--color-primary);text-underline-offset:3px}a:hover{color:var(--color-primary-hover)}.skip-link{position:absolute;left:-999px;top:0;background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-2) var(--space-4);z-index:100}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.app-shell{display:flex;min-height:100vh}.app-nav{background:var(--color-bg);border-right:1px solid var(--color-border);width:220px;flex-shrink:0;padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-5)}.app-nav .brand{font-family:var(--font-heading);font-size:1.3rem;font-weight:600;color:var(--color-primary);text-decoration:none}.app-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.app-nav a{display:block;padding:var(--space-2) var(--space-3);color:var(--color-text);text-decoration:none;font-weight:500;font-size:.95rem}.app-nav a:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.app-nav a[aria-current=page]{background:var(--color-primary);color:var(--color-primary-contrast)}.app-nav .user-box{margin-top:auto;border-top:1px solid var(--color-border);padding-top:var(--space-4);font-size:.9rem}.app-nav .user-role{display:inline-block;margin-top:var(--space-1);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary)}.app-main{flex:1;min-width:0;padding:var(--space-6)}.app-topbar{display:none}.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-size:1.3rem;cursor:pointer}.page-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.card{position:relative;background-color:transparent;border:1px solid var(--color-border);padding:var(--space-5);margin-bottom:var(--space-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);background:transparent;color:var(--color-text);font-family:var(--font-heading);font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}.btn:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.btn:active{background:color-mix(in srgb,var(--color-text) 12%,transparent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{position:relative;background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active{background-color:#2c455d;border-color:#2c455d}.btn-danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-bg)}.btn-sm{min-height:36px;padding:var(--space-1) var(--space-3);font-size:.85rem}.field{margin-bottom:var(--space-4)}.field label{display:block;font-weight:500;margin-bottom:var(--space-1);font-size:.85rem;color:color-mix(in srgb,var(--color-text) 75%,transparent)}.field .hint{font-size:.8rem;color:var(--color-text-muted);margin-top:var(--space-1)}.field .error{font-size:.85rem;color:var(--color-danger);margin-top:var(--space-1);font-weight:600}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],select,textarea{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);font-size:1rem;font-family:inherit;background:var(--color-surface);color:var(--color-text)}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--color-primary);outline-offset:0}textarea{min-height:88px;resize:vertical}input:invalid,.field.has-error input,.field.has-error select{border-color:var(--color-danger)}.checkbox-row{display:flex;align-items:center;gap:var(--space-2)}.checkbox-row input{width:auto;min-height:auto}.banner{padding:var(--space-3) var(--space-4);border:1px solid transparent;margin-bottom:var(--space-4);font-size:.92rem;display:flex;gap:var(--space-2);align-items:flex-start}.banner-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:color-mix(in srgb,var(--color-success-text) 30%,transparent)}.banner-error{background:var(--color-danger-bg);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 30%,transparent)}.banner-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:color-mix(in srgb,var(--color-warning-text) 30%,transparent)}.banner-info{background:var(--color-accent-tint);color:var(--color-accent-text);border-color:color-mix(in srgb,var(--color-accent-text) 25%,transparent)}.status-pill{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid transparent}.status-open{background:color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text)}.status-submitted{background:var(--color-accent-tint);color:var(--color-accent-text)}.status-returned{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-approved{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-accent-text)}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}th{font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:color-mix(in srgb,var(--color-text) 3%,transparent)}.table-scroll{overflow-x:auto;margin-bottom:var(--space-5)}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.timer-display{font-family:var(--font-heading);font-size:2.9rem;font-weight:600;font-variant-numeric:tabular-nums}.budget-bar{height:8px;background:var(--color-border);overflow:hidden;margin:var(--space-2) 0}.budget-bar-fill{height:100%;background:var(--color-primary)}.budget-bar-fill.near{background:#a9803a}.budget-bar-fill.over{background:var(--color-danger)}.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}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:var(--space-2)}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.entry-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);background:transparent}@media (max-width: 860px){.app-shell{flex-direction:column}.nav-toggle{display:inline-flex}.app-topbar{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4);position:sticky;top:0;z-index:20}.app-topbar .brand{font-family:var(--font-heading);color:var(--color-primary);font-weight:600;text-decoration:none}.app-nav{display:none}.app-nav.is-open{display:flex;position:sticky;top:61px;width:100%;max-height:calc(100vh - 61px);overflow-y:auto;z-index:15;border-right:none;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-nav.is-open .brand{display:none}.app-main{padding:var(--space-4)}.week-grid{grid-template-columns:1fr}.timer-display{font-size:2.1rem}.page-header{flex-direction:column;align-items:stretch}.field{min-width:0}input,select,textarea{max-width:100%}}@media (max-width: 480px){.heatmap-cell{width:1.1rem;height:1.1rem}.calendar-cell{min-height:3.6rem;padding:var(--space-1)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2);margin-bottom:var(--space-2)}.calendar-weekday{font-size:.72rem;font-weight:600;color:var(--color-text-muted);text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2)}.calendar-cell{padding:var(--space-2);min-height:4.5rem;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--color-border)}.calendar-cell-daynum{font-size:.78rem;font-weight:600}.calendar-cell-hours{font-size:.72rem}.calendar-cell-today{border-color:var(--color-primary);border-width:2px}.calendar-cell-green{background:var(--color-success-bg);color:var(--color-success-text)}.calendar-cell-yellow{background:var(--color-warning-bg);color:var(--color-warning-text)}.calendar-cell-red{background:var(--color-danger-bg);color:var(--color-danger)}.calendar-cell-neutral{background:color-mix(in srgb,var(--color-text) 4%,transparent);color:var(--color-text-muted)}.heatmap-table{border-collapse:collapse}.heatmap-table th,.heatmap-table td{padding:2px;text-align:center}.heatmap-table th[scope=row]{text-align:left;padding-right:var(--space-3);white-space:nowrap;font-weight:600}.heatmap-weekend-header{color:var(--color-text-muted)}.heatmap-cell{width:1.4rem;height:1.4rem}.heatmap-cell-green{background:#4f7f5c}.heatmap-cell-yellow{background:#a9803a}.heatmap-cell-red{background:var(--color-danger)}.heatmap-cell-neutral{background:color-mix(in srgb,var(--color-text) 10%,transparent)}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.overview-grid h3{font-size:.9rem;font-family:var(--font-sans);font-weight:600;margin:0 0 var(--space-3) 0;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.chart-bars{display:flex;flex-direction:column;gap:var(--space-2)}.chart-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,2fr) 3.5rem;align-items:center;gap:var(--space-2)}.chart-label{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-track{background:color-mix(in srgb,var(--color-text) 8%,transparent);height:8px;overflow:hidden}.chart-fill{height:100%;background:var(--color-primary)}.chart-fill-accent{background:var(--color-accent-text)}.chart-value{font-size:.8rem;color:var(--color-text-muted);text-align:right}@media (max-width: 860px){.overview-grid{grid-template-columns:1fr}.chart-row{grid-template-columns:minmax(0,1fr) minmax(60px,1.5fr) 3rem}}
