*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f8f9fa;--color-surface: #ffffff;--color-border: #e0e0e0;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-contractor: #3b82f6;--color-contractor-bg: #eff6ff;--color-eigenleistung: #f97316;--color-eigenleistung-bg: #fff7ed;--color-site-visit: #8b5cf6;--color-site-visit-bg: #f5f3ff;--color-holiday: #9ca3af;--color-holiday-bg: #f9fafb;--color-vacation: #9ca3af;--color-vacation-bg: #f9fafb;--color-current-bg: #fefce8;--color-current-border: #fbbf24;--radius: 8px;--font: system-ui, -apple-system, sans-serif}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}#app{max-width:700px;margin:0 auto;padding:0 16px 80px}.site-header{position:sticky;top:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;margin:0 -16px;padding:12px 16px}.site-header__title h1{font-size:1.1rem;font-weight:700}.site-header__address{font-size:.85rem;color:var(--color-text-muted)}.progress{height:6px;background:var(--color-border);border-radius:99px;margin:8px 0 4px;overflow:hidden}.progress__bar{height:100%;background:var(--color-current-border);border-radius:99px;transition:width .3s ease}.progress__label{font-size:.8rem;color:var(--color-text-muted)}.week-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}.week{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.week--current{border-color:var(--color-current-border);background:var(--color-current-bg);scroll-margin-top:90px}.week--past{opacity:.6}.week__header{list-style:none;cursor:pointer;padding:12px 16px;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.week__header::-webkit-details-marker{display:none}.week__header:before{content:"▶";font-size:.75rem;color:var(--color-text-muted);transition:transform .2s ease;flex-shrink:0}details[open]>.week__header:before{transform:rotate(90deg)}.week--current .week__header:before{color:#92400e}.week--current .week__header{color:#92400e}.week__body{padding:0 16px 12px;display:flex;flex-direction:column;gap:6px}.entry{display:grid;grid-template-columns:90px 80px 1fr;gap:8px;align-items:start;padding:6px 8px;border-radius:6px;font-size:.875rem}@media(max-width:480px){.entry{grid-template-columns:1fr;gap:2px}}.entry--contractor{background:var(--color-contractor-bg)}.entry--eigenleistung{background:var(--color-eigenleistung-bg);font-weight:600}.entry--site-visit{background:var(--color-site-visit-bg)}.entry--holiday{background:var(--color-holiday-bg)}.entry--vacation{background:var(--color-vacation-bg)}.entry__pill{font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:99px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;align-self:center}.entry--contractor .entry__pill{background:var(--color-contractor);color:#fff}.entry--eigenleistung .entry__pill{background:var(--color-eigenleistung);color:#fff}.entry--site-visit .entry__pill{background:var(--color-site-visit);color:#fff}.entry--holiday .entry__pill,.entry--vacation .entry__pill{background:var(--color-holiday);color:#fff}.entry__days{color:var(--color-text-muted);font-size:.8rem}.entry__body{display:flex;flex-direction:column}.entry__company{font-weight:500}.entry__task{color:var(--color-text-muted)}.entry--eigenleistung .entry__task{color:#c2410c;font-weight:600}.site-footer{margin-top:32px;border-top:1px solid var(--color-border);padding-top:16px;font-size:.875rem}.contact{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.contact a{color:var(--color-contractor)}.update-info summary{cursor:pointer;color:var(--color-text-muted);font-size:.8rem;-webkit-user-select:none;user-select:none}.update-info__body{margin-top:8px;color:var(--color-text-muted);font-size:.8rem;display:flex;flex-direction:column;gap:6px}.update-info__body code{background:var(--color-bg);padding:1px 4px;border-radius:4px;font-size:.75rem}.update-info__body ol{padding-left:20px;display:flex;flex-direction:column;gap:4px}
