:root{--c-bg:#fff;--c-surface:#f6f7f9;--c-ink:#101828;--c-muted:#475467;--c-line:#e4e7ec;--c-line-strong:#cdd3db;--c-primary:#15803d;--c-primary-dark:#166534;--c-primary-deep:#14532d;--c-primary-soft:#ecfdf3;--c-on-primary:#fff;--c-danger:#b42318;--c-scrim:#10182873;--radius:16px;--radius-lg:22px;--shadow:0 1px 2px #1118270f, 0 4px 14px #1118270f;--tap:52px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);color:var(--c-ink);background:var(--c-surface);-webkit-font-smoothing:antialiased;font-size:16.5px;line-height:1.45}:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px}.home{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.card{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius-lg);width:min(100%,28rem);box-shadow:var(--shadow);text-align:center;padding:32px 24px 28px}.logo{width:min(100%,280px);height:auto;margin:0 auto;display:block}h1{color:var(--c-primary-deep);margin:20px 0 8px;font-size:1.75rem;font-weight:700;line-height:1.2}.note{color:var(--c-muted);margin:0 0 24px}.lang-link{color:var(--c-muted);font:inherit;cursor:pointer;background:0 0;border:0;justify-self:center;min-height:0;margin:4px 0 0;padding:4px 0;font-size:.85rem;font-weight:400;text-decoration:underline}@media (width>=900px){.card{padding:40px 36px 32px}.logo{width:320px}}.app{flex-direction:column;height:100dvh;min-height:100dvh;display:flex;overflow:hidden}.banners{flex-direction:column;display:flex}.banner{text-align:center;background:var(--c-primary-soft);color:var(--c-primary-deep);margin:0;padding:10px 16px}.banner.quiet{background:var(--c-surface);color:var(--c-muted)}.initial{background:var(--c-primary-soft);width:32px;height:32px;color:var(--c-primary-deep);border-radius:50%;justify-content:center;align-items:center;margin-right:8px;font-weight:700;display:inline-flex}.top{background:var(--c-bg);border-bottom:1px solid var(--c-line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.mark{width:132px;margin:0}.top-nav{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.btn{width:100%;min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--c-primary);background:var(--c-primary);color:var(--c-on-primary);font:inherit;cursor:pointer;padding:0 16px;font-weight:700}.top-nav button,.days button{width:auto;min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--c-line-strong);background:var(--c-bg);color:var(--c-ink);font:inherit;cursor:pointer;padding:0 16px;font-weight:700}button:disabled{opacity:.6;cursor:default}.hub>summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.month button{min-height:var(--tap);min-width:0;padding:0}.month button.has-job{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}.shell{flex:auto;align-content:start;gap:16px;width:min(100%,40rem);min-height:0;margin:0 auto;padding:16px 16px 28px;display:grid;overflow:auto}.panel button,.panel select,.panel input,.panel textarea,.panel summary{max-width:100%;min-height:var(--tap)}.panel{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:12px;padding:16px;display:grid}.panel h1,.panel h2{color:var(--c-primary-deep);margin:0;line-height:1.2}.panel h1{font-size:1.6rem}.panel h2{font-size:1.2rem}.choice,.stack,.actions{gap:8px;display:grid}.stack label,.inline{gap:4px;font-weight:700;display:grid}.stack input,.stack select,.stack textarea{width:100%;min-width:0;min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--c-line-strong);background:var(--c-bg);color:var(--c-ink);font:inherit;padding:10px 12px;font-weight:400}.stack textarea{min-height:8rem}.stack input[type=tel]{text-overflow:clip;width:100%;min-width:0;font-size:16.5px}.stack input::placeholder{opacity:1;text-overflow:clip;color:var(--c-muted)}.days{flex-wrap:wrap;gap:8px;display:flex}.drafts{gap:8px;display:grid}.drafts article{border-top:1px solid var(--c-line);gap:8px;padding-top:8px;display:grid}.stack input[type=file]{padding:8px}.days button[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.ob details summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}.ob details ul{gap:8px;margin:0;padding:0 0 8px;list-style:none;display:grid}.ob details li{justify-content:space-between;gap:12px;display:flex}.check{min-height:var(--tap);align-items:center;gap:10px;font-weight:700;display:flex}.check input{width:1.25rem;height:1.25rem;min-height:0}.alert{color:var(--c-danger);margin:0;font-weight:700}.job,.line{border-top:1px solid var(--c-line);gap:4px;padding:12px 0;display:grid}.job:first-of-type,.line:first-of-type{border-top:0;padding-top:0}.muted{color:var(--c-muted);margin:0}.total{justify-content:space-between;align-items:baseline;gap:12px;margin:0;font-size:1.35rem;font-weight:700;display:flex}.totals details summary{min-height:var(--tap);cursor:pointer;color:var(--c-muted);align-items:center;font-weight:700;display:flex}.totals ul{gap:8px;margin:0;padding:0 0 8px;list-style:none;display:grid}.totals li,.note-line{justify-content:space-between;gap:12px;display:flex}.scrim{z-index:30;background:var(--c-scrim);place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.feedback-dock{z-index:20;width:min(100%,40rem);padding:8px 16px calc(12px + env(safe-area-inset-bottom));background:var(--c-surface);border-top:1px solid var(--c-line);flex-direction:column;flex:none;align-items:flex-end;gap:8px;margin:0 auto;display:flex;position:static}.feedback-thanks{border-radius:var(--radius);background:var(--c-bg);border:1px solid var(--c-line);margin:0;padding:8px 12px;font-weight:700}.feedback-fab{border:1px solid var(--c-primary);background:var(--c-primary);min-height:36px;color:var(--c-on-primary);font:inherit;cursor:pointer;box-shadow:var(--shadow);border-radius:999px;padding:0 14px;font-size:.9rem;font-weight:700}.feedback-menu{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius-lg);width:min(22rem,100vw - 24px);max-height:min(70dvh,28rem);box-shadow:var(--shadow);padding:12px;overflow:auto}.feedback-menu textarea{min-height:5rem}.feedback-menu .muted{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feedback-menu.stack .muted button{width:auto;min-height:36px}.feedback-target{outline:3px solid var(--c-primary);outline-offset:2px}html.feedback-picking,html.feedback-picking *{cursor:crosshair}.dialog{background:var(--c-bg);border-radius:var(--radius-lg);width:min(100%,28rem);box-shadow:var(--shadow);gap:12px;padding:20px 16px;display:grid}.dialog h2{color:var(--c-primary-deep);margin:0}.menu-toggle{min-height:var(--tap);align-self:flex-start;margin:8px 16px 0;padding:0 16px}.side-nav{background:var(--c-bg);flex-direction:column;gap:8px;padding:16px;display:none}.side-nav button{min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--c-line-strong);background:var(--c-bg);color:var(--c-ink);font:inherit;text-align:left;cursor:pointer;padding:0 16px;font-weight:700}.app.frame.menu-open .side-nav{z-index:30;display:flex;position:fixed;inset:0;overflow:auto}.frame-main{min-width:0}.sheet{width:100%}.menu-pop{gap:8px;display:grid}.badge{min-height:var(--tap);line-height:var(--tap);border-radius:var(--radius);background:var(--c-primary-soft);color:var(--c-primary-deep);padding:0 12px;font-weight:700;display:inline-block}html,body{overflow-x:clip}@media (width>=1280px){.banner{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;height:2rem;min-height:0;max-height:2rem;padding:0 16px;line-height:2rem;overflow:hidden}}@media (width>=900px){.app.frame{grid-template-rows:auto minmax(0,1fr);grid-template-columns:240px minmax(0,1fr);display:grid}.app.frame.onboarding{flex-direction:column;display:flex}.app.frame.onboarding .frame-main{width:100%}.app.frame>.banners{grid-area:1/1/auto/-1;min-height:0}.app.frame:not(.onboarding)>.side-nav,.app.frame:not(.onboarding)>.frame-main{grid-row:2;min-height:0}.app.frame:not(.onboarding)>.frame-main{flex-direction:column;display:flex;overflow:hidden}.menu-toggle{display:none}.app.frame .side-nav{border-right:1px solid var(--c-line);display:flex}.sheet{max-width:28rem;margin-left:auto}.shell,.feedback-dock{width:min(100%,52rem)}.shell{padding:28px 24px 32px}.scrim{align-items:center}}
