:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color-scheme:light dark;color:#1c1c1e;background-color:#f2f2f7}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}@media(prefers-color-scheme:dark){:root{color:#f2f2f7;background-color:#1c1c1e}}.export-body{display:flex;flex-direction:column;gap:1rem}.pdf-only{display:none}.pdf-export .pdf-only{display:flex}.pdf-export .no-pdf{display:none!important}.pdf-export,.pdf-export *{color:#111!important}.pdf-export{background:#fff!important}.pdf-export .today-card{background:#fff!important;border:1px solid #ccc!important;box-shadow:none!important}.pdf-export .check-box{border-color:#555!important}.pdf-export .check-box--done{background:#34c759!important;border-color:#34c759!important;color:#fff!important}.pdf-export .check-row--done .check-label{text-decoration:none;opacity:1}.pdf-export .cal__dot--covered{color:#34c759!important}.pdf-export .cal__dot--open{color:#ff9500!important}.export-head{align-items:center;gap:.9rem;margin-bottom:.75rem}.export-logo{height:56px;width:auto}.export-title{font-size:1.4rem;font-weight:700}.export-sub{font-size:.95rem;opacity:.75}.wizard{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;padding:1.25rem;border:1px solid rgba(127,127,127,.2);border-radius:.75rem;background:#ffffff80}@media(prefers-color-scheme:dark){.wizard{background:#0003}}.wizard__banner{margin:0;padding:.6rem .85rem;border-radius:.5rem;font-size:.9rem;background:#ff950026;border:1px solid rgba(255,149,0,.4)}.wizard__content{min-height:220px}.wizard__nav{display:flex;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid rgba(127,127,127,.2)}.wizard__step{flex:1;text-align:center;font-size:.9rem;opacity:.7}.wizard__btn{min-height:44px;min-width:88px;padding:.5rem 1.1rem;border-radius:.5rem;border:1px solid rgba(127,127,127,.4);background:transparent;font:inherit;cursor:pointer}.wizard__btn:disabled{opacity:.4;cursor:not-allowed}.wizard__btn--primary{background:#007aff;border-color:#007aff;color:#fff;font-weight:600}.wizard__btn--primary:disabled{background:#007aff66;border-color:transparent}.wizard__btn--ghost{background:transparent}.wizard-intro{display:flex;flex-direction:column;gap:1rem}.wizard-intro__header{display:flex;align-items:center;gap:.75rem}.wizard-intro__icon{font-size:2.5rem}.wizard-intro h2{margin:0;font-size:1.4rem}.wizard-intro__hint{margin:0;opacity:.65;font-size:.9rem}.wizard-intro__description{margin:0;line-height:1.5}.wizard-intro__last{padding:1rem;border-radius:.5rem;background:#7f7f7f1a}.wizard-intro__last h3{margin:0 0 .5rem;font-size:1rem}.wizard-intro__last dl{margin:0}.wizard-intro__row{display:flex;justify-content:space-between;gap:1rem;padding:.15rem 0;font-size:.95rem}.wizard-intro__row dt{opacity:.7;margin:0}.wizard-intro__row dd{margin:0;font-weight:500}.wizard-intro__empty{margin:0;opacity:.7}.wizard-intro__sheet-link{display:inline-block;margin-top:.5rem;font-size:.95rem}.wizard-screen{display:flex;flex-direction:column;gap:1.25rem}.wizard-section{margin:0;padding:.75rem 1rem 1rem;border:1px solid rgba(127,127,127,.25);border-radius:.5rem}.wizard-section legend{padding:0 .4rem;font-weight:600;font-size:.95rem}.field{display:flex;flex-direction:column;gap:.3rem;padding:.4rem 0}.field__label{font-size:.9rem;opacity:.75}.field__required{color:#ff3b30;font-weight:700}.field__input{min-height:44px;padding:.5rem .7rem;border:1px solid rgba(127,127,127,.35);border-radius:.4rem;font:inherit;font-size:1rem;background:var(--field-bg, transparent);color:inherit;width:100%}.field__input:focus{outline:2px solid rgb(0,122,255);outline-offset:-1px}.field__input:disabled{opacity:.65;background:#7f7f7f14}.field__input--bold{font-weight:700}.field__input--large{font-size:1.15rem}.field__input--large-bold{font-size:1.4rem;font-weight:700}.field__input--textarea{min-height:3rem;line-height:1.4;resize:vertical;white-space:pre-wrap}.field__percent{position:relative;display:flex;align-items:center}.field__input--percent{padding-right:2.2rem}.field__percent-suffix{position:absolute;right:.85rem;opacity:.65;pointer-events:none}.field__picker{display:flex;flex-direction:column;gap:.3rem}.field__picker-toggle{display:flex;align-items:center;gap:.35rem;font-size:.85rem;opacity:.8}.field__picker-toggle input{width:1rem;height:1rem}.field__calc{min-height:44px;padding:.5rem .7rem;display:flex;align-items:center;font-variant-numeric:tabular-nums}.field__error{margin:0;font-size:.85rem;color:#ff3b30}.grid-form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;padding:1.25rem;border:1px solid rgba(127,127,127,.2);border-radius:.75rem;background:#ffffff80}@media(prefers-color-scheme:dark){.grid-form{background:#0003}}.grid-form__banner{margin:0;padding:.6rem .85rem;border-radius:.5rem;font-size:.9rem;background:#ff950026;border:1px solid rgba(255,149,0,.4)}.grid-form__description{margin:0;line-height:1.5}.grid-form__rows{display:flex;flex-direction:column;gap:1rem}.grid-form__row{position:relative;margin:0;padding:.5rem 1rem .85rem;border:1px solid rgba(127,127,127,.25);border-radius:.5rem}.grid-form__row-legend{padding:0 .4rem;font-weight:600;font-size:.9rem;opacity:.75}.grid-form__remove{position:absolute;top:.4rem;right:.4rem;min-height:44px;min-width:44px;border:none;background:transparent;color:#ff3b30;font-size:1.1rem;cursor:pointer;opacity:.7}.grid-form__remove:hover{opacity:1}.grid-form__actions{display:flex;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid rgba(127,127,127,.2)}.grid-form__count{flex:1;text-align:center;font-size:.9rem;opacity:.7}.grid-form__btn{min-height:44px;min-width:88px;padding:.5rem 1.1rem;border-radius:.5rem;border:1px solid rgba(127,127,127,.4);background:transparent;font:inherit;cursor:pointer}.grid-form__btn:disabled{opacity:.4;cursor:not-allowed}.grid-form__btn--primary{background:#007aff;border-color:#007aff;color:#fff;font-weight:600}.grid-form__btn--primary:disabled{background:#007aff66;border-color:transparent}.grid-form__btn--ghost{background:transparent}.checklist-progress{margin:.4rem 0 0;text-align:center;font-size:.85rem;font-weight:600;opacity:.7;font-variant-numeric:tabular-nums}.checklist-hint{margin:.6rem 0 0;text-align:center;font-size:.8rem;opacity:.6}.checklist-field{display:flex;flex-direction:column;gap:.3rem;margin-top:.75rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;opacity:.75}.checklist-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.checklist-chip{padding:.35rem .8rem;border:1px solid rgba(127,127,127,.35);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.8rem;opacity:.6;cursor:pointer;-webkit-tap-highlight-color:transparent}.checklist-chip--on{opacity:1;font-weight:600;color:#007aff;border-color:#007aff}.checklist-who{margin:.3rem 0 0;text-align:center;font-size:.9rem;font-weight:600}.checklist-shift__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.checklist-shift__head .today-card__title{margin:0}.checklist-shift__meta{font-size:.75rem;opacity:.55;font-variant-numeric:tabular-nums;white-space:nowrap}.check-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column}.check-row{display:flex;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.55rem 0;background:none;border:none;border-bottom:1px solid rgba(127,127,127,.15);color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.check-list li:last-child .check-row{border-bottom:none}.check-row--readonly{cursor:default}.check-box{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(127,127,127,.5);border-radius:.4rem;font-size:.95rem;line-height:1;color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.check-box--done{background:#34c759;border-color:#34c759}.check-label{flex:1;line-height:1.3}.check-row--done .check-label{opacity:.55;text-decoration:line-through}@media print{.checklist-hint,.checklist-progress,.checklist-controls{display:none!important}.check-box{border-color:#555}.check-row--done .check-label{text-decoration:none;opacity:1}}.sched-controls .report-nav{margin-top:.75rem}.sched-field{display:flex;flex-direction:column;gap:.3rem;margin-top:.75rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;opacity:.75}.sched-modeswitch{margin-top:.75rem}.sched-range{display:flex;gap:.6rem}.sched-range .sched-field{flex:1}.schedule-row__date{width:86px;flex-shrink:0;font-size:.78rem;font-weight:600;opacity:.7;font-variant-numeric:tabular-nums}.sched-group+.sched-group{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(127,127,127,.15)}.sched-group__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-top:.4rem}.sched-group__name{font-weight:700}.sched-note{margin:.75rem 0 0;font-size:.82rem;opacity:.6}.shift-signup{min-height:32px;padding:.25rem .7rem;border:1px solid rgb(0,122,255);border-radius:.5rem;background:transparent;color:#007aff;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.shift-signup:disabled{opacity:.4;cursor:not-allowed}.shift-who{display:inline-flex;align-items:center;gap:.4rem}.shift-x{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:999px;background:#7f7f7f33;color:inherit;font-size:.7rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.shift-open{opacity:.55;font-style:italic}.shift-unassign{min-height:32px;padding:.25rem .7rem;border:1px solid rgba(255,59,48,.6);border-radius:.5rem;background:transparent;color:#ff3b30;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.sched-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:#0006}@media(min-width:540px){.sched-modal{align-items:center}}.sched-modal__card{width:100%;max-width:30rem;max-height:80vh;overflow-y:auto;padding:1rem 1.1rem 1.2rem;border-radius:.9rem;background:#f7f7f9;color:#1c1c1e}@media(prefers-color-scheme:dark){.sched-modal__card{background:#2c2c2e;color:#f2f2f7}}.sched-modal__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sched-modal__head .today-card__title{margin:0}.vol-pick{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:44px;padding:.5rem .6rem;border:1px solid rgba(127,127,127,.25);border-radius:.5rem;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.vol-pick--busy{background:#ff95002e;border-color:#ff950080}.sched-confirm__msg{margin:.5rem 0}.sched-confirm__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.cal__dow{text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.03em;opacity:.55;padding-bottom:.25rem}.cal__cell{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;border:1px solid transparent;border-radius:.5rem;background:#7f7f7f14;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.cal__cell--empty{visibility:hidden}.cal__cell--today{font-weight:700}.cal__cell--sel{border-color:#007aff;background:#007aff1f}.cal__num{font-size:.85rem;font-variant-numeric:tabular-nums}.cal__dot{font-size:.55rem;line-height:1;height:.6rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.cal__dot--covered{color:#34c759}.cal__dot--open{color:#ff9500}.cal__dot--none{color:transparent}.cal__legend{margin:.6rem 0 0;text-align:center;font-size:.78rem;opacity:.7}@media print{.sched-controls,.checklist-hint,.shift-signup,.shift-x{display:none!important}}.tabs{display:flex;flex-direction:column;min-height:100dvh}.tabs__content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem 1.25rem calc(96px + env(safe-area-inset-bottom));box-sizing:border-box}.tabs__bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:.4rem .5rem calc(env(safe-area-inset-bottom) + .4rem);background:#f5f5f7d9;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:1px solid rgba(127,127,127,.25);z-index:10}@media(prefers-color-scheme:dark){.tabs__bar{background:#1c1c1ec7}}.tabs__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;flex:1;max-width:110px;min-height:56px;padding:.3rem .5rem;background:none;border:none;color:inherit;font:inherit;opacity:.55;cursor:pointer;border-radius:.5rem;-webkit-tap-highlight-color:transparent}.tabs__btn:hover{opacity:.8}.tabs__btn--active{opacity:1;color:#007aff}.tabs__icon{font-size:1.4rem;line-height:1}.tabs__label{font-size:.7rem;letter-spacing:.02em}.mode-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:.3rem;margin-bottom:1rem;padding:.3rem .7rem;font:inherit;font-size:.8rem;font-weight:600;color:inherit;border-radius:999px;background:#ff95002e;border:1px solid rgba(255,149,0,.45);cursor:pointer;-webkit-tap-highlight-color:transparent}.settings__mode{margin:0 0 .85rem;line-height:1.5}.settings__edit{display:flex;flex-direction:column;gap:.6rem;max-width:16rem}.tab-page{display:flex;flex-direction:column;gap:1rem}.tab-page__header h2{margin:0;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700}.tab-page__header p{margin:.25rem 0 0;opacity:.7}.stub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;text-align:center;border:1px dashed rgba(127,127,127,.4);border-radius:.75rem;margin-top:1rem}.stub__icon{font-size:3rem;line-height:1}.stub__title{margin:0;font-size:1.2rem;font-weight:600}.stub__body{margin:0;max-width:32rem;opacity:.75;line-height:1.5}.today-card{padding:1rem 1.1rem;border:1px solid rgba(127,127,127,.2);border-radius:.75rem;background:#ffffff80}@media(prefers-color-scheme:dark){.today-card{background:#0003}}.today-card__title{margin:0 0 .6rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.6}.today-header{display:flex;align-items:center;gap:.9rem}.today-header__logo{width:64px;height:64px;flex-shrink:0;object-fit:contain;border-radius:.75rem}.today-header__title{margin:0;font-size:1.15rem;font-weight:700;line-height:1.2}.today-header__subtitle{margin:.1rem 0 0;opacity:.7;font-size:.95rem}.today-header__version{margin-left:auto;align-self:flex-start;font-size:.75rem;opacity:.55;font-variant-numeric:tabular-nums}.today-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.today-row{display:flex;align-items:center;gap:.75rem;min-height:44px;padding:.55rem 0;border-bottom:1px solid rgba(127,127,127,.15)}.today-row:last-child{border-bottom:none}.today-row--active{background:#34c7592e;border-radius:.4rem;padding-left:.5rem;padding-right:.5rem;border-bottom-color:transparent}@media(prefers-color-scheme:dark){.today-row--active{background:#30d15838}}.today-row__icon{width:1.5rem;flex-shrink:0;text-align:center}.today-row__label{flex:1}.today-row__value{opacity:.7;font-variant-numeric:tabular-nums}.today-task__check{width:1.5rem;flex-shrink:0;text-align:center;font-size:1.1rem;opacity:.5}.today-task__check--done{opacity:1;color:#34c759}.today-task__body{display:flex;flex-direction:column;gap:.1rem;flex:1}.today-task__title{line-height:1.3}.today-task__assignee{font-size:.8rem;opacity:.65}.today-empty{margin:0;font-size:.9rem;opacity:.6}.today-activity+.today-activity{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(127,127,127,.15)}.today-activity__title{font-size:.95rem;font-weight:600}.today-activity__parts{margin-top:.25rem;font-size:.85rem;opacity:.75}.link-row{display:flex;align-items:center;gap:.5rem;flex:1;min-height:44px;padding:0;background:none;border:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.link-row__body{display:flex;flex-direction:column;gap:.15rem;flex:1}.link-row__sub{font-size:.8rem;opacity:.65}.link-row__chevron{opacity:.4;font-size:1.3rem;line-height:1}.tab-page__header--nav{display:flex;align-items:center;gap:.75rem}.tab-page__header--nav h2{flex:1}.back-btn{min-height:36px;min-width:44px;padding:.3rem .7rem;background:none;border:1px solid rgba(127,127,127,.3);border-radius:.5rem;color:#007aff;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.back-btn:disabled{opacity:.4;cursor:not-allowed}.back-btn--spacer{border-color:transparent;pointer-events:none}.tank-map__image{display:block;width:100%;height:auto;border-radius:.5rem}.report-period{display:flex;gap:.25rem;padding:.2rem;background:#7f7f7f26;border-radius:.5rem}.seg{flex:1;min-height:36px;padding:.3rem .5rem;background:transparent;border:none;border-radius:.4rem;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.seg--active{background:#ffffffd9;font-weight:600;box-shadow:0 1px 2px #0000001a}@media(prefers-color-scheme:dark){.seg--active{background:#46464bf2}}.report-nav{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.report-range-label{margin:.6rem 0 0;text-align:center;font-size:.85rem;opacity:.65}.report-nav .report-range-label{flex:1;margin:0}.report-export{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.report-logo{display:none}.report-export__btn{min-height:40px;padding:.4rem .9rem;border-radius:.5rem;border:1px solid rgba(127,127,127,.4);background:transparent;color:inherit;font:inherit;font-size:.9rem;cursor:pointer}@media print{.tabs__bar,.mode-pill,.report-export,.report-period,.report-jump,.report-nav button,.field,.tab-page__header--nav .back-btn{display:none!important}.tabs__content{padding:0!important}.tab-page{gap:.1rem}.today-card{border:none;box-shadow:none;break-inside:avoid;padding:.1rem 0}.tab-page__header--nav+.today-card{padding-top:0}.report-logo{display:block;height:84px;width:auto;margin:0}}.report-jump{flex:1;min-height:44px;padding:.4rem .6rem;font:inherit;font-weight:600;font-size:1rem;text-align:center;text-align-last:center;background:transparent;border:1px solid rgba(127,127,127,.3);border-radius:.5rem;color:inherit}.report-table{display:flex;flex-direction:column}.report-row{display:flex;align-items:baseline;gap:.5rem;padding:.55rem 0;border-bottom:1px solid rgba(127,127,127,.15)}.report-row:last-child{border-bottom:none}.report-row--head{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.6;padding-bottom:.35rem}.report-row--grand{font-weight:700}.report-col{font-variant-numeric:tabular-nums}.report-col--label{flex:1;display:flex;flex-direction:column;gap:.1rem}.report-col--num{width:70px;text-align:right}.report-col--wide{width:130px;white-space:nowrap}.report-col--narrow{width:50px}.report-col--dim{opacity:.65}.report-unit{font-weight:500}.report-source{font-size:.8rem;opacity:.7}.cohort-row{padding:.7rem 0}.cohort-row__head{display:flex;align-items:center;gap:.5rem}.cohort-row__icon{font-size:1.05rem}.cohort-row__code{font-weight:600;font-size:1rem}.cohort-row__meta{display:flex;align-items:center;gap:.4rem;margin-top:.15rem;font-size:.8rem;opacity:.7;font-variant-numeric:tabular-nums}.cohort-row__sep{opacity:.5}.chip{font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.15rem .55rem;border-radius:999px;background:#7f7f7f2e;white-space:nowrap}.chip--soon{opacity:.65;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.crew-row{padding:.7rem 0}.crew-row__body{display:flex;flex-direction:column;gap:.2rem;flex:1}.crew-row__head{display:flex;align-items:center;gap:.5rem}.crew-row__name{font-weight:600}.crew-line{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.history-note{font-size:.8rem;opacity:.6}.crew-row__skills{font-size:.82rem;opacity:.7}.crew-row__hours{font-size:.75rem;opacity:.55;font-variant-numeric:tabular-nums}.schedule-row{gap:.65rem}.schedule-row__day{width:38px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.6;flex-shrink:0}.schedule-row__task{flex:1}.schedule-row__who{opacity:.6;font-size:.82rem;text-align:right}.app{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.status{padding:.75rem 1rem;border-radius:.5rem;border:1px solid transparent}.status code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em}.status--loading{background:#7f7f7f14;border-color:#7f7f7f33}.status--ok{background:#34c7591f;border-color:#34c75966}.status--error{background:#ff3b301f;border-color:#ff3b3066}
