:root{--surface:#fff;--page:#f6f7f9;--strong-text:#17202a;--body-text:#3f4b5a;--muted-text:#667085;--border:#d8dde5;--footer-surface:#f2f4f7;--success-surface:#f0fdf4;--success-footer:#dcfce7;--success-border:#86efac;--success-text:#166534;--warning-surface:#fff7ed;--warning-text:#9a3412;--danger-surface:#fef2f2;--danger-border:#fca5a5;--danger-text:#991b1b;--sans:system-ui, "Segoe UI", Roboto, Arial, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--body-text);background:var(--page);font:16px/1.5 var(--sans);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}#root{min-height:100svh}button,input,textarea,select{font:inherit}h1{color:var(--strong-text);letter-spacing:0;margin:0;font-size:2rem;line-height:1.12}p{margin:0}@media (width>=720px){h1{font-size:2.5rem}}.app-shell{min-height:100svh;padding-bottom:calc(112px + env(safe-area-inset-bottom));box-sizing:border-box}.app-header{box-sizing:border-box;width:min(960px,100%);margin:0 auto;padding:24px 16px 18px}.app-content{box-sizing:border-box;width:min(960px,100%);margin:0 auto;padding:0 16px 40px}.app-header{gap:10px;display:grid}.app-header__gateway{border:1px solid var(--border);width:fit-content;color:var(--muted-text);background:var(--surface);font-family:var(--mono);border-radius:6px;margin:0;padding:4px 8px;font-size:.78rem}.app-header__date{color:var(--muted-text);font-size:1rem}.role-switcher{max-width:360px;color:var(--muted-text);gap:6px;font-size:.86rem;font-weight:700;display:grid}.role-switcher select{border:1px solid var(--border);min-height:42px;color:var(--strong-text);background:var(--surface);font:inherit;border-radius:8px;padding:0 10px}.role-switcher small{color:var(--muted-text);font-weight:600}.pwa-global{box-sizing:border-box;gap:10px;width:min(960px,100%);margin:0 auto 18px;padding:0 16px;display:grid}.pwa-update,.pwa-offline,.pwa-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:10px;padding:12px;display:grid}.pwa-update{border-color:var(--success-border);color:var(--success-text);background:var(--success-surface)}.pwa-offline{border-color:var(--warning-text);color:var(--warning-text);background:var(--warning-surface)}.pwa-offline span,.pwa-panel p{color:var(--body-text)}.pwa-panel__actions{flex-wrap:wrap;gap:10px;display:flex}.pwa-update button,.pwa-panel button{border:1px solid var(--strong-text);min-height:44px;color:var(--surface);background:var(--strong-text);cursor:pointer;border-radius:8px;padding:0 14px;font-weight:750}.pwa-panel__secondary{color:var(--strong-text)!important;background:var(--surface)!important}.employee-navigation{z-index:10;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);grid-template-columns:1fr auto;gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #1018281a}.employee-navigation__primary{gap:6px;display:flex;overflow-x:auto}.employee-navigation__button,.employee-navigation__more summary,.employee-navigation__menu button{border:1px solid var(--border);min-height:48px;color:var(--strong-text);background:var(--surface);cursor:pointer;border-radius:8px;font-weight:750}.employee-navigation__button{place-items:center;gap:2px;min-width:112px;padding:6px;font-size:.85rem;display:grid}.employee-navigation__button strong{color:var(--success-text);font-size:.72rem}.employee-navigation__button--active{border-color:var(--strong-text);background:var(--footer-surface)}.employee-navigation__more{position:relative}.employee-navigation__more summary{place-items:center;min-width:64px;list-style:none;display:grid}.employee-navigation__more summary::-webkit-details-marker{display:none}.employee-navigation__menu{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:8px;width:min(220px,100vw - 24px);padding:10px;display:grid;position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 14px 32px #1018282e}.employee-navigation__menu button{text-align:left;width:100%;padding:0 12px}.today-page,.feature-page{gap:22px;display:grid}.feature-intro{gap:8px;display:grid}.feature-intro h2,.placeholder-page h2,.done-list h3{color:var(--strong-text);margin:0;line-height:1.2}.feature-intro p,.placeholder-page p{color:var(--muted-text)}.placeholder-page{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;padding:20px;display:grid}.placeholder-page .task-action-button{width:fit-content;min-width:140px;padding:0 18px}.form-page{gap:20px;display:grid}.work-form{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;padding:18px;display:grid}.form-success{border:1px solid var(--success-border);color:var(--success-text);background:var(--success-surface);border-radius:8px;gap:12px;padding:16px;font-weight:750;display:grid}.form-success .task-action-button{width:fit-content;min-width:150px;padding:0 18px}.form-actions{gap:10px;display:grid}.checkbox-field{min-height:44px;color:var(--strong-text);align-items:center;gap:10px;font-weight:750;display:flex}.checkbox-field input{width:22px;height:22px}.today-message{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:18px;padding:18px}.today-message--error{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger-surface)}.today-sections{gap:28px;display:grid}.task-section{gap:14px;display:grid}.task-section h2{color:var(--strong-text);margin:0;font-size:1.2rem;line-height:1.2}.task-section__empty{border:1px dashed var(--border);color:var(--muted-text);background:var(--surface);border-radius:8px;padding:18px}.task-section__list{gap:12px;display:grid}.task-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:grid;overflow:hidden;box-shadow:0 1px 2px #1018280f}.task-card--completed{border-color:var(--success-border);background:var(--success-surface)}.task-card__body{gap:14px;padding:18px;display:grid}.task-card__header{gap:10px;display:grid}.task-card h3{color:var(--strong-text);margin:0;font-size:1.08rem;line-height:1.25}.task-card__priority{border:1px solid var(--border);width:fit-content;color:var(--strong-text);background:var(--page);border-radius:999px;padding:5px 9px;font-size:.86rem;font-weight:650}.task-card__instructions{color:var(--body-text)}.task-card__details{gap:10px;margin:0;display:grid}.task-card__details>div{gap:2px;display:grid}.task-card__details dt{color:var(--muted-text);font-size:.82rem}.task-card__details dd{color:var(--strong-text);margin:0;font-weight:650}.task-card__overdue{color:var(--warning-text);background:var(--warning-surface);border-radius:6px;margin:0;padding:10px 12px;font-weight:650}.task-card__failed{color:var(--danger-text);background:var(--danger-surface);border-radius:6px;margin:0;padding:10px 12px;font-weight:650}.task-card__footer{border-top:1px solid var(--border);min-height:48px;color:var(--muted-text);background:var(--footer-surface);padding:12px 18px;font-weight:650}.task-card--completed .task-card__footer{color:var(--success-text);background:var(--success-footer)}.done-list{gap:14px;display:grid}.done-card{border:1px solid var(--success-border);background:var(--success-surface);border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #1018280f}.done-card__body{gap:14px;padding:18px;display:grid}.done-card h4{color:var(--strong-text);margin:0;font-size:1.08rem}.done-card__details{gap:10px;margin:0;display:grid}.done-card__details>div{gap:2px;display:grid}.done-card__details dt{color:var(--muted-text);font-size:.82rem}.done-card__details dd{color:var(--strong-text);margin:0;font-weight:650}.done-card__footer{border-top:1px solid var(--success-border);background:var(--success-footer);padding:12px 18px}.owner-control-page{gap:30px}.review-card,.history-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #1018280f}.review-card__body,.history-card{gap:14px;padding:18px;display:grid}.review-card h3,.history-card h3{color:var(--strong-text);margin:0;font-size:1.08rem}.review-card__details,.history-card__details{gap:10px;margin:0;display:grid}.review-card__details>div,.history-card__details>div{gap:2px;display:grid}.review-card__details dt,.history-card__details dt{color:var(--muted-text);font-size:.82rem}.review-card__details dd,.history-card__details dd{color:var(--strong-text);margin:0;font-weight:650}.review-card__actions{border-top:1px solid var(--border);background:var(--footer-surface);gap:10px;padding:12px 18px;display:grid}.task-action-button--danger{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger-surface)}.history-filters{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:12px;padding:16px;display:grid}.history-list{gap:12px;display:grid}.history-card__header{gap:6px;display:grid}.history-card__header span{color:var(--muted-text);font-weight:650}.task-actions{gap:10px;width:100%;display:grid}.task-action-button,.failure-dialog button{border:1px solid var(--border);min-height:44px;color:var(--strong-text);background:var(--surface);cursor:pointer;border-radius:8px;font-weight:750}.task-action-button--primary,.failure-dialog button[type=submit]{border-color:var(--strong-text);color:var(--surface);background:var(--strong-text)}.task-action-button:disabled,.failure-dialog button:disabled,.failure-dialog select:disabled,.failure-dialog textarea:disabled{cursor:not-allowed;opacity:.58}.task-actions__note{color:var(--success-text);align-self:center}.task-actions__success{color:var(--success-text);align-self:center;font-weight:750}.progress-summary{border:1px solid var(--border);background:var(--footer-surface);border-radius:8px;gap:8px;margin:0;padding:12px;display:grid}.progress-summary>div{gap:2px;display:grid}.progress-summary dt{color:var(--muted-text);font-size:.82rem}.progress-summary dd{color:var(--strong-text);margin:0;font-weight:750}.dialog-backdrop{z-index:20;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#1118278c;place-items:end stretch;display:grid;position:fixed;inset:0}.failure-dialog{width:min(520px,100%);max-height:calc(100svh - 32px - env(safe-area-inset-bottom));background:var(--surface);border-radius:10px;margin:0 auto;overflow:auto;box-shadow:0 20px 40px #1018283d}.failure-dialog form{gap:18px;padding:20px;display:grid}.failure-dialog__header{gap:6px;display:grid}.failure-dialog h2{color:var(--strong-text);margin:0;font-size:1.25rem}.failure-dialog__header p{color:var(--muted-text)}.field{color:var(--strong-text);gap:6px;font-weight:700;display:grid}.field select,.field input,.field textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--strong-text);background:var(--surface);border-radius:8px;padding:10px 12px}.field input[type=file]{padding:9px 10px}.field textarea{resize:vertical}.field-error{color:var(--danger-text);font-weight:700}.failure-dialog__actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width>=720px){.app-shell{padding-bottom:0}.app-header{padding:40px 28px 22px}.app-content{padding:0 28px 56px}.pwa-global{padding:0 28px}.employee-navigation{border:1px solid var(--border);box-sizing:border-box;width:min(960px,100%);box-shadow:none;border-radius:8px;grid-template-columns:auto auto;justify-content:space-between;margin:0 auto 28px;padding:8px 28px;position:sticky;top:0;bottom:auto}.employee-navigation__primary{display:flex}.employee-navigation__button{min-width:132px;padding:6px 14px}.task-card__header{grid-template-columns:1fr auto;align-items:start}.task-card__details{grid-template-columns:repeat(3,minmax(0,1fr))}.done-card__details{grid-template-columns:repeat(4,minmax(0,1fr))}.review-card__details,.history-card__details,.history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.review-card__actions{grid-template-columns:repeat(3,minmax(0,max-content))}.history-card__header{grid-template-columns:1fr auto;align-items:start}.task-actions{grid-template-columns:repeat(2,minmax(0,max-content)) 1fr;align-items:center}.form-actions{grid-template-columns:repeat(2,minmax(0,220px))}.task-actions__note{justify-self:end}.dialog-backdrop{place-items:center}}@media (width<=380px){.failure-dialog__actions{grid-template-columns:1fr}}
