:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,sans-serif;--color-bg: #f5f5f4;--color-surface: #ffffff;--color-surface-sunken: #fafaf9;--color-border: #e7e5e4;--color-border-strong: #d6d3d1;--color-text: #1c1917;--color-text-muted: #78716c;--color-nav-bg: #1c1917;--color-nav-text: #f5f5f4;--color-nav-text-muted: #a8a29e;--color-nav-border: #383433;--color-accent: #f59e0b;--color-accent-hover: #d97706;--color-accent-text: #1c1917;--color-brand-mark-bg: var(--color-nav-bg);--color-brand-mark-fg: var(--color-accent);--color-danger: #dc2626;--color-danger-bg: #fee2e2;--color-danger-text: #991b1b;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-success-text: #166534;--color-info: #2563eb;--color-info-bg: #dbeafe;--color-info-text: #1e40af;--color-warning: #d97706;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-neutral-bg: #e7e5e4;--color-neutral-text: #57534e;--radius: 4px;--radius-sm: 2px;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .06);--shadow-md: 0 2px 8px rgba(28, 25, 23, .1)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:700;line-height:1.2;margin:0 0 .5rem}h1{font-size:1.5rem}h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding-bottom:.5rem;margin-top:0}p{margin:0 0 .75rem}a{color:var(--color-info)}a,button{touch-action:manipulation}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-nav{background:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border)}.app-nav-bar{display:flex;align-items:center;gap:.5rem;padding:0 .75rem}.app-nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;padding:0 .75rem}.app-nav .brand{display:flex;align-items:center;gap:.5rem;padding:.75rem .75rem .75rem 0;margin-right:.5rem;font-weight:800;letter-spacing:.02em;color:var(--color-nav-text);white-space:nowrap}.app-nav .brand-mark{width:26px;height:26px;border-radius:var(--radius-sm);flex-shrink:0}.app-nav .spacer{flex:1}.app-nav a,.app-nav .navbutton{display:inline-flex;align-items:center;min-height:44px;padding:.5rem .75rem;color:var(--color-nav-text-muted);text-decoration:none;font-weight:600;font-size:.85rem;border-bottom:3px solid transparent;white-space:nowrap}.app-nav a:hover{color:var(--color-nav-text)}.app-nav a.active{color:var(--color-nav-text);border-bottom-color:var(--color-accent)}.app-nav .user-chip{color:var(--color-nav-text-muted);font-size:.85rem;padding:0 .5rem}.nav-toggle{display:none}@media(max-width:720px){.nav-toggle{display:inline-flex;min-height:40px;padding:.4rem .75rem;font-size:.8rem;background:transparent;border-color:var(--color-nav-border);color:var(--color-nav-text)}.app-nav-bar{padding:.5rem .75rem}.app-nav-bar .brand{padding:0;margin-right:0}.app-nav-links{display:none;flex-direction:column;align-items:stretch;padding:0 .75rem .75rem;gap:0}.app-nav-links.open{display:flex}.app-nav-links .spacer{display:none}.app-nav-links a,.app-nav-links button{width:100%;justify-content:flex-start;border-bottom:none;border-left:3px solid transparent}.app-nav-links a.active{border-left-color:var(--color-accent);background:color-mix(in srgb,white 6%,transparent)}.app-nav-links .user-chip{padding:.5rem .75rem}}.app-content{padding:1.5rem;width:100%;max-width:1080px;margin:0 auto}@media(max-width:520px){.card{padding:1rem}.form-inline{flex-direction:column;align-items:stretch}.form-inline>input,.form-inline>select,.form-inline>button,.form-inline>label{width:100%}.detail-grid{grid-template-columns:1fr}}.app-content--wide{max-width:min(1900px,96vw)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.page-header .eyebrow{text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700;color:var(--color-text-muted);margin-bottom:.15rem}.page-header h1{margin-bottom:.15rem}.page-header .meta{color:var(--color-text-muted);font-size:.9rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem;margin-bottom:1.25rem}.card>h2:first-child{margin-top:-.25rem}.card-table{padding:0;overflow-x:auto}.card-table .data-table{margin:0}.card-table-empty{padding:1rem 1.25rem;margin:0}.week-nav-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.centered-card{max-width:380px;width:100%;margin:0 auto}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-nav-bg);padding:1.5rem}.auth-page .brand{display:flex;align-items:center;gap:.6rem;justify-content:center;color:var(--color-nav-text);font-weight:800;font-size:1.1rem;margin-bottom:1.5rem}.auth-page .brand-mark{width:32px;height:32px;border-radius:var(--radius-sm)}.auth-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.75rem}.auth-card h1{margin-bottom:1rem}.form{display:flex;flex-direction:column;gap:1rem}.form-inline{flex-direction:row;flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:1.25rem}.form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.form label:has(input[type=checkbox]){flex-direction:row;align-items:center;color:var(--color-text);font-weight:400}.form input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent)}.form input,.form select{padding:.55rem .65rem;font-size:.95rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.form input:focus,.form select:focus,.form input:focus-visible,.form select:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;max-width:800px}.form-error{color:var(--color-danger);background:var(--color-danger-bg);padding:.5rem .75rem;border-radius:var(--radius-sm);margin:0;font-size:.9rem}.callout{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid color-mix(in srgb,var(--color-warning) 30%,transparent);padding:.65rem .9rem;border-radius:var(--radius-sm);font-size:.9rem}button,.button-link{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;text-decoration:none;white-space:nowrap;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}button:hover,.button-link:hover{border-color:var(--color-text-muted)}.form button[type=submit],.quick-links .button-link,.page-header .button-link{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.form button[type=submit]:hover,.quick-links .button-link:hover,.page-header .button-link:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--color-success-bg);border-color:color-mix(in srgb,var(--color-success) 40%,transparent);color:var(--color-success-text)}.btn-success:hover{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-danger{background:var(--color-danger-bg);border-color:color-mix(in srgb,var(--color-danger) 40%,transparent);color:var(--color-danger-text)}.btn-danger:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.action-group{display:flex;gap:.5rem}.action-group button{min-height:36px;padding:.4rem .75rem;font-size:.75rem}.app-nav button{min-height:36px;padding:.4rem .75rem;font-size:.8rem;background:transparent;border-color:var(--color-nav-border);color:var(--color-nav-text-muted)}.app-nav button:hover{color:var(--color-nav-text);border-color:var(--color-nav-text-muted)}.quick-links{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.badge-neutral{background:var(--color-neutral-bg);color:var(--color-neutral-text)}.badge-info{background:var(--color-info-bg);color:var(--color-info-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th{text-align:left;padding:.6rem .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border)}.data-table td{padding:.65rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.column-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.column-header-controls{display:flex;gap:.15rem;flex-shrink:0}.column-header-controls button{min-height:20px;min-width:20px;padding:.1rem .3rem;font-size:.65rem;font-weight:400;text-transform:none;letter-spacing:normal;background:transparent;border-color:var(--color-border-strong);color:var(--color-text-muted)}.column-header-controls button:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-muted)}.data-table tbody tr:hover{background:var(--color-surface-sunken)}.data-table td select{padding:.35rem .5rem;font-size:.85rem}.status-cell{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.task-list,.activity-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.task-list label{display:flex;align-items:center;gap:.5rem;font-weight:400;color:var(--color-text)}.task-complete{text-decoration:line-through;opacity:.55}.activity-list li{padding:.6rem 0;border-bottom:1px solid var(--color-border)}.activity-meta{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;font-weight:700;color:var(--color-text-muted)}.activity-photo{max-width:240px;display:block;margin-top:.5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.clock-widget{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.clock-widget p{margin:0;font-weight:600}.offline-badge{background:var(--color-danger);color:#fff;padding:.25rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase}.pending-badge{background:var(--color-accent);color:var(--color-accent-text);padding:.25rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase}.attention-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.attention-list li{padding:.6rem .75rem;border-left:4px solid var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius-sm);font-size:.9rem}.attention-list li a{font-weight:700}.empty-state{color:var(--color-text-muted);font-size:.9rem;padding:.5rem 0}.detail-grid{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;margin:0 0 1rem}.detail-grid dt{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.detail-grid dd{margin:0}.print-page{max-width:800px;margin:0 auto}.print-sheet{background:#fff;color:#000;padding:1rem 0}.print-sheet h1{font-size:1.25rem;color:#000}.print-table{width:100%;border-collapse:collapse;margin:1rem 0}.print-table th,.print-table td{border:1px solid #999;padding:.4rem .6rem;text-align:left;font-size:.85rem}.print-signatures{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.5rem;font-size:.9rem}@media print{.app-nav,.no-print{display:none!important}.app-content{padding:0;max-width:none}body{background:#fff}.print-sheet{page-break-after:always}.print-sheet:last-child{page-break-after:auto}}
